From b389173ce8e82f89c7d6ac3c736b3510abe49c31 Mon Sep 17 00:00:00 2001 From: qatby Date: Thu, 26 Dec 2024 00:24:17 +0800 Subject: [PATCH] 111111111 --- equipeff.lua | 189 ++++++++++++++++++++++++++++----------------------- texbb.lua | 2 +- xbbdbg.lua | 123 +++++++++++++++++++++++++++++---- 3 files changed, 217 insertions(+), 97 deletions(-) diff --git a/equipeff.lua b/equipeff.lua index 8879b57..5f0b42f 100644 --- a/equipeff.lua +++ b/equipeff.lua @@ -1,4 +1,44 @@ local zbcfg = zbcfg + +local monmp = +{ + + [2675]= 1,-- 兽人 + [2676]= 500,--|3#10#45|3#12#45 趣味任务·镖车 + [2677]= 500,--|3#10#45|3#12#45 高级镖车 + [2678]= 500,--|3#10#45|3#12#45 超级镖车 + [2679]= 1,-- 送财童子 + [2680]= 1,-- 地狱骷髅(斧) + [2681]= 1,-- 地狱骷髅(锤) + [2682]= 1,-- 地狱骷髅(剑) + [2683]= 1,-- 地狱骷髅(刀) + [2684]= 1,-- 地狱骷髅(鞭) + [2685]= 1,-- 地狱骷髅(戟) + [2686]= 6,-- 守护者 + [2687]= 9,-- 亡灵 + [2688]= 8,-- 影魅魔灵 + [2689]= 8,-- 幽蓝冰魔 + [2690]= 8,-- 炎狱魔蜥 + [2691]= 8,-- 血咒狂魔 + [2692]= 8,-- 风暴魔鸦 + [2693]= 8,-- 幻梦魔蝶 + [2694]= 8,-- 深渊魔骸 + [2695]= 7,-- 萨满 + [2696]= 8,-- 灵魂 + [2697]= 1,-- 灵魂摆渡王 + [2699]= 99,-- 意念掌控者 + [2700]= 99,-- 记忆抹杀者 + [2701]= 99,-- 时空潜行者 + [2702]= 99,-- 巨龙驾驭者 + [2703]= 99,-- 邪恶守护者 + [2704]= 99,-- 亡魂守灵者 + [2705]= 99,-- 恐惧支配者蓝焰翼龙 + [2706]= 99,-- 宝藏巨蟹 + [2707]= 99,-- 孤魂 + [2708]= 99,-- 野鬼 + [2709]= 99,-- 鬼王 + +} function takeonex(actor, -- object 玩家对象 item, --object 物品对象 where, --integer 穿/脱位置 @@ -231,7 +271,7 @@ end function zbcfg.GetBodyItem(actor, i, cnt,log) local jhxbbgame = jhxbbgame cnt = cnt or 1 - local uid = getbaseinfo(actor, 2) + local uid = actor--getbaseinfo(actor, 2) local Itma = bodyitem_index[uid] if not Itma then zbcfg.reload(actor,555) @@ -413,7 +453,7 @@ function makebodyitemindexs(actor, r, tp, offidx) --return end - local uid = getbaseinfo(actor, 2) + local uid = actor--getbaseinfo(actor, 2) --repairall(actor) local pbodyitem_index = { {}, {}, {}, {}, {}, {}, {} } local itmInit = {} @@ -477,7 +517,7 @@ end function getbodyitemindexs(actor, mode) local jhxbbgame = jhxbbgame mode = mode or 1 - local uid = getbaseinfo(actor, 2) + local uid = actor--getbaseinfo(actor, 2) local pbodyitem_index = bodyitem_index[uid] if pbodyitem_index then return pbodyitem_index[mode] @@ -808,8 +848,6 @@ function FnPosDamage(sysobj, Hiter) end end -local strdamageing = 0 -local strdamageingcnt = 0 function struckdamage(actor, Hiter, Target, MagicId, Damage) local jhxbbgame = jhxbbgame --struckdamage6(actor, Hiter, Target, MagicId, Damage) @@ -817,26 +855,31 @@ function struckdamage(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 + -- 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) + xbb.autoplay.struck(actor,Hiter,vdata) + local hp = getbaseinfo(Hiter,-1) local hm = ismon(Hiter) + local tp = getbaseinfo(Target,-1) + --local tm = ismon(Target) 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) + -- if ((xbb.attfundis or 0) == 1) then + -- return Damage + -- end + if tp and xbb.timeSecAt(Target, "N$万里雷霆衣19", vdata.timecur) then SetVarInt(Target, "N$万里雷霆衣19", 0) xbb.sendmsg(Hiter, "万里雷霆衣!免疫伤害") @@ -844,7 +887,7 @@ function struckdamage(actor, Hiter, Target, MagicId, Damage) return 0 end - if isplayer(Target) + if tp and xbb.timeSecAt(Target, "N$无敌结束时间", vdata.timecur) then xbb.HintEff(Hiter, "目标无敌中!免疫伤害") --jhxbbgame.HintEff(Target, "无敌中!免疫伤害1") @@ -852,22 +895,16 @@ function struckdamage(actor, Hiter, Target, MagicId, 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) + if tp and Target == actor then - strdamageing = vdata.timecur + --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) + if hp + and tp and Target == actor then local myitems = getbodyitemindexs(actor, 3) local cnt = 0 @@ -887,7 +924,7 @@ function struckdamage(actor, Hiter, Target, MagicId, Damage) end cnt = cnt + 1 end - elseif ismon(Hiter) then + elseif hm then local myitems = getbodyitemindexs(actor, 5) local mid = tonumber(getbaseinfo(Hiter, 55)) - 2665 --release_print(Hiter, ".被怪物攻击 = ", mid, mcd) @@ -989,12 +1026,6 @@ function struckdamage(actor, Hiter, Target, MagicId, Damage) 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 @@ -1007,8 +1038,6 @@ function struckdamage(actor, Hiter, Target, MagicId, Damage) return retdam end -local attdamageing = 0 -local attdamageingcnt = 0 function attackdamage(actor, -- object 玩家对象 Target, -- object 受击对象 Hiter, -- object 攻击对象 @@ -1024,16 +1053,17 @@ function attackdamage(actor, -- object -- end --jhxbbgame.GMLog(Hiter, ".怪物被攻击1= ", Model, MagicId,getbaseinfo(Target,12)) - - if Model ~= 0 then + + local xbb = jhxbbgame + if (Model ~= 0) --or ((xbb.attfundis or 0) == 1) + then return Damage end - local xbb = jhxbbgame local hp = isplayer(Hiter) - -- local stime = gettcount64() + local stime = gettcount64() kuafusys.pking(Target, actor,Damage) if hp - and jhxbbgame.timeSecAt(Hiter, "N$束缚中") then + and xbb.timeSecAt(Hiter, "N$束缚中") then xbb.sendmsg(Hiter, "束缚中!攻击无效") xbb.log(Hiter, "*束缚中.攻击无效= ") return 0 @@ -1082,7 +1112,8 @@ function attackdamage(actor, -- object local hm = ismon(Hiter) local tp = isplayer(Target) local tm = ismon(Target) - local monmax = getbaseinfo(Target,12) + local tmid = (tm and getbaseinfo(Target, 55)) or 0 + local monmax = (tm and monmp[tmid] or 0) or 0 if (not hp) and (not hm) and monmax > 0 then --jhxbbgame.log(Hiter,"11.monmax:",monmax) --jhxbbgame.GMLog(Hiter, ".怪物被攻击.12= ", Model, MagicId,getbaseinfo(Target,12)) @@ -1106,21 +1137,28 @@ function attackdamage(actor, -- object local function k95(aretdam) - local jhxbbgame = jhxbbgame - if tm and xbb.MonCanBuf(Target) then + local jhxbbgame = jhxbbgame + if tm and (monmax <= 0) then if getflagstatus(actor, 103) == 1 and (vdata.thp / vdata.tmax_hp)>=0.96 then --jhxbbgame.HintEff(actor, "坠天使") aretdam = aretdam + vdata.tmax_hp * 0.1 end end + stime = gettcount64()-stime + if stime >= 60 then + xbb.log(actor, getbaseinfo(actor, 1), "*stime.end. - ", stime,zbcfg.last, + MagicId,zbcfg.last2, retdam) + end return aretdam end if tp then if xbb.timeSecAt(Target, "D96", vdata.timecur) then xbb.sendmsg(Target, "九天繁星衣免疫中") + retdam = 0 elseif xbb.timeSecAt(Target, "N$无敌结束时间", vdata.timecur) then xbb.sendmsg(Target, "无敌中!免疫伤害") + retdam = 0 else local myitems = getbodyitemindexs(actor, 1) local cnt = 0 @@ -1151,7 +1189,7 @@ function attackdamage(actor, -- object end end elseif tm then - local mid1 = tonumber(getbaseinfo(Target, 55)) + local mid1 = tmid--tonumber(getbaseinfo(Target, 55)) if 2679 == mid1 then if MagicId > 100 then retdam = 1 @@ -1197,7 +1235,7 @@ function attackdamage(actor, -- object end end if vdata.hp < vdata.max_hp then - local monxx = xbb.CInt(actor, "<$ATTR[209]>") + local monxx = getbaseinfo(actor, 51, 209)--xbb.CInt(actor, "<$ATTR[209]>") if hasbuff(actor, 31126) or hasbuff(actor, 31132) then --jhxbbgame.HintEff(actor, "*对怪吸血无效" .. monxx) @@ -1235,9 +1273,9 @@ function attackdamage(actor, -- object end end - local vv = tonumber(getconst(actor, "<$ATTR[231]>")) + local vv = getbaseinfo(actor, 51, 231)--tonumber(getconst(actor, "<$ATTR[231]>")) if vv > 0 then - local dc = tonumber(getconst(actor, "<$ATTR[4]>")) + local dc = getbaseinfo(actor, 20)--tonumber(getconst(actor, "<$ATTR[4]>")) local dv = dc*(vv / 10000) --local hpv = xbb.DecHP(Target, dv,116) @@ -1260,11 +1298,7 @@ function attackdamage(actor, -- object 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 @@ -1382,7 +1416,7 @@ function qixinxin(actor,a) end end -function modaodao(actor,Target) +function modaodao(actor) local jhxbbgame = jhxbbgame --SetVarInt(actor, "N$魔刀千刃CD", 0) local vdata ={} @@ -1390,9 +1424,9 @@ function modaodao(actor,Target) vdata.selfy = getbaseinfo(actor, 5) local cfg = {} - if isnotnull(Target) then - cfg = { getbaseinfo(Target, 2) } - end + -- if isnotnull(Target) then + -- cfg = { getbaseinfo(Target, 2) } + -- end local mapID = getbaseinfo(actor, 3) local mons = getobjectinmap(mapID, vdata.selfx,vdata.selfy, 6, 2) @@ -1402,7 +1436,7 @@ function modaodao(actor,Target) 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 + if 2679 ~= mid1 then local mid = getbaseinfo(mon, 2) cfg[#cfg + 1] = mid delaygoto(actor, 200 * i, "humanhpex," .. mid, 0) @@ -1426,6 +1460,9 @@ function attack(actor, Target, Hiter, MagicId) --jhxbbgame.log(Hiter,"*60546") + -- if ((jhxbbgame.attfundis or 0) == 1) then + -- return + -- end if MagicId == 56 then sendattackeff(actor, 114,1) elseif MagicId == 66 then @@ -1459,27 +1496,11 @@ function attack(actor, Target, Hiter, MagicId) 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, ".怪物被攻击A = ", 0) - -- zbcfg.cdupdate(actor, vdata, 3) - -- end - -- end - -- cnt = cnt + 1 - -- end + -- 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) --开始龙魂爆发状态下,攻击时3%概率触发七星问斩技能, @@ -1491,7 +1512,7 @@ function attack(actor, Target, Hiter, MagicId) and (VarInt(actor, "U251") > os.time()) then - delaygoto(actor, 100, "qixinxin,"..Target , 1) + delaygoto(actor, 100, "qixinxin" , 1) jhxbbgame.mapSelfeff(actor,60518) sendattackeff(actor,113, cnt,actor) @@ -1501,8 +1522,8 @@ function attack(actor, Target, Hiter, MagicId) and not jhxbbgame.timeSecAt(actor, "N$魔刀千刃CD", vdata.timecur) then jhxbbgame.SettimeSec(actor,"N$魔刀千刃CD",10) - --delaygoto(actor, 1, "modaodao,"..Target , 1) - modaodao(actor,Target) + delaygoto(actor, 1, "modaodao" , 1) + --modaodao(actor,Target) end end end diff --git a/texbb.lua b/texbb.lua index 1be0900..47ea6b2 100644 --- a/texbb.lua +++ b/texbb.lua @@ -340,7 +340,7 @@ sv1118.msgproc[1118] = function(actor, msgid, n1, n2, n3, sMsg) confertitle(actor, "称号:凤凰") local myself = PlayerCache.get(actor) - + addskill(actor, 1002, 3) myself:resetpos() myself:MKPosion(5,myself.x % 5) diff --git a/xbbdbg.lua b/xbbdbg.lua index 929c2a3..336a838 100644 --- a/xbbdbg.lua +++ b/xbbdbg.lua @@ -700,23 +700,122 @@ local oldstartup= startup end end startup = dbgstartup +--[[ + +>|link=@查看改名名单> +[@InputString2] +#IF +#ACT +MOV S$改名判断 - +#IF +Equal S2 +#ACT +MESSAGEBOX \ \ \[提示]:请输入一个正确的名称! +MOV S2 +Break +]] +function makegolddata(actor) + local josvdata = {} + josvdata["jj2yy"] = {["庾黄磊"]={{323,123},{623,223}}} + josvdata["yy2jj"] = {["庾黄磊"]={{123,23},{523,73}}} + setsysvar("A18",tbl2json(josvdata)) + local svdata = json2tbl(getsysvar("A18") or "{}") or {} + jhxbbgame.log("svdata:",tbl2json(svdata)) + local i = 1 + local ii = 1 + local function makeitem(x,src,des) + local tmpitem =[[ + + + + ]] + local tmp= [[ + + + %s + +]] + local tmp3 = "" + local opname = "%s2%s" + opname = opname:format(src,des) + local typehuilv = "" + local allisrc = 0 + local allides = 0 + setplaydef(actor,"S$"..opname,"") + local schildids = "i"..i + for k, v in pairs(svdata[opname] or {}) do + for kk,vv in pairs(v) do + local isrc = vv[1] + local ides = vv[2] + allisrc = allisrc + isrc + allides = allides + ides + local txhl = ""--"汇率:"..(string.format("%.2f", ides/isrc)) + local txt = isrc..src..",价格"..ides..des..txhl + tmp3 = tmp3..tmpitem:format(i,i,i,i,i,i,i,txt) + i = i + 1 + schildids = schildids..",i"..i + end + end + --typehuilv = "均汇率:"..(string.format("%.2f", allides/allisrc)) + local tmp2 = tmp:format(ii,ii,ii,ii,x,ii,opname..typehuilv,ii,ii,schildids,tmp3,ii,ii,ii) + ii = ii + 1 + setplaydef(actor,"S$"..opname,tmp2) + end + makeitem(15,"yy","jj") + makeitem(15+350,"jj","yy") +end +function sell1(actor,...) + local buyid = getplaydef(actor,"S$buyid") + local sel = getconst(actor,"<$NPCPARAMS(0,S$buyid)>") + + jhxbbgame.GMLog(actor, "*sell1:",sel,buyid, ...) +end +function sell2(actor,...) + local buyid = getplaydef(actor,"S$buyid") + jhxbbgame.GMLog(actor, "*sell2:",buyid, ...) +end -local function test(actor) +function tpsel1(actor,...) + local sel = getconst(actor,"<$NPCPARAMS(4,S1)>") + + jhxbbgame.GMLog(actor, "*tpsel1:",sel,tostring(npcparams), ...) +end +function tpsel2(actor,...) + local sel = getconst(actor,"<$NPCPARAMS(4,S2)>") + jhxbbgame.GMLog(actor, "*tpsel2:",sel, ...) +end + +function buygm1(actor,...) + local buyid = getplaydef(actor,"S$buyid") + jhxbbgame.GMLog(actor, "*buygm1:",buyid, ...) +end +function buygm2(actor,...) + local buyid = getplaydef(actor,"S$buyid") + jhxbbgame.GMLog(actor, "*buygm2:",buyid, ...) +end +function testsay2(actor) + makegolddata(actor) + say(actor, [[ + [@main] + + + + + ]]..getplaydef(actor,"S$jj2yy")..getplaydef(actor,"S$yy2jj")) + +end +function testsay(actor) if npcid == 34 then say(actor, [[ [@main] - - - - - - - - ]]) + + + + + ]]..getplaydef(actor,"S$金币换元宝")..getplaydef(actor,"S$元宝换金币")) return end edcode = require("Envir/wlua/edcode.lua") @@ -750,9 +849,9 @@ release_print(" end end -test() +testsay() end -require("Envir/wlua/equipeff.lua") +require("Envir/wlua/verfx/equipeff.lua") local cc= {} local dd= {} for key, value in pairs(jhxbbgame.zb) do