CustomGames.ru - Dota 2 пользовательские игры

Lua-Orb-Effect

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Lua-Orb-Effect
« : 24-07-2016, 04:54:27 »
Как написать датадрайвен дезолятор со скриптом при "OnOrbFire", который при необходимости будет менять эффект desolator_projectile на другой? Т.е. как написать вот это на lua?:
Код
			"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"ProjectileName" "particles/items_fx/desolator_projectile.vpcf"
"CastAttack" "0"
}
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #1 : 24-07-2016, 12:11:59 »
Ну так и делать: свой модификатор создавать, это во первых, а во вторых вещь свою сделать и в её коде реализовывать подобный механизм. 

Можешь даже два одинаковых модификатора с разными партиклями реализовать, чтобы проще было. Ну или партикли реализовывать в коде вещи, а не модификатора.

Или еще проще - сделать один свой модификатор, а вторым использовать оригинальный дезолевский.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #2 : 24-07-2016, 12:36:13 »
Ну так и делать: свой модификатор создавать, это во первых, а во вторых вещь свою сделать и в её коде реализовывать подобный механизм. 

Можешь даже два одинаковых модификатора с разными партиклями реализовать, чтобы проще было. Ну или партикли реализовывать в коде вещи, а не модификатора.

Или еще проще - сделать один свой модификатор, а вторым использовать оригинальный дезолевский.
Можно ли сделать подобным образом?:
Код
Предмет
его описание
Он креейт ранскрипт
Модифиерс:
модифер1:
орб
модифер2:
орб2
Код
function ранскрипта:
если то-то эпплимодифаер модифаер1
если другое эпплимодифаер модифаер2
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #3 : 24-07-2016, 13:03:28 »
Да, по идеи можно.

Только я имел в виду луа модификаторы, но, думаю, так тоже будет работать.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #4 : 24-07-2016, 13:56:31 »
Да, по идеи можно.

Только я имел в виду луа модификаторы, но, думаю, так тоже будет работать.
Пока не понадобится делать целенаправленные скиллы или такие же предметы (как вы говорили, для нормальной работы Лотуса),  буду пользоваться датадрайвеном с:
« Последнее редактирование: 24-07-2016, 13:59:32 от EnDronist »
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #5 : 29-07-2016, 03:20:42 »
Да, по идеи можно.

Только я имел в виду луа модификаторы, но, думаю, так тоже будет работать.
Я реализовывал этот механизм долго, зато продуктивно. Теперь осталось только дописывать в него все остальные орбы. Если интересно, я сейчас прикреплю к себе в статус ссылку на аддон
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #6 : 29-07-2016, 08:19:13 »
Скинул бы лучше сюда код  для будущих поколений.  Ну и мож кто не ленивый его посмотрит и улучшит.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #7 : 29-07-2016, 08:20:42 »
Скинул бы лучше сюда код  для будущих поколений.  Ну и мож кто не ленивый его посмотрит и улучшит.
Не хотелось бы, чтоб мои труды воровали школьники(
Тем более улучшать там нечего, разве что посмотреть код и переделать его под lua-модификаторы
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #8 : 29-07-2016, 08:35:33 »
Хахахахха, а ты не воруешь чужую интеллектуальную собственность на гитхабе или нашем же форуме?  ;)

Кроме того, если ты выгрузишь код в дотку, то его достать не проблема. Единственная защита и возможность "качать права" - патент. Да и зачем это нужно, если ты пользуешься чужим инструментарием (API workshopa). Твоя здесь только последовательность запуска тех или иных функций. Даже холст, на котором ты реализуешь все - не твой.

Ну да дело твое, я не давлю, просто меня забавляют подобные отговорки.
Ну и само по себе выкладывание кода будущим поколениям - красивый жест, показывающий, что тут люди больше рисуют карту для всех, нежели с помощью чужих карт ищут сокровища, которыми не делятся.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #9 : 29-07-2016, 08:41:20 »
Хахахахха, а ты не воруешь чужую интеллектуальную собственность на гитхабе или нашем же форуме?  ;)

Кроме того, если ты выгрузишь код в дотку, то его достать не проблема. Единственная защита и возможность "качать права" - патент. Да и зачем это нужно, если ты пользуешься чужим инструментарием (API workshopa). Твоя здесь только последовательность запуска тех или иных функций. Даже холст, на котором ты реализуешь все - не твой.

Ну да дело твое, я не давлю, просто меня забавляют подобные отговорки.
Ну и само по себе выкладывание кода будущим поколениям - красивый жест, показывающий, что тут люди больше рисуют карту для всех, нежели с помощью чужих карт ищут сокровища, которыми не делятся.
Хорошо, я не против буду выгрузить свою систему, если ты покажешь мне, как достать наработки других аддоноделов, допустим, из Дота Имбы
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #10 : 29-07-2016, 08:43:49 »
Ах ты продажный борец не за идею  :)

Вбивай GCFScape в поиск.

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #11 : 29-07-2016, 09:23:03 »
Ах ты продажный борец не за идею  :)

Вбивай GCFScape в поиск.
Он у меня скачан ещё с 2014-го. Сейчас гляну, что там вы обсуждали
« Последнее редактирование: 29-07-2016, 09:26:44 от EnDronist »
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #12 : 29-07-2016, 09:45:01 »
Ах ты продажный борец не за идею  :)

Вбивай GCFScape в поиск.
Я не нашёл vpk Dota Imba'ы
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн Илья

  • Супермодератор
  • 2133
  • Мощь: 21
Re: Lua-Orb-Effect
« Ответ #13 : 29-07-2016, 10:31:22 »

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: Lua-Orb-Effect
« Ответ #14 : 07-08-2016, 00:27:36 »
Скинул бы лучше сюда код  для будущих поколений.  Ну и мож кто не ленивый его посмотрит и улучшит.
А вот и моя система:
Skadi DataDriven
Код
	//=================================================================================================================
// Recipe: Skadi
//=================================================================================================================
"item_recipe_skadi_1"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "item_datadriven"
"ID" "15900"  //Valve's version of this item uses the ID "167".
"Model" "models/props_gameplay/recipe.mdl"
"AbilityTextureName" "item_recipe"

// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "0"
"ItemShopTags" ""

// Recipe
//-------------------------------------------------------------------------------------------------------------
"ItemRecipe" "1"
"ItemResult" "item_skadi_1"
"ItemRequirements"
{
"01" "item_ultimate_orb;item_ultimate_orb;item_point_booster;item_orb_of_venom"
}
}

//=================================================================================================================
// Skadi
//=================================================================================================================
"item_skadi_1"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "item_datadriven"
"ID" "16000"  //Valve's version of this item uses the ID "160".
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"Model" "models/props_gameplay/red_box.vmdl"
"Effect" "particles/generic_gameplay/dropped_item.vpcf"
"AbilityTextureName" "item_skadi"

// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "5675"
"ItemShopTags" "agi;str;int;hard_to_tag;mana_pool;health_pool;unique"
"ItemQuality" "artifact"
"ItemAliases" "eos;eye of skadi"
"ItemDeclarations" "DECLARE_PURCHASES_TO_TEAMMATES | DECLARE_PURCHASES_IN_SPEECH | DECLARE_PURCHASES_TO_SPECTATORS"

// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_all_stats" "25"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_health" "225"
}
"03"
{
"var_type" "FIELD_INTEGER"
"bonus_mana" "250"
}
"04"
{
"var_type" "FIELD_INTEGER"
"cold_movement_speed" "-35"
}
"05"
{
"var_type" "FIELD_INTEGER"
"cold_attack_speed" "-45"
}
"06"
{
"var_type" "FIELD_FLOAT"
"cold_duration_melee" "5.0"
}
"07"
{
"var_type" "FIELD_FLOAT"
"cold_duration_ranged" "2.5"
}
//Desolator
"08"
{
"var_type" "FIELD_INTEGER"
"corruption_armor" "-7"
}
"09"
{
"var_type" "FIELD_FLOAT"
"corruption_duration" "15.0"
}
}

"Modifiers"
{
"modifier_item_skadi_1"
{
"Passive" "1"
"IsHidden" "1"
"Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE"

"Properties"
{
"MODIFIER_PROPERTY_STATS_STRENGTH_BONUS" "%bonus_all_stats"
"MODIFIER_PROPERTY_STATS_AGILITY_BONUS" "%bonus_all_stats"
"MODIFIER_PROPERTY_STATS_INTELLECT_BONUS" "%bonus_all_stats"
"MODIFIER_PROPERTY_HEALTH_BONUS" "%bonus_health"
"MODIFIER_PROPERTY_MANA_BONUS" "%bonus_mana"
}
"OnCreated"
{
"ApplyModifier"
{
"Target" "CASTER"
"ModifierName" "modifier_item_skadi_thinker"
}
}
"OnDestroy"
{
"RemoveModifier"
{
"Target" "CASTER"
"ModifierName" "modifier_item_skadi_thinker"
}
"RunScript"
{
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_orb_thinking_remover"
}
}
}

"modifier_item_skadi_thinker"
{
"IsHidden" "1"
"ThinkInterval" "0.03"
"OnIntervalThink"
{
"RunScript"
{
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_orb"
}
}
}
//Desolator Orb
"modifier_item_desolator_orb"
{
"IsHidden" "1"
"TextureName" "desolator_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"ProjectileName" "particles/items_fx/desolator_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbFire"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption"
}

"FireSound"
{
"EffectName" "Item_Desolator.Target"
"Target" "TARGET"
}
}
}
///Skadi Orb
"modifier_item_skadi_orb"
{
"IsHidden" "0"
"TextureName" "skadi_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"Label" "DOTA_ORB_LABEL_SKADI"  //This does not currently seem to have an effect.  "Label" may not be the right key.
"ProjectileName" "particles/items2_fx/skadi_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbImpact"
{
"RunScript"
{
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_skadi_orb"
"ColdDurationMelee" "%cold_duration_melee"
"ColdDurationRanged" "%cold_duration_ranged"
}
}
}
//Desolator and Skadi Orb
"modifier_item_desolator_skadi_orb"
{
"IsHidden" "0"
"TextureName" "desolator_skadi_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"ProjectileName" "particles/items2_fx/desolator_skadi_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbFire"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption"
}

"RunScript"
{
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_desolator_skadi_orb"
"ColdDurationMelee" "%cold_duration_melee"
"ColdDurationRanged" "%cold_duration_ranged"
}

"FireSound"
{
"EffectName" "Item_Desolator.Target"
"Target" "TARGET"
}
}
}


//Desolator
"modifier_item_desolator_corruption"
{
"Duration" "%corruption_duration"
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"TextureName" "desolator_corruption"

"Properties"
{
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%corruption_armor"
}
"OnCreated"
{
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_desolator_corruption"
}
}
}
//Skadi
"modifier_item_skadi_corruption"
{
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"TextureName" "skadi_corruption"

"StatusEffectName"     "particles/status_fx/status_effect_frost.vpcf"
"StatusEffectPriority" "10"

"Properties"
{
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%cold_attack_speed"
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%cold_movement_speed"
}
"OnCreated"
{
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_skadi_corruption"
}
}
}
//Desolator and Skadi
"modifier_item_desolator_skadi_corruption"
{
"Passive" "0"
"IsHidden" "1"
"IsDebuff" "1"
"IsPurgable" "1"

"StatusEffectName"     "particles/status_fx/status_effect_frost.vpcf"
"StatusEffectPriority" "10"

"Properties"
{
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%cold_attack_speed"
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%cold_movement_speed"
}
"OnCreated"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption_for_desolator_skadi"
}
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_skadi_1.lua"
"Function" "modifier_item_desolator_skadi_corruption"
}
}
}
"modifier_item_desolator_corruption_for_desolator_skadi"
{
"Duration" "%corruption_duration"
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"TextureName" "desolator_skadi_corruption"

"Properties"
{
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%corruption_armor"
}
}
}
}
[свернуть]
Desolator DataDriven
Код
	//=================================================================================================================
// Recipe: Desolator
//=================================================================================================================
"item_recipe_desolator_1"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "item_datadriven"
"ID" "16700"  //Valve's version of this item uses the ID "167".
"Model" "models/props_gameplay/recipe.mdl"
"AbilityTextureName" "item_recipe"

// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "0"
"ItemShopTags" ""

// Recipe
//-------------------------------------------------------------------------------------------------------------
"ItemRecipe" "1"
"ItemResult" "item_desolator_1"
"ItemRequirements"
{
"01" "item_mithril_hammer;item_mithril_hammer;item_blight_stone"
}
}

//=================================================================================================================
// Desolator
//=================================================================================================================
"item_desolator_1"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "item_datadriven"
"ID" "16800"  //Valve's version of this item uses the ID "168".
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"Model" "models/props_gameplay/red_box.vmdl"
"Effect" "particles/generic_gameplay/dropped_item.vpcf"
"AbilityTextureName" "item_desolator"

// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "3500"
"ItemShopTags" "damage;unique"
"ItemQuality" "artifact"
"ItemAliases" "desolator"
"ItemDeclarations" "DECLARE_PURCHASES_TO_TEAMMATES | DECLARE_PURCHASES_IN_SPEECH | DECLARE_PURCHASES_TO_SPECTATORS"

// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_damage" "50"
}
"02"
{
"var_type" "FIELD_INTEGER"
"corruption_armor" "-7"
}
"03"
{
"var_type" "FIELD_FLOAT"
"corruption_duration" "15.0"
}
//Skadi Orb
"04"
{
"var_type" "FIELD_INTEGER"
"cold_movement_speed" "-35"
}
"05"
{
"var_type" "FIELD_INTEGER"
"cold_attack_speed" "-45"
}
"06"
{
"var_type" "FIELD_FLOAT"
"cold_duration_melee" "5.0"
}
"07"
{
"var_type" "FIELD_FLOAT"
"cold_duration_ranged" "3.0"
}
}

"Modifiers"
{
"modifier_item_desolator"
{
"Passive" "1"
"IsHidden" "1"
"Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE"

"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" "%bonus_damage"
}
"OnCreated"
{
"ApplyModifier"
{
"Target" "CASTER"
"ModifierName" "modifier_item_desolator_thinker"
}
}
"OnDestroy"
{
"RemoveModifier"
{
"Target" "CASTER"
"ModifierName" "modifier_item_desolator_thinker"
}
"RunScript"
{
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_orb_thinking_remover"
}
}
}
"modifier_item_desolator_thinker"
{
"IsHidden" "1"
"ThinkInterval" "0.03"
"OnIntervalThink"
{
"RunScript"
{
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_orb"
}
}
}
//Desolator Orb
"modifier_item_desolator_orb"
{
"IsHidden" "0"
"TextureName" "desolator_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"ProjectileName" "particles/items_fx/desolator_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbFire"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption"
}

"FireSound"
{
"EffectName" "Item_Desolator.Target"
"Target" "TARGET"
}
}
}
///Skadi Orb
"modifier_item_skadi_orb"
{
"IsHidden" "0"
"TextureName" "skadi_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"Label" "DOTA_ORB_LABEL_SKADI"  //This does not currently seem to have an effect.  "Label" may not be the right key.
"ProjectileName" "particles/items2_fx/skadi_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbImpact"
{
"RunScript"
{
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_skadi_orb"
"ColdDurationMelee" "%cold_duration_melee"
"ColdDurationRanged" "%cold_duration_ranged"
}
}
}
//Desolator and Skadi Orb
"modifier_item_desolator_skadi_orb"
{
"IsHidden" "0"
"TextureName" "desolator_skadi_orb"

"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ITEM"
"ProjectileName" "particles/items2_fx/desolator_skadi_projectile.vpcf"
"CastAttack" "0"
}

"OnOrbFire"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption"
}

"RunScript"
{
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_desolator_skadi_orb"
"ColdDurationMelee" "%cold_duration_melee"
"ColdDurationRanged" "%cold_duration_ranged"
}

"FireSound"
{
"EffectName" "Item_Desolator.Target"
"Target" "TARGET"
}
}
}

//Desolator
"modifier_item_desolator_corruption"
{
"Duration" "%corruption_duration"
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"TextureName" "desolator_corruption"

"Properties"
{
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%corruption_armor"
}
"OnCreated"
{
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_desolator_corruption"
}
}
}
//Skadi
"modifier_item_skadi_corruption"
{
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"TextureName" "skadi_corruption"

"StatusEffectName"     "particles/status_fx/status_effect_frost.vpcf"
"StatusEffectPriority" "10"

"Properties"
{
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%cold_attack_speed"
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%cold_movement_speed"
}
"OnCreated"
{
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_skadi_corruption"
}
}
}
//Desolator and Skadi
"modifier_item_desolator_skadi_corruption"
{
"Passive" "0"
"IsHidden" "1"
"IsDebuff" "1"
"IsPurgable" "1"

"StatusEffectName"     "particles/status_fx/status_effect_frost.vpcf"
"StatusEffectPriority" "10"

"Properties"
{
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" "%cold_attack_speed"
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%cold_movement_speed"
}
"OnCreated"
{
"ApplyModifier"
{
"Target" "TARGET"
"ModifierName" "modifier_item_desolator_corruption_for_desolator_skadi"
}
"RunScript"
{
"Target" "TARGET"
"ScriptFile" "items/item_desolator_1.lua"
"Function" "modifier_item_desolator_skadi_corruption"
}
}
}
"modifier_item_desolator_corruption_for_desolator_skadi"
{
"Duration" "%corruption_duration"
"Passive" "0"
"IsHidden" "0"
"IsDebuff" "1"
"IsPurgable" "1"
"TextureName" "desolator_skadi_corruption"

"Properties"
{
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" "%corruption_armor"
}
}

}
}
[свернуть]
item_desolator_1.lua
Код
function modifier_item_orb(keys)
--if --[[not keys.caster:HasModifier("modifier_item_desolator_thinker") or]] not keys.caster:HasModifier("modifier_item_skadi_thinker") then
local desolator = 0
local skadi = 0
--if keys.caster:HasModifier("modifier_item_desolator_thinker") end
--if keys.caster:HasModifier("modifier_item_skadi_thinker") end
for i=0, 5, 1 do
local current_item = keys.caster:GetItemInSlot(i)
if current_item ~= nil then
if current_item:GetName() == "item_desolator_1" then desolator = 1 end
if current_item:GetName() == "item_skadi_1" then skadi = 1 end
end
end
if desolator == 0 then keys.caster:RemoveModifierByName("modifier_item_desolator_thinker")
elseif skadi == 0 then keys.caster:RemoveModifierByName("modifier_item_skadi_thinker")
end

if desolator == 0 and skadi == 0 then
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
--if --[[desolator == 0 and]] skadi == 1 then
-- keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_skadi_orb", nil)
-- keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
-- --keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
-- keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
--end
if --[[desolator == 1 and]] skadi == 0 then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_desolator_orb", nil)
--keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
if --[[desolator == 1 and]] skadi == 1 then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_desolator_skadi_orb", nil)
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
--keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
--end
end
--Remover
function modifier_item_orb_thinking_remover(keys)
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
--Joint Cooperation
function modifier_item_desolator_corruption(keys)
keys.target:RemoveModifierByName("modifier_item_desolator_skadi_corruption")
keys.target:RemoveModifierByName("modifier_item_desolator_corruption_for_desolator_skadi")
end
function modifier_item_skadi_corruption(keys)
keys.target:RemoveModifierByName("modifier_item_desolator_skadi_corruption")
keys.target:RemoveModifierByName("modifier_item_desolator_corruption_for_desolator_skadi")
end
function modifier_item_desolator_skadi_corruption(keys) -- Нужно удалить все остальные дебаффы, касающиеся Desolator и Skadi
keys.target:RemoveModifierByName("modifier_item_desolator_corruption")
keys.target:RemoveModifierByName("modifier_item_skadi_corruption")
end
--Corruption Stratification
function modifier_item_skadi_orb(keys)
if keys.target.GetInvulnCount == nil then
if keys.caster:IsRangedAttacker() then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_skadi_corruption", {duration = keys.ColdDurationRanged})
else
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_skadi_corruption", {duration = keys.ColdDurationMelee})
end
end
end
function modifier_item_desolator_skadi_orb(keys)
if keys.target.GetInvulnCount == nil then
if keys.caster:IsRangedAttacker() then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_desolator_skadi_corruption", {duration = keys.ColdDurationRanged})
else
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_desolator_skadi_corruption", {duration = keys.ColdDurationMelee})
end
end
end
[свернуть]
item_skadi_1.lua
Код
function modifier_item_orb(keys)
if not keys.caster:HasModifier("modifier_item_desolator_thinker") --[[or not keys.caster:HasModifier("modifier_item_skadi_thinker")]] then
local desolator = 0
local skadi = 0
--if keys.caster:HasModifier("modifier_item_desolator_thinker") end
--if keys.caster:HasModifier("modifier_item_skadi_thinker") end
for i=0, 5, 1 do
local current_item = keys.caster:GetItemInSlot(i)
if current_item ~= nil then
if current_item:GetName() == "item_desolator_1" then desolator = 1 end
if current_item:GetName() == "item_skadi_1" then skadi = 1 end
end
end
if desolator == 0 then keys.caster:RemoveModifierByName("modifier_item_desolator_thinker")
elseif skadi == 0 then keys.caster:RemoveModifierByName("modifier_item_skadi_thinker")
end

if desolator == 0 and skadi == 0 then
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
if desolator == 0 --[[and skadi == 1]] then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_skadi_orb", nil)
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
--keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
--if desolator == 1 --[[and skadi]] == 0 then
-- keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_desolator_orb", nil)
-- --keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
-- keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
-- keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
--end
if desolator == 1 --[[and skadi]] == 1 then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.caster, "modifier_item_desolator_skadi_orb", nil)
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
--keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
end
end
--Remover
function modifier_item_orb_thinking_remover(keys)
keys.caster:RemoveModifierByName("modifier_item_desolator_orb")
keys.caster:RemoveModifierByName("modifier_item_skadi_orb")
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_orb")
end
--Joint Cooperation
function modifier_item_desolator_corruption(keys)
keys.caster:RemoveModifierByName("modifier_item_desolator_skadi_corruption")
end
function modifier_item_skadi_corruption(keys)
keys.caster:RemoveModifierByName("modifier_item_desolator_corruption")
end
function modifier_item_desolator_skadi_corruption(keys) -- Нужно удалить все остальные дебаффы, касающиеся Desolator и Skadi
keys.caster:RemoveModifierByName("modifier_item_desolator_corruption")
keys.caster:RemoveModifierByName("modifier_item_skadi_corruption")
end
--Corruption Stratification
function modifier_item_skadi_orb(keys)
if keys.target.GetInvulnCount == nil then
if keys.caster:IsRangedAttacker() then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_skadi_corruption", {duration = keys.ColdDurationRanged})
else
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_skadi_corruption", {duration = keys.ColdDurationMelee})
end
end
end
function modifier_item_desolator_skadi_orb(keys)
if keys.target.GetInvulnCount == nil then
if keys.caster:IsRangedAttacker() then
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_desolator_skadi_corruption", {duration = keys.ColdDurationRanged})
else
keys.ability:ApplyDataDrivenModifier(keys.caster, keys.target, "modifier_item_desolator_skadi_corruption", {duration = keys.ColdDurationMelee})
end
end
end
[свернуть]
Осталось добавить сюда остальные орбы и готово
(Хотелось бы перевести все эти модификаторы на lua)
« Последнее редактирование: 08-08-2016, 02:29:25 от EnDronist »
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]