bayuMIR/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A1_一大陆/狂暴之力.lua
2026-06-18 02:06:14 +08:00

154 lines
4.9 KiB
Lua

KuangBaoOBJ = Up_BaseClass:new()
KuangBaoOBJ._name = "KuangBaoOBJ"
-- NPCID
KuangBaoOBJ.id = { 2 }
for i, v in ipairs(KuangBaoOBJ.id or {}) do
Npc.clicknpcCfg[v] = KuangBaoOBJ
end
-- 配置文件
KuangBaoOBJ.cfg = {
xh = {
[1] = {
[1] = "元宝",
[2] = 100,
[3] = 0,
},
},
title = "狂暴之力",
skill = {
-- { "十步一杀", 3 },
{ "施毒术", 3 },
},
}
---* 加入上线同步数据
Player.sycCfg[KuangBaoOBJ._name] = KuangBaoOBJ.cfg
-- function KuangBaoOBJ:main(actor, ...)
-- local info = { ... }
-- local data = {}
-- data.cfg = self.cfg
-- Message:SubLink(actor, "KuangBaoOBJ_main", data)
-- end
function KuangBaoOBJ:up(actor)
if checktitle(actor, self.cfg.title) then
return Func.sendmsg9(actor, "你已经拥有:#251|" .. self.cfg.title .. "#215")
end
if Func.takeitmes(actor, self.cfg.xh, true, true) then
if self.cfg.skill then
for i, v in ipairs(self.cfg.skill) do
local skill_id = getskillindex(v[1])
addskill(actor, skill_id, v[2])
end
end
confertitle(actor, self.cfg.title, 0, true)
Func.sendmsg9(actor, "恭喜你成功开启:#251|" .. self.cfg.title .. "#215")
sendmsgnew(actor, 251, 0,
"<[" .. Player.getname(actor) .. "]/FCOLOR=70>开启了:<" .. self.cfg.title .. "/FCOLOR=215>!", 0, 2)
GameEvent.push(EventCfg.goKuangBao, actor)
end
end
KuangBaoOBJ.zujicfg = {
[1] = 20002,
[2] = 20003,
[3] = 20004,
}
---* 增加狂暴足迹
local function KuangBaoOBJ_zuji(actor)
LOGPrint("足迹进来了111")
end
local function kuagnbao_title(actor)
for i, v in ipairs(KuangBaoOBJ.zujicfg or {}) do
clearplayeffect(actor, v)
end
if checktitle(actor, "狂暴之力") then
seticon(actor, 1, 1, 50500, -65, 15, 0, 0, 0)
local _num = Player.getint(actor, VarCfg.Player.int["狂暴击杀人数"]) or 0
if _num > 0 then
playeffect(actor, KuangBaoOBJ.zujicfg[_num >= #KuangBaoOBJ.zujicfg and #KuangBaoOBJ.zujicfg or _num], 0, 0, 0,
1, 0)
end
end
end
GameEvent.add(EventCfg.onLoginEnd, kuagnbao_title, KuangBaoOBJ)
GameEvent.add(EventCfg.goKuangBao, kuagnbao_title, KuangBaoOBJ)
-------------------------------↓↓↓ 狂暴之力死亡处理 ↓↓↓---------------------------------------
local function die_kuangbao(actor, _player)
if castleinfo(5) then
return
end
if not checktitle(actor, "狂暴之力") then
return
end
if isplayer(_player) then
local _map = getbaseinfo(actor, ConstCfg.gbase.mapid)
_map = tonumber(_map) and tonumber(_map) or _map
if not MapCfg.dalumap[_map].kuangbao then
if checktitle(_player, "狂暴之力") then
LOGDump(_map)
seticon(_player, 1, -1)
deprivetitle(_player, "狂暴之力", true)
local _player_info = Player.getmapinfo(_player)
throwitem(_player, _player_info[1], _player_info[2], _player_info[3], 3, "10元宝", 5, 0, false, true, false,
false, 1)
sendcentermsg(_player, 0, 250, "你被人物【" .. Player.getname(actor) .. "】杀死了,你身上的狂暴之力消失!", 0, 2)
sendcentermsg(actor, 0, 250, "你成功杀死拥有狂暴之力的玩家【" .. Player.getname(_player) .. "】!", 0, 2)
Player.addint(actor, VarCfg.Player.int["狂暴击杀人数"], 1)
Player.setint(_player, VarCfg.Player.int["狂暴击杀人数"], 0)
-- LOGPrint("推送狂暴事件!!!")
GameEvent.push(EventCfg.goKuangBao, actor)
GameEvent.push(EventCfg.goKuangBao, _player)
-- LOGPrint("推送狂暴事件完成!!!")
else
local jingduo_num = Player.getint(actor, VarCfg.Player.TL.int["狂暴掠夺"])
if jingduo_num < 20 then
local _player_money = querymoney(_player, ConstCfg.sysMoney["金币"])
local take_money = math.floor((_player_money * (math.random(10, 20) / 100)))
if take_money > 0 then
Player.setint(actor, VarCfg.Player.TL.int["狂暴掠夺"], jingduo_num + 1)
changemoney(_player, ConstCfg.sysMoney["金币"], "-", take_money, "狂暴掠夺", true)
changemoney(actor, ConstCfg.sysMoney["金币"], "+", take_money, "狂暴掠夺", true)
sendcentermsg(_player, 0, 250,
"你被拥有狂暴之力的玩家【" .. Player.getname(actor) .. "】击杀并被掠夺对方金币:" .. take_money .. "!", 0, 2)
sendcentermsg(actor, 0, 250,
"你成功杀死未拥有狂暴之力的玩家【" .. Player.getname(_player) .. "】并掠夺对方金币:" .. take_money .. "!", 0, 2)
end
end
end
end
end
end
GameEvent.add(EventCfg.onkillplay, die_kuangbao, KuangBaoOBJ)
KuangBaoOBJ.allowFunc = {"up"}
return KuangBaoOBJ