제우스 체력공식이 궁금해서 제우스관련 코드를 다 긁어왔음
페이지 정보
작성자 ㅆㄷ 작성일 22-06-06 16:24 조회 4,269 댓글 0본문
local zeus_damage_max = 0
local alive_draenei = {}
for _,unit in pairs(GetValidChessOnBoard(team)) do
--德莱尼技能
if unit:HasAbility('is_draenei') and unit:HasModifier('modifier_is_draenei_buff') then
table.insert(alive_draenei,unit)
end
end
for _,u in pairs(GetValidChessOnBoard(team)) do
if IsUnitExist(u) == true and u.team_id ~= team then
u.alreadywon = true
delay_time = (hero:GetAbsOrigin() - u:GetAbsOrigin()):Length2D() / 1000
AddStat(hero:GetPlayerID(),'deaths')
if u:FindAbilityByName('zeus_thunder') == nil then
--普通敌人
-- if u:HasModifier('modifier_is_draenei_buff') then
if table.maxn(alive_draenei) > 0 or u:HasModifier('modifier_item_yuanxingxie') then
--德莱尼:看看能不能传送到客场/主场助战
if DraeneiAssist(u) == true then
--助战
else
--不助战,照常欢呼
AddAbilityAndSetLevel(u,'act_victory')
end
else
AddAbilityAndSetLevel(u,'act_victory')
end
projectile = ProjectileManager:CreateTrackingProjectile({
Target = hero,
Source = u,
Ability = nil,
EffectName = projectile_partical,
bDodgeable = false,
iMoveSpeed = 1000,
bProvidesVision = false,
iVisionRadius = 0,
iVisionTeamNumber = u:GetTeamNumber(),
iSourceAttachment = DOTA_PROJECTILE_ATTACHMENT_ATTACK_1
})
damage_all = damage_all + math.floor(GetHitDamage(u) or 1)
else
--宙斯,要雷劈的
AddAbilityAndSetLevel(u,'act_thunder')
local u_thunder_level = u:FindAbilityByName('zeus_thunder'):GetLevel()
local u_thunder_table = {
[1] = 15,
[2] = 25,
[3] = 45,
}
local zeus_damage = math.floor(hero:GetHealth()*(u_thunder_table[u_thunder_level])/100)
if zeus_damage > zeus_damage_max then
--宙斯雷劈伤害取最高的一个,不叠加
zeus_damage_max = zeus_damage
end
is_have_thunder = true
damage_all = damage_all + math.floor(GetHitDamage(u) or 1)
end
end
end
if is_have_thunder == true and zeus_damage_max > 0 then
damage_all = damage_all + zeus_damage_max
end
if hero:HasModifier('modifier_item_conceal_prepare') and RandomInt(1,100) <= 25 then
--帷幕,25%闪避
damage_all = 0
-- play_particle("effect/dead/3.vpcf",PATTACH_ABSORIGIN_FOLLOW,hero,8)
-- AddAbilityAndSetLevel(hero,'riki_permanent_invisibility',1)
end
if IsUnitExist(oppo_hero) and oppo_hero:HasModifier('modifier_item_more_reward') then
--对方获得收割者经验
ExpBook({
caster = oppo_hero,
xpadd = 4,
disable_quick_lvl_up = true,
cost = 0,
})
--在客场信使上显示特效
if oppo_hero.my_away_mirror_chesser ~= nil then
AMHC:CreateNumberEffect(oppo_hero.my_away_mirror_chesser,3,7,AMHC.MSG_MISS,{255,255,128},0)
end
end
if is_skip == true then
--如果跳过,主场德莱尼/飞鞋传走
local alive_draenei = {}
for _,unit in pairs(GetValidChessOnBoard(team)) do
--德莱尼技能
if unit:HasAbility('is_draenei') and unit:HasModifier('modifier_is_draenei_buff') then
table.insert(alive_draenei,unit)
end
end
for _,u in pairs(GetValidChessOnBoard(team)) do
if table.maxn(alive_draenei) > 0 or u:HasModifier('modifier_item_yuanxingxie') then
--德莱尼:看看能不能传送到客场/主场助战
DraeneiAssist(u)
end
end
end
Timers:CreateTimer(delay_time,function()
if damage_all == 0 and is_skip == nil then
--闪避了
play_particle("effect/dead/3.vpcf",PATTACH_ABSORIGIN_FOLLOW,hero,8)
end
--牧师护盾效果
if _G.big_damage ~= 1 then
damage_all = damage_all * _G.big_damage
end
if is_have_thunder ~= true and hero:FindModifierByName('modifier_item_fengwangjiang') ~= nil and damage_all >= 3 then
--消耗一个蜂王浆
local fengwangjiang = FindItemInInventory(hero,'item_fengwangjiang')
if fengwangjiang ~= nil then
damage_all = math.floor(damage_all*0.8 + 0.5)
if damage_all == 0 then
damage_all = 1
end
--第二次机会
if hero:HasModifier('modifier_item_second_chance') and RandomInt(1,100) < 35 then
PlayItemMultiCastParticle(hero)
else
-- fengwangjiang:SpendCharge()
ItemSpendCharge({
caster = hero,
ability = fengwangjiang,
})
end
end
end
--牧师护盾效果
if is_have_thunder ~= true and damage_all >= hero:GetHealth() and hero:FindModifierByName('modifier_item_pingguo') ~= nil then
--消耗一个苹果
local pingguo = FindItemInInventory(hero,'item_pingguo')
if pingguo ~= nil then
damage_all = hero:GetHealth() - 1
--第二次机会
if hero:HasModifier('modifier_item_second_chance') and RandomInt(1,100) < 35 then
PlayItemMultiCastParticle(hero)
else
-- pingguo:SpendCharge()
ItemSpendCharge({
caster = hero,
ability = pingguo,
})
end
if _G.egg_quest == 'q030' then
SetQuest(team,true)
end
--特效和音效
play_particle('effect/apple/2.vpcf',PATTACH_ABSORIGIN_FOLLOW,hero,6)
EmitSoundOn("DOTA_Item.MagicLamp.Cast", hero)
end
end
--牧师职业技能
if hero:FindModifierByName('modifier_is_priest_buff_courier') ~= nil and damage_all < hero:GetHealth() then
if damage_all > 17 then
AddItemPlus(hero,'item_pingguo')
elseif damage_all > 7 then
AddItemPlus(hero,'item_chishu',0.1)
elseif damage_all > 0 then
AddItemPlus(hero,'item_fengwangjiang',0.2)
end
play_particle("particles/items_fx/aegis_respawn_spotlight.vpcf",PATTACH_OVERHEAD_FOLLOW,hero,5)
end
if is_have_thunder == true then
--雷击特效和音效
EmitSoundOn('Hero_Zuus.GodsWrath.Target',hero)
PlayParticleOnUnitUntilDeath({
caster = hero,
p = "particles/econ/items/zeus/arcana_chariot/zeus_arcana_thundergods_wrath_start_bolt_parent.vpcf",
})
end
댓글목록 0
등록된 댓글이 없습니다.