- 4 Окт 2014
- 473
- 2
Может вы увидите. При покупке предметы вылетает игра, только в лобби с живыми людьми. С ботами не вылетит. Помогите найти проблему)
LUA
Код:
"item_recipe_high_frequency_blade"
{
// General
//-------------------------------------------------------------------------------------------------------------
"ID" "6227"
"Model" "models/props_gameplay/recipe.vmdl"
"BaseClass" "item_datadriven"
// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "225"
"ItemShopTags" ""
// Recipe
//-------------------------------------------------------------------------------------------------------------
"ItemRecipe" "1"
"ItemResult" "item_high_frequency_blade"
"ItemRequirements"
{
"01" "item_demon_shard;item_echo_sabre"
}
}
//=================================================================================================================
// High frequency blade
//=================================================================================================================
"item_high_frequency_blade"
{
"ID" "600654600456"
"BaseClass" "item_lua"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilityTextureName" "high_frequency_blade"
"FightRecapLevel" "1"
"AbilityCooldown" "15.0"
"AbilityCastPoint" "0.0"
"ScriptFile" "items/item_high_frequency_blade.lua"
"ItemCost" "12800"
"ItemShopTags" "int;attack_speed"
"ItemQuality" "epic"
"ItemAliases" "blade"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_all_stats" "50"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_attack_speed" "35"
}
"03"
{
"var_type" "FIELD_INTEGER"
"bonus_damage" "60"
}
"04"
{
"var_type" "FIELD_INTEGER"
"bonus_mana_regen" "175"
}
"05"
{
"var_type" "FIELD_INTEGER"
"crit_chance" "10"
}
"06"
{
"var_type" "FIELD_INTEGER"
"crit_damage" "875"
}
}
}
LUA
Код:
LinkLuaModifier ("modifier_item_high_frequency_blade", "items/item_high_frequency_blade.lua", LUA_MODIFIER_MOTION_NONE)
LinkLuaModifier ("modifier_item_high_frequency_blade_echoe", "items/item_high_frequency_blade.lua", LUA_MODIFIER_MOTION_NONE)
LinkLuaModifier ("modifier_item_high_frequency_blade_crit", "items/item_high_frequency_blade.lua", LUA_MODIFIER_MOTION_NONE)
if item_high_frequency_blade == nil then
item_high_frequency_blade = class ( {})
end
function item_high_frequency_blade:GetBehavior ()
local behav = DOTA_ABILITY_BEHAVIOR_PASSIVE
return behav
end
function item_high_frequency_blade:GetIntrinsicModifierName ()
return "modifier_item_high_frequency_blade"
end
if modifier_item_high_frequency_blade == nil then
modifier_item_high_frequency_blade = class ( {})
end
function modifier_item_high_frequency_blade:IsHidden()
return true
end
function modifier_item_high_frequency_blade:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_MANA_REGEN_PERCENTAGE,
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
MODIFIER_PROPERTY_STATS_AGILITY_BONUS,
MODIFIER_PROPERTY_STATS_INTELLECT_BONUS,
MODIFIER_PROPERTY_STATS_STRENGTH_BONUS,
MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE,
MODIFIER_EVENT_ON_ATTACK_START
}
return funcs
end
function modifier_item_high_frequency_blade:GetModifierBaseAttack_BonusDamage (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_damage")
end
function modifier_item_high_frequency_blade:GetModifierBonusStats_Strength (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_all_stats")
end
function modifier_item_high_frequency_blade:GetModifierBonusStats_Intellect (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_all_stats")
end
function modifier_item_high_frequency_blade:GetModifierBonusStats_Agility (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_all_stats")
end
function modifier_item_high_frequency_blade:GetModifierAttackSpeedBonus_Constant (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_attack_speed")
end
function modifier_item_high_frequency_blade:GetModifierPercentageManaRegen(params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("bonus_mana_regen")
end
function modifier_item_high_frequency_blade:OnAttackStart ( params )
if IsServer() then
if params.attacker == self:GetParent() then
local hAbility = self:GetAbility ()
local chance = hAbility:GetSpecialValueFor ("crit_chance")
local random = math.random (100)
if hAbility:IsCooldownReady() then
self:GetParent ():AddNewModifier (self:GetCaster (), self:GetAbility (), "modifier_item_high_frequency_blade_echoe", nil)
hAbility:StartCooldown(hAbility:GetCooldown(hAbility:GetLevel()))
return 0
elseif random <= chance then
self:GetParent ():AddNewModifier (self:GetCaster (), self:GetAbility (), "modifier_item_high_frequency_blade_crit", nil)
end
end
end
return 0
end
if modifier_item_high_frequency_blade_echoe == nil then
modifier_item_high_frequency_blade_echoe = class ( {})
end
function modifier_item_high_frequency_blade_echoe:IsHidden ()
return true
end
function modifier_item_high_frequency_blade_echoe:RemoveOnDeath ()
return true
end
function modifier_item_high_frequency_blade_echoe:DeclareFunctions ()
local funcs = {
MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE,
MODIFIER_PROPERTY_ATTACK_POINT_CONSTANT,
MODIFIER_EVENT_ON_ATTACK_LANDED
}
return funcs
end
function modifier_item_high_frequency_blade_echoe:GetModifierPreAttack_CriticalStrike (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("crit_damage")
end
function modifier_item_high_frequency_blade_echoe:GetModifierAttackPointConstant (params)
return 0.1
end
function modifier_item_high_frequency_blade_echoe:OnAttackLanded (params)
if IsServer () then
if params.attacker == self:GetParent() then
if self:GetParent ():HasModifier ("modifier_item_high_frequency_blade_echoe") then
self:Destroy()
end
end
end
return 0
end
if modifier_item_high_frequency_blade_crit == nil then
modifier_item_high_frequency_blade_crit = class({})
end
function modifier_item_high_frequency_blade_crit:IsHidden ()
return true
end
function modifier_item_high_frequency_blade_crit:RemoveOnDeath ()
return true
end
function modifier_item_high_frequency_blade_crit:DeclareFunctions ()
local funcs = {
MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE,
MODIFIER_EVENT_ON_ATTACK_LANDED
}
return funcs
end
function modifier_item_high_frequency_blade_crit:GetModifierPreAttack_CriticalStrike (params)
local hAbility = self:GetAbility ()
return hAbility:GetSpecialValueFor ("crit_damage")
end
function modifier_item_high_frequency_blade_crit:OnAttackLanded (params)
if IsServer () then
if params.attacker == self:GetParent () then
if self:GetParent ():HasModifier ("modifier_item_high_frequency_blade_crit") then
self:Destroy ()
end
end
end
return 0
end
Последнее редактирование модератором: