?? skilleffect.lua
字號(hào):
SystemNotice ( ATKER , "Recieved blessing from Goddess. Knock out target for 1 sec")
end
end
Check_Ys_Rem ( ATKER , DEFER ) --判斷是否隱身
end
function Mis_or_Crt(a,b) --[[傳入miss和crt率]]--
local m=Percentage_Random(a) --[[隨機(jī)是否miss]]--
local n=Percentage_Random(b) --[[隨機(jī)是否暴擊]]--
local rom,dmgsa=1,1
if m==1 then
rom=0 dmgsa=0
elseif n==1 then
rom=2 dmgsa=2
end --[[判定是否miss或暴擊]]--
return rom,dmgsa
end
function Phy_Dmg (atk, def, resist ) --[[物理攻擊計(jì)算]]--
--Notice("Phy_Dmg1")
local phy_atk = atk
local phy_def = def
local phy_resist = resist
-- LuaPrint ( " Physical Attack= "..phy_atk.." Physical Defense= "..phy_def.."Physical Resist= "..phy_resist )
-- LuaPrint (\n)
-- LG ( " Damage" , "Physical attack= ", phy_atk, "Physical Resist= " , phy_def, " Physical Resist= " , phy_resist, "\n" )
dmg = math.floor( phy_atk * (1 - math.min (0.85 , phy_resist/100 ) ) - phy_def )
return dmg
end
function Phy_Dmg_A (a,b,atk, def, resist ) --[[物理攻擊計(jì)算]]--
--Notice("Phy_Dmg1")
local phy_atk = atk
local phy_def = def
local phy_resist = resist
local map_name_ATKER = GetChaMapName ( a )
local map_name_DEFER = GetChaMapName ( b )
local Can_Pk_Garner2 = Is_NormalMonster (b)
if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" then
if Can_Pk_Garner2 == 0 then
dmg = math.floor( phy_atk - phy_def ) * (1 - math.min (0.85 , phy_resist/100 ) )
return dmg
end
end
-- LuaPrint ( " Physical Attack= "..phy_atk.." Physical Defense= "..phy_def.."Physical Resist= "..phy_resist )
-- LuaPrint (\n)
-- LG ( " Damage" , "Physical attack= ", phy_atk, "Physical Resist= " , phy_def, " Physical Resist= " , phy_resist, "\n" )
dmg = math.floor( phy_atk * (1 - math.min (0.85 , phy_resist/100 ) ) - phy_def )
return dmg
end
function Pow_Dmg (atk, def, resist ) --[[火藥攻擊計(jì)算]]--
local pow_atk = atk
local pow_def = def
local pow_resist = resist
-- LuaPrint ( " Gunpower Attack= "..pow_atk.." Physical Defense= "..phy_def.."Physical Resist= "..phy_resist )
-- LuaPrint (\n)
-- LG ( " Damage" , "Gunpower Attack= ", phy_atk, "Physical Resist= " , phy_def, " Physical Resist= " , phy_resist, "\n" )
-- local statelv_rdgj = GetChaStateLv( ATKER, STATE_RDGJ )
-- local pow_resist = pow_resist * ( 1 - statelv_rdgj * 0.05 )
dmg = math.floor( pow_atk * (1 - math.min(0.85 , pow_resist/100 ) ) - pow_def )
return dmg
end
--function MAGIC_Atk_Dmg(a,b) --[[計(jì)算普通攻擊的基本正常傷害]]--
---- Check_State ( a , b )
--LuaPrint("Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n")
--LG("Atk_Dmg","Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--", "\n" )
-- local atk_mnatk = Mnatk(a)
-- local atk_mxatk = Mxatk(a)
---- if atk_statecheck[STATE_SMYB] >= 1 then
---- atk_mnatk,atk_mxatk = Check_Smyb ( a )
---- end
-- local defer_def = Def(b)
-- local defer_resist = Resist(b)
-- local atker_lv = Lv( a )
-- local defer_lv = Lv( b )
-- local lv_dis = atker_lv - defer_lv
-- local lv_eff = 1
-- if math.abs (lv_dis) >= 1 then
-- lv_eff =math.min ( math.max ( 0.5 , 1 + 0.025 * lv_dis ) , 1.5 )
-- end
--
--
-- --LG("Atk_Dmg", "atk_mnatk = ", atk_mnatk, "atk_mxatk =", atk_mxatk, "defer_def = ", defer_def, "atker_lv = ", atker_lv, "\n" )
-- local atk = math.random( atk_mnatk , atk_mxatk )
-- local dmg = Phy_Dmg ( atk, defer_def , defer_resist ) --[[計(jì)算正常傷害值]]--
-- local mndmg = math.floor( Lv(a) * 0.25 + Mnatk(a) * 0 ) + 1 --[[計(jì)算最小傷害值]]--
-- dmg =math.max( lv_eff * dmg , mndmg )
-- --LG("Atk_Dmg", "Normal Damage= ", dmg, "Min Damage mndmg = ", mndmg, "\n" )
-- --LG("Atk_Dmg","End function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n" )
-- --LuaPrint("Out function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--")
-- return dmg
--end
function Atk_Dmg(a,b) --[[計(jì)算普通攻擊的基本正常傷害]]--
-- Check_State ( a , b )
--LuaPrint("Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n")
--LG("Atk_Dmg","Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--", "\n" )
local atk_mnatk = Mnatk(a)
local atk_mxatk = Mxatk(a)
-- if atk_statecheck[STATE_SMYB] >= 1 then
-- atk_mnatk,atk_mxatk = Check_Smyb ( a )
-- end
local defer_def = Def(b)
local defer_resist = Resist(b)
local atker_lv = Lv ( TurnToCha(a) )
local defer_lv = Lv ( TurnToCha(b) )
local lv_dis = atker_lv - defer_lv
local lv_eff = 1
if math.abs (lv_dis) >= 1 then
lv_eff =math.min ( math.max ( 0.8 , 1 + 0.025 * lv_dis ) , 1.2 )
end
--LG("Atk_Dmg", "atk_mnatk = ", atk_mnatk, "atk_mxatk =", atk_mxatk, "defer_def = ", defer_def, "atker_lv = ", atker_lv, "\n" )
local atk = math.random( atk_mnatk , atk_mxatk )
local dmg = Phy_Dmg ( atk, defer_def , defer_resist ) --[[計(jì)算正常傷害值]]--
local map_name_ATKER = GetChaMapName ( a )
local map_name_DEFER = GetChaMapName ( b )
local Can_Pk_Garner2 = Is_NormalMonster (b)
if map_name_ATKER == "garner2" or map_name_DEFER == "garner2" then
-- Notice("22")
if Can_Pk_Garner2 == 0 then
-- Notice("Can_Pk_Garner2")
dmg = Phy_Dmg_A ( a,b,atk, defer_def , defer_resist )
end
end
--local dmg = Phy_Dmg ( a,b,atk, defer_def , defer_resist )
local mndmg = math.floor( Lv( TurnToCha(a) ) * 0.25 + Mnatk(a) * 0 ) + 1 --[[計(jì)算最小傷害值]]--
dmg =math.max( lv_eff * dmg, mndmg )
--LG("Atk_Dmg", "Normal Damage= ", dmg, "Min Damage mndmg = ", mndmg, "\n" )
--LG("Atk_Dmg","End function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n" )
--LuaPrint("Out function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--")
return dmg
end
function Fire_Dmg(a,b) --[[計(jì)算火藥攻擊的基本正常傷害]]--
--LuaPrint("Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n")
--LG("Atk_Dmg","Enter function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--".."\n" )
local defer_def = Def(b)
local defer_resist = Resist(b)
local atker_lv = Lv ( TurnToCha(a) )
local defer_lv = Lv ( TurnToCha(b) )
local lv_dis = atker_lv - defer_lv
local lv_eff = 1
if math.abs (lv_dis) >= 5 then
lv_eff =math.min ( math.max ( 0.8 , 1 + 0.025 * lv_dis ) , 1.2 )
end
-- LG("Fire_Dmg", "atk_mnatk = ", atk_mnatk, "atk_mxatk =", atk_mxatk, "defer_def = ", defer_def, "atker_lv = ", atker_lv, "\n" )
local atk = math.random( Mnatk(a), Mxatk(a) )
local dmg = Pow_Dmg ( atk, defer_def , defer_resist ) --[[計(jì)算正常傷害值]]--
local mndmg = math.floor( Lv(TurnToCha(a) ) * 0.25 + Mnatk(a) * 0 ) + 1 --[[計(jì)算最小傷害值]]--
dmg = math.max( dmg, mndmg )
-- LG("Fire_Dmg", "Normal Damage= ", dmg, "Min Damage mndmg = ", mndmg, "\n" )
-- LG("Fire_Dmg","End function Fire_Dmg(a,b) --[[Calculate normal attack base damage]]--".."\n" )
--LuaPrint("Out function Atk_Dmg(a,b) --[[calculate normal attack base normal damage]]--")
return dmg
end
function Check_MisorCrt(a,b) --[[判定是否miss或crt]]--
--LuaPrint("Enter function Check_MisorCrt(a,b) --[[Determine if miss or crt]]--")
--LG("Mis or Crt" , "Enter function Check_MisorCrt(a,b) --[[Determine if miss or crt]]--", "\n")
local def_flee = Flee(b)
local atk_hit = Hit(a)
--LG("Mis or Crt" , "Dodge flee = ", atk_flee , "Hit Rate= ", atk_hit, "\n")
local def_lv = Lv( TurnToCha(b) )
local atk_lv = Lv( TurnToCha(a) )
local lv_dis = atk_lv - def_lv
local lv_eff = 0
if math.abs (lv_dis) >= 1 then
lv_eff =math.min ( math.max ( 0 , 0.03 * lv_dis ) , 0.15 )
end
local dif_hit_flee = Flee(b) - Hit(a)
local bsmiss = math.max( ((def_flee - atk_hit) + 10)/100 , 0)
local miss = math.min( 0.9, bsmiss ) --[[求miss率]]--
--LG("Mis or Crt", "Miss Rate= ", miss, "\n")
local crt = math.min ( lv_eff + Crt( a ) , 1 )
--LG ( "Mis or Crt" , "Base Crt Rate= " , Crt(a) )
--LG("Mis or Crt", "crt rate= ", crt, "\n")
local sus,dmgsa=Mis_or_Crt( miss, crt ) --[[傳入miss和crt率]]--
--LG("Mis or Crt", "Attack Status sus = ", sus, "attack status damage ratio dmgsa = ", dmgsa, "\n")
--LG("Mis or Crt" , "End function Check_MisorCrt(a,b) --[[determine if miss or crt]]--", "\n")
--LuaPrint("Out function Check_MisorCrt(a,b) --[[determine is miss or crt]]--")
return sus,dmgsa
end
function SkillArea_Circle_Paodan( sklv ) --[[技能"Cannonball normal attack"的角色影響區(qū)域]]--
local side = 400
SetSkillRange ( 4 , side )
end
function Skill_Paodan_Begin ( role , sklv )
end
function Skill_Paodan_End ( ATKER , DEFER , sklv ) --[[技能"Cannonball normal attack"的角色影響操作即傷害計(jì)算(包括miss和暴擊計(jì)算)]]--
skr_posx, skr_posy = GetSkillPos ( ATKER ) --[[取該技能的施放坐標(biāo)]]--
-- LG ("paodan"," skr_posx = ", skr_posx," skr_posy = ", skr_posy )
if ValidCha( DEFER ) == 0 then
LG ( "luascript_err" , "fucntion Skill_Paodan_End : Cannon attack, send target index as nil\n" )
return
end
role_posx, role_posy = GetChaPos( DEFER ) --[[取受影響角色的坐標(biāo)]]--
-- LG ( "paodan" , " role_posx = ", role_posx , " role_posy = ", role_posy )
local dmg = Fire_Dmg( ATKER , DEFER ) --[[計(jì)算普通攻擊的正常攻擊傷害]]--
-- SetSus(DEFER , sus) --設(shè)置暴擊和miss
local dis = Dis ( skr_posx, skr_posy, role_posx, role_posy ) --[[計(jì)算角色至技能施放點(diǎn)的距離]]--
-- hpdmg = math.floor ( dmg * dmgsa ) --[[取正常傷害和最小傷害中的最大值,及miss和暴擊傷害]]--
local dis_eff = dis/100 * 0.1
-- LG("Fire_Dmg"," dis_eff = " , dis_eff )
dmg = math.floor ( dmg * (1 - math.min ( dis_eff, 1 ) ) )
-- LG("Fire_Dmg"," real_hpdmg = " , dmg )
Hp_Endure_Dmg ( DEFER, dmg ) --[[設(shè)置受擊者扣血]]--
end
--function SkillArea_Circle_Huoqiang ( sklv )
-- local side = 0
--end
function Skill_Huoqiang_Begin ( role , sklv )
end
function Skill_Huoqiang_End ( ATKER , DEFER , sklv ) --[[技能"Barehand normal attack"的傷害計(jì)算(包括miss和暴擊計(jì)算)]]--
local js_dmg = 1
dmg = Fire_Dmg( ATKER, DEFER ) * js_dmg --[[計(jì)算普通攻擊的正常攻擊傷害]]--
sus,dmgsa = Check_MisorCrt( ATKER, DEFER ) --[[是否miss或crt]]--
SetSus(DEFER , sus) --設(shè)置暴擊和miss
hpdmg = math.floor( dmg*dmgsa ) --[[取正常傷害和最小傷害中的最大值,及miss和暴擊傷害]]--
Hp_Endure_Dmg( DEFER , hpdmg ) --[[設(shè)置受擊者扣血]]--
end
--技能虎嘯——————————————————————————————————————————————————————————————————————————————
function SkillArea_Circle_Hx ( sklv ) --技能“虎嘯"的技能區(qū)域公式
local side = 200
SetSkillRange ( 4 , side )
end
function SkillCooldown_Hx( sklv )
local Cooldown = 20000
return Cooldown
end
function SkillSp_Hx ( sklv ) --技能"Tiger Roar"的sp消耗公式
local sp_reduce = 20
return sp_reduce
end
function Skill_Hx_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Hx ( sklv )
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Hx_End ( ATKER , DEFER , sklv )
local hp = Hp( DEFER )
local statelv = sklv
local statetime = 15
AddState( ATKER , DEFER , STATE_HX, statelv , statetime )
end
function State_Hx_Add ( role , statelv )
--LG("state_hx" , "function State_Hx_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local mxatksb_dif = 3 * statelv
local mnatksb_dif = 3 * statelv
local mspdsa_dif = 0.015 * statelv
local mxatksb = ( MxatkSb(role) - mxatksb_dif )
local mnatksb = ( MnatkSb(role) - mxatksb_dif )
local mspdsa = (MspdSa(role) - mspdsa_dif ) * ATTR_RADIX
SetCharaAttr( mxatksb , role , ATTR_STATEV_MXATK )
SetCharaAttr( mnatksb , role , ATTR_STATEV_MNATK )
SetCharaAttr( mspdsa , role , ATTR_STATEC_MSPD )
ALLExAttrSet(role)
end
function State_Hx_Rem ( role , statelv )
--LG("state_hx" , "function State_Hx_Rem : " , "role = " , role , "statelv = " , statelv, "\n" )
local mxatksb_dif = 3 * statelv
local mnatksb_dif = 3 * statelv
local mspdsa_dif = 0.015 * statelv
local mxatksb = ( MxatkSb(role) + mxatksb_dif )
local mnatksb = ( MnatkSb(role) + mxatksb_dif )
local mspdsa = (MspdSa(role) + mspdsa_dif ) * ATTR_RADIX
SetCharaAttr( mxatksb , role , ATTR_STATEV_MXATK )
SetCharaAttr( mnatksb , role , ATTR_STATEV_MNATK )
SetCharaAttr( mspdsa , role , ATTR_STATEC_MSPD )
ALLExAttrSet(role)
end
--技能天使祈愿——————————————————————————————————————————————————————————————————————————————
function SkillSp_Tsqy ( sklv )
local sp_reduce = sklv * 1
return sp_reduce
end
function SkillCooldown_Tsqy( sklv )
local Cooldown = 2000
return Cooldown
end
function Skill_Tsqy_Begin ( role , sklv )
local sp = Sp(role)
local sp_reduce = SkillSp_Tsqy(sklv)
if sp - sp_reduce < 0 then
SkillUnable(role)
return
end
Sp_Red (role , sp_reduce )
end
function Skill_Tsqy_End ( ATKER , DEFER , sklv )
local statelv = sklv
local statetime = 5 + sklv * 2
--LG( "Tsqy", "Angel Blessing Skill Level=" , sklv , "\n" )
AddState( ATKER , DEFER , STATE_TSQY, statelv , statetime )
--LG("skill_Tsqy", "function Skill_Oper_Tsqy: " , "add state tsqy " , "\n" )
end
function State_Tsqy_Add ( role , statelv )
--LG("state_tsqy" , "function State_Tsqy_Add : " , "role = " , role , "statelv = " , statelv, "\n" )
local hrecsa_dif =0.03 * statelv
local hrecsa = (HrecSa(role) + hrecsa_dif ) * ATTR_RADIX
--LG("skill_tsqy" , " form_hrecsa = " , HrecSa(role) , "\n" )
--LG("skill_tsqy", "hrecsa = ", hrecsa, "\n")
--LG("skill_hrecsa" , " form_hrecsa = " , HrecSa(role) , "\n" )
--LG("skill_hrecsa", "hrecsa = ", hrecsa, "\n")
SetCharaAttr( hrecsa , role , ATTR_STATEC_HREC )
ALLExAttrSet(role)
end
function State_Tsqy_Rem ( role , statelv )
--LG("state_tqsy" , "function State_Tsqy_Rem : " , "role = " , role , "statelv = " , statelv, "\n" )
local hrecsa_dif = 0.03 * statelv
local hrecsa = (HrecSa(role) - hrecsa_dif ) * ATTR_RADIX
if hrecsa < 0 then
--LG("Luaerror", "function State_Oper_Tsqy : incorrect data result--", " Hrecsa = ", HrecSa(role) , " statelv = " , statelv , " hrecsa = ", hrecsa , "\n" )
return
end
--LG("skill_tsqy" , " form_hrecsa = " , HrecSa(role) , "\n" )
--LG("skill_tsqy", "hrecsa = ", hrecsa, "\n")
--LG("skill_hrecsa" , " form_hrecsa = " , HrecSa(role) , "\n" )
--LG("skill_hrecsa", "hrecsa = ", hrecsa, "\n")
SetCharaAttr( hrecsa , role , ATTR_STATEC_HREC )
ALLExAttrSet(role)
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -