Jump to content

Nesag

Members
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

1 Neutral

About Nesag

  • Rank
    Cabin Boy
  1. Разобрался, тем можно закрыть) P.s. тут все написано
  2. Доброго времени суток, уважаемые форумчане! Собственно сабж, имеется скилл "Луч Ксерея", вот его функция из skilleffect.lua Код старался максимально закоментить function SkillArea_Line_Ks_Ray ( sklv ) --"Kcerays ray" local lenth = 500 + sklv * 30 --length (more) local width = 100 + sklv * 10 --width (a bit more) SetSkillRange ( 1 , lenth , width ) end function SkillCooldown_Ks_Ray( sklv ) local Cooldown = 45000 --cd 45sec return Cooldown end function SkillSp_Ks_Ray ( sklv ) local sp_reduce = 150+ sklv * 15 --10lvl req 300sp return sp_reduce end function SkillEnergy_Ks_Ray ( sklv ) local energy_reduce = math.floor ( 30 + sklv * 3 ) --corall eng req, rand*(60) at 10lvl return energy_reduce end function Skill_Ks_Ray_Begin ( role , sklv ) local sp = Sp(role) local sp_reduce = SkillSp_Ks_Ray ( sklv ) if sp - sp_reduce < 0 then SkillUnable(role) return end Sp_Red (role , sp_reduce ) end function Skill_Ks_Ray_End ( ATKER , DEFER , sklv ) local sta_atk= Sta ( ATKER ) local sta_def = Sta ( DEFER ) local AddStateLv = 0 AddStateLv = GetChaStateLv ( ATKER , STATE_MLCH ) local dmg = math.floor( 200 + sklv*3 +sta_atk*2 ) --dmg --local map_name_DEFER = GetChaMapName ( DEFER ) возможно допилю интересные проверки, но лень --local agi_atker = Agi(ATKER) --local Can_Pk_Garner2 = Is_NormalMonster (DEFER) local statelv = sklv local statetime = 10 AddState ( ATKER , DEFER , STATE_ZD , statelv , statetime ) -- эффект ядовитого дротика, просто для примера local hpdmg = 100 + statelv * 5 -- переменная, в которой лежит наносимый урон AddState ( ATKER , DEFER , STATE_GJJZ , statelv , statetime ) -- тут добавляется эффект как у skill_ayzz, собственно росчерк тени local dmg_fin = hpdmg -- просто потому что я захотел много переменных и это дебаг версия :))) Hp_Endure_Dmg ( DEFER , dmg_fin ) -- здесь, как я понимаю, вызывается функция Hp_Endure_Dmg AddState ( ATKER , DEFER , STATE_PJ , statelv , statetime ) --добавляется эффект как у скила бронелом end function State_Ks_Ray_Add ( role , statelv ) local defsa_dif = (-1) * ( 10 + 20 * statelv ) -- здесь величина отнимаемого дефа local defsa = math.floor ( (DefSa(role) + defsa_dif ) * ATTR_RADIX ) -- собственно переменная с будущим дефом SetCharaAttr( defsa , role , ATTR_STATEC_DEF ) ALLExAttrSet(role) Check_Ys_Rem ( ATKER , DEFER ) local hpdmg = 100 + statelv * 5 -- по аналогии делал с печатями ALLExAttrSet(role) RefreshCha(role) end function State_Ks_Ray_Rem ( role , statelv ) -- возврат исходных значений дефа local defsa_dif = (-1) * ( 10 + 20 * statelv ) local defsa = math.floor ( (DefSa(role) - defsa_dif ) * ATTR_RADIX ) SetCharaAttr( defsa , role , ATTR_STATEC_DEF ) ALLExAttrSet(role) end Он должен наносить урон активный, отнимать деф, наносить урон пассивный. Вопрос вот в чем - деф отнимает, но точно так же как и навык бронелом. Мои предположения - это как-то связано с AddState, но я к сожалению не знаю как. То же самое и с уроном, наносится урон как у дротика. Визуально все эффекты добавляются. Про AddState - STATE_PJ, STATE_GJJZ - это, как я понимаю, из массива variable.lua и просто добавляют визуальный эффект. Очень хотелось бы, чтобы кто-нибудь помог разобраться как адекватно добавлять нужные эффекты к скилам, а не методом научного тыка
×
×
  • Create New...