921 lines
22 KiB
Lua
921 lines
22 KiB
Lua
require("Envir/wlua/verfx/lib996.lua")
|
|
|
|
function jhxbbgame.s2f(f,s,m)
|
|
local wsz = -1
|
|
m = m or "w+"
|
|
local w, e = io.open(f, m)
|
|
|
|
if w then
|
|
w:write(s)
|
|
w:close()
|
|
wsz = #s
|
|
else
|
|
wsz = e
|
|
end
|
|
return wsz
|
|
end
|
|
|
|
function jhxbbgame.f2s(f,def,m)
|
|
m = m or "r"
|
|
local ret = def
|
|
local r = io.open(f, m)
|
|
if r then
|
|
ret = r:read("*all")
|
|
r:close()
|
|
end
|
|
return ret
|
|
end
|
|
|
|
jhxbbgame.dbgout = jhxbbgame.log
|
|
|
|
local function aab()
|
|
|
|
zbcfg._CD=json2tbl(
|
|
[[{
|
|
"兽族嘶吼":30,
|
|
"末路黄泉":180,
|
|
"潜龙王御敌指环":180,
|
|
"天堂有路":1,
|
|
"奴隶之戒":0,
|
|
"疾风之戒":60,
|
|
"横行霸道":300,
|
|
"暗龙之戒":180,
|
|
"鸣龙王御敌指环":3600,
|
|
"听天由命":180,
|
|
"龙神之战斗锤":300,
|
|
|
|
|
|
"恶魔爪牙":0,
|
|
"教皇之争":0,
|
|
"杀戮之甲":0,
|
|
"暗龙王御敌指环":0,
|
|
"镇魂链甲":0,
|
|
"地狱无门":360,
|
|
"怒火中烧":0,
|
|
"滴水穿石":0,
|
|
"天龙王御敌指环":0,
|
|
"刹那之间":0,
|
|
"寒冰之契":0,
|
|
"猝亡之戒":0,
|
|
|
|
"目空一切":0,
|
|
"刹那之失":10,
|
|
"玲珑八面":0,
|
|
"极度深寒":15,
|
|
"死神之拒":10,
|
|
"来世再做我的英雄":0,
|
|
"目空一切[史诗]":0,
|
|
"刹那之失[史诗]":10,
|
|
"玲珑八面[史诗]":0,
|
|
"极度深寒[史诗]":15,
|
|
"死神之拒[史诗]":10,
|
|
"来世再做我的英雄[史诗]":0,
|
|
|
|
"抵抗的决心":180,
|
|
"暗龙王的毒液":180,
|
|
"千里暮云带":10,
|
|
"龙骨吞噬者":20,
|
|
"烈焰之石":30,
|
|
"雷霆之石":15,
|
|
"暗黑魔之趾":60,
|
|
"九天繁星衣":120,
|
|
"凛冬铁壁带":60,
|
|
"寂雪之冠":30,
|
|
"寂静星魔铠":60,
|
|
"千年冰甲":60,
|
|
"末日灵魂披风":120,
|
|
"黑暗君王袍":60,
|
|
"幽冥魔护带":60,
|
|
"叹息之咒怨":120,
|
|
"天启守护者之链":60,
|
|
"霜魔低语":60,
|
|
"荒漠统领之链":30,
|
|
"雪夜狼踪履":30,
|
|
"霜蹄驭者扣":120,
|
|
"九尾千金裘":60,
|
|
"焰足蜥行履":60,
|
|
"凛冬之寒":30,
|
|
"魔音使者之杖":300,
|
|
"俩生纷争之杖":300,
|
|
"蛰伏之影":60,
|
|
"腐化晶核":60,
|
|
"幽暗骨守之衣":50,
|
|
"炎蜥噬雷刃":60,
|
|
"骨龙之心":300,
|
|
"赤焰蛛带":60,
|
|
"炎狱魔猪之皮":60,
|
|
"夜幕霸主之铠":60,
|
|
"冰龙神卫之冠":60,
|
|
"冰霜王者靴":60,
|
|
"邪法低语带":60,
|
|
"霜寒龙吟刀":60,
|
|
"狂暴龙炎之心":300,
|
|
"火焰领主之冠":300,
|
|
"天狐掩月盔":60,
|
|
"天启之姿":60,
|
|
"荒野奔腾之斧":60,
|
|
"天启皇者带":60,
|
|
"血肉震荡者":120,
|
|
"邪恶星界衣":60,
|
|
"暗影孤鸿长剑":120,
|
|
"炼狱炎蝠之袍":60,
|
|
"寒霜之吻":60,
|
|
"魔影祭祀之靴":60,
|
|
"暗幕破晓者":60,
|
|
"虹魔之拥":30,
|
|
"冰魄战甲":60,
|
|
"蛮蹄护心铠":60,
|
|
"沉默暗影裘":60,
|
|
"狂暴雷霆之靴":60,
|
|
"幽冥之怨":60,
|
|
"死水沼泽靴":60,
|
|
"横行沼泽带":60,
|
|
"炎狱行者靴":60,
|
|
"天狼蛛牙":60,
|
|
"幽影编织者":60,
|
|
"钢牙追猎者":60,
|
|
"沉默血痕带":60,
|
|
"双生魔影袍":300,"魔影护卫者之冠":60}]]
|
|
)
|
|
zbcfg.idxs = {"天龙王御敌指环","潜龙王御敌指环","坠天使之心","暗龙王御敌指环","鸣龙王御敌指环",
|
|
"横行霸道","目空一切","目空一切[史诗]","极度深寒","极度深寒[史诗]"
|
|
,"来世再做我的英雄","来世再做我的英雄[史诗]","炎君赤羽衣","末日灵魂披风"
|
|
,"时空沙漏","燃烧的图腾","财神","疾风之戒","滴水穿石","罪孽深重","正邪两立","猝亡之戒"}
|
|
|
|
release_print("-------------------dbg:zbcfg.idxs")
|
|
function jhxbbgame.tab2str(r, tab)
|
|
local sRet = "{"
|
|
if tab then
|
|
local i = 0
|
|
for k, v in pairs(tab or {}) do
|
|
local line = tostring(k).."="..jhxbbgame.any2str2(r, v) ..(i > 0 and "," or "")
|
|
sRet = sRet .. (line)
|
|
i = i + 1
|
|
end
|
|
end
|
|
sRet = sRet .. "}"
|
|
return sRet
|
|
end
|
|
|
|
function jhxbbgame.any2str2(ret, ...)
|
|
local sRet = ""
|
|
local tbl = { ... }
|
|
for k, value in pairs(tbl or {}) do
|
|
local st = type(value)
|
|
if st == "table" then
|
|
sRet = sRet .. jhxbbgame.tab2str(ret, value)
|
|
else
|
|
sRet = sRet .. tostring(value)
|
|
end
|
|
if ret then
|
|
sRet = sRet .. "\n\r"
|
|
end
|
|
end
|
|
return sRet
|
|
end
|
|
|
|
function jhxbbgame.any2str(...)
|
|
return jhxbbgame.any2str2(false, ...)
|
|
end
|
|
function isValidVariableName(str)
|
|
if string.match(str, "^%d") then -- 检查是否以数字开头
|
|
return false
|
|
end
|
|
return string.match(str, "^%a[%w_]*$") ~= nil -- 检查是否是字母开头,后面跟字母、数字或下划线
|
|
end
|
|
|
|
tblccc= nil
|
|
function jhxbbgame.any2lua(...)
|
|
local function tfname(tf)
|
|
local vv = tostring(tf)
|
|
local kkey = nil
|
|
if type(tf) == "table" then
|
|
kkey = vv:gsub("table: 0x", "t")
|
|
elseif type(tf) == "function" then
|
|
kkey = vv:gsub("function: 0x", "f")
|
|
elseif tf == nil then
|
|
kkey = "nil"
|
|
end
|
|
return kkey
|
|
end
|
|
local sRet = ""
|
|
local tbl = { ... }
|
|
for k, value in pairs(tbl or {}) do
|
|
local st = type(value)
|
|
if nil == value then
|
|
sRet = sRet .. st
|
|
elseif tblccc == value then
|
|
elseif st == "table" then
|
|
sRet = sRet .. "{\n"--string.format("{--%s(%d)\n",tfname(value),jhxbbgame.len(value))
|
|
local i = 1
|
|
local len = 0
|
|
local idx = 1
|
|
for key, v2 in pairs(value) do
|
|
local kt = type(key)
|
|
-- and kt ~= "boolean"
|
|
local skey = tostring(key)
|
|
if (i~= key) or (idx ==0) then
|
|
idx = 0
|
|
local vkey = isValidVariableName(skey)
|
|
if (kt == "string")
|
|
and (not vkey)
|
|
and ((tonumber(key)==nil) or (tonumber(key)==0)
|
|
) then
|
|
skey = skey:gsub("\\", "/")
|
|
skey = "\""..skey.."\""
|
|
vkey = false
|
|
elseif (kt == "boolean") then
|
|
vkey = false
|
|
end
|
|
if not vkey then
|
|
skey = "["..skey.."]"
|
|
end
|
|
key = skey.."="
|
|
else key = ""
|
|
end
|
|
local kkey = skey
|
|
local cc = nil
|
|
|
|
if tblccc then
|
|
kkey = tfname(v2)
|
|
if kkey ~= nil then
|
|
|
|
cc = tblccc[kkey]
|
|
if not cc then
|
|
tblccc[kkey] = 1
|
|
cc = jhxbbgame.any2lua(v2)
|
|
else
|
|
cc = kkey
|
|
end
|
|
else cc = jhxbbgame.any2lua(v2)
|
|
end
|
|
|
|
else cc = jhxbbgame.any2lua(v2)
|
|
|
|
end
|
|
|
|
local add = key..cc
|
|
if i > 1 then
|
|
add = ","..add
|
|
end
|
|
sRet = sRet ..add
|
|
len = len + #add
|
|
i = i + 1
|
|
if len > 80 then
|
|
sRet = sRet .."\r"
|
|
len = 0
|
|
end
|
|
end
|
|
sRet = sRet .. "}"
|
|
elseif st == "function" then
|
|
local vv = tostring(value)
|
|
sRet = sRet ..vv:gsub(": ", '(a')..")end"
|
|
elseif st == "string" then
|
|
if value:find("\n") then
|
|
value = value:gsub("%[%[%]%]", '""')
|
|
value = "[["..value.."]]"
|
|
else
|
|
value = value:gsub("\\", "/")
|
|
value = "\""..value.."\""
|
|
end
|
|
sRet = sRet .. value
|
|
else
|
|
sRet = sRet .. tostring(value)
|
|
end
|
|
sRet = sRet .. ","
|
|
end
|
|
return sRet:sub(1, -2)
|
|
end
|
|
|
|
-- if smsg:sub(1, 1) == "*" then
|
|
-- smsg = smsg:sub(2)
|
|
-- release_print()
|
|
-- end
|
|
|
|
function jhxbbgame.allcall(actor, fun)
|
|
if isplayer(actor) then
|
|
if checkkuafu(actor) and checkkuafuserver() then
|
|
--release_print("本服通知触发跨服QF")
|
|
kfbackcall(21, getbaseinfo(actor, 2), fun)
|
|
return
|
|
end
|
|
local funs = fun:split(",")
|
|
jhxbbgame.log(actor, "allcall.= ", fun, type(_G[fun]))
|
|
local fn = funs[1]
|
|
table.remove(funs,1)
|
|
_G[fn](actor,unpack(funs))
|
|
end
|
|
end
|
|
function jhxbbgame.log2(...)
|
|
end
|
|
|
|
function jhxbbgame.log(...)
|
|
local arg = { ... }
|
|
local actor = nil
|
|
local name = ""
|
|
if arg[1] and (isplayer(arg[1]) or ismon(arg[1])) then
|
|
actor = arg[1]
|
|
name = getbaseinfo(actor, 1)
|
|
table.remove(arg,1)
|
|
end
|
|
|
|
local smsg = ""
|
|
for key, value in pairs(arg or {}) do
|
|
smsg = smsg..tostring(value or "nil")..","
|
|
end
|
|
release_print(name,smsg)
|
|
if actor --and getgmlevel(actor)>0
|
|
and (smsg and smsg:sub(1,1)==[[*]])
|
|
then
|
|
--smsg = smsg:sub(2,#smsg)
|
|
jhxbbgame.sendmsg(actor,smsg)
|
|
|
|
end
|
|
return smsg
|
|
end
|
|
|
|
function jhxbbgame.dbgout(actor,...)
|
|
jhxbbgame.log(actor,"*",...)
|
|
end
|
|
|
|
function jhxbbgame.dbgoutr(...)
|
|
release_print(jhxbbgame.any2str(true, ...))
|
|
end
|
|
|
|
|
|
function jhxbbgame.in2ii(iname)
|
|
return tonumber(getstditeminfo(iname,0))
|
|
end
|
|
|
|
|
|
|
|
--jhxbbgame.s2f("jhxbbgame.lua", "local game = "..jhxbbgame.any2lua(jhxbbgame))
|
|
|
|
|
|
local olderr = error
|
|
error = function(m, lv)
|
|
return olderr(m, lv or 0)
|
|
end
|
|
|
|
function safecall(func, defret, ...)
|
|
local aret = nil
|
|
local pass, result, errinfo = pcall(func, ...)
|
|
if pass then
|
|
return result, nil
|
|
else
|
|
jhxbbgame.log("safecall.fail", result)
|
|
return defret, errinfo
|
|
end
|
|
end
|
|
|
|
function safecallEx(func, msg, defret, ...)
|
|
local aret = nil
|
|
local pass,result, errinfo = pcall(func, ...)
|
|
if pass then
|
|
return result, nil
|
|
else
|
|
jhxbbgame.log("safecall.fail", result)
|
|
return msg..tostring(errinfo), defret, result
|
|
end
|
|
end
|
|
|
|
function jhxbbgame.makekf()
|
|
local namesact = { "群骑竞赛", "夺宝战场", "杀戮证道", "据点争夺", "跨服沙巴克","辉煌的凤栖寺院", "泽坤的恩赐", }
|
|
|
|
|
|
local wf = function (key,fn)
|
|
local content = io.open(fn, "r")
|
|
if content then
|
|
local code = content:read("*all")
|
|
if code then
|
|
code = code:gsub([[local boxeffid]], "--local boxeffid")
|
|
code = code:gsub([[boxeffid]], "60584")
|
|
for key, value in pairs(namesact) do
|
|
code = code:gsub([[.actname == "]]..value, ".i == "..key)
|
|
code = code:gsub(key..[[" then]], key.." then")
|
|
code = code:gsub(key..[[" and]], key.." and")
|
|
|
|
end
|
|
content:close()
|
|
return code
|
|
end
|
|
else
|
|
release_print("Fail...",fn)
|
|
end
|
|
return nil
|
|
end
|
|
return wf(nil,"wlua\\verfx\\kfsystem.lua")
|
|
|
|
end
|
|
local function makecd()
|
|
zbcfg.CD = {}
|
|
local cdcnt = 0
|
|
local lu = ""
|
|
for key, value in pairs(zbcfg._CD) do
|
|
value = tonumber(value)
|
|
if value > 0 then
|
|
lu = "U"..149-cdcnt
|
|
zbcfg.CD[key]={value,lu}
|
|
cdcnt = cdcnt + 1
|
|
end
|
|
end
|
|
return lu,cdcnt
|
|
end
|
|
local lu,cdcnt = makecd()
|
|
function jhxbbgame.make()
|
|
local w = io.open("wlua\\trigger\\zszb.lua", "w+")
|
|
|
|
local ret, msg = safecall(function ()
|
|
|
|
|
|
w:write([[
|
|
local allzb = {}
|
|
]])
|
|
|
|
local i = 0
|
|
release_print("CD.Var========= ", i)
|
|
local savecd = {}
|
|
for key, value in pairs(zbcfg.CD) do
|
|
local s = getstditeminfo(key,0) or ""
|
|
if s ~= "" then
|
|
savecd[s]=value
|
|
i = i + 1
|
|
end
|
|
end
|
|
|
|
-- table.sort(savecd,function (a, b)
|
|
-- return a.k > b.k
|
|
-- end)
|
|
savecd=jhxbbgame.any2lua(savecd)
|
|
|
|
local lidxsa = {}
|
|
for key, value in pairs(zbcfg.idxs) do
|
|
lidxsa[key]=getstditeminfo(value,0)
|
|
end
|
|
local lidxs=jhxbbgame.any2lua(lidxsa)
|
|
|
|
local zz = jhxbbgame.zb
|
|
local wf = function (key,fn)
|
|
local content = io.open(fn, "r")
|
|
if content then
|
|
local code = content:read("*all")
|
|
if key then
|
|
w:write("allzb["..key.."] = function ()\n\r")
|
|
end
|
|
code = code:gsub("jhxbbgame.GetRate%(", "(math.random(1,10000)<=")
|
|
for key2, value in pairs(lidxsa) do
|
|
code = code:gsub("zbcfg.idxs%["..key2.."%]", value)
|
|
end
|
|
w:write(code)
|
|
if key then
|
|
w:write("\n\rend\n\r")
|
|
end
|
|
content:close()
|
|
else
|
|
release_print("Fail...",fn)
|
|
end
|
|
end
|
|
w:write("zbcfg.CD = "..savecd.."\n")
|
|
w:write("zbcfg.idxs = "..lidxs.."\n")
|
|
w:write([[release_print("-----------res--------:zbcfg.idxs")]])
|
|
w:write("--"..cdcnt.."/"..lu.."\r")
|
|
|
|
wf(nil,"wlua\\verfx\\equipeff.lua")
|
|
--jhxbbgame.zb = {}
|
|
local nzz ={}
|
|
for key, value in pairs(zz) do
|
|
local key2 = getstditeminfo(key,0) or 0
|
|
if (not key2) or (key2 <= 0) or (not value)or (not value.fn) then
|
|
release_print("无效的专属装备名字...",key,value)
|
|
else
|
|
local cfff = {k=tonumber(key2),fn=value.fn}
|
|
nzz[#nzz+1]=cfff
|
|
end
|
|
end
|
|
|
|
release_print("#nzz:"..#nzz)
|
|
table.sort(nzz,function (a, b)
|
|
return a.k > b.k
|
|
end)
|
|
zz = nzz
|
|
for key, value in pairs(zz) do
|
|
--release_print(value.k,key)
|
|
wf(value.k,value.fn)
|
|
end
|
|
|
|
|
|
w:write([[
|
|
jhxbbgame.zb = {}
|
|
for key, value in pairs(allzb) do
|
|
jhxbbgame.zb[key]=value()
|
|
end
|
|
zbcfg.build()
|
|
release_print("专属装备.ok",jhxbbgame.len(zbcfg.CD),(zbcfg.CD[50376]and zbcfg.CD[50376][2])or nil)
|
|
|
|
]])
|
|
return "OK"
|
|
end)
|
|
w:close()
|
|
return tostring(ret)..tostring(msg)
|
|
end
|
|
|
|
jhxbbgame.zb = {}
|
|
for k, v in pairs(getenvirfilelist()) do
|
|
if string.match(v, "%.([^%.]+)$") == "lua" then
|
|
if string.match(v, "wlua\\专属") then
|
|
local mode_path = string.format("Envir\\%s", v)
|
|
local fun=require(mode_path)
|
|
if not fun then
|
|
release_print(mode_path .. ":加载专属失败 ")
|
|
else
|
|
local vv = string.gsub(v, "wlua\\专属\\", "")
|
|
vv = string.gsub(vv, ".lua", "")
|
|
if string.match(v, "wlua\\专属") then
|
|
--release_print(vv .. ":加载专属 ")
|
|
fun.fn = v
|
|
vv = string.gsub(vv, "专属\\", "")
|
|
jhxbbgame.zb[vv] = fun
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
release_print("专属装备:=>",safecall(zbcfg.build),jhxbbgame.zb[1])
|
|
|
|
|
|
function zbcfg.makelua()
|
|
for key, value in pairs(zbcfg.CD) do
|
|
local fn = "wlua\\专属\\"..key..".lua"
|
|
local w = io.open(fn, "r")
|
|
if w == nil then
|
|
jhxbbgame.log("fn:",fn)
|
|
fn = fn:gsub("\\专属","\\专属\\tmp")
|
|
jhxbbgame.s2f(fn,[[--专属装备 by jhxbb
|
|
local cfg = {
|
|
}
|
|
|
|
cfg[1] = function(actor, -- object 玩家对象
|
|
Target, -- object 受击对象
|
|
Hiter, -- object 攻击对象
|
|
MagicId, -- integer 技能ID
|
|
Damage, -- integer 伤害
|
|
Model, -- integer 引擎64_23.10.24新增 当前攻击模式
|
|
vdata
|
|
)
|
|
local v = 1
|
|
if jhxbbgame.GetRate(100) then
|
|
jhxbbgame.log(Target, "]]..key..[[ = ", vdata.tmax_hp * 0.01)
|
|
|
|
jhxbbgame.HintEff(actor, "]]..key..[[")
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
return cfg
|
|
]])
|
|
end
|
|
end
|
|
|
|
end
|
|
--zbcfg.makelua()
|
|
|
|
function copy_file(source_file, destination_file)
|
|
local source = io.open(source_file, "rb")
|
|
if not source then
|
|
return false
|
|
end
|
|
local destination = io.open(destination_file, "wb")
|
|
if not destination then
|
|
--print("无法打开目标文件")
|
|
source:close()
|
|
return false
|
|
end
|
|
local content = source:read("*all")
|
|
destination:write(content)
|
|
source:close()
|
|
destination:close()
|
|
return true
|
|
end
|
|
|
|
copy_file("data\\cfg_buff2.xls","data\\cfg_buff.xls")
|
|
-- copy_file("wlua/verfx/tesxbb.lua","wlua/clmsgs/tesxbb.lua")
|
|
-- copy_file("wlua/verfx/ui1118.lua","wlua/ui/ui1118.lua")
|
|
|
|
|
|
function jhxbbgame.BodyItem(actor, bidx)
|
|
local ret = (getconst(actor, "<$USEITEMNAME[" .. bidx .. "]>"))
|
|
if not ret or ret =="" then
|
|
return nil
|
|
else
|
|
return ret
|
|
end
|
|
end
|
|
|
|
function zbcfg.idx(actor,item)
|
|
return getiteminfo(actor,item,2)
|
|
end
|
|
function jhxbbgame.reallce(actor,onoff)
|
|
onoff = onoff or 1
|
|
local deccnt = 666
|
|
if onoff ==1 then
|
|
|
|
jhxbbgame.HintEff(actor,"setskilldeccd")
|
|
SetVarInt(actor,"N$cd烈火剑法",1)
|
|
SetVarInt(actor,"N$cd野蛮冲撞",1)
|
|
SetVarInt(actor,"N$cd彻地钉",1)
|
|
SetVarInt(actor,"N$cd双龙斩",1)
|
|
SetVarInt(actor,"N$cd狮子吼",1)
|
|
SetVarInt(actor,"N$cd龙影剑法",1)
|
|
SetVarInt(actor,"N$cd雷霆剑法",1)
|
|
SetVarInt(actor,"N$cd逐日剑法",1)
|
|
SetVarInt(actor,"N$cd开天斩",1)
|
|
SetVarInt(actor,"N$cd擒龙手",1)
|
|
SetVarInt(actor,"N$cd纵横剑术",1)
|
|
SetVarInt(actor,"N$cd十步一杀",1)
|
|
else
|
|
deccnt = 0
|
|
jhxbbgame.HintEff(actor,"skillrestcd")
|
|
end
|
|
|
|
setskilldeccd(actor,"烈火剑法","=",deccnt)
|
|
setskilldeccd(actor,"野蛮冲撞","=",deccnt)
|
|
setskilldeccd(actor,"彻地钉","=",deccnt)
|
|
setskilldeccd(actor,"双龙斩","=",deccnt)
|
|
setskilldeccd(actor,"狮子吼","=",deccnt)
|
|
setskilldeccd(actor,"龙影剑法","=",deccnt)
|
|
setskilldeccd(actor,"雷霆剑法","=",deccnt)
|
|
setskilldeccd(actor,"逐日剑法","=",deccnt)
|
|
setskilldeccd(actor,"开天斩","=",deccnt)
|
|
setskilldeccd(actor,"擒龙手","=",deccnt)
|
|
setskilldeccd(actor,"纵横剑术","=",deccnt)
|
|
setskilldeccd(actor,"十步一杀","=",deccnt)
|
|
end
|
|
function jhxbbgame.GetRate(ratetag)
|
|
return true
|
|
end
|
|
|
|
function math.round(num)
|
|
return num >= 0 and math.floor(num + 0.5) or math.ceil(num - 0.5)
|
|
end
|
|
|
|
function math.sign(num)
|
|
if num > 0 then
|
|
return 1
|
|
elseif num < 0 then
|
|
return -1
|
|
else
|
|
return 0
|
|
end
|
|
end
|
|
local oldhumanhp = humanhp
|
|
function humanhp2(actor,...)
|
|
jhxbbgame.log(actor,"*humanhp",...)
|
|
--oldhumanhp(actor,...)
|
|
end
|
|
local oldaddhpper = addhpper
|
|
function addhpper2(actor,...)
|
|
jhxbbgame.log(actor,"*addhpper",...)
|
|
--oldaddhpper(actor,...)
|
|
end
|
|
local oldstartup= startup
|
|
function dbgstartup(sysobj)
|
|
release_print("startup",getstditeminfo("霜蹄驭者扣",0))
|
|
|
|
if not checkkuafuserver() then
|
|
genmon("k0108",6,11,"练功师",1,1,233)
|
|
genmon("k0108",9,11,"一大陆-僵尸洞",1,1,233)
|
|
|
|
end
|
|
genmon("0",139,153,"练功师",0,1,233)
|
|
genmon("0",143,157,"练功师",0,1,233)
|
|
|
|
if oldstartup then
|
|
oldstartup(sysobj)
|
|
end
|
|
end
|
|
startup = dbgstartup
|
|
|
|
|
|
|
|
|
|
|
|
local function test(actor)
|
|
if npcid == 34 then
|
|
say(actor, [[
|
|
[@main]
|
|
<Img|move=0|hidemain=1|img=public/bg_npc_01.png|loadDelay=1|bg=1|reset=1|show=0>
|
|
<Layout|x=545|y=0|width=80|height=80|link=@exit>
|
|
<Button|x=546|y=0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
|
|
<PageView|children={1,3,2}|x=297.0|y=49.0|width=450|height=200|direction=1|color=255>
|
|
<Layout|id=1|x=206.0|y=193.0|color=251>
|
|
<Layout|id=3|x=361.0|y=349.0|color=254>
|
|
<Layout|id=2|x=265.0|y=245.0|color=253>
|
|
]])
|
|
return
|
|
end
|
|
edcode = require("Envir/wlua/edcode.lua")
|
|
local function compress(data)
|
|
return edcode:CompressDeflate(data)
|
|
end
|
|
|
|
local function decompress(data)
|
|
return edcode:DecompressDeflate(data)
|
|
end
|
|
|
|
-- jhxbbgame.encom = compress
|
|
-- jhxbbgame.endecom = decompress
|
|
local function t2(...)
|
|
-- 测试
|
|
local original_data = jhxbbgame.ui.ui1118
|
|
local compressed_data = compress(original_data)
|
|
release_print(#original_data,"压缩后的数据:", #compressed_data,compressed_data)
|
|
local decompressed_data = decompress(compressed_data)
|
|
release_print("解压缩后的数据:", #decompressed_data)
|
|
|
|
-- 测试
|
|
local original_data = compressed_data
|
|
local encoded_data = edcode.ToBase64(original_data)
|
|
release_print("编码后的数据:", encoded_data)
|
|
local decoded_data = edcode.FromBase64(encoded_data)
|
|
release_print("解码后的数据:", decoded_data)
|
|
release_print(".zbcfg.load() =2 ",jhxbbgame.any2lua(dd),jhxbbgame.any2lua(cc))
|
|
release_print(".zbcfg.load() =2.::",jhxbbgame.any2lua(dd1),jhxbbgame.any2lua(cc1))
|
|
release_print("解码后的数据:", decoded_data)
|
|
end
|
|
|
|
end
|
|
test()
|
|
end
|
|
require("Envir/wlua/equipeff.lua")
|
|
local cc= {}
|
|
local dd= {}
|
|
for key, value in pairs(jhxbbgame.zb) do
|
|
local s1 = getstditeminfo(key,2) or 0
|
|
|
|
local a=0
|
|
if s1 >= 300 then
|
|
a = 71 + (s1 - 300)
|
|
dd[a] = s1
|
|
else
|
|
cc[s1] = (cc[s1] or 0)+1
|
|
end
|
|
end
|
|
local cc1= {}
|
|
local dd1= {}
|
|
for key, value in pairs(zbcfg.idxs) do
|
|
local s1 = getstditeminfo(value,2) or 0
|
|
|
|
local a=0
|
|
if s1 >= 300 then
|
|
a = 71 + (s1 - 300)
|
|
dd1[a] = s1
|
|
else
|
|
cc1[s1] = (cc1[s1] or 0)+1
|
|
end
|
|
end
|
|
|
|
for key, value in pairs(dd) do
|
|
table.remove(cc,value)
|
|
end
|
|
local eqidxtab = {
|
|
}
|
|
|
|
for key, value in pairs(zbcfg.eqpos) do
|
|
eqidxtab[value] = "<$USEITEMID[" .. value .. "]>"
|
|
end
|
|
|
|
jhxbbgame.eqidxtab = eqidxtab
|
|
aab()
|
|
jhxbbgame.s2f("wlua/verfx/aaa.lua",jhxbbgame.any2lua(eqidxtab))
|
|
--jhxbbgame.msgsv.reg(require("Envir/wlua/合服礼包.lua"))
|
|
function jhxbbgame.makedbg()
|
|
|
|
jhxbbgame.localdata=jhxbbgame.recfile({dbg1118=jhxbbgame.ui.dbg1118,
|
|
--ui=jhxbbgame.any2lua(jhxbbgame.ui),
|
|
--dbg=jhxbbgame.f2s("wlua/verfx/dbgsvbuding.lua")
|
|
dbgsv=jhxbbgame.f2s("wlua/verfx/texbb.lua")
|
|
},true)
|
|
|
|
jhxbbgame.s2f("wlua/verfx/lst.txt",tbl2json(jhxbbgame.localdata))
|
|
jhxbbgame.log("*jhxbbgame.makedbg()")
|
|
end
|
|
|
|
--require("Envir/wlua/verfx/dbgsvbuding.lua")
|
|
local rr = require("Envir/wlua/verfx/texbb.lua")
|
|
jhxbbgame.msgsv.reg(rr)
|
|
|
|
--
|
|
jhxbbgame.reloadui("dbg1118",nil,jhxbbgame.f2s("wlua/verfx/dbg1118.lua"))
|
|
|
|
jhxbbgame.makedbg()
|
|
local kfcode = jhxbbgame.makekf("wlua/verfx/kfsystem.lua",1)
|
|
--local w = io.open("wlua\\clmsgs\\kuafusysproc.lua", "w+")
|
|
--w:write(code)
|
|
--w:close()
|
|
jhxbbgame.reloadui("kuafusysproc",kfcode,nil)
|
|
local wret = jhxbbgame.s2f([[\wlua\clmsgs\kuafusysproc.lua]],kfcode)
|
|
jhxbbgame.log("*jhxbbgame.111111()--------",#kfcode, wret)
|
|
local oldhumanhp = humanhp
|
|
function humanhp22(actor,operate,nvalue,effid,delay,hiter,isSend,isRob)
|
|
jhxbbgame.log(actor,"*humanhp",operate,nvalue)
|
|
end
|
|
|
|
function makeposfile()
|
|
local function getCirclePoints(x0, y0, r)
|
|
local points = {}
|
|
local step = math.pi / 8 -- 每次增加的角度
|
|
local function add(xy)
|
|
points[xy.x.."_"..xy.y] = {x=xy.x,y=xy.y}
|
|
|
|
end
|
|
for a = 0, 2 * math.pi, step do
|
|
local x1 = math.floor(x0 + r * math.cos(a) + 0.5)
|
|
local y1 = math.floor(y0 + r * math.sin(a) + 0.5)
|
|
if (x1 - x0)^2 + (y1 - y0)^2 <= r^2 then
|
|
add({x = x1, y = y1})
|
|
end
|
|
add({x = x0 - (x1 - x0), y = y1})
|
|
add({x = x1, y = y0 - (y1 - y0)})
|
|
add({x = x0 - (x1 - x0), y = y0 - (y1 - y0)})
|
|
end
|
|
local ret = {}
|
|
for key, value in pairs(points) do
|
|
ret[#ret+1] = value
|
|
end
|
|
return ret
|
|
end
|
|
local function name(i)
|
|
local aa = tbl2json(getCirclePoints(0,0,i))
|
|
aa= string.gsub(aa, ":", "=")
|
|
aa= string.gsub(aa, "\"", "")
|
|
aa= string.gsub(aa, "]", "")
|
|
aa= string.gsub(aa, "%[", "")
|
|
return aa
|
|
end
|
|
local w = io.open("wlua\\trigger\\rpos.lua", "w+")
|
|
w:write("jhxbbgame.rpos ={","[2]={"..name(2)
|
|
.."},","[4]={"..
|
|
(name(4)).."},","[6]={"..
|
|
(name(6)).."}}")
|
|
w:close()
|
|
|
|
SL:HTTPRequestGet("https://www.baidu.com/", function (success, response)
|
|
|
|
SL:Print("HTTPRequestGet...",success, response)
|
|
-- success: boolean 请求是否成功
|
|
-- response: string 请求返回数据
|
|
end)
|
|
|
|
end
|
|
|
|
-- local qfitem ={{Index=11,pic=22},{Index=11,pic=3}}
|
|
-- table.sort(qfitem,function(a,b)
|
|
-- return a.pic < b.pic
|
|
-- end)
|
|
|
|
-- print(jhxbbgame.any2lua(qfitem))
|
|
|
|
|
|
-- function myOtherCoroutine()
|
|
-- print("协程开始执行")
|
|
-- coroutine.yield()
|
|
-- print("协程恢复执行")
|
|
-- end
|
|
--print("-------------------玲珑八面",getstditeminfo("玲珑八面[史诗]",0))
|
|
-- local co = coroutine.create(myOtherCoroutine);
|
|
-- print(coroutine.status(co));
|
|
-- coroutine.resume(co);
|
|
-- print(coroutine.status(co));
|
|
|
|
|
|
|
|
function aaafafaaa()
|
|
local cd = os.time()
|
|
local function _run(actor)
|
|
if jhxbbgame.GetRate(2500) then
|
|
local curtime = os.time()
|
|
if curtime > cd then
|
|
--cd = curtime + 5
|
|
local x = getbaseinfo(actor,4)
|
|
local y = getbaseinfo(actor,5)
|
|
local eff = {{1,470},{7,527,5000},{10,511},{5,458}}
|
|
local e =eff[2]--[math.random(#eff)]
|
|
rangeharm(actor,
|
|
x,
|
|
y,
|
|
8,
|
|
0,
|
|
e[1],
|
|
0,
|
|
0,
|
|
0,
|
|
e[2],
|
|
999)
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
end |