friend_Kill_success = friend_Kill_success or {}--成功击杀表
ATK_change_tab = ATK_change_tab or {}--能力增减表
ATK_change2_tab = ATK_change2_tab or {}--BUFF回合记录表
ATK_change3_tab = ATK_change3_tab or {}--debuff回合记录表
ATK_change4_tab = ATK_change4_tab or {}--不可驱散的BUFF回合记录表
--可驱散的debuff和buff列表↓
gain_blood = gain_blood or {}--禁疗持续到X回合表[禁疗]
wulu_zhanli = wulu_zhanli or {}--乌噜的战栗表[恐惧]
aixiebate_qishi = aixiebate_qishi or {}--艾谢巴特的BUFF[气势]
--永久BUFF列表↓
zhongshi_zhanli = zhongshi_zhanli or {}--仲时的战栗记录
keruisite_zengshang = keruisite_zengshang or {}--克瑞斯特的增伤记录
lubi_mianshang = lubi_mianshang or {}--露比的免伤表
lubi_fantan = lubi_fantan or {}--露比反弹记录表
alubasi_duzengshang = alubasi_duzengshang or {}--阿鲁巴斯毒增伤
all_chuantou = all_chuantou or {}--全局穿透
keruisite_aim = keruisite_aim or {}
xing_lianji_cishu = xing_lianji_cishu or {}--辛连击次数
--特殊的BUFF
xinmei_dongjie = xinmei_dongjie or {}--心美的冻结表(不可行动)
krst_hataim = krst_hataim or {}--克瑞斯特仇恨记录表
--功能表
--battle_seat_tab = battle_seat_tab or {}--站位前后记录表
battle_seat_tab2 = battle_seat_tab2 or {}--记录战斗index
Global_Reg.RegInit("friend_atkchange1");--自动启动函数
Global_Reg.RegBattleOverEvent ("ATK_change_over");--战斗结束
Global_Reg.RegLogoutEvent("ATK_change_out");--登出
function friend_atkchange1()
NL.RegDamageCalculateEvent(nil,"friend_atkchange2");--创建一个所有玩家造成伤害就会触发的Lua函数
NL.RegTechOptionEvent (nil, "friend_atkchange3");--技能附加参数获取时触发的函数
NL.RegAssassin(nil, "friend_Assassin")--暗杀时会触发的函数
NL.RegRoundEvent(nil, "friend_round_start")--回合开始函数
NL.RegCritical(nil, "friend_atkchange4");--必杀修改函数
return 0
end
function ATK_change_out(CharIndex)--登出
if battle_seat_tab2[CharIndex] then
battle_seat_tab2[CharIndex]=nil
end
return 0
end
function friend_round_start(battleIndex)
local Round = Battle.GetData(battleIndex,%战斗_回合数%) + 1
--NLG.SystemMessage(-1,"真实回合:"..Round.."战斗:"..battleIndex);
if Round==1 then
else
if ATK_change_tab[battleIndex]==nil then
ATK_change_tab[battleIndex]={}
end
if ATK_change2_tab[battleIndex]==nil then
ATK_change2_tab[battleIndex]={}
end
if ATK_change3_tab[battleIndex]==nil then
ATK_change3_tab[battleIndex]={}
end
if ATK_change4_tab[battleIndex]==nil then
ATK_change4_tab[battleIndex]={}
end
for i=0,1 do
for Num=0,9 do
local CharIndex = Battle.GetPlayIndex(battleIndex,i,Num)
if CharIndex >= 0 then--表内有18个增减益可修改
if battle_seat_tab2[CharIndex]==nil then
battle_seat_tab2[CharIndex]=battleIndex
end
if ATK_change_tab[battleIndex][CharIndex]==nil then
ATK_change_tab[battleIndex][CharIndex] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
end
if ATK_change2_tab[battleIndex][CharIndex]==nil then
ATK_change2_tab[battleIndex][CharIndex]= {}
end
if ATK_change3_tab[battleIndex][CharIndex]==nil then
ATK_change3_tab[battleIndex][CharIndex] = {}
end
if ATK_change4_tab[battleIndex][CharIndex]==nil then
ATK_change4_tab[battleIndex][CharIndex] = {}
end
if gain_blood[battleIndex][CharIndex]==nil then
gain_blood[battleIndex][CharIndex] = Round--初始设定持续从当前回合开始
end
if wulu_zhanli[battleIndex][CharIndex]==nil then
wulu_zhanli[battleIndex][CharIndex] = Round
end
if all_chuantou[battleIndex][CharIndex]==nil then
all_chuantou[battleIndex][CharIndex] = 0--初始穿透为0次
end
if friend_Kill_success[battleIndex][CharIndex]==nil then
friend_Kill_success[battleIndex][CharIndex] = 0--0为未成功击杀,1为成功击杀的数量(击杀2个就是2)
end
end
end
end
for k,v in pairs(ATK_change2_tab[battleIndex]) do--k是charindex
local long = tablength(v)--v的例子:{{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数}}
if long>0 then
for i = long, 1, -1 do--i是v的{增减数值,增减常量,持续回合数}表的序号
if v[i][3]>0 then
v[i][3] = v[i][3] - 1
end
if v[i][3] ==0 then
local name = Char.GetData(k,2000)
if name~=-1 then
local ifpet = Char.GetData(k,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(k,2001)
end
end
local shuzhi = v[i][1]
local cl = v[i][2]
local dangqian = Char.GetData(k,cl)
Char.SetData(k,cl,dangqian-shuzhi)
NLG.UpChar(k)
local info = "增益"
if shuzhi<0 then
info = "减益"
end
if cl==612344 then
ATK_change_tab[battleIndex][k][1]=ATK_change_tab[battleIndex][k][1]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大血量]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612345 then
ATK_change_tab[battleIndex][k][2]=ATK_change_tab[battleIndex][k][2]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大魔法值]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612346 then
ATK_change_tab[battleIndex][k][3]=ATK_change_tab[battleIndex][k][3]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."攻击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612348 then
ATK_change_tab[battleIndex][k][4]=ATK_change_tab[battleIndex][k][4]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."防御]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612350 then
ATK_change_tab[battleIndex][k][5]=ATK_change_tab[battleIndex][k][5]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."敏捷]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612347 then
ATK_change_tab[battleIndex][k][6]=ATK_change_tab[battleIndex][k][6]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."精神]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612349 then
ATK_change_tab[battleIndex][k][7]=ATK_change_tab[battleIndex][k][7]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."回复]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612354 then
ATK_change_tab[battleIndex][k][8]=ATK_change_tab[battleIndex][k][8]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗毒]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612356 then
ATK_change_tab[battleIndex][k][9]=ATK_change_tab[battleIndex][k][9]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗昏睡]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612358 then
ATK_change_tab[battleIndex][k][10]=ATK_change_tab[battleIndex][k][10]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗石化]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612355 then
ATK_change_tab[battleIndex][k][11]=ATK_change_tab[battleIndex][k][11]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗酒醉]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612357 then
ATK_change_tab[battleIndex][k][12]=ATK_change_tab[battleIndex][k][12]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗混乱]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612360 then
ATK_change_tab[battleIndex][k][13]=ATK_change_tab[battleIndex][k][13]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."必杀]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612362 then
ATK_change_tab[battleIndex][k][14]=ATK_change_tab[battleIndex][k][14]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."反击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612361 then
ATK_change_tab[battleIndex][k][15]=ATK_change_tab[battleIndex][k][15]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."命中]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612363 then
ATK_change_tab[battleIndex][k][16]=ATK_change_tab[battleIndex][k][16]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."闪躲]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612352 then
ATK_change_tab[battleIndex][k][17]=ATK_change_tab[battleIndex][k][17]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔攻]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612353 then
ATK_change_tab[battleIndex][k][18]=ATK_change_tab[battleIndex][k][18]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔抗]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
end
table.remove(ATK_change2_tab[battleIndex][k],i)
end
end
end
end
end
for k,v in pairs(ATK_change3_tab[battleIndex]) do--k是charindex
local long = tablength(v)--v的例子:{{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数}}
if long>0 then
for i = long, 1, -1 do--i是v的{增减数值,增减常量,持续回合数}表的序号
if v[i][3]>0 then
v[i][3] = v[i][3] - 1
end
if v[i][3] ==0 then
local name = Char.GetData(k,2000)
if name~=-1 then
local ifpet = Char.GetData(k,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(k,2001)
end
end
local shuzhi = v[i][1]
local cl = v[i][2]
local dangqian = Char.GetData(k,cl)
Char.SetData(k,cl,dangqian-shuzhi)
NLG.UpChar(k)
local info = "增益"
if shuzhi<0 then
info = "减益"
end
if cl==612344 then
ATK_change_tab[battleIndex][k][1]=ATK_change_tab[battleIndex][k][1]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大血量]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612345 then
ATK_change_tab[battleIndex][k][2]=ATK_change_tab[battleIndex][k][2]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大魔法值]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612346 then
ATK_change_tab[battleIndex][k][3]=ATK_change_tab[battleIndex][k][3]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."攻击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612348 then
ATK_change_tab[battleIndex][k][4]=ATK_change_tab[battleIndex][k][4]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."防御]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612350 then
ATK_change_tab[battleIndex][k][5]=ATK_change_tab[battleIndex][k][5]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."敏捷]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612347 then
ATK_change_tab[battleIndex][k][6]=ATK_change_tab[battleIndex][k][6]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."精神]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612349 then
ATK_change_tab[battleIndex][k][7]=ATK_change_tab[battleIndex][k][7]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."回复]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612354 then
ATK_change_tab[battleIndex][k][8]=ATK_change_tab[battleIndex][k][8]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗毒]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612356 then
ATK_change_tab[battleIndex][k][9]=ATK_change_tab[battleIndex][k][9]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗昏睡]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612358 then
ATK_change_tab[battleIndex][k][10]=ATK_change_tab[battleIndex][k][10]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗石化]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612355 then
ATK_change_tab[battleIndex][k][11]=ATK_change_tab[battleIndex][k][11]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗酒醉]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612357 then
ATK_change_tab[battleIndex][k][12]=ATK_change_tab[battleIndex][k][12]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗混乱]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612360 then
ATK_change_tab[battleIndex][k][13]=ATK_change_tab[battleIndex][k][13]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."必杀]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612362 then
ATK_change_tab[battleIndex][k][14]=ATK_change_tab[battleIndex][k][14]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."反击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612361 then
ATK_change_tab[battleIndex][k][15]=ATK_change_tab[battleIndex][k][15]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."命中]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612363 then
ATK_change_tab[battleIndex][k][16]=ATK_change_tab[battleIndex][k][16]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."闪躲]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612352 then
ATK_change_tab[battleIndex][k][17]=ATK_change_tab[battleIndex][k][17]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔攻]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612353 then
ATK_change_tab[battleIndex][k][18]=ATK_change_tab[battleIndex][k][18]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔抗]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
end
table.remove(ATK_change3_tab[battleIndex][k],i)
end
end
end
end
end
for k,v in pairs(ATK_change4_tab[battleIndex]) do--k是charindex
local long = tablength(v)--v的例子:{{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数}}
if long>0 then
for i = long, 1, -1 do--i是v的{增减数值,增减常量,持续回合数}表的序号
if v[i][3]>0 then
v[i][3] = v[i][3] - 1
end
if v[i][3] ==0 then
local name = Char.GetData(k,2000)
if name~=-1 then
local ifpet = Char.GetData(k,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(k,2001)
end
end
local shuzhi = v[i][1]
local cl = v[i][2]
local dangqian = Char.GetData(k,cl)
Char.SetData(k,cl,dangqian-shuzhi)
NLG.UpChar(k)
local info = "增益"
if shuzhi<0 then
info = "减益"
end
if cl==612344 then
ATK_change_tab[battleIndex][k][1]=ATK_change_tab[battleIndex][k][1]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大血量]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612345 then
ATK_change_tab[battleIndex][k][2]=ATK_change_tab[battleIndex][k][2]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."最大魔法值]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612346 then
ATK_change_tab[battleIndex][k][3]=ATK_change_tab[battleIndex][k][3]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."攻击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612348 then
ATK_change_tab[battleIndex][k][4]=ATK_change_tab[battleIndex][k][4]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."防御]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612350 then
ATK_change_tab[battleIndex][k][5]=ATK_change_tab[battleIndex][k][5]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."敏捷]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612347 then
ATK_change_tab[battleIndex][k][6]=ATK_change_tab[battleIndex][k][6]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."精神]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612349 then
ATK_change_tab[battleIndex][k][7]=ATK_change_tab[battleIndex][k][7]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."回复]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612354 then
ATK_change_tab[battleIndex][k][8]=ATK_change_tab[battleIndex][k][8]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗毒]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612356 then
ATK_change_tab[battleIndex][k][9]=ATK_change_tab[battleIndex][k][9]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗昏睡]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612358 then
ATK_change_tab[battleIndex][k][10]=ATK_change_tab[battleIndex][k][10]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗石化]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612355 then
ATK_change_tab[battleIndex][k][11]=ATK_change_tab[battleIndex][k][11]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗酒醉]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612357 then
ATK_change_tab[battleIndex][k][12]=ATK_change_tab[battleIndex][k][12]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."抗混乱]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612360 then
ATK_change_tab[battleIndex][k][13]=ATK_change_tab[battleIndex][k][13]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."必杀]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612362 then
ATK_change_tab[battleIndex][k][14]=ATK_change_tab[battleIndex][k][14]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."反击]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612361 then
ATK_change_tab[battleIndex][k][15]=ATK_change_tab[battleIndex][k][15]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."命中]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612363 then
ATK_change_tab[battleIndex][k][16]=ATK_change_tab[battleIndex][k][16]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."闪躲]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612352 then
ATK_change_tab[battleIndex][k][17]=ATK_change_tab[battleIndex][k][17]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔攻]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
elseif cl==612353 then
ATK_change_tab[battleIndex][k][18]=ATK_change_tab[battleIndex][k][18]-shuzhi
if shuzhi~=0 then
local Side=friend_side_check(battleIndex,k)
local msg = name.."的『"..info.."』["..shuzhi.."魔抗]消失了"
battle_friend_msg(battleIndex,Side,msg)
end
end
table.remove(ATK_change4_tab[battleIndex][k],i)
end
end
end
end
end
end
end
function ATK_change_over(battleIndex)
if ATK_change_tab[battleIndex] then
for k,v in pairs(ATK_change_tab[battleIndex]) do
local name = Char.GetData(k,2000)
if name~=-1 then
for x,y in pairs(v) do
if x==1 and y~=0 then
local dangqian = Char.GetData(k,612344)
Char.SetData(k,612344,dangqian-y)--1 血量
NLG.UpChar(k);
elseif x==2 and y~=0 then
local dangqian = Char.GetData(k,612345)
Char.SetData(k,612345,dangqian-y)--2 魔量
NLG.UpChar(k);
elseif x==3 and y~=0 then
local dangqian = Char.GetData(k,612346)
Char.SetData(k,612346,dangqian-y)--3 攻击
NLG.UpChar(k);
elseif x==4 and y~=0 then
local dangqian = Char.GetData(k,612348)
Char.SetData(k,612348,dangqian-y)--4 防御
NLG.UpChar(k);
elseif x==5 and y~=0 then
local dangqian = Char.GetData(k,612350)
Char.SetData(k,612350,dangqian-y)--5 敏捷
NLG.UpChar(k);
elseif x==6 and y~=0 then
local dangqian = Char.GetData(k,612347)
Char.SetData(k,612347,dangqian-y)--6 精神
NLG.UpChar(k);
elseif x==7 and y~=0 then
local dangqian = Char.GetData(k,612349)
Char.SetData(k,612349,dangqian-y)--7 回复
NLG.UpChar(k);
elseif x==8 and y~=0 then
local dangqian = Char.GetData(k,612354)
Char.SetData(k,612354,dangqian-y)--8 抗毒
NLG.UpChar(k);
elseif x==9 and y~=0 then
local dangqian = Char.GetData(k,612356)
Char.SetData(k,612356,dangqian-y)--9 抗昏睡
NLG.UpChar(k);
elseif x==10 and y~=0 then
local dangqian = Char.GetData(k,612358)
Char.SetData(k,612358,dangqian-y)--10 抗石化
NLG.UpChar(k);
elseif x==11 and y~=0 then
local dangqian = Char.GetData(k,612355)
Char.SetData(k,612355,dangqian-y)--11 抗酒醉
NLG.UpChar(k);
elseif x==12 and y~=0 then
local dangqian = Char.GetData(k,612357)
Char.SetData(k,612357,dangqian-y)--12 抗混乱
NLG.UpChar(k);
elseif x==13 and y~=0 then
local dangqian = Char.GetData(k,612360)
Char.SetData(k,612360,dangqian-y)--13 必杀
NLG.UpChar(k);
elseif x==14 and y~=0 then
local dangqian = Char.GetData(k,612362)
Char.SetData(k,612362,dangqian-y)--14 反击
NLG.UpChar(k);
elseif x==15 and y~=0 then
local dangqian = Char.GetData(k,612361)
Char.SetData(k,612361,dangqian-y)--15 命中
NLG.UpChar(k);
elseif x==16 and y~=0 then
local dangqian = Char.GetData(k,612363)
Char.SetData(k,612363,dangqian-y)--16 闪躲
NLG.UpChar(k);
elseif x==17 and y~=0 then
local dangqian = Char.GetData(k,612352)
Char.SetData(k,612352,dangqian-y)--17 魔攻
NLG.UpChar(k);
elseif x==18 and y~=0 then
local dangqian = Char.GetData(k,612353)
Char.SetData(k,612353,dangqian-y)--18 魔抗
NLG.UpChar(k);
end
end
end
end
ATK_change_tab[battleIndex]=nil
end
if gain_blood[battleIndex] then
gain_blood[battleIndex]=nil
end
if friend_shala_jianshang[battleIndex] then
friend_shala_jianshang[battleIndex]=nil
end
if wulu_zhanli[battleIndex] then
wulu_zhanli[battleIndex]=nil
end
if aixiebate_qishi[battleIndex] then
aixiebate_qishi[battleIndex]=nil
end
if ATK_change2_tab[battleIndex] then
ATK_change2_tab[battleIndex]=nil
end
if ATK_change3_tab[battleIndex] then
ATK_change3_tab[battleIndex]=nil
end
if ATK_change4_tab[battleIndex] then
ATK_change4_tab[battleIndex]=nil
end
if friend_Kill_success[battleIndex] then
friend_Kill_success[battleIndex]=nil
end
if zhongshi_zhanli[battleIndex] then
zhongshi_zhanli[battleIndex]=nil
end
if keruisite_zengshang[battleIndex] then
keruisite_zengshang[battleIndex]=nil
end
if lubi_mianshang[battleIndex] then
lubi_mianshang[battleIndex]=nil
end
if lubi_fantan[battleIndex] then
lubi_fantan[battleIndex]=nil
end
if alubasi_duzengshang[battleIndex] then
alubasi_duzengshang[battleIndex]=nil
end
if xinmei_dongjie[battleIndex] then
xinmei_dongjie[battleIndex]=nil
end
if all_chuantou[battleIndex] then
all_chuantou[battleIndex]=nil
end
if keruisite_aim[battleIndex] then
keruisite_aim[battleIndex]=nil
end
if xing_lianji_cishu[battleIndex] then
xing_lianji_cishu[battleIndex]=nil
end
if krst_hataim[battleIndex] then
krst_hataim[battleIndex]=nil
end
return 0
end
--[[
function player_seat(fd,packet,player)
local battleIndex = battle_seat_tab2[player]
local seat = battle_seat_tab[battleIndex][player]
if seat==1 then
seat=0
elseif seat==0 then
seat=1
end
for i=0,4 do
local petindex = Char.GetPetIndex(player,i)
local petzt = Char.GetData(petindex,300001)
if petzt==2 then
if seat==1 then
battle_seat_tab[battleIndex][petindex]=0
elseif seat==0 then
battle_seat_tab[battleIndex][petindex]=1
end
break
end
end
return 0
end--]]
function friend_atkchange2(CharIndex, DefCharIndex, Damage, battleIndex, Com1, Com2, Com3, DefCom1, DefCom2, DefCom3 ,OldDamage ,Flg)
--NLG.SystemMessage(-1,"使用技能者是:"..CharIndex.." 被攻击者是:"..DefCharIndex.." 技能tech是"..Com3)
--NLG.SystemMessage(-1," 造成的伤害是:"..Damage.."技能原始伤害是"..OldDamage)
local startDamage = Damage
local sfhf = Char.GetData(CharIndex, -100) or 0
if sfhf > 0 and DefCharIndex==CharIndex and Com1==-1 then--有套恢复就直接输出恢复值
return Damage
end
local Round = Battle.GetData(battleIndex,%战斗_回合数%) + 1
local SD=friend_side_check(battleIndex,CharIndex)--攻击的对象在哪一侧
local SIDE=friend_side_check(battleIndex,DefCharIndex)--被攻击的对象在哪一侧
if (Com3>=1900 and Com3<=3199) or (Com3>=8400 and Com3<=8499) or (Com3>=26700 and Com3<=26799) then--魔法必杀增伤
local cri = Char.GetData(CharIndex,332) or 0
local cri2 = Char.GetData(CharIndex,612360) or 0
local allcri = cri + cri2
local num = math.random(1,100)
if allcri>=num then
Damage = Damage * 1.2
end
end
local battletype = Battle.GetType(battleIndex)
if battletype==1 then
if item_val_PVE[CharIndex] then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
if item_val_PVE[CharIndex][1001] then
Damage = Damage + 0.03*startDamage
end
if item_val_PVE[CharIndex][1004] and Round>=4 then
Damage = Damage + 0.06*startDamage
end
if item_val_PVE[CharIndex][1005] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=25 then
Damage = Damage + 0.04*startDamage
end
end
if item_val_PVE[CharIndex][1007] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=90 then
Damage = Damage + 0.04*startDamage
end
end
if item_val_PVE[CharIndex][2001] then
Damage = Damage + 0.06*startDamage
end
if item_val_PVE[CharIndex][2004] and Round>=4 then
Damage = Damage + 0.12*startDamage
end
if item_val_PVE[CharIndex][2005] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=30 then
Damage = Damage + 0.08*startDamage
end
end
if item_val_PVE[CharIndex][2007] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=85 then
Damage = Damage + 0.08*startDamage
end
end
if item_val_PVE[CharIndex][2013] then
if Com3>=2300 and Com3<=2699 then
Damage = Damage + 0.05*startDamage
end
end
if item_val_PVE[CharIndex][3001] then
Damage = Damage + 0.09*startDamage
end
if item_val_PVE[CharIndex][3004] and Round>=4 then
Damage = Damage + 0.18*startDamage
end
if item_val_PVE[CharIndex][3005] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=35 then
Damage = Damage + 0.12*startDamage
end
end
if item_val_PVE[CharIndex][3007] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=80 then
Damage = Damage + 0.12*startDamage
end
end
if item_val_PVE[CharIndex][4001] then
Damage = Damage + 0.12*startDamage
end
if item_val_PVE[CharIndex][4004] and Round>=4 then
Damage = Damage + 0.24*startDamage
end
if item_val_PVE[CharIndex][4005] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=40 then
Damage = Damage + 0.16*startDamage
end
end
if item_val_PVE[CharIndex][4007] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=75 then
Damage = Damage + 0.16*startDamage
end
end
if item_val_PVE[CharIndex][5001] then
Damage = Damage + 0.15*startDamage
end
if item_val_PVE[CharIndex][5004] and Round>=4 then
Damage = Damage + 0.3*startDamage
end
if item_val_PVE[CharIndex][5005] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=50 then
Damage = Damage + 0.2*startDamage
end
end
if item_val_PVE[CharIndex][5007] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=70 then
Damage = Damage + 0.2*startDamage
end
end
--特效流开始
if item_val_PVE[CharIndex][3011] then
local num = math.random(1,100)
if num>=96 then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd<=0 and hs<=0 and sh<=0 and jz<=0 and hl<=0 then--没状态
Char.SetData(DefCharIndex,330,2)
NLG.UpChar(DefCharIndex)
end
end
end
if item_val_PVE[CharIndex][4011] then
local num = math.random(1,100)
if num>=96 then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd<=0 and hs<=0 and sh<=0 and jz<=0 and hl<=0 then--没状态
Char.SetData(DefCharIndex,327,2)
NLG.UpChar(DefCharIndex)
end
end
end
if item_val_PVE[CharIndex][4012] then
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if hs>0 then
Damage = Damage + 0.2*startDamage
end
end
if item_val_PVE[CharIndex][5009] then
if (Com3>=9500 and Com3<=9599) then
Damage = Damage + 0.3*startDamage
end
end
if item_val_PVE[CharIndex][5010] then
if (Com3>=900 and Com3<=999) then
Damage = Damage + 0.3*startDamage
end
end
if item_val_PVE[CharIndex][5011] then
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if sh>0 then
Damage = Damage + 0.5*startDamage
end
end
if item_val_PVE[CharIndex][5012] then
Damage = Damage + 0.3*startDamage
end
if item_val_PVE[CharIndex][6004] then
if (Com1==4) or (Com3>0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26699) and startDamage~=0 then--物理攻击技能
Damage = Damage * 1.2
end
end
if item_val_PVE[CharIndex][6006] then
if Flg==1 then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26699) and startDamage~=0 then--物理攻击技能
Damage = Damage + 0.5*startDamage
end
end
end
if item_val_PVE[CharIndex][6007] then
if (Com3>=1900 and Com3<=3199) or (Com3>=8400 and Com3<=8499) or (Com3>=26700 and Com3<=26799) then
Damage = Damage * 1.2
end
end
end
end
if item_val_PVE[DefCharIndex] then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
if item_val_PVE[DefCharIndex][1002] then
Damage = Damage - 0.01*startDamage
end
if item_val_PVE[DefCharIndex][1003] and Round>=4 then
Damage = Damage - 0.02*startDamage
end
if item_val_PVE[DefCharIndex][1006] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=25 then
Damage = Damage - 0.02*startDamage
end
end
if item_val_PVE[DefCharIndex][1008] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=90 then
Damage = Damage - 0.02*startDamage
end
end
if item_val_PVE[DefCharIndex][2002] then
Damage = Damage - 0.02*startDamage
end
if item_val_PVE[DefCharIndex][2003] and Round>=4 then
Damage = Damage - 0.04*startDamage
end
if item_val_PVE[DefCharIndex][2006] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=30 then
Damage = Damage - 0.04*startDamage
end
end
if item_val_PVE[DefCharIndex][2008] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=85 then
Damage = Damage - 0.04*startDamage
end
end
if item_val_PVE[DefCharIndex][3002] then
Damage = Damage - 0.03*startDamage
end
if item_val_PVE[DefCharIndex][3003] and Round>=4 then
Damage = Damage - 0.06*startDamage
end
if item_val_PVE[DefCharIndex][3006] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=25 then
Damage = Damage - 0.06*startDamage
end
end
if item_val_PVE[DefCharIndex][3008] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=90 then
Damage = Damage - 0.06*startDamage
end
end
if item_val_PVE[DefCharIndex][4002] then
Damage = Damage - 0.04*startDamage
end
if item_val_PVE[DefCharIndex][4003] and Round>=4 then
Damage = Damage - 0.08*startDamage
end
if item_val_PVE[DefCharIndex][4006] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=25 then
Damage = Damage - 0.08*startDamage
end
end
if item_val_PVE[DefCharIndex][4008] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=90 then
Damage = Damage - 0.08*startDamage
end
end
if item_val_PVE[DefCharIndex][5002] then
Damage = Damage - 0.05*startDamage
end
if item_val_PVE[DefCharIndex][5003] and Round>=4 then
Damage = Damage - 0.1*startDamage
end
if item_val_PVE[DefCharIndex][5006] then
local hp = Char.GetData(DefCharIndex,9)
local maxhp = Char.GetData(DefCharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb <=25 then
Damage = Damage - 0.1*startDamage
end
end
if item_val_PVE[DefCharIndex][5008] then
local hp = Char.GetData(CharIndex,9)
local maxhp = Char.GetData(CharIndex,287)
local hpbfb = math.floor((hp/maxhp)*100)
if hpbfb >=90 then
Damage = Damage - 0.1*startDamage
end
end
--特效流开始
if item_val_PVE[DefCharIndex][3012] then
local num = math.random(1,100)
if num<=20 then
Damage = Damage - 150
end
end
if item_val_PVE[DefCharIndex][5012] then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd<=0 and hs<=0 and sh<=0 and jz<=0 and hl<=0 then--没状态
Char.SetData(DefCharIndex,328,2)
NLG.UpChar(DefCharIndex)
end
end
if item_val_PVE[DefCharIndex][6005] then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26699) and startDamage~=0 then--物理攻击技能
Damage = Damage * 0.9
end
end
if item_val_PVE[DefCharIndex][6008] then
if (Com3>=1900 and Com3<=3199) or (Com3>=8400 and Com3<=8499) or (Com3>=26700 and Com3<=26799) then
Damage = Damage * 0.9
end
end
if item_val_PVE[DefCharIndex][6009] then
if Flg==1 then
Damage = Damage * 0.7
end
end
end
end
end
if lubi_fantan[battleIndex][SIDE] then--优先载入露比反弹
local lubiindex = lubi_fantan[battleIndex][SIDE]
local lubihp = Char.GetData(lubiindex,9)
local lubizh = Char.GetData(lubiindex,2002)
if lubihp>0 then--露比存活且在线(未被飞)
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26699) and startDamage~=0 then--物理攻击技能
local gx=Char.GetData(DefCharIndex,311) or 0
local gf=Char.GetData(DefCharIndex,312) or 0
local gw=Char.GetData(DefCharIndex,313) or 0
local mx=Char.GetData(DefCharIndex,314) or 0
local mf=Char.GetData(DefCharIndex,315) or 0
local mw=Char.GetData(DefCharIndex,316) or 0
if gx==0 and gf==0 and gw==0 and mx==0 and mf==0 and mw==0 then
local ItemIndex = Char.GetItemIndex(lubiindex,2)
if ItemIndex>=0 then
local jb = Item.GetData(ItemIndex,36)
local gl = jb*4
local jl = math.random(1,100)
if gl>=jl then
Char.SetData(DefCharIndex,312,1)
NLG.UpChar(DefCharIndex);
end
end
end
elseif (Com3>=1900 and Com3<=3199) or (Com3>=8400 and Com3<=8499) or (Com3>=26700 and Com3<=26799) then--魔法攻击技能
local gx=Char.GetData(DefCharIndex,311) or 0
local gf=Char.GetData(DefCharIndex,312) or 0
local gw=Char.GetData(DefCharIndex,313) or 0
local mx=Char.GetData(DefCharIndex,314) or 0
local mf=Char.GetData(DefCharIndex,315) or 0
local mw=Char.GetData(DefCharIndex,316) or 0
if gx==0 and gf==0 and gw==0 and mx==0 and mf==0 and mw==0 then
local ItemIndex = Char.GetItemIndex(lubiindex,2)
if ItemIndex>=0 then
local jb = Item.GetData(ItemIndex,36)
local gl = jb*4
local jl = math.random(1,100)
if gl>=jl then
Char.SetData(DefCharIndex,315,1)
NLG.UpChar(DefCharIndex);
end
end
end
end
end
end
local indextype = Char.GetData(CharIndex,0)--优先计算增伤模块
if indextype==1 then--攻击者的类型,返回值1是人,2是怪,3是宠
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==401 then
local jb = Item.GetData(ItemIndex,36)--羁绊等级
local zz=Char.GetData(CharIndex,17)
if zz==0 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==402 then
local jb = Item.GetData(ItemIndex,36)
local zz=Char.GetData(CharIndex,17)
if zz==5 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==403 then
local jb = Item.GetData(ItemIndex,36)
local zz=Char.GetData(CharIndex,17)
if zz==2 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==404 then
local jb = Item.GetData(ItemIndex,36)
local zz=Char.GetData(CharIndex,17)
if zz==7 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==405 then
local jb = Item.GetData(ItemIndex,36)
local zz=Char.GetData(CharIndex,17)
if zz==8 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==406 then
local jb = Item.GetData(ItemIndex,36)
local zz=Char.GetData(CharIndex,17)
if zz==1 then
Damage=Damage+startDamage*(jb*0.01)
end
elseif number==409 then
local jb = Item.GetData(ItemIndex,36)
local drhp = Char.GetData(DefCharIndex,9)
local drmaxhp = Char.GetData(DefCharIndex,287)
local drhpbfb = math.floor(drhp/drmaxhp)
if drhpbfb<=50 then
Damage=Damage+startDamage*(jb*0.05)
end
elseif number==410 then
local jb = Item.GetData(ItemIndex,36)
local drhp = Char.GetData(DefCharIndex,9)
local drmaxhp = Char.GetData(DefCharIndex,287)
local drhpbfb = math.floor(drhp/drmaxhp)
if drhpbfb<=50 then
Damage=Damage+startDamage*(jb*0.03)
end
elseif number==411 then
local jb = Item.GetData(ItemIndex,36)
local drtype = Char.GetData(DefCharIndex,0)
if drtype==3 then
Damage=Damage+startDamage*(jb*0.05)
end
local chixutime = 1
if jb>=5 then
chixutime = 2
end
gain_blood[battleIndex][DefCharIndex] = Round+chixutime
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「青灵苍角断」"..name.."陷入了[禁疗]之中,持续"..chixutime.."回合"
battle_friend_msg(battleIndex,SD,msg)
elseif number==412 then
local jb = Item.GetData(ItemIndex,36)
local drtype = Char.GetData(DefCharIndex,0)
if drtype==1 then
Damage=Damage+startDamage*(jb*0.05)
end
elseif number==301 then
local drtype = Char.GetData(DefCharIndex,0)
if drtype==1 then
local job = Char.GetData(DefCharIndex,51)
if job==540 then
local ItemIndex2 = Char.GetItemIndex(DefCharIndex,2);
job = Item.GetData(ItemIndex2,37)
end
if job==30 then
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*(jb*0.1)
end
end
elseif number==302 then
local drtype = Char.GetData(DefCharIndex,0)
if drtype==1 then
local job = Char.GetData(DefCharIndex,51)
if job==540 then
local ItemIndex2 = Char.GetItemIndex(DefCharIndex,2);
job = Item.GetData(ItemIndex2,37)
end
if job==60 or job==80 or job==130 or job==430 or job==440 then
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*(jb*0.2)
end
end
elseif number==303 then
local jb = Item.GetData(ItemIndex,36)
local xishu = (100 - math.floor((Char.GetData(CharIndex,9)/Char.GetData(CharIndex,287))*100)) * (1 +jb*0.3)
Damage=Damage + startDamage*(xishu/100)
if Com1==4 then--福尔蒂雅普攻减防+驱散1个增益
ability_DOWN(DefCharIndex,battleIndex,612348,-(jb*4),999)
Buff_dispel(battleIndex,DefCharIndex,1)
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「药理学」"..name.."的防御力下降["..(jb*4).."],持续到战斗结束"
battle_friend_msg(battleIndex,SD,msg)
end
elseif number==304 then
local jb = Item.GetData(ItemIndex,36)
local atk = Char.GetData(CharIndex,289)
local mjzs = math.floor(atk*(0.05+jb*0.02))
local atk2 = Char.GetData(CharIndex,612346)
if aixiebate_qishi[battleIndex][CharIndex]==nil then
aixiebate_qishi[battleIndex][CharIndex]=1
if mjzs>0 then
ability_UP(CharIndex,battleIndex,612346,mjzs,999)
local msg = "「热血英豪」艾谢巴特提升["..mjzs.."攻击力],持续到战斗结束"
battle_friend_msg(battleIndex,SD,msg)
end
elseif aixiebate_qishi[battleIndex][CharIndex]<4 and aixiebate_qishi[battleIndex][CharIndex]<Round and Round~=1 then
aixiebate_qishi[battleIndex][CharIndex]=aixiebate_qishi[battleIndex][CharIndex] + 1
if mjzs>0 then
ability_UP(CharIndex,battleIndex,612346,mjzs,999)
local msg = "「热血英豪」艾谢巴特提升["..mjzs.."攻击力],持续到战斗结束"
battle_friend_msg(battleIndex,SD,msg)
end
end
elseif number==305 then
local jb = Item.GetData(ItemIndex,36)
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd==0 and hs==0 and sh==0 and jz==0 and hl==0 then
local dk = Char.GetData(DefCharIndex,320)
local gl = (30+jb*4) - math.floor(dk/2)
local jl = math.random(1,100)
if gl>=jl then
Char.SetData(DefCharIndex,326,3)
NLG.UpChar(DefCharIndex);
end
end
elseif number==306 then
local jb = Item.GetData(ItemIndex,36)
local jl = math.random(1,100)
if jl>=30 then
ability_UP(CharIndex,battleIndex,612360,1*jb,2)
local msg = "「银矢弓术」百合少女薇丝提升["..(1*jb).."必杀],持续2回合"
battle_friend_msg(battleIndex,SD,msg)
end
if Flg==1 then
ability_DOWN(DefCharIndex,battleIndex,612350,-5*jb,2)
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「银矢弓术」"..name.."降低["..(5*jb).."敏捷],持续2回合"
battle_friend_msg(battleIndex,SD,msg)
end
elseif number==307 then
local drtype = Char.GetData(DefCharIndex,0)
if drtype==2 then
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*(jb*0.03)
end
elseif number==308 then
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*(jb*0.1)
elseif number==309 then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd==0 and hs==0 and sh==0 and jz==0 and hl==0 then
local jb = Item.GetData(ItemIndex,36)
local drspeed = Char.GetData(DefCharIndex,291)
local drshdk = Char.GetData(DefCharIndex,322)
local zjspeed = Char.GetData(CharIndex,291)
if zjspeed>drspeed then
local gl = y_rounding((jb*2 + (zjspeed-drspeed)/5) - drshdk/2)
local sj = math.random(1,100)
if gl>=sj then
Char.SetData(DefCharIndex,328,2)
NLG.UpChar(DefCharIndex);
end
end
end
elseif number==310 then
if Com3>=3100 and Com3<=3199 then
local jb = Item.GetData(ItemIndex,36)
Damage=jb*200
end
elseif number==201 then
local jb = Item.GetData(ItemIndex,36)
if Com3>=1980 and Com3<=2299 then
Damage=Damage + startDamage*(0.3 +jb*0.1)
end
local drtype = Char.GetData(DefCharIndex,0)
if drtype==1 then
local job = Char.GetData(DefCharIndex,51)
if job==540 then
local ItemIndex2 = Char.GetItemIndex(DefCharIndex,2);
job = Item.GetData(ItemIndex2,37)
end
if job==30 then
Damage=Damage+startDamage*(jb*0.05)
end
end
if DefCom1~=1 and DefCom3<800 and DefCom3>899 and DefCom3~=7400 then--对象技能不为防御,圣盾
local zs = keruisite_zengshang[battleIndex][CharIndex]
if drtype == 2 and zs>1000 then
zs = 1000
end
Damage=Damage+zs
end
elseif number==203 then
local jb = Item.GetData(ItemIndex,36)
if Com3>=400 and Com3<=499 then
local gl = 30+jb*2
local jl = math.random(1,100)
if gl>=jl then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd~=0 then
Char.SetData(DefCharIndex,326,zd+1)
NLG.UpChar(DefCharIndex);
elseif hs~=0 then
Char.SetData(DefCharIndex,327,hs+1)
NLG.UpChar(DefCharIndex);
elseif sh~=0 then
Char.SetData(DefCharIndex,328,sh+1)
NLG.UpChar(DefCharIndex);
elseif jz~=0 then
Char.SetData(DefCharIndex,329,jz+1)
NLG.UpChar(DefCharIndex);
elseif hl~=0 then
Char.SetData(DefCharIndex,330,hl+1)
NLG.UpChar(DefCharIndex);
end
friend_debuff_extend(Round,battleIndex,CharIndex)
if zd~=0 or hs~=0 or sh~=0 or jz~=0 or hl~=0 then
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「气合拳」"..name.."的[特殊状态]延长1回合"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
local cishu=1
if jb>5 then
cishu=2
end
Buff_dispel(battleIndex,DefCharIndex,cishu)
Damage=Damage+startDamage*jb*0.05
elseif number==205 then
local jb = Item.GetData(ItemIndex,36)
local drhp = Char.GetData(DefCharIndex,9)
local drmaxhp = Char.GetData(DefCharIndex,287)
local zengyi = (y_rounding(drmaxhp-drhp))*(0.15+jb*0.015)
Damage=Damage+zengyi
local jl = 50+jb*5
local gl = math.random(1,100)
if jl>=gl then
if gain_blood[battleIndex]==nil then
gain_blood[battleIndex]={}
end
if gain_blood[battleIndex][DefCharIndex]==nil then
gain_blood[battleIndex][DefCharIndex]=Round
end
gain_blood[battleIndex][DefCharIndex]=gain_blood[battleIndex][DefCharIndex] + 2
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「神经毒素」"..name.."[禁疗]2回合"
battle_friend_msg(battleIndex,SD,msg)
end
elseif number==206 then
local jb = Item.GetData(ItemIndex,36)
local long = -1
if ATK_change3_tab[battleIndex][DefCharIndex] then
long = tablength(ATK_change3_tab[battleIndex][DefCharIndex])
end
local sfzt = friend_debuff_time(Round,battleIndex,DefCharIndex)
if long>0 or sfzt==1 then
local zd = Char.GetData(DefCharIndex,326) or 0
local hs = Char.GetData(DefCharIndex,327) or 0
local sh = Char.GetData(DefCharIndex,328) or 0
local jz = Char.GetData(DefCharIndex,329) or 0
local hl = Char.GetData(DefCharIndex,330) or 0
if zd==0 and hs==0 and sh==0 and jz==0 and hl==0 then
local gl= 30+3*jb
local jl= math.random(1,100)
if gl>=jl then
Char.SetData(DefCharIndex,327,1)
NLG.UpChar(DefCharIndex);
xinmei_dongjie[battleIndex][DefCharIndex]=Round
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「灵体冻结」"..name.."将[无法动弹],持续1回合"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
elseif number==208 then
local jb = Item.GetData(ItemIndex,36)
local gl= 5*jb
local jl= math.random(1,100)
if gl>=jl then
local atk = math.floor(Char.GetData(DefCharIndex,289)/100)
local def = math.floor(Char.GetData(DefCharIndex,290)/100)
local speed = math.floor(Char.GetData(DefCharIndex,291)/100)
if atk>0 then
ability_UP(CharIndex,battleIndex,612346,atk,5)
ability_DOWN(DefCharIndex,battleIndex,612346,-atk,5)
end
if def>0 then
ability_UP(CharIndex,battleIndex,612348,def,5)
ability_DOWN(DefCharIndex,battleIndex,612348,-def,5)
end
if speed>0 then
ability_UP(CharIndex,battleIndex,612350,speed,5)
ability_DOWN(DefCharIndex,battleIndex,612350,-speed,5)
end
if atk>0 or def>0 or speed>0 then
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「魔法射手·火封箭」"..name.."的["..atk.."攻击力],["..def.."防御力],["..speed.."敏捷]被澪栞[偷取]了,持续5回合"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
end
end
end
local DefCharIndextype = Char.GetData(DefCharIndex,0)--增伤结束后计算减伤,护盾
if DefCharIndextype==1 then--被攻击者的类型,返回值1是人,2是怪,3是宠
local jobnum = Char.GetData(DefCharIndex,51)
if jobnum==540 then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
local ItemIndex = Char.GetItemIndex(DefCharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==407 then
local jb = Item.GetData(ItemIndex,36)
local zy = 1*jb
ability_Final(DefCharIndex,battleIndex,612348,zy,3)
elseif number==408 then
local jb = Item.GetData(ItemIndex,36)
Damage=Damage-Damage*(jb*0.005)
elseif number==411 then
Damage=Damage+Damage*0.2
elseif number==412 then
Damage=Damage+Damage*0.2
elseif number==413 then
if friend_shala_jianshang[battleIndex][DefCharIndex][Round] then
local js = friend_shala_jianshang[battleIndex][DefCharIndex][Round]
if js>0 then
friend_shala_jianshang[battleIndex][DefCharIndex][Round]= friend_shala_jianshang[battleIndex][DefCharIndex][Round] - Damage
local a = Damage
Damage = Damage-js
local jsmsg = js
if Damage<=0 then
jsmsg=a
end
local syhd = friend_shala_jianshang[battleIndex][DefCharIndex][Round]
if syhd<0 then
syhd=0
end
local msg = "「阿比安吉」莎拉受到的伤害降低了["..jsmsg.."]点,剩余护盾值["..syhd.."]"
battle_friend_msg(battleIndex,SIDE,msg)
end
end
elseif number==207 then
if DefCom3>=26100 and DefCom3<=26199 then
local jb = Item.GetData(ItemIndex,36)
Damage = Damage-jb*0.05*Damage
end
end
end
end
end
if alubasi_duzengshang[battleIndex][SD] then--拥有阿鲁巴斯毒状态增伤
local zd=Char.GetData(DefCharIndex,326) or 0
if zd>0 then
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
local alubasiindex = alubasi_duzengshang[battleIndex][SD]
local ItemIndex = Char.GetItemIndex(alubasiindex,2)
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*(jb*0.1)
end
end
end
if Com3>=600 and Com3<=699 then--战栗处理
local Side=friend_side_check(battleIndex,CharIndex)
if zhongshi_zhanli[battleIndex] then
if zhongshi_zhanli[battleIndex][Side] then
local Mercenaryindex=zhongshi_zhanli[battleIndex][Side]
local ItemIndex = Char.GetItemIndex(Mercenaryindex,2)
local jb = Item.GetData(ItemIndex,36)
Damage=Damage+startDamage*((jb*0.02)+0.2)
end
end
if indextype==1 then--优先算攻击的特殊战栗效果
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==415 then
local huihe = 1
local jb = Item.GetData(ItemIndex,36)
if jb>5 then
huihe = 2
end
local gf=Char.GetData(DefCharIndex,312) or 0
if gf<1 then
wulu_zhanli[battleIndex][DefCharIndex]= Round + huihe
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local atk = Char.GetData(DefCharIndex,289)
local def = Char.GetData(DefCharIndex,290)
local atkg = math.floor(atk/10)
local defg = math.floor(def/10)
if atkg>0 then
ability_DOWN(DefCharIndex,battleIndex,612346,-atkg,5)
end
if defg>0 then
ability_DOWN(DefCharIndex,battleIndex,612348,-defg,5)
end
local atkindex,defindex=friend_def_atk_max(CharIndex,battleIndex)
if atkg>0 then
ability_UP(atkindex,battleIndex,612346,atkg,5)
local atkname = Char.GetData(atkindex,2000)
local ifpet = Char.GetData(atkindex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(atkindex,2001)
end
end
local msg2 = "「菱叶萦波」"..name.."的["..atkg.."攻击力]被[偷取]到"..atkname.."身上了,持续5回合"
battle_friend_msg(battleIndex,SD,msg2)
end
if defg>0 then
ability_UP(defindex,battleIndex,612348,defg,5)
local defname = Char.GetData(defindex,2000)
local ifpet = Char.GetData(defindex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(defindex,2001)
end
end
local msg3 = "「菱叶萦波」"..name.."的["..defg.."防御力]被[偷取]到"..defname.."身上了,持续5回合"
battle_friend_msg(battleIndex,SD,msg3)
end
local msg = "「黑夜魅影」"..name.."陷入了[恐惧]之中,持续"..huihe.."回合"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
end
if DefCharIndextype==1 then--计算被攻击者战栗衰减
local jobnum = Char.GetData(DefCharIndex,51)
if jobnum==540 then
local ItemIndex = Char.GetItemIndex(DefCharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==207 then
local jb = Item.GetData(ItemIndex,36)
if jb>= 4 and DefCom3>=26100 and DefCom3<=26199 then
Damage = 1
local msg = "「黄金盾」战栗袭心耗魔效果降低到[1]点"
battle_friend_msg(battleIndex,SIDE,msg)
end
end
end
end
end
if (Com3>=6100 and Com3<=6399) or (Com3>=6800 and Com3<=6899) then--使用补血魔法,气绝恢复时,补血对象DefCharIndex处于[禁疗]状态,补血效率减半
if gain_blood[battleIndex] then
if gain_blood[battleIndex][DefCharIndex] then
if Round<gain_blood[battleIndex][DefCharIndex] then
Damage=y_rounding(Damage/2)--四舍五入
end
end
end
if indextype==1 then--攻击者的类型,返回值1是人,2是怪,3是宠
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==310 then
local jb = Item.GetData(ItemIndex,36)
local dxgj = math.floor(Char.GetData(DefCharIndex,289)*0.005*jb)
local dxfy = math.floor(Char.GetData(DefCharIndex,290)*0.005*jb)
local dxmj = math.floor(Char.GetData(DefCharIndex,291)*0.005*jb)
local dxjs = math.floor(Char.GetData(DefCharIndex,292)*0.005*jb)
if dxgj>0 then
ability_UP(DefCharIndex,battleIndex,612346,dxgj,2)
end
if dxfy>0 then
ability_UP(DefCharIndex,battleIndex,612348,dxfy,2)
end
if dxmj>0 then
ability_UP(DefCharIndex,battleIndex,612350,dxmj,2)
end
if dxjs>0 then
ability_UP(DefCharIndex,battleIndex,612347,dxjs,2)
end
if dxgj>0 or dxfy>0 or dxmj>0 or dxjs>0 then
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「自然加护」"..name.."提高了["..dxgj.."攻击力],["..dxfy.."防御力],["..dxmj.."敏捷],["..dxjs.."精神],持续2回合"
battle_friend_msg(battleIndex,SD,msg)
end
elseif number==202 then
if Com3>=6800 and Com3<=6899 then
local jb=Item.GetData(ItemIndex,36)
lubi_mianshang[battleIndex][DefCharIndex]=1-jb*0.05
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「返魂之珠」"..name.."受到了加护"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
end
end
if wulu_zhanli[battleIndex][CharIndex] then
if Round<wulu_zhanli[battleIndex][CharIndex] then--[恐惧]状态下自身CharIndex的伤害和自身补血下降为1/10
Damage=y_rounding(Damage/10)--四舍五入
end
end
if xinmei_dongjie[battleIndex][DefCharIndex] then--攻击对象身上有心美冻结BUFF
if Round==xinmei_dongjie[battleIndex][DefCharIndex] then--冻结BUFF的时间是这个回合
local hs = Char.GetData(DefCharIndex,327)
if hs>0 then
Char.SetData(DefCharIndex,327,1)
NLG.UpChar(DefCharIndex);
end
end
end
if lubi_mianshang[battleIndex][DefCharIndex] then--露比减伤
if (Com1==4) or (Com3>=0 and Com3<=599) or (Com3>=900 and Com3<=999) or (Com3>=1100 and Com3<=1199) or (Com3>=1900 and Com3<=3199) or (Com3>=7200 and Com3<=7300) or (Com3>=7500 and Com3<=8199) or (Com3>=8400 and Com3<=8499) or (Com3>=8700 and Com3<=8799) or (Com3>=9400 and Com3<=9599) or (Com3>=10660 and Com3<=10699) or (Com3>=25700 and Com3<=26099) or (Com3>=26200 and Com3<=26799) and startDamage~=0 then
local GetType = Battle.GetType(battleIndex);
if GetType==1 then--PVE战斗
Damage=1
lubi_mianshang[battleIndex][DefCharIndex]=nil
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「大地鼠的守护」"..name.."受到了加护,承受的伤害降低到1"
battle_friend_msg(battleIndex,SIDE,msg)
elseif GetType==2 then--PK
Damage=Damage*lubi_mianshang[battleIndex][DefCharIndex]
lubi_mianshang[battleIndex][DefCharIndex]=nil
local name = Char.GetData(DefCharIndex,2000)
local ifpet = Char.GetData(DefCharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(DefCharIndex,2001)
end
end
local msg = "「大地鼠的守护」"..name.."受到了加护,承受的伤害降低了"
battle_friend_msg(battleIndex,SIDE,msg)
end
end
end
if all_chuantou[battleIndex][CharIndex] then
if all_chuantou[battleIndex][CharIndex] >0 then
NLG.SystemMessage(CharIndex,"触发穿透成功")
all_chuantou[battleIndex][CharIndex]=all_chuantou[battleIndex][CharIndex]-1
local gx=Char.SetData(DefCharIndex,311,0)
local gf=Char.SetData(DefCharIndex,312,0)
local gw=Char.SetData(DefCharIndex,313,0)
local mx=Char.SetData(DefCharIndex,314,0)
local mf=Char.SetData(DefCharIndex,315,0)
local mw=Char.SetData(DefCharIndex,316,0)
NLG.UpChar(DefCharIndex);
end
end
if Damage<=0 then
Damage=0
end
if indextype==1 then--最终记录击杀
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==306 then--薇丝的击杀
if Com1==4 or (Com3>=300 and Com3<=379) then
local drhp = Char.GetData(DefCharIndex,9)
if Damage>=drhp then
friend_Kill_success[battleIndex][CharIndex]=friend_Kill_success[battleIndex][CharIndex] + 1
end
end
elseif number==201 then--克瑞斯特的击杀
if keruisite_aim[battleIndex][CharIndex] then
if Com1==4 or (Com3>=26200 and Com3<=26299) then
local duizhiindex=keruisite_aim[battleIndex][CharIndex]
if DefCharIndex==duizhiindex then
local drhp = Char.GetData(DefCharIndex,9)
if Damage>=drhp then
friend_Kill_success[battleIndex][CharIndex]=friend_Kill_success[battleIndex][CharIndex] + 1
end
end
end
end
end
end
end
return Damage
end
function friend_atkchange3(CharIndex, Option, TechID, Val)--对象,技能AN之类的字段,techID,字段想修改的值
local indextype = Char.GetData(CharIndex,0)
if indextype==1 then--攻击者的类型,返回值1是人,2是怪,3是宠
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
if TechID>=400 and TechID<=499 then
if Option == "AN" then
Val = Val +1
end
if Option == "AM" then
Val = Val +1
end
end
if TechID>=9500 and TechID<=9599 then
if Option == "AN" then
Val = Val +1
end
if Option == "AM" then
Val = Val +1
end
end
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==415 then
if TechID>=600 and TechID<=699 then
if Option == "FR" then
Val = Val + 10
return Val
end
end
elseif number==301 then
if TechID>=1200 and TechID<=1299 then
if Option == "AS" then
local jb = Item.GetData(ItemIndex,36)
local atk = math.floor(Char.GetData(CharIndex,289) * (0.5 + jb*0.05))
local def = math.floor(Char.GetData(CharIndex,290) * (0.5 + jb*0.05))
local rss = math.floor(Char.GetData(CharIndex,397) * (0.5 + jb*0.05))
local battleIndex = battle_seat_tab2[CharIndex]
if atk>0 then
ability_UP(CharIndex,battleIndex,612346,atk,4)
end
if def>0 then
ability_UP(CharIndex,battleIndex,612348,def,4)
end
if rss>0 then
ability_UP(CharIndex,battleIndex,612353,rss,4)
end
if atk>0 or def>0 or rss>0 then
local SD=friend_side_check(battleIndex,CharIndex)--攻击的对象在哪一侧
local msg = "「热砂旋转功」欧兹那克提高["..atk.."攻击力],["..def.."防御力],["..rss.."魔抗],持续4回合"
battle_friend_msg(battleIndex,SD,msg)
end
end
end
elseif number==306 then
if TechID>=6780 and TechID<=6789 then--全体己方对象追加抗性
if Option == "SR" then
local battleIndex=weisi_jiejing[CharIndex]
local Side=friend_side_check(battleIndex,CharIndex)
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,Side,Num)
if Mercenaryindex>=0 then
local dk = math.floor(50 - Char.GetData(Mercenaryindex,320))
local hs = math.floor(50 - Char.GetData(Mercenaryindex,321))
local sh = math.floor(50 - Char.GetData(Mercenaryindex,322))
local jz = math.floor(50 - Char.GetData(Mercenaryindex,323))
local hl = math.floor(50 - Char.GetData(Mercenaryindex,324))
if dk<0 then
dk=0
end
if hs<0 then
hs=0
end
if sh<0 then
sh=0
end
if jz<0 then
jz=0
end
if hl<0 then
hl=0
end
if dk>0 then
ability_Final(Mercenaryindex,battleIndex,612354,dk,2)
end
if hs>0 then
ability_Final(Mercenaryindex,battleIndex,612356,hs,2)
end
if sh>0 then
ability_Final(Mercenaryindex,battleIndex,612358,sh,2)
end
if jz>0 then
ability_Final(Mercenaryindex,battleIndex,612355,jz,2)
end
if hl>0 then
ability_Final(Mercenaryindex,battleIndex,612357,hl,2)
end
if dk>0 or hs>0 or sh>0 or jz>0 or hl>0 then
local name = Char.GetData(Mercenaryindex,2000)
local ifpet = Char.GetData(Mercenaryindex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(Mercenaryindex,2001)
end
end
local msg = "「神圣结界」"..name.."提高了["..dk.."抗毒],["..hs.."抗睡],["..sh.."抗石化],["..jz.."抗醉],["..hl.."抗混乱]持续2回合"
battle_friend_msg(battleIndex,Side,msg)
end
end
end
end
end
elseif number==307 then
if TechID >=0 and TechID<=99 then
local battleIndex=battle_seat_tab2[CharIndex]
if Option == "AN" then
return xing_lianji_cishu[battleIndex][CharIndex]
end
if Option == "AM" then
return xing_lianji_cishu[battleIndex][CharIndex]
end
if Option == "DD" then
local jb = Item.GetData(ItemIndex,36)
local weili = jb*4 - 70
return weili
end
end
elseif number==308 then
if TechID >=9870 and TechID<=9879 then
if Option == "N3" then
local jb = Item.GetData(ItemIndex,36)
local count= 10
count = count +jb*5
return count
end
end
elseif number==202 then
if TechID>=6600 and TechID<=6699 then--露比恢复时全队增加免伤BUFF
if Option == "RR" then
local battleIndex=battle_seat_tab2[CharIndex]
local Side=friend_side_check(battleIndex,CharIndex)
local jb = Item.GetData(ItemIndex,36)
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,Side,Num)
if Mercenaryindex>=0 then
lubi_mianshang[battleIndex][Mercenaryindex]=1-jb*0.05
end
end
end
end
elseif number==204 then
if TechID >=25900 and TechID<=25999 then
if Option == "TR" then
local jb = Item.GetData(ItemIndex,36)
local count = jb*10 - 10
return count
end
end
end
else--是正常玩家
local Pos = Char.FindItemId(CharIndex,56121);
if Pos>=0 and Pos<=7 then
if TechID>=400 and TechID<=499 then
if Option == "AN" then
Val = Val+1
end
if Option == "AM" then
Val = Val+1
end
end
end
local Pos = Char.FindItemId(CharIndex,50440);
if Pos>=0 and Pos<=7 then
if TechID>=26400 and TechID<=26499 then
if Option == "SR" then
Val = Val+14
end
end
end
local battleIndex=battle_seat_tab2[CharIndex]
local battletype = Battle.GetType(battleIndex)
if battletype==1 then
if item_val_PVE[CharIndex] then
if item_val_PVE[CharIndex][1009] then
if TechID>=300 and TechID<=399 then
if Option == "HR" then
Val = Val-1
end
if Option == "DD" then
Val = Val+10
end
end
end
if item_val_PVE[CharIndex][1010] then
if TechID>=100 and TechID<=199 then
if Option == "TR" then
Val = Val+7
end
if Option == "DR" then
Val = Val-5
end
if Option == "MR" then
Val = Val-5
end
end
end
if item_val_PVE[CharIndex][1011] then
if TechID>=6400 and TechID<=6499 then
if Option == "RR" then
Val = Val+20
end
end
end
if item_val_PVE[CharIndex][1012] then
if TechID>=6100 and TechID<=6199 then
if Option == "AR" then
Val = Val+60
end
end
end
if item_val_PVE[CharIndex][2009] then
if TechID>=6500 and TechID<=6599 then
if Option == "RR" then
Val = Val+12
end
end
end
if item_val_PVE[CharIndex][2010] then
if TechID>=6200 and TechID<=6299 then
if Option == "AR" then
Val = Val+36
end
end
end
if item_val_PVE[CharIndex][2012] then
if TechID>=1200 and TechID<=1299 then
if Option == "D1" then
Val = Val+10
end
if Option == "D2" then
Val = Val+10
end
end
end
if item_val_PVE[CharIndex][3009] then
if TechID>=6600 and TechID<=6699 then
if Option == "RR" then
Val = Val+8
end
end
end
if item_val_PVE[CharIndex][3010] then
if TechID>=6300 and TechID<=6399 then
if Option == "AR" then
Val = Val+24
end
end
end
if item_val_PVE[CharIndex][4009] then
if TechID>=1200 and TechID<=1299 then
if Option == "D1" then
Val = Val+5
end
if Option == "D2" then
Val = Val+20
end
end
end
if item_val_PVE[CharIndex][4010] then
if TechID>=600 and TechID<=699 then
if Option == "FR" then
Val = Val+20
end
end
end
if item_val_PVE[CharIndex][5013] then
if TechID>=400 and TechID<=499 then
if Option == "AN" then
Val = Val+1
end
if Option == "AM" then
Val = Val+1
end
end
end
if item_val_PVE[CharIndex][6001] then
if TechID>=6300 and TechID<=6399 then
if Option == "AR" then
Val=Val+48
end
end
end
if item_val_PVE[CharIndex][6002] then
if TechID>=6600 and TechID<=6699 then
if Option == "RR" then
Val=Val+16
end
end
end
end
end
end
end
return Val
end
function friend_atkchange4(CharIndex,DefCharIndex,Flg)
local indextype = Char.GetData(CharIndex,0)
if indextype==1 then--攻击者的类型,返回值1是人,2是怪,3是宠
local jobnum = Char.GetData(CharIndex,51)
if jobnum==540 then
local ItemIndex = Char.GetItemIndex(CharIndex,2)
local number = Item.GetData(ItemIndex,30) or 1000--佣兵编号
if number==303 then
local jb = Item.GetData(ItemIndex,36)
local def = Char.GetData(DefCharIndex,290)
local cs = 100+jb*40
if def<=cs then
return 1
end
end
end
end
return -1
end
function friend_debuff_extend(Round,battleIndex,CharIndex)--传入当前回合数,想延长特殊debuff的角色index(函数功能:增加CharIndex的一回合[恐惧],[禁疗])
if Round<wulu_zhanli[battleIndex][CharIndex] then
wulu_zhanli[battleIndex][CharIndex]=wulu_zhanli[battleIndex][CharIndex]+1
local name = Char.GetData(CharIndex,2000)
local ifpet = Char.GetData(CharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(CharIndex,2001)
end
end
local msg = name.."的[恐惧]状态延长1回合]"
battle_friend_msg(battleIndex,Side,msg)
end
if Round<gain_blood[battleIndex][CharIndex] then
gain_blood[battleIndex][CharIndex]=gain_blood[battleIndex][CharIndex]+1
local name = Char.GetData(CharIndex,2000)
local ifpet = Char.GetData(CharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(CharIndex,2001)
end
end
local msg = name.."的[禁疗]状态延长1回合]"
battle_friend_msg(battleIndex,Side,msg)
end
end
function friend_debuff_time(Round,battleIndex,CharIndex)--传入当前回合数,获取charindex身上是否有特殊debuff(-1不存在,1存在)
local a=-1
if wulu_zhanli[battleIndex][CharIndex] then
if Round<wulu_zhanli[battleIndex][CharIndex] then
a=1
end
end
if gain_blood[battleIndex][CharIndex] then
if Round<gain_blood[battleIndex][CharIndex] then
a=1
end
end
return a
end
function friend_side_check(battleIndex,CharIndex)--返回0为下方,1为上方
local sd=1
for i=0,1 do
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,i,Num)
if Mercenaryindex==CharIndex then
sd=i
return sd
end
end
end
return sd
end
function friend_Assassin(CharIndex, otherIndex, battleIndex)--暗杀者,被暗杀者,战斗index(暗杀概率:必杀越高,命中越高,攻击越高,暗杀概率就越高(攻击上限1000))
local BattleType = Battle.GetType(battleIndex)
if BattleType==2 then
local CharIndextype = Char.GetData(CharIndex,0)
if CharIndextype==1 then
local crt=Char.GetData(CharIndex,332)
local hit=Char.GetData(CharIndex,334)
local atk=Char.GetData(CharIndex,289)
if atk>1000 then
atk=1000
end
local probability = math.floor(crt/4)+math.floor(hit/4)+math.floor(atk/40) + 25
local Assassin = math.random(1,100)
if Assassin<=probability then
return 1;
else
return -1
end
end
end
return 1;
end
function friend_def_atk_max(CharIndex,battleIndex)--返回自身队伍中攻击力最高的对象index,防御力最高的对象index
local sd=0
for i=0,1 do
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,i,Num)
if Mercenaryindex==CharIndex then
sd=i
end
end
end
local deftab={}
local atktab={}
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,sd,Num)
if Mercenaryindex>=0 then
local CharIndextype = Char.GetData(Mercenaryindex,0)
if CharIndextype==1 then
local atk = Char.GetData(Mercenaryindex,289)
local def = Char.GetData(Mercenaryindex,290)
local hp = Char.GetData(Mercenaryindex,9)
if hp>0 then
deftab[Mercenaryindex]=def
atktab[Mercenaryindex]=atk
end
end
end
end
local defindex=tabmax(deftab)
local atkindex=tabmax(atktab)
return atkindex,defindex
end
--[[
常量代码:
612344 最大血量
612345 最大魔法值
612346 攻击
612348 防御
612350 敏捷
612347 精神
612349 回复
612354 抗毒
612356 抗昏睡
612358 抗石化
612355 抗酒醉
612357 抗混乱
612360 必杀
612362 反击
612361 命中
612363 闪躲
612352 魔攻
612353 魔抗
--]]
function Buff_dispel(battleIndex,CharIndex,cishu)--驱散增益(ATK_change2_tab表),驱散对象(charindex),可填驱散数量(cishu),不填默认为1
if cishu==nil then
cishu=1
end
for q=1,cishu do
local long = tablength(ATK_change2_tab[battleIndex][CharIndex])--v的例子:{{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数},{增减数值,增减常量,持续回合数}}
if long>0 then
local i=math.random(1,long)--i是v的{增减数值,增减常量,持续回合数}表的序号
local shuzhi = ATK_change2_tab[battleIndex][CharIndex][i][1]
local cl = ATK_change2_tab[battleIndex][CharIndex][i][2]
Char.SetData(CharIndex,cl,-shuzhi)
NLG.UpChar(CharIndex)
local info = "增益"
if shuzhi<0 then
info = "减益"
end
local name = Char.GetData(CharIndex,2000)
local ifpet = Char.GetData(CharIndex,0)
if ifpet==3 then
if name=="" or name=="0" or name=="1" or name=="2" or name=="3" or name=="4" or name=="5" or name=="6" then
name=Char.GetData(CharIndex,2001)
end
end
if cl==612344 then
ATK_change_tab[battleIndex][CharIndex][1]=ATK_change_tab[battleIndex][CharIndex][1]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."最大血量]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612345 then
ATK_change_tab[battleIndex][CharIndex][2]=ATK_change_tab[battleIndex][CharIndex][2]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."最大魔法值]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612346 then
ATK_change_tab[battleIndex][CharIndex][3]=ATK_change_tab[battleIndex][CharIndex][3]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."攻击]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612348 then
ATK_change_tab[battleIndex][CharIndex][4]=ATK_change_tab[battleIndex][CharIndex][4]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."防御]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612350 then
ATK_change_tab[battleIndex][CharIndex][5]=ATK_change_tab[battleIndex][CharIndex][5]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."敏捷]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612347 then
ATK_change_tab[battleIndex][CharIndex][6]=ATK_change_tab[battleIndex][CharIndex][6]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."精神]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612349 then
ATK_change_tab[battleIndex][CharIndex][7]=ATK_change_tab[battleIndex][CharIndex][7]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."回复]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612354 then
ATK_change_tab[battleIndex][CharIndex][8]=ATK_change_tab[battleIndex][CharIndex][8]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."抗毒]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612356 then
ATK_change_tab[battleIndex][CharIndex][9]=ATK_change_tab[battleIndex][CharIndex][9]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."抗昏睡]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612358 then
ATK_change_tab[battleIndex][CharIndex][10]=ATK_change_tab[battleIndex][CharIndex][10]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."抗石化]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612355 then
ATK_change_tab[battleIndex][CharIndex][11]=ATK_change_tab[battleIndex][CharIndex][11]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."抗酒醉]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612357 then
ATK_change_tab[battleIndex][CharIndex][12]=ATK_change_tab[battleIndex][CharIndex][12]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."抗混乱]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612360 then
ATK_change_tab[battleIndex][CharIndex][13]=ATK_change_tab[battleIndex][CharIndex][13]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."必杀]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612362 then
ATK_change_tab[battleIndex][CharIndex][14]=ATK_change_tab[battleIndex][CharIndex][14]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."反击]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612361 then
ATK_change_tab[battleIndex][CharIndex][15]=ATK_change_tab[battleIndex][CharIndex][15]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."命中]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612363 then
ATK_change_tab[battleIndex][CharIndex][16]=ATK_change_tab[battleIndex][CharIndex][16]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."闪躲]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612352 then
ATK_change_tab[battleIndex][CharIndex][17]=ATK_change_tab[battleIndex][CharIndex][17]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."魔攻]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
elseif cl==612353 then
ATK_change_tab[battleIndex][CharIndex][18]=ATK_change_tab[battleIndex][CharIndex][18]-shuzhi
local Side=friend_side_check(battleIndex,CharIndex)
local msg = "「驱散」"..name.."的『"..info.."』["..shuzhi.."魔抗]被驱散了"
battle_friend_msg(battleIndex,Side,msg)
end
table.remove(ATK_change2_tab[battleIndex][CharIndex],i)
end
end
end
function ability_UP(CharIndex,battleIndex,cl,xiugaizhi,chixuhuihe)--要修改的目标的index,临时增减常量代码,修改的值(可以填负数),持续回合
local shuxing = Char.GetData(CharIndex,cl)
Char.SetData(CharIndex,cl,shuxing+xiugaizhi)
NLG.UpChar(CharIndex)
if ATK_change_tab[battleIndex][CharIndex]==nil then
ATK_change_tab[battleIndex][CharIndex] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
end
if cl==612344 then
ATK_change_tab[battleIndex][CharIndex][1]=ATK_change_tab[battleIndex][CharIndex][1] + xiugaizhi
elseif cl==612345 then
ATK_change_tab[battleIndex][CharIndex][2]=ATK_change_tab[battleIndex][CharIndex][2] + xiugaizhi
elseif cl==612346 then
ATK_change_tab[battleIndex][CharIndex][3]=ATK_change_tab[battleIndex][CharIndex][3] + xiugaizhi
elseif cl==612348 then
ATK_change_tab[battleIndex][CharIndex][4]=ATK_change_tab[battleIndex][CharIndex][4] + xiugaizhi
elseif cl==612350 then
ATK_change_tab[battleIndex][CharIndex][5]=ATK_change_tab[battleIndex][CharIndex][5] + xiugaizhi
elseif cl==612347 then
ATK_change_tab[battleIndex][CharIndex][6]=ATK_change_tab[battleIndex][CharIndex][6] + xiugaizhi
elseif cl==612349 then
ATK_change_tab[battleIndex][CharIndex][7]=ATK_change_tab[battleIndex][CharIndex][7] + xiugaizhi
elseif cl==612354 then
ATK_change_tab[battleIndex][CharIndex][8]=ATK_change_tab[battleIndex][CharIndex][8] + xiugaizhi
elseif cl==612356 then
ATK_change_tab[battleIndex][CharIndex][9]=ATK_change_tab[battleIndex][CharIndex][9] + xiugaizhi
elseif cl==612358 then
ATK_change_tab[battleIndex][CharIndex][10]=ATK_change_tab[battleIndex][CharIndex][10] + xiugaizhi
elseif cl==612355 then
ATK_change_tab[battleIndex][CharIndex][11]=ATK_change_tab[battleIndex][CharIndex][11] + xiugaizhi
elseif cl==612357 then
ATK_change_tab[battleIndex][CharIndex][12]=ATK_change_tab[battleIndex][CharIndex][12] + xiugaizhi
elseif cl==612360 then
ATK_change_tab[battleIndex][CharIndex][13]=ATK_change_tab[battleIndex][CharIndex][13] + xiugaizhi
elseif cl==612362 then
ATK_change_tab[battleIndex][CharIndex][14]=ATK_change_tab[battleIndex][CharIndex][14] + xiugaizhi
elseif cl==612361 then
ATK_change_tab[battleIndex][CharIndex][15]=ATK_change_tab[battleIndex][CharIndex][15] + xiugaizhi
elseif cl==612363 then
ATK_change_tab[battleIndex][CharIndex][16]=ATK_change_tab[battleIndex][CharIndex][16] + xiugaizhi
elseif cl==612352 then
ATK_change_tab[battleIndex][CharIndex][17]=ATK_change_tab[battleIndex][CharIndex][17] + xiugaizhi
elseif cl==612353 then
ATK_change_tab[battleIndex][CharIndex][18]=ATK_change_tab[battleIndex][CharIndex][18] + xiugaizhi
end
table.insert(ATK_change2_tab[battleIndex][CharIndex],{xiugaizhi,cl,chixuhuihe})
end
function ability_DOWN(CharIndex,battleIndex,cl,xiugaizhi,chixuhuihe)--要修改的目标的index,临时增减常量代码,修改的值(可以填负数),持续回合
local shuxing = Char.GetData(CharIndex,cl) or 0
Char.SetData(CharIndex,cl,shuxing+xiugaizhi)
NLG.UpChar(CharIndex)
if ATK_change_tab[battleIndex][CharIndex]==nil then
ATK_change_tab[battleIndex][CharIndex] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
end
if cl==612344 then
ATK_change_tab[battleIndex][CharIndex][1]=ATK_change_tab[battleIndex][CharIndex][1] + xiugaizhi
elseif cl==612345 then
ATK_change_tab[battleIndex][CharIndex][2]=ATK_change_tab[battleIndex][CharIndex][2] + xiugaizhi
elseif cl==612346 then
ATK_change_tab[battleIndex][CharIndex][3]=ATK_change_tab[battleIndex][CharIndex][3] + xiugaizhi
elseif cl==612348 then
ATK_change_tab[battleIndex][CharIndex][4]=ATK_change_tab[battleIndex][CharIndex][4] + xiugaizhi
elseif cl==612350 then
ATK_change_tab[battleIndex][CharIndex][5]=ATK_change_tab[battleIndex][CharIndex][5] + xiugaizhi
elseif cl==612347 then
ATK_change_tab[battleIndex][CharIndex][6]=ATK_change_tab[battleIndex][CharIndex][6] + xiugaizhi
elseif cl==612349 then
ATK_change_tab[battleIndex][CharIndex][7]=ATK_change_tab[battleIndex][CharIndex][7] + xiugaizhi
elseif cl==612354 then
ATK_change_tab[battleIndex][CharIndex][8]=ATK_change_tab[battleIndex][CharIndex][8] + xiugaizhi
elseif cl==612356 then
ATK_change_tab[battleIndex][CharIndex][9]=ATK_change_tab[battleIndex][CharIndex][9] + xiugaizhi
elseif cl==612358 then
ATK_change_tab[battleIndex][CharIndex][10]=ATK_change_tab[battleIndex][CharIndex][10] + xiugaizhi
elseif cl==612355 then
ATK_change_tab[battleIndex][CharIndex][11]=ATK_change_tab[battleIndex][CharIndex][11] + xiugaizhi
elseif cl==612357 then
ATK_change_tab[battleIndex][CharIndex][12]=ATK_change_tab[battleIndex][CharIndex][12] + xiugaizhi
elseif cl==612360 then
ATK_change_tab[battleIndex][CharIndex][13]=ATK_change_tab[battleIndex][CharIndex][13] + xiugaizhi
elseif cl==612362 then
ATK_change_tab[battleIndex][CharIndex][14]=ATK_change_tab[battleIndex][CharIndex][14] + xiugaizhi
elseif cl==612361 then
ATK_change_tab[battleIndex][CharIndex][15]=ATK_change_tab[battleIndex][CharIndex][15] + xiugaizhi
elseif cl==612363 then
ATK_change_tab[battleIndex][CharIndex][16]=ATK_change_tab[battleIndex][CharIndex][16] + xiugaizhi
elseif cl==612352 then
ATK_change_tab[battleIndex][CharIndex][17]=ATK_change_tab[battleIndex][CharIndex][17] + xiugaizhi
elseif cl==612353 then
ATK_change_tab[battleIndex][CharIndex][18]=ATK_change_tab[battleIndex][CharIndex][18] + xiugaizhi
end
table.insert(ATK_change3_tab[battleIndex][CharIndex],{xiugaizhi,cl,chixuhuihe})
end
function ability_Final(CharIndex,battleIndex,cl,xiugaizhi,chixuhuihe)--要修改的目标的index,临时增减常量代码,修改的值(可以填负数),持续回合
local shuxing = Char.GetData(CharIndex,cl)
Char.SetData(CharIndex,cl,shuxing+xiugaizhi)
NLG.UpChar(CharIndex)
if ATK_change_tab[battleIndex][CharIndex]==nil then
ATK_change_tab[battleIndex][CharIndex] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
end
if cl==612344 then
ATK_change_tab[battleIndex][CharIndex][1]=ATK_change_tab[battleIndex][CharIndex][1] + xiugaizhi
elseif cl==612345 then
ATK_change_tab[battleIndex][CharIndex][2]=ATK_change_tab[battleIndex][CharIndex][2] + xiugaizhi
elseif cl==612346 then
ATK_change_tab[battleIndex][CharIndex][3]=ATK_change_tab[battleIndex][CharIndex][3] + xiugaizhi
elseif cl==612348 then
ATK_change_tab[battleIndex][CharIndex][4]=ATK_change_tab[battleIndex][CharIndex][4] + xiugaizhi
elseif cl==612350 then
ATK_change_tab[battleIndex][CharIndex][5]=ATK_change_tab[battleIndex][CharIndex][5] + xiugaizhi
elseif cl==612347 then
ATK_change_tab[battleIndex][CharIndex][6]=ATK_change_tab[battleIndex][CharIndex][6] + xiugaizhi
elseif cl==612349 then
ATK_change_tab[battleIndex][CharIndex][7]=ATK_change_tab[battleIndex][CharIndex][7] + xiugaizhi
elseif cl==612354 then
ATK_change_tab[battleIndex][CharIndex][8]=ATK_change_tab[battleIndex][CharIndex][8] + xiugaizhi
elseif cl==612356 then
ATK_change_tab[battleIndex][CharIndex][9]=ATK_change_tab[battleIndex][CharIndex][9] + xiugaizhi
elseif cl==612358 then
ATK_change_tab[battleIndex][CharIndex][10]=ATK_change_tab[battleIndex][CharIndex][10] + xiugaizhi
elseif cl==612355 then
ATK_change_tab[battleIndex][CharIndex][11]=ATK_change_tab[battleIndex][CharIndex][11] + xiugaizhi
elseif cl==612357 then
ATK_change_tab[battleIndex][CharIndex][12]=ATK_change_tab[battleIndex][CharIndex][12] + xiugaizhi
elseif cl==612360 then
ATK_change_tab[battleIndex][CharIndex][13]=ATK_change_tab[battleIndex][CharIndex][13] + xiugaizhi
elseif cl==612362 then
ATK_change_tab[battleIndex][CharIndex][14]=ATK_change_tab[battleIndex][CharIndex][14] + xiugaizhi
elseif cl==612361 then
ATK_change_tab[battleIndex][CharIndex][15]=ATK_change_tab[battleIndex][CharIndex][15] + xiugaizhi
elseif cl==612363 then
ATK_change_tab[battleIndex][CharIndex][16]=ATK_change_tab[battleIndex][CharIndex][16] + xiugaizhi
elseif cl==612352 then
ATK_change_tab[battleIndex][CharIndex][17]=ATK_change_tab[battleIndex][CharIndex][17] + xiugaizhi
elseif cl==612353 then
ATK_change_tab[battleIndex][CharIndex][18]=ATK_change_tab[battleIndex][CharIndex][18] + xiugaizhi
end
table.insert(ATK_change4_tab[battleIndex][CharIndex],{xiugaizhi,cl,chixuhuihe})
end
--[[
函数解释:
返回对峙位置和该位置的对象index
mold=1时:
返回值:
1:对象位置(优先返回人物对象,没有就返回-1)
2:对象index(没有就返回-1)
3:-1
4:-1
mold=2时:
返回值:
1:对象位置1
2:对象index1
3:对象位置2
4:对象index2
1~4没有就返回-1
对象位置可直接用于佣兵攻击
--]]
function friend_get_Confrontation_index(battleIndex,CharIndex,mold)--返回对峙目标的攻击位置,index(当没有对象返回-1,自动优先刷选人物对象)
local Side = 0--预设人物(己方团队)对象在下方
local sd = 1--设置初始(敌方团队)位置为1(上方)
local zjwz = -1
for i=0,1 do
for Num=0,9 do
local Mercenaryindex = Battle.GetPlayIndex(battleIndex,i,Num)
if Mercenaryindex==CharIndex then
Side=i
local newnum = API_BATTLE_GetPos(battleIndex,Mercenaryindex)
if newnum>=10 then
newnum = newnum -10
end
zjwz=newnum
break
end
end
end
if Side==1 then
sd=0
end
local drwztab = {}
if zjwz==1 or zjwz==6 then
local drindex = friend_AI_Get_pos_plus(battleIndex,sd,1)
local drindex2 = friend_AI_Get_pos_plus(battleIndex,sd,6)
if drindex>=0 then
local CharIndextype = Char.GetData(drindex,0)
if CharIndextype==1 then
drwztab[1]=2
else
drwztab[1]=1
end
end
if drindex2>=0 then
local CharIndextype = Char.GetData(drindex2,0)
if CharIndextype==1 then
drwztab[6]=2
else
drwztab[6]=1
end
end
elseif zjwz==8 or zjwz==3 then
local drindex = friend_AI_Get_pos_plus(battleIndex,sd,8)
local drindex2 = friend_AI_Get_pos_plus(battleIndex,sd,3)
if drindex>=0 then
local CharIndextype = Char.GetData(drindex,0)
if CharIndextype==1 then
drwztab[8]=2
else
drwztab[8]=1
end
end
if drindex2>=0 then
local CharIndextype = Char.GetData(drindex2,0)
if CharIndextype==1 then
drwztab[3]=2
else
drwztab[3]=1
end
end
elseif zjwz==5 or zjwz==0 then
local drindex = friend_AI_Get_pos_plus(battleIndex,sd,5)
local drindex2 = friend_AI_Get_pos_plus(battleIndex,sd,0)
if drindex>=0 then
local CharIndextype = Char.GetData(drindex,0)
if CharIndextype==1 then
drwztab[5]=2
else
drwztab[5]=1
end
end
if drindex2>=0 then
local CharIndextype = Char.GetData(drindex2,0)
if CharIndextype==1 then
drwztab[0]=2
else
drwztab[0]=1
end
end
elseif zjwz==7 or zjwz==2 then
local drindex = friend_AI_Get_pos_plus(battleIndex,sd,7)
local drindex2 = friend_AI_Get_pos_plus(battleIndex,sd,2)
if drindex>=0 then
local CharIndextype = Char.GetData(drindex,0)
if CharIndextype==1 then
drwztab[7]=2
else
drwztab[7]=1
end
end
if drindex2>=0 then
local CharIndextype = Char.GetData(drindex2,0)
if CharIndextype==1 then
drwztab[2]=2
else
drwztab[2]=1
end
end
elseif zjwz==9 or zjwz==4 then
local drindex = friend_AI_Get_pos_plus(battleIndex,sd,9)
local drindex2 = friend_AI_Get_pos_plus(battleIndex,sd,4)
if drindex>=0 then
local CharIndextype = Char.GetData(drindex,0)
if CharIndextype==1 then
drwztab[9]=2
else
drwztab[9]=1
end
end
if drindex2>=0 then
local CharIndextype = Char.GetData(drindex2,0)
if CharIndextype==1 then
drwztab[4]=2
else
drwztab[4]=1
end
end
end
local mubiaowz=-1
local mubiaoindex = -1
local gongjiweizhi = -1
local c=-1
local d=-1
if mold==1 then
if tablength(drwztab)>0 then
mubiaowz=tabmax(drwztab)
end
if mubiaowz~=-1 then
gongjiweizhi = mubiaowz+1+sd*10
mubiaoindex = friend_AI_Get_pos_plus(battleIndex,sd,mubiaowz)
end
elseif mold==2 then
if tablength(drwztab)>0 then
local x={}
for k,_ in pairs(drwztab) do
table.insert(x,k)
end
local long = tablength(x)
if long==1 then
gongjiweizhi=x[1] +1+sd*10
mubiaoindex = friend_AI_Get_pos_plus(battleIndex,sd,x[1])
elseif long==2 then
gongjiweizhi=x[1] +1+sd*10
mubiaoindex = friend_AI_Get_pos_plus(battleIndex,sd,x[1])
c=x[2] +1+sd*10
d=friend_AI_Get_pos_plus(battleIndex,sd,x[2])
end
end
end
return gongjiweizhi,mubiaoindex,c,d
end
|
|