第一种方法:以邮件形式进行赠送
第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
function PlayerEvent:OnLevelUp(nNewLevel)
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
Kin:UpdateKinMemberInfo(me.dwKinId);
if nNewLevel == 10 then
Mail:SendSystemMail({
To = me.dwID,
Title = "真兒的饋贈",
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
From = "真兒",
tbAttach = {
{"Gold", 100},
},
})
end
if nNewLevel == GetMaxLevel() then
self:OnGetMaxLevel(me)
end
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
C++
function PlayerEvent:OnLevelUp(nNewLevel)
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
Kin:UpdateKinMemberInfo(me.dwKinId);
if nNewLevel == 10 then
Mail:SendSystemMail({
To = me.dwID,
Title = "测试服奖励",
Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
From = "大屌萝莉",
tbAttach = {
{"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},
},
})
end
if nNewLevel == GetMaxLevel() then
self:OnGetMaxLeve
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!
第二种方法:
当玩家创建完角色后就立即调整或直接放到背包中。
在/Server/ServerScript/Player找到PlayerEvent.lua中找到
C++
function PlayerEvent:OnFirstLogin()
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
Task:ForceAcceptTask(me, Task.nFirstTaskId);
-- 设置初始朝向
local nMapTemplateId = KPlayer.GetBirthPosition();
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
--me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
OnHook:OnFirstLogin(me);
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);
示例,我只需要赠送元宝跟等级
function PlayerEvent:OnFirstLogin()
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
Task:ForceAcceptTask(me, Task.nFirstTaskId);
-- 设置初始朝向
local nMapTemplateId = KPlayer.GetBirthPosition();
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
me.AddItem(3366,1); --上线送小黑坐骑
me.AddLevel(79); --上线立马79级
OnHook:OnFirstLogin(me);
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。