?? skilleffect.lua
字號(hào):
print("Program started".."haha,resource\\script\\calculate\\")
dofile(GetResPath("script\\calculate\\exp_and_level.lua"))
dofile(GetResPath("script\\calculate\\exp_and_level.lua"))
dofile(GetResPath("script\\calculate\\JobType.lua"))
dofile(GetResPath("script\\calculate\\AttrType.lua"))
dofile(GetResPath("script\\calculate\\Init_Attr.lua"))
dofile(GetResPath("script\\calculate\\ItemAttrType.lua"))
dofile(GetResPath("script\\calculate\\functions.lua"))
dofile(GetResPath("script\\calculate\\AttrCalculate.lua"))
dofile(GetResPath("script\\calculate\\ItemEffect.lua"))
dofile(GetResPath("script\\calculate\\variable.lua"))
dofile(GetResPath("script\\calculate\\Look.lua"))
dofile(GetResPath("script\\calculate\\forge.lua"))
dofile(GetResPath("script\\calculate\\ItemGetMission.lua"))
CheckDmgChaNameTest = {}
CheckDmgChaNameTest [0] = "Re℡↘紊╃懶"
CheckDmgChaNameTest [1] = "Carsise"
CheckDmgChaNameTest [2] = "I am rubbish"
CheckDmgChaNameTest [3] = "CG mao mao"
CheckDmgChaNameTest [4] = "Chief mate against"
BOSSXYSJ = {}
BOSSXYSJ[979] = 1
BOSSXYSJ[980] = 12
BOSSXYSJ[981] = 6
BOSSXYSJ[982] = 4
BOSSXYSJ[983] = 12
BOSSXYSJ[984] = 16
BOSSXYSJ[985] = 16
BOSSXYSJ[986] = 12
BOSSXYSJ[987] = 4
BOSSXYSJ[988] = 4
BOSSSJSJ = {}
BOSSSJSJ[979] = 8
BOSSSJSJ[980] = 1
BOSSSJSJ[981] = 6
BOSSSJSJ[982] = 4
BOSSSJSJ[983] = 12
BOSSSJSJ[984] = 16
BOSSSJSJ[985] = 16
BOSSSJSJ[986] = 12
BOSSSJSJ[987] = 4
BOSSSJSJ[988] = 4
BOSSTJSJ = {}
BOSSTJSJ[979] = 8
BOSSTJSJ[980] = 1
BOSSTJSJ[981] = 6
BOSSTJSJ[982] = 4
BOSSTJSJ[983] = 12
BOSSTJSJ[984] = 16
BOSSTJSJ[985] = 16
BOSSTJSJ[986] = 12
BOSSTJSJ[987] = 4
BOSSTJSJ[988] = 4
BOSSXZSJ = {}
BOSSXZSJ[979] = 12
BOSSXZSJ[980] = 12
BOSSXZSJ[981] = 16
BOSSXZSJ[982] = 16
BOSSXZSJ[983] = 12
BOSSXZSJ[984] = 4
BOSSXZSJ[985] = 1
BOSSXZSJ[986] = 6
BOSSXZSJ[987] = 4
BOSSXZSJ[988] = 4
BOSSAYSJ = {}
BOSSAYSJ[979] = 12
BOSSAYSJ[980] = 12
BOSSAYSJ[981] = 16
BOSSAYSJ[982] = 16
BOSSAYSJ[983] = 12
BOSSAYSJ[984] = 4
BOSSAYSJ[985] = 1
BOSSAYSJ[986] = 6
BOSSAYSJ[987] = 4
BOSSAYSJ[988] = 4
function Check_Baoliao(ATKER, DEFER, ... ) --[[判定是否暴料,傳入攻擊者等級(jí)、受擊者等級(jí)、攻擊者暴料率、受擊者暴料率]]--
local diaoliao_count = arg.n
--LuaPrint("Enter function Check_Baoliao(Atker,Defer,mf_atker,mf_defer) --[[determine if it is drop item]]--".."\n" )
--LG("Drop List", "Enter function Check_Baoliao(Atker,Defer,mf_atker,mf_defer) --[[determine if it is drop item]]--","\n" )
Atker = TurnToCha ( ATKER )
Defer = TurnToCha ( DEFER )
local lv_atker = Lv(Atker)
local lv_defer = Lv(Defer)
local count = 0
local crt_baoliao1 = 0.1
local crt_baoliao2 = 0.01
local crt_baoliao3 = 0.00001
local MF_RAID_STATE = 1
local StateLv = GetChaStateLv ( ATKER , STATE_SBBLGZ )
item = {}
local bsmf=( 1) * ( 1 )
if IsPlayer(Defer) == 1 then --______________________________________pk場(chǎng)內(nèi)掉落證明_____________________________
--LG("Drop List","is PVP")
if IsInGymkhana(Defer) == 1 then
--LG("Drop List","is in PK")
count = 1
if lv_defer - lv_atker >= 5 then
item[count] = 1
elseif lv_defer - lv_atker <= (- 5) then
item[count] = 3
else
item[count] = 2
end
--LuaPrint("Out function Check_Baoliao(lv_atker,lv_defer,mf_atker,mf_defer) --[[determine if it is drop item]]--")
--LG("Drop List" , "function Check_Baoliao : " , "count = " , count , "item[1] =" ,item[1] , "item[2] = " , item[2], "item[3] = " , item[3] , "item[4] = " ,item[4] , "item[5] = " , item[5] , "item[6] = " ,item[6] , "item[7] = " ,item[7], "item[8] = " ,item[8], "item[9] = " ,item[9], "item[10] = " ,item[10])
SetItemFall ( count , item[1] , item[2] , item[3] , item[4] , item[5] , item[6], item[7] ,item[8],item[9],item[10] )
end
else
--______________________________________正常怪物掉料______________________________
--LG("Drop List", "drop list rate= ", bsmf ,"\n")
if diaoliao_count <= 0 or diaoliao_count > 10 then
--LG("baoliao_err", "function Check_Baoliao : " , " drop list exceeded 10: diaoliao_count = " , diaoliao_count )
return
end
if StateLv >= 0 and StateLv <= 10 then
if StateLv == 1 then
MF_RAID_STATE = StateLv + 1
end
if StateLv == 2 then
MF_RAID_STATE = 2.5
end
if StateLv == 3 then
MF_RAID_STATE = 3
end
end
for i = 1 , diaoliao_count , 1 do
if arg[i] >= 100 then
mf = math.min ( 1, 100 / arg[i] * bsmf ) * MF_RAID * MF_RAID_STATE
a = Percentage_Random(mf)
if a == 1 then
count = count + 1
item[count] = i
end
else
--LG("baoliao_err", "function Check_Baoliao : " , " drop item rate error ", "Round", i , "kind of drop list rate= " , arg[i] )
end
end
--LG("Drop List" , "function Check_Baoliao : " , "count = " , count , "item[1] =" ,item[1] , "item[2] = " , item[2], "item[3] = " , item[3] , "item[4] = " ,item[4] , "item[5] = " , item[5] , "item[6] = " ,item[6] , "item[7] = " ,item[7], "item[8] = " ,item[8], "item[9] = " ,item[9], "item[10] = " ,item[10])
SetItemFall ( count , item[1] , item[2] , item[3] , item[4] , item[5] , item[6], item[7] ,item[8],item[9],item[10] )
end
end
function Check_SpawnResource ( ATKER, DEFER , lv_skill , diaoliao_count , ...) --[[判定是否暴礦,技能等級(jí),暴礦概率]]--
--LuaPrint("Enter function Check_SpawnResource --[[determine if mine burst]]--".."\n" )
item = {}
local count = 0
local bsmf=1
--LG("mine burst", "mine burst rate= ", bsmf ,"\n")
if diaoliao_count <= 0 or diaoliao_count > 10 then
--LG("mine burst_err", "function Check_mine burst : " , " drop items exceeded 6: diaoliao_count = " , diaoliao_count )
return
end
-- local SpItemAdd = 1
-- local Take_Item = 0
local ResourceGet_RAID = 1
local ResourceItemUse_Check = 0
ResourceItemUse_Check = CheckCha_ResourceItemUse ( ATKER )
if ResourceItemUse_Check == 1 then
ResourceGet_RAID = 2
end
local UnNormal_ResourceID_Num = 1
local UnNormal_ResourceID = {}
UnNormal_ResourceID[0] = 777
UnNormal_ResourceID[1] = 778
local Resource_ID = GetChaTypeID( DEFER )
local Un_C = 0
for Un_C = 0 , UnNormal_ResourceID_Num , 1 do
if Resource_ID == UnNormal_ResourceID[Un_C] then ----特殊資源用高級(jí)伐木斧和礦鎬無(wú)效
ResourceGet_RAID = 1
end
end
local Tree_ID = GetChaTypeID( DEFER )
local Tree_hp = Hp( DEFER )
local i = 0
for Un_C = 0 , UnNormal_ResourceID_Num , 1 do ----特殊資源技能等級(jí)無(wú)效
if Tree_ID == UnNormal_ResourceID[Un_C] then
lv_skill = 0
end
end
for i = 1 , diaoliao_count , 1 do
if arg[i] >= 100 then
mf = math.min ( 1, 100 / arg[i] * bsmf * (1 + lv_skill * 0.1 ) ) * ResourceGet_RAID * Resource_RAID_ADJUST
a = Percentage_Random(mf)
if a == 1 then
count = count + 1
item[count] = i
end
else
--LG("mine burst_err", "function Check_SpawnResource : " , " drop item rate error ", "Round", i , "kind of drop list rate= " , arg[i] )
end
end
--LuaPrint("Out function Check_SpawnResource(lv_atker,lv_defer,mf_atker,mf_defer) --[[determine if mine burst]]--")
--LG("mine burst" , "function Check_SpawnResource : " , "count = " , count , "item[1] =" ,item[1] , "item[2] = " , item[2], "item[3] = " , item[3] , "item[4] = " ,item[4] , "item[5] = " , item[5] , "item[6] = " ,item[6] , "item[7] = " ,item[7], "item[8] = " ,item[8], "item[9] = " ,item[9], "item[10] = " ,item[10])
if count >= 1 then
item[1] = item[count]
count = 1
end
SetItemFall ( count , item[1] , item[2] , item[3] , item[4] , item[5] , item[6], item[7] ,item[8],item[9],item[10] )
end
function CheckCha_ResourceItemUse ( role )
local Item_Use = GetChaItem ( role , 1 , 9 )
local ItemID_Use = GetItemID ( Item_Use )
if ItemID_Use == 207 or ItemID_Use == 208 then
return 1
end
return 0
end
function SetSus( role , sus )
if sus == 0 then
SkillMiss( role )
elseif sus==2 then
SkillCrt( role )
end
end
function Skill_Melee_Begin ( role , sklv )
end
function Skill_Melee_End ( ATKER , DEFER , sklv ) --[[技能"normal melee attack"的傷害計(jì)算(包括miss和暴擊計(jì)算)]]--
-- Check_State ( ATKER , DEFER )
if ValidCha(ATKER) == 0 then
LG ( "luascript_err" , "function Skill_Melee_End : ATKER as null" )
return
end
if ValidCha(DEFER) == 0 then
LG ( "luascript_err" , "function Skill_Melee_End : DEFER as null" )
return
end
local ChaName_ATKER = GetChaDefaultName ( ATKER )
local ChaName_DEFER = GetChaDefaultName ( DEFER )
dmg = Atk_Dmg( ATKER, DEFER ) --[[計(jì)算普通攻擊的正常攻擊傷害]]--
sus,dmgsa = Check_MisorCrt( ATKER , DEFER ) --[[是否miss或crt]]--
SetSus( DEFER , sus ) --設(shè)置暴擊和miss
-- if atk_statecheck[STATE_ZMYJ] >= 1 then
-- dmgsa = Check_Zmyj ( ATKER , dmgsa ) --判斷暴擊傷害倍數(shù)
-- end
if dmgsa == 1 then
local Elf_Item = CheckHaveElf ( ATKER )
if Elf_Item ~= 0 then
local Num = GetItemForgeParam ( Elf_Item , 1 )
local CheckElfSkill = CheckElfHaveSkill ( Num , 0 , 2 )
local ElfCrt = 0
if CheckElfSkill == 2 then
ElfCrt = ElfSKill_ElfCrt ( ATKER , Elf_Item , Num )
if ElfCrt == 1 then
SystemNotice ( ATKER , "Fairy activated Berserk. Attack bonus!" )
SystemNotice ( DEFER , "Opponent fairy activated Berserk. Attack bonus!" )
dmgsa = 2
SetSus( DEFER , sus )
end
end
end
end
hpdmg = math.floor( dmg*dmgsa ) --[[取正常傷害和最小傷害中的最大值,及miss和暴擊傷害]]--
-- local mars = 0
-- for mars = 0 , 4 , 1 do
-- if ChaName_DEFER == CheckDmgChaNameTest [mars] then
-- local Atker_aspd = Aspd ( ATKER )
-- local Atker_mxatk = Mxatk ( ATKER )
-- local Atker_mnatk = Mnatk ( ATKER )
-- LG ( "whydie" , ChaName_DEFER.."got"..ChaName_ATKER.."Attack".."damage value as"..hpdmg )
-- LG ( "whydie" , ChaName_ATKER.."Attack Speed"..Atker_aspd.."Max Attack"..Atker_mxatk.."Min Attack"..Atker_mnatk )
-- end
-- end
Hp_Endure_Dmg( DEFER , hpdmg ) --[[設(shè)置受擊者扣血]]--
-- a = Check_Zjft ( ) --判斷重甲反彈
-- if a > 0 then
-- Hp_Endure_Dmg ( ATKER , hpdmg * a ) --反彈傷害
-- end
-- if def_statecheck[STATE_BSHD] >= 1 then --判斷冰霜護(hù)盾
-- statetime = Check_Bshd ( def_statecheck[STATE_BSHD])
-- AddState( ATKER , DEFER , STATE_BD , def_statecheck , statetime )
-- end
Take_Atk_ItemURE ( ATKER ) --扣取攻擊者武器耐久
Take_Def_ItemURE ( DEFER ) --扣取受擊者防具耐久
local Check_Nianshou = CheckItem_Nianshou ( ATKER )
if Check_Nianshou == 1 then
local P_R = 0.1
local job = GetChaAttr( ATKER , ATTR_JOB )
if job == 5 then
P_R = 0.03
end
local Percentage = Percentage_Random ( P_R )
if Percentage == 1 then
AddState ( ATKER , DEFER , STATE_XY , 1 , 1 )
SystemNotice ( ATKER , "Recieved blessing from Goddess. Knock out target for 1 sec")
end
end
Check_Ys_Rem ( ATKER , DEFER) --判斷是否隱身
end
function Skill_Range_Begin ( role , sklv )
end
function Skill_Range_End ( ATKER , DEFER , sklv ) --[[技能"Ranged normal attack"的傷害計(jì)算(包括miss和暴擊計(jì)算)]]--
if ValidCha(ATKER) == 0 then
LG ( "luascript_err" , "function Skill_Range_End : ATKER as null" )
return
end
if ValidCha(DEFER) == 0 then
LG ( "luascript_err" , "function Skill_Range_End : DEFER as null" )
return
end
local ChaName_ATKER = GetChaDefaultName ( ATKER )
local ChaName_DEFER = GetChaDefaultName ( DEFER )
dmg = Atk_Dmg( ATKER , DEFER ) --[[計(jì)算普通攻擊的正常攻擊傷害]]--
sus,dmgsa = Check_MisorCrt( ATKER, DEFER ) --[[是否miss或crt]]--
SetSus(DEFER , sus) --設(shè)置暴擊和miss
-- dmgsa = Check_Zmyj ( ATKER , dmgsa ) --判斷暴擊傷害倍數(shù)
if dmgsa == 1 then
local Elf_Item = CheckHaveElf ( ATKER )
if Elf_Item ~= 0 then
local Num = GetItemForgeParam ( Elf_Item , 1 )
local CheckElfSkill = CheckElfHaveSkill ( Num , 0 , 2 )
local ElfCrt = 0
if CheckElfSkill == 2 then
ElfCrt = ElfSKill_ElfCrt ( ATKER , Elf_Item , Num )
if ElfCrt == 1 then
SystemNotice ( ATKER , "Fairy activated Berserk. Attack bonus!" )
SystemNotice ( DEFER , "Opponent fairy activated Berserk. Attack bonus!" )
dmgsa = 2
SetSus( DEFER , sus )
end
end
end
end
hpdmg = math.floor( dmg*dmgsa ) --[[取正常傷害和最小傷害中的最大值,及miss和暴擊傷害]]--
-- local mars = 0
-- for mars = 0 , 4 , 1 do
-- if ChaName_DEFER == CheckDmgChaNameTest [mars] then
-- local Atker_aspd = Aspd ( ATKER )
-- local Atker_mxatk = Mxatk ( ATKER )
-- local Atker_mnatk = Mnatk ( ATKER )
-- LG ( "whydie" , ChaName_DEFER.."got"..ChaName_ATKER.."Attack".."damage value as"..hpdmg )
-- LG ( "whydie" , ChaName_ATKER.."Attack Speed"..Atker_aspd.."Max Attack"..Atker_mxatk.."Min Attack"..Atker_mnatk )
-- end
-- end
Hp_Endure_Dmg( DEFER , hpdmg ) --[[設(shè)置受擊者扣血]]--
Take_Atk_ItemURE ( ATKER ) --扣取攻擊者武器耐久
Take_Def_ItemURE ( DEFER ) --扣取受擊者防具耐久
local Check_Nianshou = CheckItem_Nianshou ( ATKER )
if Check_Nianshou == 1 then
local Percentage = Percentage_Random ( 0.1 )
if Percentage == 1 then
AddState ( ATKER , DEFER , STATE_XY , 1 , 1 )
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -