# Пользовательские дополнения

На главную

## avatar.GetRecipeInfo( id )

Возвращает информацию о рецепте по идентификатору ресурса.

    -- система:
    UIState/GameState
    функция имеет основную реализация в логике и расширенную реализацию в UI

    -- библиотека
    avatar

    -- объявление:
    function GetRecipeInfo( id )

    -- параметры
    id: RecipeId - Id ресурса рецепта

    -- возвращаемые значения
    nil, если рецепт не найден по идентификатору, или table:
      id: RecipeId - Id ресурса рецепта
      name: WString - название
      description: ValuedText or nil - описание с подставленными текущими значениями параметров
      skillId: SkillId or nil - идентификатор ресурса скила, которому принадлежит рецепт (если скилл выучен игроком)
      score: number( int ) - необходимый уровень (score) умения для изучения
      --{ часть таблицы, реализованная только для UI
      image: TextureId - идентификатор текстуры для иконки рецепта
      --}
      components: table of ObjectId or ResourceId - массив компонент рецепта (см. ниже)
      resultQuantity: number( int ) - количество предметов, получаемых из рецепта по умолчанию
      defaultItem: ObjectId or nil - идентификатор предмета, получаемый из рецепта по умолчанию
      nextRecipe: ObjectId or nil - идентификатор анлока следующего ресурса (если ещё не выполнен)
      nextRecipeId: RecipeId or nil - следующий рецепт
      nextRecipePoints: number( int ) - Сколько надо просветления для анлока следующего рецепта
      qualificationPoints: CurrencyId - Id альтернативной ценности
      resultItems: table of ObjectId - индексированный с 0 массив идентификаторов предметов, создаваемых по рецепту (отсортированы по качеству от менее качественного (0) до более качественного)
      bindResult: boolean - будет ли результат привязан к аватару

    -- пример использования
    local alchemy = avatar.GetAlchemyInfo()
    local recipes = alchemy.recipes
    for i = 0, GetTableSize( recipes ) - 1 do
      local recipeInfo = avatar.GetRecipeInfo( recipes[ i ] )
      if recipeInfo then
        common.LogInfo( debugCommon.FromWString( recipeInfo.name ) )

        local firstItemInfo = avatar.GetItemInfo( recipes[ i ].resultItems[ 0 ] )
        if firstItemInfo then
          common.LogInfo( "Предмет, создаваемый рецептом - ", debugCommon.FromWString( firstItemInfo.name ) )
        end
      end
    end

Таблица components содержит список идентификаторов компонент рецепта. Для разных скиллов передаются разные идентификаторы:

- Алхимия - table of ComponentPropertyId - массив идентификаторов ресурсов алхимических компонент рецепта (см. avatar.GetComponentInfo(componentId)

- Создание доспехов (armorCraft или DiceCraft) - table of ObjectId - массив идентификаторов объектов предметов, необходимых для рецепта

#### Search: "CategoryLuaApi" "CategorySkill"

CategoryCraft
ComponentPropertyId
EnumToolProperty
EventForagingFailed
EventSkillAdded
EventSkillImprovementChanged
EventSkillRemoved
EventSkillsChanged
EventSkillScoreChanged
FunctionAvatarGetActiveCraftingSkill
FunctionAvatarGetComponentInfo
FunctionAvatarGetCurrentMaxSkillScore
FunctionAvatarGetMaxSkillScore
FunctionAvatarGetRecipeInfo
FunctionAvatarGetSkillInfo
FunctionAvatarGetSkills
FunctionItemLibGetActivationInfo
FunctionItemLibGetCraftInfo
FunctionItemLibGetCraftToolInfo
FunctionItemLibGetExchangeInfo
FunctionItemLibIsCopied
RecipeId
SkillId

CategoryLuaApi CategoryFunction CategoryAvatar CategorySkill CategoryCraft

На главную