bayuMIR/Mirserver/Mir200/Envir/QuestDiary/系统类/登陆脚本.lua
2026-06-13 04:33:34 +08:00

130 lines
3.5 KiB
Lua

PlayerLogin = {}
-----* 新人登陆
function PlayerLogin:NewHuman(actor)
local _falg = getflagstatus(actor, VarCfg.Falg_newHuman)
if _falg == 0 then
---* 校验单职业
if ConstCfg.only_job then
local _job = getbaseinfo(actor, ConstCfg.gbase.job)
if _job ~= 0 then
setbaseinfo(actor, ConstCfg.sbase.job, 0)
end
end
---* 校验单性别
if ConstCfg.only_sex then
local _sex = getbaseinfo(actor, ConstCfg.gbase.sex)
if _sex ~= 0 then
setbaseinfo(actor, ConstCfg.sbase.sex, 0)
end
end
---* 校验初始等级
setbaseinfo(actor, ConstCfg.sbase.level, ConstCfg.newhuman_level)
---* 设置初始背包
setbagcount(actor, ConstCfg.bagcellnum)
---* 设置初始仓库格子数量
-- changestorage(actor, ConstCfg.warehousecellnum)
---* 添加初始技能
for _, v in ipairs(ConstCfg.first_login_addskill or {}) do
local skill_id = getskillindex(v.name)
addskill(actor, skill_id, v.level)
end
--给予新人的装备
for _, cfg in pairs(ConstCfg.first_login_itme or {}) do
if cfg.where then
-- LOGPrint(cfg.name[getbaseinfo(actor, ConstCfg.gbase.sex) + 1])
giveonitem(actor, cfg.where,
type(cfg.name) == "table" and cfg.name[getbaseinfo(actor, ConstCfg.gbase.sex) + 1] or cfg.name,
cfg.num, ConstCfg.binding)
else
giveitem(actor, cfg.name, cfg.num, ConstCfg.binding, "新人给予")
end
end
---* 初始化开启生肖盒
if ConstCfg.open_shengxiao then
setsndaitembox(actor, 1)
end
---* 初始化和平模式
changeattackmode(actor, 1)
---* 初始化大陆传送
Player.setint(actor, VarCfg.Player.int["大陆开荒"], 1)
---* 设置至宝盒子初始化
Player.setkeycount(actor, VarCfg.Player.str["至宝盒子"], 1, "空置")
---* 设置特戒盒子初始化
Player.setkeycount(actor, VarCfg.Player.str["特戒盒子"], 1, "空置")
---* 新人上线2小时每秒1000经验
if not hasbuff(actor, 10026) then
addbuff(actor, 10026)
end
---* 新人上线等级锁
setlocklevel(actor, 1, 65)
setflagstatus(actor, VarCfg.Falg_newHuman, 1)
end
end
GameEvent.add(EventCfg.onNewHuman, function(actor)
PlayerLogin:NewHuman(actor)
end, PlayerLogin)
function PlayerLogin:Login(actor)
---* 初始化大陆传送
if GetInt(0, actor, VarCfg.Player.int["大陆开荒"]) == 0 then
Player.setint(actor, VarCfg.Player.int["大陆开荒"], 1)
end
if Player.getstr(actor, VarCfg.Player.str["特戒盒子"]) == "" then
---* 设置特戒盒子初始化
Player.setkeycount(actor, VarCfg.Player.str["特戒盒子"], 1, "空置")
end
---* 初始化开启生肖盒
if ConstCfg.open_shengxiao then
setsndaitembox(actor, 1)
end
---* 设置一键拾取
-- local globa_human_num = grobalinfo(6)
-- local pick_time = ConstCfg.pickuptime
-- if globa_human_num >= 500 then
-- pick_time = 1000
-- elseif globa_human_num < 400 and globa_human_num >= 300 then
-- pick_time = 800
-- end
-- pickupitems(actor, 0, 8, pick_time)
---* 激活拾取精灵
if getflagstatus(actor, VarCfg.Falg_shiqujinlin) == 1 then
createsprite(actor, "嗷嗷虎")
pickupitems(actor, 1, 10, 500)
end
end
GameEvent.add(EventCfg.onLogin, function(actor)
PlayerLogin:Login(actor)
end, PlayerLogin, 1)
return PlayerLogin