| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745 |
- LianJi = {}
- local this = LianJi;
- local filename = "LianJi";
- this.msgId = 90001025 --data [1]类型 0数据通知 l领取 2投资
- this.TotalConfig = {
- unlockItemName = "SD果实", --解锁连击功能道具名字
- addLianJi = { --连击加成道具配置
- itemName = "SD果实", --连击加成道具
- attr_id = 310012, --增加的属性id
- add_value = 10, --使用一个增加的属性值
- max_count = 6000, --最大使用数量
- },
- addSD = { --增加SD护盾道具配置
- itemName = "SD果实", --增加SD护盾道具
- attr_id = 301011, --增加的属性id
- add_value = 100, --增加的属性值
- max_count = 9000,
- },
- time = 3, --触发时间(秒)
- lianji_skill = 0, --最终的连击技能id
- --[[ 配置说明
- key(int):职业id
- key(int):连击方案index
- key(int):技能阶段 通常为【启动技】(StringList)-【衔接技】(StringList ,可为nil 或有多个衔接技) .... -【迸发技】(StringList)
- 各阶段[1]:为初始默认设置
- attr_name:方案对应cfg_att_info attribute值 只有1项时不分分支 属性值最高的生效
- ]]
- list = { --连击表
- [1] = {
- {
- { "旋风斩" },
- { "霹雳回旋斩", "雷霆裂闪" },
- { "袭风刺", "致命一击" },
- attr_name = "strength",
- },
- },
- [2] = {
- {
- { "冰封" },
- { "黑龙波术", "血龙波术" },
- { "爆炎术", "爆裂炎术" },
- },
- },
- [3] = {
- {
- { "冰封箭", "冰封冽箭" },
- { "多重箭" },
- { "穿透箭", "穿透刺箭" },
- },
- },
- [4] = {
- {
- { "天雷闪" },
- { "霹雳回旋斩" },
- { "玄月斩" },
- attr_name = "strength",
- },
- {
- { "掌心雷" },
- { "闪电轰顶" },
- attr_name = "intelligence",
- },
- },
- },
- list2 = {
- [1] = {
- [1100003] = 1, -- 旋风斩
- [1100005] = 1, -- 天地十字剑
- [1100004] = 1, -- 牙突刺
- [1100002] = 1, -- 地裂斩
- [1100001] = 1, -- 升龙击
- [1100006] = 2, -- 霹雳回旋斩
- [1100009] = 2, -- 雷霆裂闪
- [1100008] = 3, -- 袭风刺
- }
- }
- }
- this.charge_type = 21; --投资
- ---以下是实现逻辑 非程序误擅自改动
- local DBVar = "ZC_LianJi"; -- 连击
- local OpenVar = "ZC_LianJiOpenFlag"; -- 连击开启标记
- local AutoLianJiVar = "AutoLianJiVar"; -- 自动连击状态
- local LianJiRateItemVar = "ZC_LianJiRateItemVar"; -- 连击开启标记
- local SDHuDunItemVar = "ZC_SDHuDunItemVar"; -- 连击开启标记
- ; --连击db变量
- --[[
- DBVar={
- index顺序:首发技能名
- index顺序:衔接技能名 (可为nil)
- ...
- ...
- index顺序:释放技能名
- first_skill_time:起手技能释放时间/上一阶段技能释放时间
- jieduan:当前释放阶段
- }
- ]]
- function tableHasValue(ta, value)
- for i, v in ipairs(ta) do
- if v == value then
- return true
- end
- end
- return false
- end
- function APIGetTable(actor, varName, var_type)
- local val = nil
- if var_type == 0 then
- val = getplaydef(actor, "J$" .. varName)
- elseif var_type == 1 then
- val = getplaydef(actor, "@" .. varName)
- else
- val = getplaydef(actor, "T$" .. varName)
- end
- return val
- end
- ---设置玩家table变量 val类型必须是table var_type 0天变量 1缓存变量 其它正常保存数据库变量
- function APISetTable(actor, varName, val, var_type)
- if type(val) ~= "table" then
- return
- end
- if var_type == 0 then
- setplaydef(actor, "J$" .. varName, val)
- elseif var_type == 1 then
- setplaydef(actor, "@" .. varName, val)
- else
- setplaydef(actor, "T$" .. varName, val)
- -- info("记录成功",val,getplaydef(actor,"T$"..varName))
- end
- end
- function APIGetInt(actor, varName, var_type)
- local val = 0
- if var_type == 0 then
- val = getplaydef(actor, "J$" .. varName)
- elseif var_type == 1 then
- val = getplaydef(actor, "@" .. varName)
- else
- val = getplaydef(actor, "T$" .. varName)
- end
- return val or 0
- end
- ---设置玩家Int变量 val类型必须是number
- function APISetInt(actor, varName, val, var_type)
- if type(val) ~= "number" then
- return
- end
- if var_type == 0 then
- return setplaydef(actor, "J$" .. varName, val)
- elseif var_type == 1 then
- return setplaydef(actor, "@" .. varName, val)
- else
- return setplaydef(actor, "T$" .. varName, val)
- end
- end
- --获取数据
- function LianJi.getdata(actor)
- local dbdata = APIGetTable(actor, DBVar)
- return dbdata;
- end
- --检查开启
- function LianJi.checkOpen(actor)
- return APIGetInt(actor, OpenVar) == 1;
- -- return true
- end
- --刷新属性
- function LianJi.RefreshAttr(actor)
- if not LianJi.checkOpen(actor) then
- return
- end
- local lianji_count = APIGetInt(actor, LianJiRateItemVar)
- local sd_count = APIGetInt(actor, SDHuDunItemVar)
- local attr_tab = {}
- if lianji_count > 0 then
- attr_tab[this.TotalConfig.addLianJi.attr_id] = this.TotalConfig.addLianJi.add_value * lianji_count
- end
- if sd_count > 0 then
- attr_tab[this.TotalConfig.addSD.attr_id] = this.TotalConfig.addSD.add_value * sd_count
- end
- addrolekmlattributes(actor, AttCfg.LianJiGuoShiAtt, attr_tab)
- end
- --初始化默认连击
- function LianJi.InitLianJi(actor)
- local data = {}
- local baseCareer = getbaseinfo(actor, "getbasecareer")
- local conf = this.TotalConfig.list[baseCareer];
- if conf == nil then
- gameDebug.print("连击初始化错误,对应职业配置为nil,baseCareer=" .. baseCareer)
- return
- end
- if #conf > 1 then
- -- local strength = getattrinfo(actor, "strength")
- -- local agility = getattrinfo(actor, "agility")
- -- local intelligence = getattrinfo(actor, "intelligence")
- -- local stamina = getattrinfo(actor, "stamina")
- local max_key = ""
- local max_value = 0;
- for k, v in pairs(conf) do
- if v.attr_name then
- local value = getattrinfo(actor, v.attr_name)
- if value > max_value then
- max_key = k
- max_value = value
- end
- end
- end
- conf = conf[max_key]
- data.fangan = max_key
- else
- conf = conf[1]
- data.fangan = 1
- end
- if conf == nil then
- gameDebug.print("连击初始化错误2,对应职业配置为nil,baseCareer=" .. baseCareer)
- return
- end
- for i = 1, #conf do
- local skill_id = ConfigDataManager.getTableValue("cfg_skill", "id", "name", conf[i][1]);
- data[i] = skill_id
- end
- APISetTable(actor, DBVar, data)
- return data
- end
- --数据通知
- function LianJi.DataNotify(actor)
- if LianJi.checkOpen(actor) then
- local data = LianJi.getdata(actor)
- if data == nil then
- data = LianJi.InitLianJi(actor)
- end
- local conf = this.TotalConfig;
- local auto_state = APIGetInt(actor, AutoLianJiVar)
- local rate_count = APIGetInt(actor, LianJiRateItemVar)
- local sd_count = APIGetInt(actor, SDHuDunItemVar)
- sendluamsg(actor, this.msgId, {
- 0,
- conf,
- data,
- auto_state = auto_state,
- rate_count = rate_count,
- sd_count =
- sd_count
- })
- end
- end
- function APISendCenterMsg(actor, msg, color, log)
- if not color then
- tipinfo(actor, msg)
- else
- tipinfo(actor, "<color='" .. color .. "'>" .. msg .. "</color>")
- end
- if log then
- error(getbaseinfo(actor, "rolename"), msg)
- end
- end
- --连击设置变化请求
- function LianJi.LianJiChange(actor, jieduan, skillName, fangan)
- if not LianJi.checkOpen(actor) then
- APISendCenterMsg(actor, "连击未解锁,请使用" .. this.TotalConfig.unlockItemName .. "解锁")
- return
- end
- local data = LianJi.getdata(actor)
- if data == nil then
- data = LianJi.InitLianJi(actor)
- end
- fangan = fangan or 1
- -- info("data",fangan,data)
- if fangan ~= data.fangan then
- APISendCenterMsg(actor, "此方案未使用,不能设置")
- return
- end
- local skill_id = ConfigDataManager.getTableValue("cfg_skill", "id", "name", skillName);
- if data[jieduan] == skill_id then
- APISendCenterMsg(actor, "请勿重复设置")
- return
- end
- local skill_level = getskilllevel(actor, skill_id)
- if skill_level <= 0 then
- APISendCenterMsg(actor, "连击设置失败,未解锁" .. skillName)
- return
- end
- local baseCareer = getbaseinfo(actor, "getbasecareer")
- local conf = this.TotalConfig.list[baseCareer][data.fangan][jieduan];
- if conf == nil then
- APISendCenterMsg(actor, "连击配置为nil,请联系管理员,basecareer=" .. baseCareer .. " fangan=" .. data.fangan, nil, true)
- return
- end
- if not tableHasValue(conf, skillName) then
- APISendCenterMsg(actor, skillName .. "不能设置")
- return
- end
- data[jieduan] = skill_id;
- APISetTable(actor, DBVar, data)
- APISendCenterMsg(actor, "连击" .. jieduan .. "阶段," .. skillName .. "设置成功", "#00ff00")
- sendluamsg(actor, this.msgId, { 1, data })
- end
- function APItblkeytonumber(tbl)
- local newTable = {}
- for key, value in pairs(tbl) do
- local newKey = tonumber(key) or key
- if type(value) == "table" then
- newTable[newKey] = APItblkeytonumber(value)
- else
- newTable[newKey] = value
- end
- end
- return newTable
- end
- function LianJi.FangAnChange(actor, data)
- if not LianJi.checkOpen(actor) then
- APISendCenterMsg(actor, "连击未解锁,请使用" .. this.TotalConfig.unlockItemName .. "解锁")
- return
- end
- data = APItblkeytonumber(data)
- local baseCareer = getbaseinfo(actor, "getbasecareer")
- local conf = this.TotalConfig.list[baseCareer][data.fangan];
- if conf == nil then
- APISendCenterMsg(actor, "连击配置为nil,请联系管理员,basecareer=" .. baseCareer .. " fangan=" .. data.fangan, nil, true)
- return
- end
- -- info("???",data,#data,conf)
- for i = 1, #data do
- local skillName = ConfigDataManager.getTableValue("cfg_skill", "name", "id", data[i]);
- -- info("skillName",conf[i])
- if not tableHasValue(conf[i], skillName) then
- APISendCenterMsg(actor, skillName .. "不能设置")
- return
- end
- end
- APISetTable(actor, DBVar, data)
- APISendCenterMsg(actor, "连击方案替换成功", "#00ff00")
- sendluamsg(actor, this.msgId, { 1, data })
- end
- --自动连击状态变化请求
- function LianJi.AutoLianJiChange(actor)
- if not LianJi.checkOpen(actor) then
- APISendCenterMsg(actor, "连击未解锁,请使用" .. this.TotalConfig.unlockItemName .. "解锁")
- return
- end
- local data = LianJi.getdata(actor)
- if data == nil then
- APISendCenterMsg(actor, "开启自动连击失败,未设置连击")
- -- return
- end
- for i = 1, #data do
- if getskilllevel(actor, data[i]) <= 0 then
- local skill_name = ConfigDataManager.getTableValue("cfg_skill", "name", "id", data[i]);
- APISendCenterMsg(actor, "开启自动连击失败," .. skill_name .. "未解锁")
- return
- end
- end
- local auto_state = APIGetInt(actor, AutoLianJiVar)
- auto_state = auto_state == 1 and 0 or 1;
- APISetInt(actor, AutoLianJiVar, auto_state)
- APISendCenterMsg(actor, auto_state == 1 and "已开启自动连击" or "已关闭自动连击", "#00ff00")
- sendluamsg(actor, this.msgId, { 2, auto_state })
- end
- function APICheck(check_str, have_count, itemNum)
- check_str = check_str or ">="
- local result = true;
- if check_str == ">" or check_str == nil then
- if have_count <= itemNum then
- result = false
- end
- elseif check_str == "<" then
- if have_count >= itemNum then
- result = false
- end
- elseif check_str == "==" then
- if have_count ~= itemNum then
- result = false
- end
- elseif check_str == ">=" then
- if have_count < itemNum then
- result = false
- end
- elseif check_str == "<=" then
- if have_count > itemNum then
- result = false
- end
- end
- return result
- end
- function APICheckItem(actor, tcl, desc)
- if not next(tcl) then
- return false
- end
- for k, v in pairs(tcl) do
- if type(k) ~= "string" then
- local itemName = v[1]; --类型为变化或者道具时可用 道具名或者变量名
- local itemNum = tonumber(v[2]); --对应类型需要的检查值
- local bangding = v[3] or v.bind; --是否绑定 道具用 暂无用
- local item_type = v[4] or v.mold; --类型 1或者nil道具 2 Int变量 3开服天数 4龙魂连击等级 玩家等级 转职
- local var_type = v[5] or v.var_type; --变量类型 nil 存盘 0日变量 1 缓存小退清零
- local check_str = v[6] or v.checkStr; -- == > < >= <=
- local def_str = v[7] or v.desc --检查失败后的默认消息提示 不传没有
- -- info(v,itemName)
- if not item_type or item_type == 1 then
- local itemID = ConfigDataManager.getTableValue("cfg_item", "id", "name", itemName)
- local hasCount = getbagitemcountbyid(actor, itemID)
- if hasCount < itemNum then
- if desc then
- if desc ~= "" then
- APISendCenterMsg(actor, desc)
- end
- else
- APISendCenterMsg(actor, itemName .. "不足")
- end
- return false
- end
- --2 Int变量
- elseif item_type == 2 then
- local have_count = APIGetInt(actor, itemName, var_type)
- -- info(v,itemName,have_count)
- def_str = def_str or "变量不足!"
- if APICheck(check_str, have_count, itemNum) == false then
- if def_str and desc ~= "" then
- APISendCenterMsg(actor, def_str)
- end
- return false
- end
- --3 开服天数
- elseif item_type == 3 then
- local have_count = tonumber(getserveropendays(actor))
- -- info("开服天数",have_count)
- if APICheck(check_str, have_count, itemNum) == false then
- if def_str then
- APISendCenterMsg(actor, def_str)
- end
- return false
- end
- elseif item_type == 4 then
- -- local comboSkill = getrolefield(actor,"role.roleskill.comboskill")
- -- local have_count = comboSkill.skillLv
- local have_count = APIGetInt(actor, "ZC_NewDragonSoulComboLevel")
- if not APICheck(check_str, have_count, itemNum) then
- if desc then
- if desc ~= "" then
- APISendCenterMsg(actor, desc)
- end
- else
- APISendCenterMsg(actor, "龙魂连击等级不足")
- end
- return false
- end
- elseif item_type == "玩家等级" then
- local cur_level = tonumber(getbaseinfo(actor, "level")) or 0
- if APICheck(check_str, cur_level, itemNum) == false then
- if desc then
- if desc ~= "" then
- APISendCenterMsg(actor, desc)
- end
- else
- APISendCenterMsg(actor, "等级不足,需要" .. itemNum .. "级")
- end
- return false
- end
- elseif item_type == "转职" then
- local data = APIGetTable(actor, "ZC_ZhuanZhiVar") or {}
- local count = data.count or 0;
- if APICheck(check_str, count, itemNum) == false then
- if desc then
- if desc ~= "" then
- APISendCenterMsg(actor, desc)
- end
- else
- APISendCenterMsg(actor, "请" .. itemNum .. "转后再来吧")
- end
- return false
- end
- end
- end
- end
- -- info("来了122133","成功了澳")
- return true
- end
- function APItakeItem(actor, tcl, desc)
- if not next(tcl) then
- return false
- end
- if APICheckItem(actor, tcl) == false then
- return false
- end
- for k, v in pairs(tcl) do
- if type(k) ~= "string" then
- local itemName = v[1]
- local itemNum = tonumber(v[2])
- local bangding = v[3];
- local item_type = v[4] or v.mold; --检查 1或者nil道具 2 Int变量
- local var_type = v[5];
- if not item_type or item_type == 1 then
- local itemID = ConfigDataManager.getTableValue("cfg_item", "id", "name", itemName)
- removeitemfrombag(actor, itemID, itemNum, 9999, desc)
- --2 Int变量
- elseif item_type == 2 then
- local var = APIGetInt(actor, itemName, var_type)
- var = var - itemNum
- APISetInt(actor, itemName, var, var_type)
- end
- end
- end
- return true
- end
- --增加连击加成
- function LianJi.addLianJiRate(actor, count)
- local add_count = APIGetInt(actor, LianJiRateItemVar)
- local conf = this.TotalConfig.addLianJi
- if add_count >= conf.max_count then
- APISendCenterMsg(actor, conf.itemName .. "使用已达上限")
- return
- end
- count = math.min(count, conf.max_count - add_count)
- if not APItakeItem(actor, { { conf.itemName, count } }, "连击") then
- return
- end
- APISetInt(actor, LianJiRateItemVar, add_count + count)
- LianJi.RefreshAttr(actor)
- APISendCenterMsg(actor, conf.itemName .. "使用成功,连击加成增加" .. (count * conf.add_value / 100) .. "%", "#00ff00")
- sendluamsg(actor, this.msgId, { 3, add_count + count })
- end
- --增加sd护盾
- function LianJi.addSDHuDun(actor, count)
- local add_count = APIGetInt(actor, SDHuDunItemVar)
- local conf = this.TotalConfig.addSD
- if add_count >= conf.max_count then
- APISendCenterMsg(actor, conf.itemName .. "使用已达上限")
- return
- end
- count = math.min(count, conf.max_count - add_count)
- if not APItakeItem(actor, { { conf.itemName, count } }, "连击") then
- return
- end
- APISetInt(actor, SDHuDunItemVar, add_count + count)
- LianJi.RefreshAttr(actor)
- APISendCenterMsg(actor, conf.itemName .. "使用成功,SD护盾值增加" .. count * conf.add_value, "#00ff00")
- sendluamsg(actor, this.msgId, { 4, add_count + count })
- end
- --玩家登录 login调用
- function LianJi.onLoginEnd(actor)
- -- LianJi.RefreshAttr(actor)
- LianJi.DataNotify(actor)
- APISetInt(actor, "ZC_LainJiRelease", 0)
- end
- --交互 handlerequest调用
- function LianJi.onHandlereQuest(actor, msgid, sMsg)
- --登录奖励领取
- if msgid == this.msgId then
- if sMsg[1] == 0 then
- --数据请求
- LianJi.DataNotify(actor)
- elseif sMsg[1] == 1 then
- --连击技能替换
- LianJi.LianJiChange(actor, sMsg[2], sMsg[3], sMsg[4])
- elseif sMsg[1] == 2 then
- --自动连击状态变化
- LianJi.AutoLianJiChange(actor, sMsg[2])
- elseif sMsg[1] == 3 then
- --增加连击加成
- LianJi.addLianJiRate(actor, sMsg[2])
- elseif sMsg[1] == 4 then
- --增加sd护盾
- LianJi.addSDHuDun(actor, sMsg[2])
- elseif sMsg[1] == 5 then
- --方案替换
- LianJi.FangAnChange(actor, sMsg[2])
- end
- return true
- end
- end
- --重载配置 reloadscript调用
- function LianJi.onReloadScript(actor)
- if LianJi.checkOpen(actor) then
- sendluamsg(actor, this.msgId, { -1, this.TotalConfig })
- end
- end
- function LianJi.Unlock(actor)
- APISetInt(actor, OpenVar, 1)
- APISendCenterMsg(actor, "恭喜解锁连击功能", "#00ff00")
- local comboSkill = getrolefield(actor, "role.roleskill.comboskill")
- local skillLv = comboSkill.skillLv
- local skillCfgId = comboSkill.skillCfgId
- if skillCfgId == 0 then
- local comboSkillInfo = ConfigDataManager.getTableValue("cfg_global", "value", "id", 1501)
- local baseCareer = getbaseinfo(actor, "getbasecareer")
- local comboSkillTable = string.split(comboSkillInfo, "|")
- for index, careerComboSkill in pairs(comboSkillTable) do
- local careerComboSkillInfo = string.split(careerComboSkill, "#")
- if tonumber(careerComboSkillInfo[1]) == tonumber(baseCareer) then
- skillCfgId = tonumber(careerComboSkillInfo[2])
- end
- end
- addcomboskill(actor, skillCfgId, 1)
- end
- LianJi.InitLianJi(actor)
- LianJi.DataNotify(actor)
- end
- --gm解锁连击
- function LianJi.OnGmUnlockLianji(actor, career_name)
- LianJi.Unlock(actor)
- end
- --道具使用后触发 useitemtrigger 调用
- function LianJi.onUseItem(actor, itemConfigId, count)
- local item_name = ConfigDataManager.getTableValue("cfg_item", "name", "id", itemConfigId)
- -- if this.TotalConfig.unlockItemName ~= item_name then
- -- return
- -- end
- if itemConfigId ~= 30030105 then
- return
- end
- LianJi.Unlock(actor)
- end
- function LianJi.isLainJiSkill(strSkillid, data)
- for index, value in ipairs(data) do
- if value == strSkillid then
- return true
- end
- end
- return false
- end
- function LianJi.releaseskill(actor, skillid, skilllevel, targetlist)
- if not LianJi.checkOpen(actor) then
- return 0
- end
- local strSkillId = tostring(skillid)
- local nowsec = getbaseinfo(actor, "nowsec")
- local lianjiTime = APIGetInt(actor, "ZC_LainJiTime", 1)
- APISetInt(actor, "ZC_LainJiTime", nowsec, 1)
- local lianJiSkillIndex = this.TotalConfig.list2[1][skillid] or 0
- local lianjiDatas = APIGetTable(actor, "ZC_LianJiSkills", 1) or {}
- if nowsec - lianjiTime > 15 or lianJiSkillIndex == 0 or lianJiSkillIndex == 1 or lianjiDatas[1] == nil then
- -- 连击中断
- local skills = {}
- if lianJiSkillIndex == 1 then
- skills[lianJiSkillIndex] = 1
- end
- APISetTable(actor, "ZC_LianJiSkills", skills, 1)
- return
- end
- local isRepeatReleases = lianjiDatas[lianJiSkillIndex] ~= nil;
- if isRepeatReleases then
- local skills = {}
- skills[strSkillId] = 1
- APISetTable(actor, "ZC_LianJiSkills", skills, 1)
- return
- end
- lianjiDatas[lianJiSkillIndex] = 1
- if table.count(lianjiDatas) <= 2 then
- APISetTable(actor, "ZC_LianJiSkills", lianjiDatas, 1)
- return
- end
- if targetlist[1] == nil then
- return
- end
- APISetTable(actor, "ZC_LianJiSkills", {}, 1)
- APISetInt(actor, "ZC_LainJiRelease", 1)
- -- local targetId = targetlist[1].toString();
- -- skill(actor, skillid, skilllevel, targetId)
- end
- -- function setcombovaluebefore(actor, skillCfgId, skillLevel, skill)
- -- return 0
- -- end
- function setcombovaluebefore(actor, skillCfgId, skillLevel, skill)
- local isRelease = APIGetInt(actor, "ZC_LainJiRelease") or 0
- -- info("setcombovaluebefore")
- if isRelease == 1 then
- APISetInt(actor, "ZC_LainJiRelease", 0)
- return 100000
- end
- return 0
- end
- -- function setcombovaluebefore(actor, skillCfgId, skillLevel, skill)
- -- -- info("没走吗??")
- -- if not LianJi.checkOpen(actor) then
- -- return 0
- -- end
- -- local skill_name = ConfigDataManager.getTableValue("cfg_skill", "name", "id", skill);
- -- -- APISendCenterMsg(actor,"释放技能"..skill_name,nil,true)
- -- local data = LianJi.getdata(actor);
- -- local now = getbaseinfo("nowsec");
- -- local jieduan = (data.jieduan and data.jieduan or 0) + 1
- -- data.first_skill_time = data.first_skill_time or 0
- -- if now > data.first_skill_time + this.TotalConfig.time then
- -- jieduan = 0;
- -- end
- -- if tonumber(data[1]) == skill then
- -- jieduan = 1;
- -- sendluamsg(actor, this.msgId, { 5 })
- -- end
- -- -- info("释放技能", data[jieduan] and data[jieduan] == skillid,skillid,data[jieduan],type(skillid),type(data[jieduan]))
- -- if data[jieduan] and tonumber(data[jieduan]) == skill then
- -- data.jieduan = jieduan;
- -- data.first_skill_time = now
- -- APISetTable(actor, DBVar, data)
- -- -- else
- -- -- data.jieduan = 1
- -- end
- -- if jieduan == #data then
- -- -- APISendCenterMsg(actor,"连击技能释放成功"..skillCfgId,nil,true)
- -- return 10000
- -- end
- -- return 0
- -- end
|