139 lines
4.1 KiB
Lua
139 lines
4.1 KiB
Lua
XingYunXiangLianOBJ = Up_BaseClass:new()
|
|
|
|
|
|
XingYunXiangLianOBJ._name = "XingYunXiangLianOBJ"
|
|
-- NPCID
|
|
|
|
XingYunXiangLianOBJ.id = { 11 }
|
|
for i, v in ipairs(XingYunXiangLianOBJ.id or {}) do
|
|
Npc.clicknpcCfg[v] = XingYunXiangLianOBJ
|
|
end
|
|
|
|
-- 配置文件
|
|
XingYunXiangLianOBJ.cfg = {
|
|
ps = {
|
|
"1.幸运项链<最大+4/FCOLOR=251>",
|
|
"2.幸运+2强化至+3时,<有20%几率+4/FCOLOR=249>",
|
|
"3.幸运<+3时/FCOLOR=250>,随机获得<暴击几率 + 1-3%/FCOLOR=251>",
|
|
"3.幸运<+4时/FCOLOR=250>,随机获得<暴击几率 + 3-5%/FCOLOR=251>",
|
|
"<4.幸运绑定人物,切换装备自动继承/FCOLOR=249>",
|
|
"<5.人物幸运超过+9,每多1点对怪增伤+1%/FCOLOR=249>",
|
|
},
|
|
xh = {
|
|
{ "元宝", 50, 1 },
|
|
},
|
|
cgl = { 50, 30, 15 },
|
|
}
|
|
---* 加入上线同步数据
|
|
Player.sycCfg[XingYunXiangLianOBJ._name] = XingYunXiangLianOBJ.cfg
|
|
|
|
|
|
function XingYunXiangLianOBJ:up(actor, p1, p2, p3, data)
|
|
if not Npc.CheckNPCRange(actor, 11) then
|
|
return
|
|
end
|
|
|
|
--* 获取当前项链唯一id
|
|
local makeIndex = GetItemByPos(actor, 3)
|
|
if makeIndex == "0" then
|
|
Func.sendmsg9(actor, "请先佩戴好项链!")
|
|
return
|
|
end
|
|
local level = Player.getkeycount(actor,VarCfg.Player.str["幸运项链"],"Luck") or 0
|
|
|
|
if level >= 3 then
|
|
Func.sendmsg9(actor, "项链幸运已满级,如果继续提升暴击率,请重置幸运!")
|
|
return
|
|
end
|
|
|
|
if Func.takeitmes(actor, self.cfg.xh, true, true) then
|
|
if Func.random(self.cfg.cgl[level + 1]) then
|
|
local value = level + 1
|
|
if level == 2 then
|
|
if Func.random(20) then
|
|
value = 4
|
|
end
|
|
end
|
|
Player.setkeycount(actor,VarCfg.Player.str["幸运项链"], "Luck", value)
|
|
|
|
local baoji = 0
|
|
if value == 3 then
|
|
baoji = math.random(1, 3)
|
|
elseif value == 4 then
|
|
baoji = math.random(3, 5)
|
|
end
|
|
if baoji > 0 then
|
|
Player.setkeycount(actor, VarCfg.Player.str["幸运项链"], "BaoJi", baoji)
|
|
end
|
|
-- Func.sendmsg9(actor, "恭喜你,成功提升幸运!")
|
|
Message:SubLink(actor, self._name .. "_upBool", { 21100 })
|
|
|
|
self:OnTake(actor, makeIndex, 3)
|
|
else
|
|
-- Func.sendmsg9(actor, "抱歉,提升项链幸运失败!")
|
|
Message:SubLink(actor, self._name .. "_upBool", { 21102 })
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
function XingYunXiangLianOBJ:reset(actor, p1, p2, p3, data)
|
|
if not Npc.CheckNPCRange(actor, 11) then
|
|
return
|
|
end
|
|
Func.messagebox(actor, "[幸运重置]本次重置免费\n将清除项链附加幸运及幸运暴击\n是否确认重置?", "@xianglian_reset", "@exit")
|
|
end
|
|
|
|
function xianglian_reset(actor)
|
|
--* 获取当前项链唯一id
|
|
local makeIndex = GetItemByPos(actor, 3)
|
|
if makeIndex == "0" then
|
|
Func.sendmsg9(actor, "请先佩戴好项链!")
|
|
return
|
|
end
|
|
|
|
Player.setstr(actor, VarCfg.Player.str["幸运项链"], "")
|
|
|
|
XingYunXiangLianOBJ:OffTake(actor, makeIndex, 3)
|
|
end
|
|
|
|
|
|
------------* 触发穿戴绑定人物事件
|
|
---*穿戴项链
|
|
function XingYunXiangLianOBJ:OnTake(actor, makeIndex, where, itemName)
|
|
if where == 3 then
|
|
local LuckData = Player.getkeytbl(actor,VarCfg.Player.str["幸运项链"]) or {}
|
|
|
|
if not LuckData then
|
|
return
|
|
end
|
|
|
|
if LuckData["Luck"] and LuckData["Luck"] > 0 then
|
|
SetItemLuck(actor, makeIndex, LuckData["Luck"])
|
|
end
|
|
|
|
if LuckData["BaoJi"] and LuckData["BaoJi"] > 0 then
|
|
additemattr(actor, makeIndex, ConstCfg.temattr["幸运暴击"], 3, 21, LuckData["BaoJi"])
|
|
end
|
|
end
|
|
end
|
|
|
|
GameEvent.add(EventCfg.onTakeOnEx, function(actor, makeIndex, where, itemName)
|
|
XingYunXiangLianOBJ:OnTake(actor, makeIndex, where, itemName)
|
|
end, XingYunXiangLianOBJ)
|
|
|
|
---*脱下项链
|
|
function XingYunXiangLianOBJ:OffTake(actor, makeIndex, where, itemName)
|
|
if where == 3 then
|
|
SetItemLuck(actor, makeIndex, 0)
|
|
delitemattr(actor, makeIndex, ConstCfg.temattr["幸运暴击"], 0)
|
|
end
|
|
end
|
|
|
|
GameEvent.add(EventCfg.onTakeOffEx, function(actor, makeIndex, where, itemName)
|
|
XingYunXiangLianOBJ:OffTake(actor, makeIndex, where, itemName)
|
|
end, XingYunXiangLianOBJ)
|
|
|
|
|
|
XingYunXiangLianOBJ.allowFunc = {"up", "reset"}
|
|
return XingYunXiangLianOBJ
|