verfx/equipeff.lua

1513 lines
49 KiB
Lua
Raw Normal View History

2024-12-23 01:17:14 +08:00
local zbcfg = zbcfg
2024-12-18 22:57:06 +08:00
function takeonex(actor, -- object <09><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
item, --object <09><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
where, --integer <09><>/<2F><>λ<EFBFBD><CEBB>
itemName, --string <09><>Ʒ<EFBFBD><C6B7>
makeindex --integer
)
2024-12-20 18:32:40 +08:00
local idx = tonumber(zbcfg.idx(actor, item))
2024-12-18 22:57:06 +08:00
jhxbbgame.log(actor,"take.onex = ", itemName, where,idx)
if takeonex6 then
takeonex6(actor, item, where, itemName, makeindex)
end
zbcfg.reload(actor,999,-idx)
end
function takeoffex(actor, -- object <09><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
item, --object <09><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
where, --integer <09><>/<2F><>λ<EFBFBD><CEBB>
itemName, --string <09><>Ʒ<EFBFBD><C6B7>
makeindex --integer
)
local idx = zbcfg.idx(actor, item)
zbcfg.reload(actor,13,idx)
2024-12-20 18:32:40 +08:00
jhxbbgame.log(actor,"take.offex = ", itemName, where, idx)
2024-12-18 22:57:06 +08:00
end
function delayequipchg(actor, tp, offidx)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-20 18:32:40 +08:00
tp = oldtoint(tp) or VarInt(actor,"N$reload_tp")
offidx = VarInt(actor,"N$reload_offidx")
SetVarStr(actor,"N$reload_offidx",0)
2024-12-18 22:57:06 +08:00
--jhxbbgame.log(actor, ".delayequipchg.init = ")
makebodyitemindexs(actor, nil, 1+tp*100, offidx)
end
function zbcfg.reload(actor,tp,offidx)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-20 18:32:40 +08:00
--jhxbbgame.log(actor,"zbcfg.reload = ", tp, offidx)
2024-12-18 22:57:06 +08:00
tp = tp or 666
offidx = offidx or 0
2024-12-20 18:32:40 +08:00
SetVarStr(actor,"N$reload_tp",tp)
if offidx > 0 then
SetVarStr(actor,"N$reload_offidx",offidx)
end
--delayequipchg(actor,tp,offidx)
jhxbbgame.delayone(actor, 588, "delayequipchg")
2024-12-18 22:57:06 +08:00
end
bodyitem_index = {}
local oldpkpoint = {}
function pkpointchanged(actor, pkv)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
pkv = pkv or 0
-- local old = oldpkpoint[actor] or 0
-- if old ~= pkv and pkv > old then
-- --jhxbbgame.SetPKFlag(actor, 1)
-- end
-- oldpkpoint[actor] = pkv
zbcfg.checkpkzb(actor, { pkv = pkv, timecur = jhxbbgame.ticksec(), zb = 111 })
end
function zbcfg.NowRecalcAbil(actor)
if not checkkuafuserver() then
callscript(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>TXTִ<EFBFBD><EFBFBD>", "@<40>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>")
recalcabilitys(actor)
end
end
function zbcfg.initex(actor, items)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local cnt = 0
local vdata = { timecur = jhxbbgame.ticksec() }
for key, value in pairs(items) do
vdata.zb = key
if value and value(actor, vdata) then
jhxbbgame.log(actor, key, ".<2E><>ʼ<EFBFBD><CABC> = ")
end
cnt = cnt + 1
end
return cnt
end
function zbcfg.init(actor, items)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local cnt = 0
local zlcnt = 0
local kkv = 0
local kk = {[1]=55555, [2]=33333, [3]=44444, [4]=66666}
for key, value in pairs({ zbcfg.idxs[1], zbcfg.idxs[2], zbcfg.idxs[4], zbcfg.idxs[5]}) do
if zbcfg.GetBodyItem(actor, value) then
zlcnt = zlcnt + 1
kkv = kkv + kk[key]
end
end
SetVarInt(actor, "N$<24><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>", kkv)
-- <20>Ĵ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>ԣ<EFBFBD>
SetVarInt(actor, "U018", 0)
--jhxbbgame.log(actor, ".zbcfg.init = ",jhxbbgame.any2str(items))
--throughhum(actor, 0, 99999999, 0)
addattlist(actor, "ר<EFBFBD><EFBFBD>", "=","",0)
delattlist(actor, "ר<EFBFBD><EFBFBD>")
addattlist(actor, "ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ֮ŭ", "=","",0)
delattlist(actor, "ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ֮ŭ")
setflagstatus(actor, 103, 0)
zbcfg.NowRecalcAbil(actor)
if zbcfg.GetBodyItem(actor, zbcfg.idxs[16]) then
--ȼ<>յ<EFBFBD>ͼ<EFBFBD><CDBC> "<22><><EFBFBD><EFBFBD><EAB1AC><EFBFBD><EFBFBD>ȴʱ<C8B4><CAB1>-30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>+15<31><35>
SetVarInt(actor, "U025", 30)
SetVarInt(actor, "U026", 15)
else
SetVarInt(actor, "U025", 0)
SetVarInt(actor, "U026", 0)
end
local cdkt = 0
local cdzr = 0
local qgv = 0
local attr = 0
local qgadd = 0
--local hasmag = getskillinfo(actor,1002,1)~=nil
if zlcnt >= 2 then
--2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --<2D>Թ<EFBFBD><D4B9>и<EFBFBD>2W
qgv = 20000
jhxbbgame.log(actor, "*2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E>и<EFBFBD>+++20000")
end
if zbcfg.GetBodyItem(actor, zbcfg.idxs[18]) then
--<2D><><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6>ȴʱ<C8B4><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20%<25><>
cdkt = 6*0.2
cdzr = 6*0.2
end
setskilldeccd(actor, "<EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD>", "=", cdzr)
setskilldeccd(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն", "=", cdkt)
if zlcnt >= 3 then
--3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>նɱ<D5B6>䵱ǰѪ<C7B0><D1AA><EFBFBD><EFBFBD>5%<25><>
--SetVarInt(actor, "U018", 5)
qgadd = qgadd + 10
addattlist(actor, "ר<EFBFBD><EFBFBD>",
"+", "3#1#10000", 0)
end
if zlcnt >= 4 then
--4<><34><EFBFBD>ף<EFBFBD><D7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܡ<EFBFBD><DCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󡱣<EFBFBD><F3A1B1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷź<CDB7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>CD180<38>
if getskilllevel(actor, 1002) <= 0 then
addskill(actor, 1002, 3)
local cur = jhxbbgame.ticksec()
if cur >= VarInt(actor, "U019") then
jhxbbgame.SettimeSec(actor, "U019", 3)
end
end
else
delskill(actor, 1002)
end
local kcnt = math.min(VarInt(actor, "U011"), 50)
if (kcnt > 0) and zbcfg.GetBodyItem(actor, zbcfg.idxs[19]) then
--<2D><>ˮ<EFBFBD><CBAE>ʯ
local abil = "3#4#" .. (kcnt * 10)
.. "|3#1#" .. (kcnt * 100)
jhxbbgame.log(actor, "*<2A><>ˮ<EFBFBD><CBAE>ʯ.+++"..kcnt,abil)
addattlist(actor, "ר<EFBFBD><EFBFBD>",
"+", abil, 0)
end
if getflagstatus(actor, 102) == 1 then
jhxbbgame.log(actor, "<><C4A5>.<2E>и<EFBFBD>+++5000")
qgv = qgv + 5000
end
qgadd = qgadd + tonumber(getconst(actor, "<$ATTR[222]>"))
local rmb = querymoney(actor, 16) + querymoney(actor, 17)
if rmb > 0 and zbcfg.GetBodyItem(actor, zbcfg.idxs[17]) then
rmb = math.min(rmb,50000) * 2
qgv = qgv + rmb
jhxbbgame.log(actor, "*<2A><><EFBFBD><EFBFBD>.<2E>и<EFBFBD>+++ "..rmb)
end
if zbcfg.GetBodyItem(actor, zbcfg.idxs[3],1,true) then
jhxbbgame.GMLog(actor,"*103 <20>ϼ<EFBFBD>")
setflagstatus(actor, 103, 1)
end
if qgadd > 0 then
attr = tonumber(getconst(actor, "<$ATTR[74]>"))
--jhxbbgame.log(actor, "*222.<2E>и<EFBFBD>+++% ",attr,qgv,qgadd)
qgv = qgv + math.floor((attr + qgv) * (qgadd / 100))
end
if qgv > 0 then
--jhxbbgame.log(actor, "*.<2E>и<EFBFBD>+++ ",qgv)
addattlist(actor, "ר<EFBFBD><EFBFBD>", "=", "3#74#"..qgv, 0)
end
local kf = false--checkkuafu(actor)
if not kf then
zbcfg.initex(actor,items)
end
zbcfg.NowRecalcAbil(actor)
-- jhxbbgame.log(actor, zbcfg.idxs[17],
-- zbcfg.GetBodyItem(actor, zbcfg.idxs[17]),rmb,
-- "--------------װ<><D7B0>.init = "
-- , qgv,attr,qgadd,
-- cnt, jhxbbgame.len(items),cdkt,cdzr)
end
function zbcfg.uninit(actor, idx,itemName)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--delayequipchg(actor,222)
local vdata = { timecur = jhxbbgame.ticksec() }
local value = zbcfg.zbx[idx]
--local xh = ""
if value then
--xh = xh .. "," .. idx
vdata.zb = idx
value(actor, vdata)
-- if then
-- xh = xh .. "=1"
-- end
end
--zbcfg.reload(actor)
jhxbbgame.log(actor, "װ<EFBFBD><EFBFBD><><D0B6> = "
, idx,itemName)
end
function zbcfg.GetBodyItem(actor, i, cnt,log)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
cnt = cnt or 1
local uid = getbaseinfo(actor, 2)
local Itma = bodyitem_index[uid]
if not Itma then
zbcfg.reload(actor,555)
return false
-- makebodyitemindexs(actor, false,200000+i)
-- Itma = bodyitem_index[uid] or {}
end
local Itm = Itma[11] or {}
local ret = (Itm["i"..i] or 0) >= cnt
-- if log then
-- jhxbbgame.GMLog(actor,"*BodyItem",Itm["i"..i],i,"end")
-- end
return ret,"i"..i,Itm["i"..i]
end
--[[
{[92]=44
,[84]=27,[75]=20,[91]=43,[86]=28,[88]=29,[90]=42,[83]=26}
]]
zbcfg.eqpos = {77,111,74,108,112,101,105,109,79
,75,106,110,107,78,9,
44,27,20,43,28,29,42,26,100,80,103,102,71,104
}
function zbcfg.cdpass(actor, vdata, mode, tp)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local cfg = zbcfg.CD[vdata.zb]
local cd = (cfg and (cfg[1])) or 0
--release_print("cdpass.cd = ", cd,tbl2json(cfg))
if cd > 0 then
local savedcd = VarInt(actor, cfg[2])
local otime = os.time()
if otime > savedcd then
--release_print("cdpass = ", vdata.zb, mode, cd, cfg[2])
--SetVarInt(actor, cfg[2], vdata.timecur + cd)
return true
else
return false
end
end
return true
end
function zbcfg.cdupdate(actor, vdata, mode)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local cfg = zbcfg.CD[vdata.zb];
local cd = (cfg and cfg[1]) or 0
if cd > 0 then
local ncd = os.time() + cd
--jhxbbgame.log(actor, "cdupdate.cd = ", vdata.zb, ncd, tbl2json(cfg))
SetVarInt(actor, cfg[2], ncd)
return cd
end
return 0
end
function zbcfg.die(actor)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local vdata = {
timecur = jhxbbgame.ticksec(),
max_hp = getbaseinfo(actor, 10),
selfx = getbaseinfo(actor, 4),
selfy = getbaseinfo(actor, 5)
}
SetVarInt(actor, "U011", 0)
jhxbbgame.log(actor, jhxbbgame.len(zbcfg.zbd), ".die = 666")
SetVarInt(actor, "N$<24><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>", vdata.timecur)
svautoplay.die(actor)
for key, value in pairs(zbcfg.zbd) do
vdata.zb = key
vdata.died = true
if value
and zbcfg.GetBodyItem(actor, vdata.zb, 1)
and zbcfg.cdpass(actor, vdata, 2)
and value(actor, vdata) then
zbcfg.cdupdate(actor, vdata, 1)
release_print(key, ".die = ")
end
end
end
function zbcfg.Realive(actor,m)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local vdata = {
timecur = jhxbbgame.ticksec(),
max_hp = getbaseinfo(actor, 10),
hp = getbaseinfo(actor, 9),
hiter = getplayerbyid(VarStr(actor, "S$<24><>ɱ<EFBFBD><C9B1>id"))
}
jhxbbgame.HideUI(actor, "fuhuotanchuang")
local rethp = jhxbbgame.IncHP(actor, vdata.max_hp)
jhxbbgame.log(actor,getbaseinfo(actor,1), ".Realive = ",m,vdata.hp,rethp,vdata.hiter,VarStr(actor, "S$<24><>ɱ<EFBFBD><C9B1>id"))
SetVarStr(actor, "S$<24><>ɱ<EFBFBD><C9B1>id", "")
for key, value in pairs(zbcfg.zbr) do
vdata.zb = key
if value
and zbcfg.cdpass(actor, vdata, 2)
and zbcfg.GetBodyItem(actor, vdata.zb, 1)
and value(actor, vdata) then
zbcfg.cdupdate(actor, vdata, 1)
jhxbbgame.log(actor, key, ".<2E><><EFBFBD><EFBFBD> = ")
end
end
end
zbcfg.ResetVarAtLogin = { "D99" }
function zbcfg.login(actor)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
svautoplay.die(actor)
jhxbbgame.log(actor,"x"..getbaseinfo(actor, 2),getconst(actor, "<$USERACCOUNT>"),getbaseinfo(actor, 1), "zbcfg.login---------------")
zbcfg.reload(actor,333, -1)
--<2D><><EFBFBD>аԵ<D0B0>
if jhxbbgame.timeSecAt(actor, "U10",os.time())
or VarInt(actor, "U10") < 1 then
jhxbbgame.SettimeSec(actor, "U10", 300,os.time())
end
setontimer(actor, 18, 1, 0, 1)
SetVarInt(actor, "D99", jhxbbgame.ticksec() + 1001118)
end
function sendability(actor, bb)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
-- if false and getgmlevel(actor) > 1 then
-- jhxbbgame.log(actor,
-- "sendability:ר<><D7A8>=",
-- getattlist(actor, "ר<><D7A8>")
-- ,getconst(actor, "<$ATTR[74]>")
-- ,getconst(actor, "<$ATTR[222]>")
-- --,tbl2json(attrtab(actor))
-- )--)
-- end
sendability6(actor)
end
function kflogin(actor)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
jhxbbgame.bfcall(actor, "kflogined", {})
release_print(actor, ".kflogin **= ")
--login(actor)
-- makebodyitemindexs(actor)
-- zbcfg.login(actor)
end
function kuafuend(actor)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
SetVarInt(actor,"N$kftime", os.time())
kuafusys.kend(actor)
jhxbbgame.ShowTopBtn(actor)
zbcfg.reload(actor,333, -1)
release_print(actor, ".kuafuend = ")
end
function bfsyscall19(actor, arg1, arg2)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local role_name = getbaseinfo(actor, 1)
release_print("<EFBFBD>յ<EFBFBD>֪ͨ", role_name, arg1, arg2)
local cfg = json2tbl(arg1) or {15,0}
delaygoto(actor, 888, "makebodyitemindexs,r,"..(cfg[1] or 16)..","..(cfg[2] or 0))
--makebodyitemindexs(actor,nil,cfg[1] or 16,cfg[2] or 0)
end
function makebodyitemindexs(actor, r, tp, offidx)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
offidx = tonumber(offidx) or 0
tp = tonumber(tp) or 17
if checkkuafu(actor) and not checkkuafuserver() then
--release_print("<22><><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QF")
r = nil
bfbackcall(19, getbaseinfo(actor, 2), tbl2json({tp, offidx}))
--return
end
local uid = getbaseinfo(actor, 2)
--repairall(actor)
local pbodyitem_index = { {}, {}, {}, {}, {}, {}, {} }
local itmInit = {}
pbodyitem_index[11] = {}
pbodyitem_index[20] = {}
pbodyitem_index[21] = {}
pbodyitem_index[22] = {}
pbodyitem_index[23] = {}
local ids = ""
local ty = { 1, 2, 3, 5 }
for k, v in pairs(zbcfg.eqpos) do
local id = jhxbbgame.BodyItem(actor, v)
if id then
ids = ids .. "," .. id
pbodyitem_index[11]["i"..id] = (pbodyitem_index[11]["i"..id] or 0) + 1
local cfg = jhxbbgame.zb[id]
if cfg then
pbodyitem_index[20][id] = cfg
if cfg[11] then
itmInit[id] = cfg[11]
end
if cfg[21] then
pbodyitem_index[21][id] = cfg
end
if cfg[10] then
pbodyitem_index[23][id] = cfg
end
if cfg[22] then
pbodyitem_index[22][id] = cfg
end
for key, i in pairs(ty) do
if cfg[i] then
pbodyitem_index[i][#pbodyitem_index[i]+1] = id
end
end
end
end
end
pbodyitem_index[10] = itmInit
jhxbbgame.log(actor,getbaseinfo(actor, 1),"make.bodyitemindexs = ", #ids, r,tp,offidx)
bodyitem_index[uid] = pbodyitem_index
if not checkkuafuserver() then
--if offidx < 0 then
zbcfg.init(actor, itmInit)
--end
if offidx > 0 then
zbcfg.uninit(actor, offidx)
end
-- else
-- if offidx < 0
-- then
-- zbcfg.initex(actor, itmInit)
-- end
-- if offidx > 0 then
-- zbcfg.uninit(actor, offidx)
-- end
end
end
function getbodyitemindexs(actor, mode)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
mode = mode or 1
local uid = getbaseinfo(actor, 2)
local pbodyitem_index = bodyitem_index[uid]
if pbodyitem_index then
return pbodyitem_index[mode]
end
zbcfg.reload(actor,888+mode*1000000)
return {}
-- makebodyitemindexs(actor, nil, 10000+mode)
-- return bodyitem_index[uid][mode]
--release_print("makebodyitemindexs = "..tostring(bodyitem_index[0]).." "..tostring(bodyitem_index[1]))
end
function bfsyscall18(actor, arg1, arg2)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local role_name = getbaseinfo(actor, 1)
--release_print("<22>յ<EFBFBD>֪ͨ", role_name, arg1, arg2)
ontimer18(actor)
end
--ÿ<><C3BF>ִ<EFBFBD><D6B4>,<2C><><EFBFBD><EFBFBD>Ҳִ<D2B2><D6B4>
function ontimer18(actor)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--setofftimer(actor, 18)
if checkkuafuserver()--~=checkkuafu(actor)
then
-- release_print("<22><><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ontimer18")
-- bfbackcall(18, getbaseinfo(actor, 2), "ÿ<><C3BF>ִ<EFBFBD><D6B4>")
return
end
jhxbbgame.LogLuaMem()
--local max_hp = getbaseinfo(actor, 10)
--release_print("ontimer18 = ", max_hp * 0.01, jhxbbgame.ticksec(), checkkuafu(actor))
local cnt = 0
local vdata = {
max_hp = getbaseinfo(actor, 10),
hp = getbaseinfo(actor, 9),
timecur = jhxbbgame.ticksec()
}
local myitems = getbodyitemindexs(actor, 23)
--local log = {}
for key, value in pairs(myitems) do
vdata.zb = key
if value and value.v then
local v = VarInt(actor, value.v)
--SetVarInt(actor, value.v,0)
--release_print(".ÿ<><C3BF>11buf = ", value.v,v,vdata.timecur)
if v > 0 and vdata.timecur <= v then
value[10](actor, vdata)
--release_print(".ÿ<><C3BF>22buf = ", value.v,VarInt(actor, value.v))
-- if then
-- log[key] = { value.v, v }
-- end
end
end
cnt = cnt + 1
end
-- if jhxbbgame.len(log) > 0 then
-- jhxbbgame.log(actor, ".ÿ<><C3BF>buf = ", tbl2json(log))
-- end
end
function boomRange(player, r, eff)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
r = tonumber(r)
local map_id = getbaseinfo(player, 3)
local x = getbaseinfo(player, 4)
local y = getbaseinfo(player, 5)
local monster_list = getmapmon(map_id, "", x, y, r)
local ret = #monster_list
local pos = jhxbbgame.rpos[r]
jhxbbgame.log(player, "boomRange----", #pos)
for key, value in pairs(pos) do
jhxbbgame.mapeff(player, eff, value.x + x, value.y + y)
end
if type(monster_list) == "table" then
for k, mon in pairs(monster_list) do
local mx = math.abs(getbaseinfo(mon, 4) - x)
local my = math.abs(getbaseinfo(mon, 5) - y)
jhxbbgame.log(player, "boomRange----", mx, my, r)
if (mx == r and my <= r)
or (mx <= r and my == r) then
ret = jhxbbgame.DecHP(mon, 0.11)
end
end
end
jhxbbgame.log(player, "*boomRange" .. ret .. ",eff:" .. eff)
end
function canpush(actor, target,hiter, magid,result)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--jhxbbgame.log(hiter,"*hiter",result)
-- jhxbbgame.log(target,"->target")
local ret = jhxbbgame.canpush(hiter, target)
if ret then
return 1
else
return 2
end
end
function jhxbbgame.canpush(self, tag)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local sr,tr = getbaseinfo(self, 39) , getbaseinfo(tag, 39)
local sl,tl = getbaseinfo(self, 6) , getbaseinfo(tag, 6)
local boret = (sr > tr)
or ((sr == tr) and (sl > tl))
boret = boret or zbcfg.GetBodyItem(self, zbcfg.idxs[7])
or zbcfg.GetBodyItem(self, zbcfg.idxs[8])
jhxbbgame.log(self, "*canpush:", boret,sr , tr,sl,tl)
return boret
end
function magtagfunc27(actor, target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
if isnotnull(target) then
if zbcfg.GetBodyItem(actor, zbcfg.idxs[7]) then
makeposion(target, 5, 1)
elseif zbcfg.GetBodyItem(actor, zbcfg.idxs[8]) then
makeposion(target, 5, 2)
end
end
end
function magtag11111func1003(actor, target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
if isnotnull(target) then
if isplayer(actor) then
local cnt = tonumber(jhxbbgame.CInt(actor, "<$ATTR[74]>")) * 2
jhxbbgame.sendmsg(actor,
getbaseinfo(target, 5) .. "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+" .. cnt)
end
end
end
function magtagfunc66111(actor, target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--<2D><><EFBFBD><EFBFBD><EFBFBD><09><><EFBFBD><EFBFBD>ն50%<25><><EFBFBD><EFBFBD>ǿ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>Ŀ<EFBFBD><C4BF>1<EFBFBD><31>
if isnotnull(target) then
--jhxbbgame.HintEff(target, "<22><><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>")
end
end
function magtagfunc71(actor, target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if isnotnull(target)
and jhxbbgame.canpush(actor, target) then
makeposion(target,5,1.5)
jhxbbgame.HintEff(target, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>")
jhxbbgame.HintEff(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>")
end
end
function magtagfunc2012(actor, target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
if isnotnull(target) then
if isplayer(actor) then
-- local cnt = tonumber(jhxbbgame.CInt(actor, "<$ATTR[74]>")) * 2
-- jhxbbgame.sendmsg(actor,
-- getbaseinfo(target, 5) .. "tag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+" .. cnt)
end
end
end
function addwd(actor, time, hint)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--changemode(actor,1,1)
if isplayer(actor) then
time = tonumber(time)
if checkhumanstate(actor, 11, 1) then
makeposion(actor, 0, 1, 0)
end
jhxbbgame.SettimeSec(actor, "N$<24>޵н<DEB5><D0BD><EFBFBD>ʱ<EFBFBD><CAB1>", time)
jhxbbgame.showeff(actor, 141, time)
jhxbbgame.log(actor, hint .. "+<2B>޵<EFBFBD>")
jhxbbgame.HintEff(actor, hint)
else
jhxbbgame.log(actor,getbaseinfo(actor,1), hint .. "+<2B><>gg<67><67>")
end
end
--<2D><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
function beginmagic(actor, skillId, skillName, target, x, y)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
beginmagic6(actor, skillId, skillName, target, x, y)
if "xdt316" == getbaseinfo(actor,3) and (skillId == 6 or skillId == 51) then
return false
end
--jhxbbgame.GMLog(actor, "*",skillName,skillId,getbaseinfo(actor,3))
--jhxbbgame.log(actor, skillName..".2...="..getskilldqcd(actor,skillName))
--skillrestcd(actor,skillId,0)
if VarInt(actor,"N$cd"..skillName) == 1 then
jhxbbgame.log(actor, "*<2A>ָ<EFBFBD>CD.",skillName..".2...="..getskilldqcd(actor,skillName))
SetVarInt(actor,"N$cd"..skillName,0)
setskilldeccd(actor,skillName,"=",0)
end
local vdata = { timecur = jhxbbgame.ticksec() }
if skillId == 2002 then
if jhxbbgame.timeSecAt(actor, "U138", vdata.timecur) then
jhxbbgame.sendmsg(actor, "CD300<EFBFBD><EFBFBD>")
return false
end
jhxbbgame.SettimeSec(actor, "N$<24>޵н<DEB5><D0BD><EFBFBD>ʱ<EFBFBD><CAB1>", 3)
jhxbbgame.SettimeSec(actor, "U138", 300)
makeposion(actor, 12, 3)
elseif skillId == 1002 then
local bohave = false
for key, value in pairs({ 7, 8, 9, 10, 11 }) do
if checkhumanstate(actor, value) then
bohave = true
break
end
end
if not bohave then
for i = 1, 8, 1 do
if checkhumanstate(actor, 12, i) then
bohave = true
break
end
end
end
if bohave and not jhxbbgame.timeSecAt(actor, "U019", vdata.timecur) then
jhxbbgame.SettimeSec(actor, "U019", 180, vdata.timecur)
delbuff(actor, 31126)
2024-12-20 22:02:16 +08:00
jhxbbgame.SettimeSec(actor, "N$<24>ƶ<EFBFBD><C6B6><EFBFBD>Ѫ", 0)
2024-12-23 01:17:14 +08:00
jhxbbgame.SettimeSec(actor, "N$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0)
2024-12-20 22:02:16 +08:00
2024-12-18 22:57:06 +08:00
delbuff(actor, 31124)
delbuff(actor, 31118)
delbuff(actor, 31119)
detoxifcation(actor, -1)
jhxbbgame.log(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*<2A><><EFBFBD><EFBFBD>")
jhxbbgame.HintEff(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*<2A><><EFBFBD><EFBFBD>")
end
return
elseif skillId == 1005 then
if jhxbbgame.timeSecAt(actor, "U139", vdata.timecur) then
jhxbbgame.sendmsg(actor, "CD300<EFBFBD><EFBFBD>.")
return false
end
jhxbbgame.SettimeSec(actor, "U139", 300)
local mapid = getbaseinfo(actor, 3)
local plays = getobjectinmap(mapid, x, y, 4, 1)
jhxbbgame.mapeff(actor, 42, x, y)
for key, value in pairs(plays) do
if not ispropertarget(actor, value) then
jhxbbgame.SettimeSec(value, "U150", 6)
jhxbbgame.log(value, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>")
jhxbbgame.sendmsg(value, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>")
end
end
elseif skillId == 10051 then
local timecur = jhxbbgame.ticksec()
if jhxbbgame.timeSecAt(actor, "U139", timecur) then
jhxbbgame.sendmsg(actor, "CD300<EFBFBD><EFBFBD>.")
return false
end
--jhxbbgame.SettimeSec(actor,"U139",300)
jhxbbgame.sendmsg(actor, "Boom.")
local eff = { 60450, 60451, 60452 }
for i = 1, 3 do
delaygoto(actor, i * 1000,
"boomRange," .. (i * 2) .. "," .. eff[i], 1)
end
end
local cnt = 0
local myitems = getbodyitemindexs(actor, 22)
vdata.max_hp = getbaseinfo(actor, 10) or 1
vdata.hp = getbaseinfo(actor, 9)
vdata.selfx = getbaseinfo(actor, 4)
vdata.selfy = getbaseinfo(actor, 5)
for key, value in pairs(myitems) do
vdata.zb = key
if zbcfg.cdpass(actor, vdata, nil, 2) then
--local cfg = zbcfg.a21[value]
local cfg = jhxbbgame.zb[key]
--jhxbbgame.log(actor,"addbuff.a21:",cfg,value)
if cfg and cfg[22]
and cfg[22](actor, target, actor, skillId, 0, 0, vdata)
then
--release_print(value, ".<2E>ͷż<CDB7><C5BC><EFBFBD>A = ", skillId)
zbcfg.cdupdate(actor, vdata, 3)
end
end
cnt = cnt + 1
end
end
--<2D>ܻ<EFBFBD>
local cdmon = {}
local posDamage = {}
local MDposxy = {}
local cdmon3 = {}
function FnPosDamage(sysobj, Hiter)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local cnt = posDamage[Hiter] or 0
local pos = MDposxy[Hiter]
if cnt >= 1 and (pos) then
cnt = cnt - 1
posDamage[Hiter] = cnt
grobaldelaygoto(1000, "FnPosDamage," .. Hiter)
local plays = getobjectinmap(pos[1], pos[2], pos[3], 2, 1)
jhxbbgame.log(sysobj, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶.", jhxbbgame.len(plays))
for key, value in pairs(plays or {}) do
local ret = jhxbbgame.DecHP(value, 0.2)
jhxbbgame.log(value, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶.<2E><><EFBFBD><EFBFBD> -20%", ret)
jhxbbgame.HintEff(value, "<EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ѫ<><D1AA>-20%")
end
end
end
local strdamageing = 0
local strdamageingcnt = 0
function struckdamage(actor, Hiter, Target, MagicId, Damage)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--struckdamage6(actor, Hiter, Target, MagicId, Damage)
local dtime = gettcount64()
local xbb = jhxbbgame
if false
--and hasbuff(actor, 31119)
and isplayer(Target)
then
xbb.log(Target,
"*struckdamage!" ,MagicId,
getbaseinfo(Target, 5),
ismon(Hiter),isplayer(Hiter))
--return 0
end
local vdata = { timecur = xbb.ticksec() }
svautoplay.struck(actor,Hiter,vdata)
local hp = isplayer(Hiter)
local hm = ismon(Hiter)
local monmax = getbaseinfo(Target,12)
if (not hp) and (not hm) and monmax > 0 then
xbb.log(Hiter,"212.monmax:",monmax)
return monmax
end
if isplayer(Target)
and xbb.timeSecAt(Target, "N$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>19", vdata.timecur) then
SetVarInt(Target, "N$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>19", 0)
xbb.sendmsg(Hiter, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>")
xbb.log(actor, Target, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>", Damage)
return 0
end
if isplayer(Target)
and xbb.timeSecAt(Target, "N$<24>޵н<DEB5><D0BD><EFBFBD>ʱ<EFBFBD><CAB1>", vdata.timecur) then
xbb.HintEff(Hiter, "Ŀ<EFBFBD><EFBFBD><EFBFBD>޵<EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>")
--jhxbbgame.HintEff(Target, "<22>޵<EFBFBD><DEB5><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>1")
xbb.log(actor, Target, ".<2E>޵<EFBFBD><DEB5><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>", Damage)
xbb.showeff(Target, 141, 1)
return 0
end
if strdamageing == vdata.timecur then
-- jhxbbgame.log(actor, "*Skip1. - ", strdamageingcnt,zbcfg.last,
-- MagicId,zbcfg.last2)
strdamageingcnt = strdamageingcnt + 1
return Damage
end
local retdam = Damage
if isplayer(Target)
and Target == actor then
strdamageing = vdata.timecur
vdata.max_hp = getbaseinfo(actor, 10) or 1
vdata.hp = getbaseinfo(actor, 9)
vdata.selfx = getbaseinfo(actor, 4)
vdata.selfy = getbaseinfo(actor, 5)
if isplayer(Hiter)
and isplayer(Target)
and Target == actor then
local myitems = getbodyitemindexs(actor, 3)
local cnt = 0
--release_print(jhxbbgame.len(myitems).."struck.111.damage = ", Damage, MagicId)
for i = 1, #myitems, 1 do
local value = myitems[i]
vdata.zb = value
if zbcfg.cdpass(actor, vdata, 3) then
local cfg = xbb.zb[value]
zbcfg.last = value
zbcfg.last2 = zbcfg.last
if cfg and cfg[3] and cfg[3](actor, Target, Hiter, MagicId, Damage, 0, vdata) then
zbcfg.cdupdate(actor, vdata, 3)
--jhxbbgame.log(actor, value, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB9A5> = ", Damage)
end
zbcfg.last = nil
end
cnt = cnt + 1
end
elseif ismon(Hiter) then
local myitems = getbodyitemindexs(actor, 5)
local mid = tonumber(getbaseinfo(Hiter, 55)) - 2665
--release_print(Hiter, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB9A5> = ", mid, mcd)
if mid == 1 then
local mcd = tonumber(cdmon[Hiter])
if vdata.timecur >= mcd then
cdmon[Hiter] = (vdata.timecur + 11)
posDamage[Hiter] = 5
MDposxy[Hiter] = { getbaseinfo(Hiter, 3), vdata.selfx, vdata.selfy }
--jhxbbgame.log(actor, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶.<2E><><EFBFBD><EFBFBD> -20%", jhxbbgame.any2str(false, MDposxy[Hiter]))
xbb.mapeff(actor, 60344, nil, nil, nil, 5)
grobaldelaygoto(1000, "FnPosDamage," .. Hiter)
end
elseif mid == 2 then
if not zbcfg.GetBodyItem(actor, zbcfg.idxs[2]) then
--local ret =
xbb.DecHP(actor, 0.4)
--jhxbbgame.log(actor, "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> -40%", ret)
--jhxbbgame.HintEff(actor, "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>")
end
elseif mid == 3 then
local mcd = tonumber(cdmon3[Hiter])
if vdata.timecur >= mcd
and (not zbcfg.GetBodyItem(actor, zbcfg.idxs[4])) then
cdmon3[Hiter] = (vdata.timecur + 30)
local ret = xbb.DecHP(actor, 0.1)
makeposion(actor, 0, 10, ret)
addbuff(actor, 31126, 10)
--jhxbbgame.log(actor, "<22>ж<EFBFBD><D0B6>˺<EFBFBD> -10%", ret)
xbb.HintEff(actor, "<EFBFBD>ж<EFBFBD><EFBFBD>˺<EFBFBD>")
end
end
local cnt = 0
for i = 1, #myitems, 1 do
local value = myitems[i]
vdata.zb = value
if zbcfg.cdpass(actor, vdata, 5) then
local cfg = xbb.zb[value]
zbcfg.last = value
zbcfg.last2 = zbcfg.last
if cfg and cfg[5] and cfg[5](actor, Target, Hiter, MagicId, Damage, 0, vdata) then
zbcfg.cdupdate(actor, vdata, 3)
--if > 0 then
--jhxbbgame.log(value, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB9A5> = ", Damage)
--end
end
zbcfg.last = nil
end
cnt = cnt + 1
end
end
local v = VarInt(actor, "D97")
if v > 0 then
--jhxbbgame.log(actor, "*<2A>ž<EFBFBD><C5BE><EFBFBD>ħ<EFBFBD><C4A7>.<2E><>Ѫ<EFBFBD><D1AA> - ", v)
if v < retdam then
retdam = retdam - v
v = 0
else
v = v - retdam
retdam = 0
end
xbb.showeff(actor, 141)
SetVarInt(actor, "D97", v)
end
local xs = getbaseinfo(actor, 51, 223)
if (vdata.pwRate and vdata.pwRate ~= 1) or xs > 0 then
vdata.pwRate = (vdata.pwRate or 1) - (tonumber(getbaseinfo(actor, 51, 223)) / 100)
if vdata.pwRate < 0 then
--jhxbbgame.log(actor, "<22>˺<EFBFBD>.<2E><><EFBFBD><EFBFBD> = ", vdata.max_hp, vdata.pwRate)
retdam = 0
else
retdam = math.max(math.min(retdam * vdata.pwRate, 1000 * 10000), 0)
end
end
if zbcfg.GetBodyItem(actor, zbcfg.idxs[13]) then
local mhp = getbaseinfo(actor, 10)
local v = math.floor(mhp * 0.33)
if v > 0 and retdam > v then
--jhxbbgame.log(actor, "<22>׾<EFBFBD><D7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD> = ", v)
retdam = math.min(retdam, v)
end
end
if zbcfg.GetBodyItem(actor, zbcfg.idxs[14]) then
local hpr = vdata.hp / vdata.max_hp
if hpr <= 0.5 then
local ret = math.floor(vdata.max_hp * 0.1)
--jhxbbgame.log(actor, "ĩ<><C4A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD> = ", vdata.max_hp, ret)
--jhxbbgame.HintEff(actor, "ĩ<><C4A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>" .. ret)
retdam = math.min(retdam, ret)
end
end
end
if strdamageingcnt > 0 then
xbb.log(actor, "*Skip.end. - ", strdamageingcnt,zbcfg.last,
MagicId,zbcfg.last2)
strdamageingcnt = 0
end
strdamageing = 0
--release_print("attack.ret.damage = ",Damage,cnt)
dtime = gettcount64()-dtime
if dtime >= 60 then
xbb.log(actor, getbaseinfo(actor, 1), "*dtime.end. - ", dtime,zbcfg.last,
MagicId,zbcfg.last2, retdam)
end
return retdam
end
local attdamageing = 0
local attdamageingcnt = 0
function attackdamage(actor, -- object <09><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
Target, -- object <09>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD>
Hiter, -- object <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MagicId, -- integer <09><><EFBFBD><EFBFBD>ID
Damage, -- integer <09>˺<EFBFBD>
Model -- integer <09><><EFBFBD><EFBFBD>64_23.10.24<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ģʽ
)
--attacklong(actor, Target, Hiter, MagicId)
-- if --true
-- false
-- then
-- jhxbbgame.GMLog(Hiter, "*Att:",Model,MagicId,Damage,getbaseinfo(Target, 9),getbaseinfo(Target, 10))
-- end
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>1= ", Model, MagicId,getbaseinfo(Target,12))
if Model ~= 0 then
return Damage
end
local xbb = jhxbbgame
2024-12-23 01:17:14 +08:00
local hp = isplayer(Hiter)
2024-12-18 22:57:06 +08:00
-- local stime = gettcount64()
kuafusys.pking(Target, actor,Damage)
2024-12-23 01:17:14 +08:00
if hp
and jhxbbgame.timeSecAt(Hiter, "N$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") then
2024-12-18 22:57:06 +08:00
xbb.sendmsg(Hiter, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч")
xbb.log(Hiter, "*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч= ")
return 0
end
-- if isplayer(actor)
-- and ismon(Target)
-- --and hasbuff(actor, 31119)
-- then
-- --jhxbbgame.sendmsg(actor, MagicId.."attackdamage!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч"..getbaseinfo(Target, 5))
-- return 0
-- end
-- if isplayer(actor)
-- and ismon(Target)
-- --and hasbuff(actor, 31119)
-- then
-- --jhxbbgame.sendmsg(actor, Model.."attackdamage!"..getbaseinfo(Target, 5))
-- --return 0
-- end
if hp
-- and Model == 3
and MagicId == 1003 then
-- local cnt = jhxbbgame.CInt(Hiter,"<$ATTR[74]>")
-- cnt = jhxbbgame.DecHP(Target, cnt,101)
-- jhxbbgame.sendmsg(Hiter, getbaseinfo(Target, 5) .. "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+" .. Model)
return 0
end
local retdam = Damage
local vdata = {
dam = 0,
timecur = xbb.ticksec(),
rate = math.random(1, 10000),
hp = getbaseinfo(actor, 9),
max_hp = getbaseinfo(actor, 10),
tmax_hp = getbaseinfo(Target, 10),
thp = getbaseinfo(Target, 9)
}
attackdamage6(actor, Target, Hiter, MagicId, Damage, Model,vdata)
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>6= ", Model, MagicId,getbaseinfo(Target,12))
local hm = ismon(Hiter)
local tp = isplayer(Target)
local tm = ismon(Target)
local monmax = getbaseinfo(Target,12)
if (not hp) and (not hm) and monmax > 0 then
--jhxbbgame.log(Hiter,"11.monmax:",monmax)
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>.12= ", Model, MagicId,getbaseinfo(Target,12))
return monmax
end
vdata.selfx = getbaseinfo(actor, 4)
vdata.selfy = getbaseinfo(actor, 5)
--release_print("attack.111.damage = ", Damage, MagicId)
2024-12-23 01:17:14 +08:00
-- if attdamageing == vdata.timecur then
-- attdamageingcnt = attdamageingcnt + 1
2024-12-18 22:57:06 +08:00
-- jhxbbgame.log(actor, "*SkipAtt. - ",attdamageingcnt, zbcfg.last,
-- MagicId,zbcfg.last2)
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>.13= ", Model, MagicId,getbaseinfo(Target,12))
2024-12-23 01:17:14 +08:00
-- return Damage
-- end
2024-12-18 22:57:06 +08:00
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>.15= ", Model, MagicId,getbaseinfo(Target,12))
local function k95(aretdam)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
if tm and xbb.MonCanBuf(Target) then
if getflagstatus(actor, 103) == 1 and
(vdata.thp / vdata.tmax_hp)>=0.96 then
--jhxbbgame.HintEff(actor, "׹<><D7B9>ʹ")
aretdam = aretdam + vdata.tmax_hp * 0.1
end
end
return aretdam
end
if tp then
if xbb.timeSecAt(Target, "D96", vdata.timecur) then
xbb.sendmsg(Target, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
elseif xbb.timeSecAt(Target, "N$<24>޵н<DEB5><D0BD><EFBFBD>ʱ<EFBFBD><CAB1>", vdata.timecur) then
xbb.sendmsg(Target, "<EFBFBD>޵<EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>")
else
local myitems = getbodyitemindexs(actor, 1)
local cnt = 0
---release_print("attack.222.damage = ", jhxbbgame.len(myitems))
for i = 1, #myitems, 1 do
local value = myitems[i]
vdata.zb = value
if zbcfg.cdpass(actor, vdata, 1) then
local cfg = xbb.zb[value]
zbcfg.last = value
zbcfg.last2 = zbcfg.last
if cfg and cfg[1] and cfg[1](actor, Target, Hiter, MagicId, Damage, 0, vdata) then
zbcfg.cdupdate(actor, vdata, 1)
--jhxbbgame.log(value, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ", Damage)
end
zbcfg.last = nil
end
cnt = cnt + 1
end
local vv = VarInt(actor, "U018")
2024-12-23 01:17:14 +08:00
vv = vv + getbaseinfo(actor, 51, 232)/ 100
2024-12-18 22:57:06 +08:00
if vv > 0 then
vv = vdata.thp*(vv / 100)
--local hpv =
xbb.DecHP(Target, vv)
2024-12-23 01:17:14 +08:00
--jhxbbgame.GMLog(Hiter, "*<2A><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8>ٷֱ<D9B7>= ", vv, getbaseinfo(actor, 51, 232))
2024-12-18 22:57:06 +08:00
end
end
elseif tm then
local mid1 = tonumber(getbaseinfo(Target, 55))
if 2679 == mid1 then
if MagicId > 100 then
retdam = 1
end
elseif monmax <= 0 then
local mid = mid1 - 2665
--jhxbbgame.GMLog(Hiter, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>= ", mid, mid1,getbaseinfo(Target,12))
if (mid >= 1) and (mid <= 8) then
local kv = VarInt(actor, "N$<24><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>")
if (kv > 0) then
kv = xbb.DecHP(Target,kv,119,nil,nil,nil,nil,kv)
--jhxbbgame.HintEff(actor, "<22><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>+"..kv)
end
end
if mid == 3 then
if (not zbcfg.GetBodyItem(actor, zbcfg.idxs[4])) then
--jhxbbgame.log(actor, "<22>Ĵ<EFBFBD>·<EFBFBD><C2B7>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", ret)
xbb.HintEff(actor, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
return k95(0)
end
elseif mid == 4 then
if (not zbcfg.GetBodyItem(actor, zbcfg.idxs[2]))
or (not zbcfg.GetBodyItem(actor, zbcfg.idxs[4])) then
--jhxbbgame.log(actor, "<22><><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", ret)
xbb.HintEff(actor, "<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
return k95(0)
end
elseif mid == 5 then
if (not zbcfg.GetBodyItem(actor, zbcfg.idxs[1])) then
--jhxbbgame.log(actor, "<22><><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", ret)
xbb.HintEff(actor, "<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
return k95(0)
else
return retdam + vdata.tmax_hp * 0.01
end
elseif mid == 6 then
if (not zbcfg.GetBodyItem(actor, zbcfg.idxs[5])) then
--jhxbbgame.log(actor, "<22>ߴ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD><EFBFBD>", ret)
xbb.HintEff(actor, "<EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD>١<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
return k95(0)
end
end
if vdata.hp < vdata.max_hp then
local monxx = xbb.CInt(actor, "<$ATTR[209]>")
if hasbuff(actor, 31126) or
hasbuff(actor, 31132) then
--jhxbbgame.HintEff(actor, "*<2A>Թ<EFBFBD><D4B9><EFBFBD>Ѫ<EFBFBD><D1AA>Ч" .. monxx)
--jhxbbgame.log(actor, "*<2A>Թ<EFBFBD><D4B9><EFBFBD>Ѫ<EFBFBD><D1AA>Ч", monxx)
monxx = 0
end
if monxx > 0 then
--local ret =
xbb.IncHP(actor, monxx)
--jhxbbgame.log(actor, "*<2A>Թ<EFBFBD><D4B9><EFBFBD>Ѫ+", monxx,ret)
end
end
local myitems = getbodyitemindexs(actor, 2)
local cnt = 0
--jhxbbgame.GMLog(actor,jhxbbgame.len(myitems),"attack.ismon.damage = ", Damage, MagicId)
for i = 1, #myitems, 1 do
local value = myitems[i]
vdata.zb = value
--jhxbbgame.GMLog(actor,value, "*-cd.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ", Target)
if zbcfg.cdpass(actor, vdata, 2) then
local cfg = xbb.zb[value]
zbcfg.last = value
zbcfg.last2 = zbcfg.last
--jhxbbgame.GMLog(actor,value, "*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ", Target)
if cfg and cfg[2] and cfg[2](actor, Target, Hiter, MagicId, Damage, Model, vdata) then
zbcfg.cdupdate(actor, vdata, 1)
if 0 > 0 then
--jhxbbgame.log(actor,value, ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ", Target)
end
end
zbcfg.last = nil
end
cnt = cnt + 1
end
end
local vv = tonumber(getconst(actor, "<$ATTR[231]>"))
if vv > 0 then
local dc = tonumber(getconst(actor, "<$ATTR[4]>"))
local dv = dc*(vv / 10000)
--local hpv =
xbb.DecHP(Target, dv,116)
--jhxbbgame.log(Hiter, Model,MagicId,"*<2A>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>= ", hpv)
end
if monmax > 0 then
retdam = math.min(retdam,monmax)
end
end
2024-12-23 01:17:14 +08:00
-- if attdamageingcnt > 0 then
-- xbb.log(actor, "*SkipAtt.end. - ", attdamageingcnt,zbcfg.last,
-- MagicId,zbcfg.last2)
-- attdamageingcnt = 0
-- end
-- attdamageing = 0
2024-12-18 22:57:06 +08:00
--release_print("attack.ret.damage = ",Damage,cnt)
if vdata.pwRate and vdata.pwRate ~= 1 then
retdam = math.max(math.min(retdam * vdata.pwRate, 1000 * 10000), 0)
end
-- stime = gettcount64()-stime
-- if stime >= 60 then
-- jhxbbgame.log(actor, getbaseinfo(actor, 1), "*stime.end. - ", stime,zbcfg.last,
-- MagicId,zbcfg.last2, retdam)
-- end
return k95(retdam)
end
function zbcfg.idx(actor, item)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
return getiteminfo(actor, item, 2)
end
function zbcfg.build()
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
zbcfg.zbx = {}
zbcfg.zbd = {}
zbcfg.zbr = {}
zbcfg.zbi = {}
zbcfg.a21 = {}
zbcfg.tim = {}
for key, value in pairs(jhxbbgame.zb) do
if value and value[15] then
zbcfg.zbx[key] = value[15]
end
if value and value[16] then
zbcfg.zbd[key] = value[16]
end
if value and value[17] then
zbcfg.zbr[key] = value[17]
end
if value and value[21] then
zbcfg.a21[key] = value[21]
end
if value and value[10] then
zbcfg.tim[key] = value
end
end
jhxbbgame.log(nil,".zbcfg.build(zbx,zbd,zbr) = ",
jhxbbgame.len(zbcfg.zbx),
jhxbbgame.len(zbcfg.zbd),
jhxbbgame.len(zbcfg.zbr),
jhxbbgame.len(zbcfg.tim),
jhxbbgame.len(zbcfg.a21))
end
function attackdamagebb(actor, -- object <09><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
Target, -- object <09>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD>
Hiter, -- object <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MagicId, -- integer <09><><EFBFBD><EFBFBD>ID
Damage -- integer <09>˺<EFBFBD>
)
--jhxbbgame.log(actor, ".zbcfg.attackdamagebb() = ")
--jhxbbgame.DecHP(Target, 10000)
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><35><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20000<30>̶<EFBFBD><CCB6>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>60<36><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>޵<EFBFBD>״̬<D7B4><CCAC>cd180<38>
if ismon(Target) and jhxbbgame.MonCanBuf(Target) then
jhxbbgame.DecHP(Target, 20000,101)
return 0
else
return Damage
end
end
2024-12-20 22:02:16 +08:00
function zbcfg.run(actor, r)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-20 22:02:16 +08:00
r = r or 1
2024-12-18 22:57:06 +08:00
--jhxbbgame.log(actor,"*run",getconst(actor,"<$MAP>"))
kuafusys.run(actor)
2024-12-20 22:02:16 +08:00
if jhxbbgame.timeSecAt(actor, "N$<24>ƶ<EFBFBD><C6B6><EFBFBD>Ѫ") then
2024-12-18 22:57:06 +08:00
--local ret =
2024-12-20 22:02:16 +08:00
jhxbbgame.DecHP(actor, 0.05*r)
2024-12-18 22:57:06 +08:00
jhxbbgame.showeff(actor, 14)
--jhxbbgame.HintEff(actor, "<22>涾")
end
end
function attacklong(actor, Target, Hiter, MagicId)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
end
function humanhpex(actor, monster_guid)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
if monster_guid then
local mapID = getbaseinfo(actor, 3)
local monobj = getmonbyuserid(mapID, monster_guid)
if isnotnull(monobj) and jhxbbgame.MonCanBuf(monobj) then
-- local x = getbaseinfo(actor, 4)
-- local y = getbaseinfo(actor, 5)
--monmission(monobj,tostring(x)..";",tostring(y)..";",0)
local damage = getbaseinfo(actor, 20)
--sendattackeff(monobj,107,damage,"*")
humanhp(monobj, "-", damage, 1, 0, actor, 1, 1)
--makeposion(monobj,0,3,1,1)
end
end
end
function qixinxin(actor,a)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local vdata ={}
vdata.m = getbaseinfo(actor, 3)
vdata.selfx = getbaseinfo(actor, 4)
vdata.selfy = getbaseinfo(actor, 5)
local cnt = tonumber(getconst(actor, "<$ATTR[74]>"))
local plays = getobjectinmap(vdata.m ,vdata.selfx,vdata.selfy,4,2)
dotaunt(actor,5,999999)
--jhxbbgame.log(actor, "*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն.",jhxbbgame.len(plays),cnt)
for i = 1, #plays, 1 do
local val = plays[i]
local ret = jhxbbgame.DecHP(val,cnt,101,nil,nil,actor)
sendattackeff(val,101, ret)
--sendattackeff(actor,113,ret)
--jhxbbgame.HintEff(actor, "<22>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD>.-100%="..ret)
end
end
function modaodao(actor,Target)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
--SetVarInt(actor, "N$ħ<><C4A7>ǧ<EFBFBD><C7A7>CD", 0)
local vdata ={}
vdata.selfx = getbaseinfo(actor, 4)
vdata.selfy = getbaseinfo(actor, 5)
local cfg = {}
if isnotnull(Target) then
cfg = { getbaseinfo(Target, 2) }
end
local mapID = getbaseinfo(actor, 3)
local mons = getobjectinmap(mapID, vdata.selfx,vdata.selfy, 6, 2)
if #mons < 2 then return end
--local pw = tonumber(getconst(actor, "<$MAXDC>"))
--jhxbbgame.sendmsg(actor, "ħ<><C4A7>ǧ<EFBFBD><C7A7>:" .. pw)
dotaunt(actor, 8, 999999)
for i, mon in ipairs(mons or {}) do
local mid1 = tonumber(getbaseinfo(mon, 55))
if Target ~= mon and 2679 ~= mid1 then
local mid = getbaseinfo(mon, 2)
cfg[#cfg + 1] = mid
delaygoto(actor, 200 * i, "humanhpex," .. mid, 0)
--jhxbbgame.DecHP(mon, pw, nil, nil, nil, actor)
if #cfg >= 8 then
break
end
end
end
sendluamsg(actor, 0xeff, 0, 0, 23, tbl2json(cfg))
end
function attack(actor, Target, Hiter, MagicId)
2024-12-23 01:17:14 +08:00
local jhxbbgame = jhxbbgame
2024-12-18 22:57:06 +08:00
local vdata = { timecur = jhxbbgame.ticksec() }
local gb = getbaseinfo
--attack6(actor, Target, Hiter, MagicId)
--sendluamsg(actor, 0xeff, 10,
--0,60549,getbaseinfo(actor,2))
--jhxbbgame.log(Hiter,"*60546")
if MagicId == 56 then
sendattackeff(actor, 114,1)
elseif MagicId == 66 then
sendattackeff(actor, 115,1)
elseif MagicId == 26 then
sendattackeff(actor, 118,1)
end
if isplayer(Target) then
jhxbbgame.SettimeSec(actor,"U27",5,os.time())
kuafusys.pking(Target)
kuafusys.pking(actor)
jhxbbgame.SetPKFlag(Target, 2)
jhxbbgame.SetPKFlag(Hiter, 3)
elseif ismon(Target) then
jhxbbgame.SettimeSec(actor,"U27",3,os.time())
svautoplay.attack(actor, vdata)
if checkkuafuserver() then
local monxx = jhxbbgame.CInt(actor, "<$ATTR[224]>")
if monxx > 0 then
jhxbbgame.DecHP(Target,monxx,107,
nil,nil,nil,nil,monxx+1)
sendattackeff(Target,107,monxx,actor)
--jhxbbgame.HintEff(actor, "׹<><D7B9>ʹ11")
end
end
if jhxbbgame.MonCanBuf(Target) then
local mid1 = tonumber(gb(Target, 55))
if 2679 ~= mid1 then
makeposion(Target, 0, 3)
local cnt = 0
vdata.max_hp = gb(actor, 10) or 1
vdata.hp = gb(actor, 9)
vdata.m = gb(actor, 3)
vdata.selfx = gb(actor, 4)
vdata.selfy = gb(actor, 5)
-- local myitems = getbodyitemindexs(actor, 21)
-- for key, value in pairs(myitems) do
-- vdata.zb = key
-- if zbcfg.cdpass(actor, vdata) then
-- --local cfg = zbcfg.a21[value]
-- local cfg = jhxbbgame.zb[key]
-- --jhxbbgame.log(actor,"addbuff.a21:",cfg,value)
-- if cfg and cfg[21] and cfg[21](actor, Target, Hiter, MagicId, 0, 0, vdata) then
-- --release_print(value, ".<2E><><EFBFBD><EFBFBD><EFB1BB><EFBFBD><EFBFBD>A = ", 0)
-- zbcfg.cdupdate(actor, vdata, 3)
-- end
-- end
-- cnt = cnt + 1
-- end
--<2D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EAB1AC>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>ʱ3<CAB1><33><EFBFBD><EFBFBD><EFBFBD>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD>ܣ<EFBFBD>
--<2D><>5x5<78><35>Χ<EFBFBD>ڵĵ<DAB5><C4B5>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD>100%<25><><EFBFBD>и<EFBFBD><D0B8>˺<EFBFBD><CBBA><EFBFBD>
local bb = (math.random(1,10000)<=300)
--jhxbbgame.HintEff(actor, tostring(jhxbbgame.GetRate).."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն.-100%="..tostring(bb))
if true
and bb
and (VarInt(actor, "U251") > os.time())
then
delaygoto(actor, 100, "qixinxin,"..Target , 1)
jhxbbgame.mapSelfeff(actor,60518)
sendattackeff(actor,113, cnt,actor)
end
if getflagstatus(actor, 102) == 1
and (math.random(1,10000)<=900)
and not jhxbbgame.timeSecAt(actor, "N$ħ<><C4A7>ǧ<EFBFBD><C7A7>CD", vdata.timecur)
then
jhxbbgame.SettimeSec(actor,"N$ħ<><C4A7>ǧ<EFBFBD><C7A7>CD",10)
--delaygoto(actor, 1, "modaodao,"..Target , 1)
modaodao(actor,Target)
end
end
end
end
end
release_print(".zbcfg.load() = ")