- 31 Май 2019
- 405
- 57
Полный гайд по npc_items_custom.txt и кодинг
Главное
Начинай з "item_" дальше имя вашего предмета. Если этого не прописать в начале предмета, это может произвести к плохим вещам
Пример:
"item_custom"
{
(...)
}
Следующее это BaseClass. Он необходим для работы, кастомных предметов.
Может использовать DataDriven, Lua.
Необходимости
"ItemKillable" позволяет врагам и союзникам уничтожить предмет.
Акции
Владение предметом
Если вы пропустите следующее, тогда по умолчанию ITEM_NOT_SHAREABLE
Расходы
Ещё не забудьте добавить, это, после OnSpellStart
Расходуемые, предметы
Если для ItemPermament поставить значение 1, тогда предмет не исчезнет даже после окончание зарядов.
Не указывая этот параметр, будет по умолчанию 1.
Авто применение
Предмет сразу же сработает, когда его подобрали.
Апгрейд предметов
Рецепты
ВАЖНО: Ваше имя для рецепта должно быть именно:
Это означает, что если ItemResult, который вы получите в результате, будет называться item_capuchino , а рецепт выглядит так item_recipe_capuchino.
(moddota.com)
Если вы не добавите это, тогда у вас могут возникнуть проблемы. Вы не увидите линии которые ведут к новым скомбинированными предметам.
Разбирание
Создание модификаторов для предмета
Теперь мы имеем предмет, но он нечего не делает сам по себе.
Чтобы была польза от предмета, надо добавить модификатор, который будет давать бонусы.
Функционал предмета как заклинание
Помимо модификаторов, можно добавить функционал заклинание.
Также предметам, тоже нравится
Как не хотите, но вам надо установить AbilityBehavior, для того чтобы сделать его пассивным/неактивным, не сделал этого, по умолчанию, будет DOTA_ABILITY_BEHAVIOR_UNIT_TARGET.
Иконки и кастомный магазин
Чтобы была иконка для вашего предмета надо перейти по папкам:
Если нету images/items, тогда создайте.
И поместите файл .png размером 86 x 64 с тем же именем, что и у «item_custom», можно «item_» или без его.
Теперь переходите к вашему предмему и пишите:
Чтобы создать свой магазин, перейдите в scripts
и создайте папку shops/map_shops.txt
ВНИМАНИЕ! Надо добавить название карты (не аддона), а карты .vmap
Обычный магазин по этой ссылке: В предмете вы можете поставить правила при, которых будет куплен предмет.
Более подробный гайд по созданию кастомного магазина здесь: Creating a custom shop, step by step
На этом пока что все...
Так как я немного занят вернусь дополнять позже.
Кстати спасибо за поддержку
Главное
Начинай з "item_" дальше имя вашего предмета. Если этого не прописать в начале предмета, это может произвести к плохим вещам
Пример:
"item_custom"
{
(...)
}
Следующее это BaseClass. Он необходим для работы, кастомных предметов.
Может использовать DataDriven, Lua.
Код:
"BaseClass" "item_datadriven" //
"item_lua"
"item_aegis"
Необходимости
Код:
"ItemCost" "322"
"ItemKillable" "0"
"ItemSellable" "1"
"ItemPurchasable" "1"
"ItemDroppable" "1"
"ItemKillable" позволяет врагам и союзникам уничтожить предмет.
Акции
Код:
"ItemStockMax" "1"
"ItemStockTime" "100"
"ItemStockInitial" "3"
Владение предметом
Если вы пропустите следующее, тогда по умолчанию ITEM_NOT_SHAREABLE
Код:
"ItemShareability" "ITEM_NOT_SHAREABLE" //Rapier
"ITEM_PARTIALLY_SHAREABLE" //Ring of Regen
"ITEM_FULLY_SHAREABLE" //Gem
"ITEM_FULLY_SHAREABLE_STACKING" //Consumables
Расходы
Код:
"ItemInitialCharges" "1" //How many charges should the item start with - Tango x3
"ItemDisplayCharges" "1" //Hide the charges of the item - Aegis
"ItemRequiresCharges" "1" //The active ability needs charges to be used - Urn
Код:
"OnSpellStart"
{
(...)
} "SpendCharge" {}
Расходуемые, предметы
Код:
"ItemStackable" "1"
"ItemPermanent" "0"
Не указывая этот параметр, будет по умолчанию 1.
Авто применение
Предмет сразу же сработает, когда его подобрали.
"ItemCastOnPickup" "1"
Апгрейд предметов
"MaxUpgradeLevel" "5" // Dagon - 5
"ItemBaseLevel" "1" // Базовый уровень предмета. Меняйте его с каждым новым предметом.
Рецепты
Код:
"item_recipe_custom"
{
"ID" "1200"
"BaseClass" "item_datadriven"
"ItemRecipe" "1" // Рецепт для комбинации предмета
"ItemCost" "0" // Если будет 0, тогда комбинирование предметов будет без рецепта
"ItemResult" "item_custom" // Результат комбинации предмета после ItemRequirements
"ItemRequirements"
{
"01" "item_ingredient_1;item_ingredient_2;item_ingredient_3" // Необходимые предметы для комбинации
"02" "item_ingredient_1;item_ingredient_2;item_ingredient_alternative_3" // Альтернатива
}
}
"item_recipe_(название_предмета)"
Это означает, что если ItemResult, который вы получите в результате, будет называться item_capuchino , а рецепт выглядит так item_recipe_capuchino.
(moddota.com)
Если вы не добавите это, тогда у вас могут возникнуть проблемы. Вы не увидите линии которые ведут к новым скомбинированными предметам.
Разбирание
"ItemDisassembleRule" "DOTA_ITEM_DISASSEMBLE_ALWAYS"
"DOTA_ITEM_DISASSEMBLE_NEVER"
Создание модификаторов для предмета
Теперь мы имеем предмет, но он нечего не делает сам по себе.
Чтобы была польза от предмета, надо добавить модификатор, который будет давать бонусы.
Код:
"Modifiers"
{
"item_custom_modifier"
{
"Passive" "1"
"IsHidden" "0"
"Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE" // Даёт возможность умножать бонусы предмета, по умолчанию MODIFIER_ATTRIBUTE_NONE
"Properties"
{
"MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT" "%movement_speed"
"MODIFIER_PROPERTY_EVASION_CONSTANT" "%evasion"
"MODIFIER_PROPERTY_STATS_STRENGTH_BONUS" "%bonus_str_agi"
"MODIFIER_PROPERTY_STATS_AGILITY_BONUS" "%bonus_agi"
"MODIFIER_PROPERTY_STATS_INTELLECT_BONUS" "%bonus_int"
"MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE" "%damage_bonus_percent"
}
"States"
{
"MODIFIER_STATE_SPECIALLY_DENIABLE" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_MAGIC_IMMUNE" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_NO_HEALTH_BAR" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
Помимо модификаторов, можно добавить функционал заклинание.
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_BOTH"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
"AbilityCastAnimation" "ACT_DOTA_CAST_ABILITY_1"
"AbilityManaCost" "100"
"AbilitySpecial"
{ ... }
Также предметам, тоже нравится
"OnSpellStart"
, "OnOwnerDied"
, "OnEquip"
.Как не хотите, но вам надо установить AbilityBehavior, для того чтобы сделать его пассивным/неактивным, не сделал этого, по умолчанию, будет DOTA_ABILITY_BEHAVIOR_UNIT_TARGET.
Иконки и кастомный магазин
Чтобы была иконка для вашего предмета надо перейти по папкам:
/resource/flash3/images/items
Если нету images/items, тогда создайте.
И поместите файл .png размером 86 x 64 с тем же именем, что и у «item_custom», можно «item_» или без его.
Теперь переходите к вашему предмему и пишите:
"AbilityTextureName" "item_custom" // Пропишите свое название иконки
Чтобы создать свой магазин, перейдите в scripts
и создайте папку shops/map_shops.txt
ВНИМАНИЕ! Надо добавить название карты (не аддона), а карты .vmap
Обычный магазин по этой ссылке: В предмете вы можете поставить правила при, которых будет куплен предмет.
"SideShop" "1"
"SecretShop" "0"
Более подробный гайд по созданию кастомного магазина здесь: Creating a custom shop, step by step
На этом пока что все...
Так как я немного занят вернусь дополнять позже.
Кстати спасибо за поддержку
Последнее редактирование: