📄 skilleffect1.lua
字号:
end
Sp_Red (role , sp_reduce )
end
function Skill_Yy_End ( ATKER , DEFER , sklv )
local statelv = sklv
local statetime = 20 + sklv * 10
AddState( ATKER , DEFER , STATE_YY, statelv , statetime )
end
function State_Yy_Add ( role , statelv )
--LG("state_Yy" , "function State_Yy_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local hitsb_dif = statelv * 3
local hitsb = HitSb(role) + hitsb_dif
SetCharaAttr ( hitsb , role , ATTR_STATEV_HIT )
ALLExAttrSet(role)
end
function State_Yy_Rem ( role , statelv )
--LG("state_Yy" , "function State_Yy_Rem : " , "role = " , role , "statelv = " , statelv, "\n" )
local hitsb_dif = statelv * 3
local hitsb = HitSb(role) - hitsb_dif
SetCharaAttr ( hitsb , role , ATTR_STATEV_HIT )
ALLExAttrSet(role)
end
--技能连击箭————————————————————————————————————————————————————————————————————————————
function SkillSp_Lzj ( sklv ) --技能"连珠箭"的sp消耗公式
local sp_reduce = 20
return sp_reduce
end
function SkillCooldown_Lzj( sklv )
local Cooldown = 5000
return Cooldown
end
function Skill_Lzj_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Lzj ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Lzj_End ( ATKER , DEFER , sklv )
if ValidCha(ATKER) == 0 then
LG ( "luascript_err" , "function Skill_Lzj_End : ATKER 为空" )
return
end
if ValidCha(DEFER) == 0 then
LG ( "luascript_err" , "function Skill_Lzj_End : DEFER 为空" )
return
end
hpdmg = ( 1.5+sklv * 0.15 ) * Atk_Dmg ( ATKER , DEFER )
Hp_Endure_Dmg ( DEFER , hpdmg )
--LG( "Lzj", "连珠箭技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
end
--技能彗星强击——————————————————————————————————————————————————————————————————————————
function SkillSp_Hxqj ( sklv ) --技能"彗星强击"的sp消耗公式
local sp_reduce = 20 + sklv * 2
return sp_reduce
end
function SkillCooldown_Hxqj( sklv )
local Cooldown = 10000
return Cooldown
end
function Skill_Hxqj_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Hxqj ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Hxqj_End ( ATKER , DEFER , sklv )
local back_dis = 300 + sklv * 30
atk = ( 1.5 + sklv * 0.1 ) * math.random ( Mnatk( ATKER ) , Mxatk ( ATKER ) )
defer_def = Def ( DEFER )
defer_resist = Resist ( DEFER )
dmg = Phy_Dmg ( atk, defer_def , defer_resist )
Hp_Endure_Dmg ( DEFER , dmg )
BeatBack ( ATKER , DEFER , back_dis )
--LG( "Hxqj", "彗星强击技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
end
--技能幻影斩——————————————————————————————————————————————————————————————————————————
function SkillSp_Hyz ( sklv ) --技能"幻影斩"的sp消耗公式
local sp_reduce = 20
return sp_reduce
end
function SkillCooldown_Hyz( sklv )
local Cooldown = 5000
return Cooldown
end
function Skill_Hyz_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Hyz ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Hyz_End ( ATKER , DEFER , sklv )
if ValidCha(ATKER) == 0 then
LG ( "luascript_err" , "function Skill_Hyz_End : ATKER 为空" )
return
end
if ValidCha(DEFER) == 0 then
LG ( "luascript_err" , "function Skill_Hyz_End : DEFER 为空" )
return
end
local aspd = Aspd ( ATKER )
local dmg = ( ( 1.5 + 0.1 * sklv ) ) * (math.min(3,( math.max ( 1, math.floor( aspd / 70 ) ) ))) * Atk_Dmg ( ATKER , DEFER )
local map_name_ATKER = GetChaMapName ( ATKER )
local map_name_DEFER = GetChaMapName ( DEFER )
local agi_atker = Agi(ATKER)
local Can_Pk_Garner2 = Is_NormalMonster (DEFER)
if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" then
if Can_Pk_Garner2 == 0 then
dmg = ( ( 1 + 0.1 * sklv ) ) * (math.min(3,( math.max ( 1, math.floor( aspd / 70 ) ) ))) * Atk_Dmg ( ATKER , DEFER )
-- Notice ( "dmg="..dmg)
end
end
Hp_Endure_Dmg ( DEFER , dmg )
Check_Ys_Rem ( ATKER , DEFER ) --判断是否隐身
end
--技能重击——————————————————————————————————————————————————————————————————————————
function SkillSp_Zj ( sklv ) --技能"重击"的sp消耗公式
local sp_reduce = 8 + sklv * 1
return sp_reduce
end
function SkillCooldown_Zj( sklv )
local Cooldown = 3000
return Cooldown
end
function Skill_Zj_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Zj ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Zj_End ( ATKER , DEFER , sklv )
atk_rad = 1.2 + sklv * 0.05
hpdmg = Atk_Raise ( atk_rad , ATKER , DEFER )
Hp_Endure_Dmg ( DEFER , hpdmg )
--LG( "Zj", "重击技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
Check_Ys_Rem ( ATKER ,DEFER ) --判断是否隐身
end
--技能奋起--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function SkillSp_Fnq ( sklv ) --技能"奋起"的sp消耗公式
local sp_reduce = 25
return sp_reduce
end
function SkillCooldown_Fnq( sklv )
local Cooldown = 25000
return Cooldown
end
function Skill_Fnq_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Fnq ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Fnq_End ( ATKER , DEFER , sklv )
local statelv = sklv
local statetime = 20
----boss使用技能处理
if GetChaTypeID( ATKER ) == 983 then
statetime = 120
statelv = 10
end
----boss使用技能处理结束
AddState( ATKER , DEFER , STATE_FNQ, statelv , statetime )
--LG( "Fnq", "奋起技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
end
function State_Fnq_Add ( role , statelv )
--LG("state_Fnq" , "function State_Fnq_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local aspd_dif = 10 + 1 * statelv
local aspdsb = ( AspdSb(role) + aspd_dif )
SetCharaAttr( aspdsb , role , ATTR_STATEV_ASPD )
ALLExAttrSet(role)
end
function State_Fnq_Rem ( role , statelv )
--LG("state_Fnq" , "function State_Fnq_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local aspd_dif = 10 + 1 * statelv
local aspdsb = ( AspdSb(role) - aspd_dif )
SetCharaAttr( aspdsb , role , ATTR_STATEV_ASPD )
ALLExAttrSet(role)
end
--技能狂暴——————————————————————————————————————————————————————————————————————————————————
function SkillSp_Kb ( sklv ) --技能"狂暴"的sp消耗公式
local sp_reduce = 15
return sp_reduce
end
function SkillCooldown_Kb( sklv )
local Cooldown = 35000
return Cooldown
end
function Skill_Kb_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Kb ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Kb_End ( ATKER , DEFER , sklv )
local statelv = sklv
local statetime = 20
AddState( ATKER , DEFER , STATE_KB, statelv , statetime )
--LG( "Kb", "狂暴技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
end
function State_Kb_Add ( role , statelv )
--LG("state_kb" , "function State_Kb_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local aspdsa_dif = 0.2 + statelv * 0.015
local aspdsa = ( AspdSa(role) + aspdsa_dif) * ATTR_RADIX
SetCharaAttr( aspdsa , role , ATTR_STATEC_ASPD )
ALLExAttrSet(role)
end
function State_Kb_Rem ( role , statelv )
--LG("state_kb" , "function State_Kb_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local aspdsa_dif = 0.2 + statelv * 0.015
local aspdsa = ( AspdSa(role) - aspdsa_dif) * ATTR_RADIX
SetCharaAttr( aspdsa , role , ATTR_STATEC_ASPD )
ALLExAttrSet(role)
end
--技能兽王击——————————————————————————————————————————————————————————————————————————
function SkillSp_Swzq ( sklv ) --技能"兽王之拳"的sp消耗公式
local sp_reduce = 50+sklv*3
return sp_reduce
end
function SkillCooldown_Swzq( sklv )
local Cooldown = 60000
return Cooldown
end
function Skill_Swzq_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Swzq ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Swzq_End ( ATKER , DEFER , sklv )
if ValidCha(ATKER) == 0 then
LG ( "luascript_err" , "function Skill_Swzq_End : ATKER 为空" )
return
end
if ValidCha(DEFER) == 0 then
LG ( "luascript_err" , "function Skill_Swzq_End : DEFER 为空" )
return
end
dmg = ( 3 + sklv * 0.5 ) * Atk_Dmg ( ATKER ,DEFER )
local Check_Heilong = CheckItem_Heilong ( ATKER )
if Check_Heilong == 1 then
local Percentage = Percentage_Random ( 0.3 )
if Percentage == 1 then
dmg = dmg*3
SystemNotice ( ATKER , "得到黑龙套装能力,伤害提高")
end
end
if IsPlayer ( DEFER ) == 1 and IsPlayer ( ATKER ) == 1 then
local Lv_Check = ReCheck_PK_Lv ( ATKER ,DEFER )
local Ran = math.min ( 90 , math.max ( 1 ,( 30 + Lv_Check * 2 )))
local map_name_ATKER = GetChaMapName ( ATKER )
local map_name_DEFER = GetChaMapName ( DEFER )
local Can_Pk_Garner2 = Is_NormalMonster (DEFER)
local SwordLv = GetSkillLv (ATKER,67)
if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" then
Ran = Ran*(1+SwordLv*0.1)
-- Notice("Ran="..Ran)
end
local Check_Heilong = CheckItem_Heilong ( ATKER )
if Check_Heilong == 1 then
local Percentage = Percentage_Random ( 0.5 )
if Percentage == 1 then
Ran = Ran*1.5
SystemNotice ( ATKER , "得到黑龙套装能力,命中提高")
end
end
local Dmg_Max = math.floor( dmg * (2/3) )
local Dmg_Min = math.floor( dmg / 8 )
dmg = ReCheck_Skill_Dmg ( Dmg_Max , Dmg_Min , Ran )
if dmg == Dmg_Min then
SystemNotice ( ATKER , "兽王击未能完全命中" )
end
end
Hp_Endure_Dmg ( DEFER , dmg )
--LG( "Swzq", "兽王之拳技能等级 = " , sklv , "技能伤害 = " , dmg , '\n" )
local statelv = sklv
local statetime = 1
local Check_Heilong = CheckItem_Heilong ( ATKER )
if Check_Heilong == 1 then
local Percentage = Percentage_Random ( 0.5 )
if Percentage == 1 then
statetime = statetime*3
SystemNotice ( ATKER , "得到黑龙套装能力,眩晕时间加长")
end
end
local hp_defer = Hp ( DEFER )
AddState ( ATKER , DEFER , STATE_XY , statelv , statetime )
end
function State_Xy_Add ( role , statelv )
end
function State_Xy_Rem ( role , statelv )
end
--技能复活——————————————————————————————————————————————————————————————————————
function SkillSp_Fh ( sklv ) --技能"复活"的sp消耗公式
local sp_reduce = 50
return sp_reduce
end
function SkillCooldown_Fh( sklv )
local Cooldown = 60000 - sklv * 1500
return Cooldown
end
function Skill_Fh_Begin ( role , sklv )
local map_name_ATKER = GetChaMapName
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -