剑侠情缘服务器修改,剑侠情缘手游上线赠送物品的两种修改方法

这篇博客介绍了如何在游戏服务器端修改代码来实现角色升级和创建时的奖励发放,包括元宝、银币、道具等,并提供了两种方法:通过邮件赠送和直接添加到玩家背包。详细展示了Lua脚本的修改方式,涉及奖励内容和数量的自定义,以及服务端打包和更新流程。
摘要由CSDN通过智能技术生成

第一种方法:以邮件形式进行赠送

第一种方法是当角色等级到达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

修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值