[GP] ATK_change.lua--伤害控制

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式

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


回复

使用道具 举报

快速回复 返回顶部 返回列表