为创业者
服务

为剑侠新增NPC提供指定道具销毁

1. 脚本你可以随意去配置,如果你实在不懂的话可以直接以纳兰真为基础,纳兰真脚本:\ServerScript\Npc\Class\ActivityNpc.lua

2. 脚本分为两种方法,一种为清空背包全部道具,一种只销毁单一物品.

以纳兰真为例子

function tbNpc:OnDialog()

    Dialog:Show(

    {

        Text    = (“我可以为您提供以下服务”),

        OptList = {

            { Text = (“清理物品”), Callback = self.CleanBag, Param = {self} },–当玩家选择此项,将执行CleanBag这个方法

            { Text = (“你先忙”), Callback = function () end},

        },

    }, me, him);  

end

在OptList = {下新增一条以下内容

{ Text = (“清理物品”), Callback = self.CleanBag, Param = {self} },

方法一:清空背包所有物品

function tbNpc:CleanBag()

                me.MsgBox(“确定要清空包裹吗?操作后包裹内所有物品将被清空!”,

                        {

                                {“确定”, self.CleanBagOK, Param = {self,1}, true}, –当用户选择确定,将执行CleanBagOK这个方法

                                {“不了”}

                        });

end

function tbNpc:CleanBagOK() –经过用户选择后执行CleanBagOK这个方法清理背包

        local items = me.GetItemListInBag();

        for nIdx, pItem in ipairs(items) do

                pItem.Delete(1)

        end

        me.CenterMsg(“清理包裹成功”, true)

end

方法二:销毁指定物品

function tbNpc:CleanBag2()  –因为纳兰真我在测试的时候两种方法都使用,所以我这里是CleanBag2,当然如果你两个都要用的话,请记得在基础方法那边加多CleanBag2供玩家选择

        local opt  = {};

        local tbItem = me.GetItemListInBag() –获取背包道具,调用服务端原本的方法

                for _, pItem in pairs(tbItem) do

                        local dwId = pItem.dwId

                        table.insert(opt, { Text = “销毁 → “..pItem.szName, Callback = self.delItemSure, Param = {self, dwId} })  –当玩家选择将执行delItemSure方法

                end

        table.insert(opt, { Text = “抱歉点错了!”, Callback = function () end})

                Dialog:Show(

                                {

                                        Text    = “物品销毁后将无法找回,请慎重选择!”,

                                        OptList = opt,

                                }, me, him);   

end

function tbNpc:delItemSure(dwId) –经过上面玩家选择销毁某个物品则执行这个方法

        local pItem = KItem.GetItemObj(dwId)

                Dialog:Show(

                {

                        Text    = “确定要销毁 → “..pItem.szName..”吗?”,

                                OptList = {

                                { Text = “确定”, Callback = self.delItem, Param = {self, dwId} }, –当玩家选择确定销毁则执行delItem这个方法

                                { Text = “取消”, Callback = function () end},

                                },

                }, me, him);   

        end

function tbNpc:delItem(dwId) –执行销毁

        local pItem = KItem.GetItemObj(dwId)

                me.CenterMsg(“成功为您销毁物品:”..pItem.szName..””, true)

        pItem.Delete(1)

end

当你修改完之后打包服务端丢到服务器重启服务端即可

免责声明:站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。展示内容仅作为学习交流使用,其版权归出版公司或原作者所有,本站不对所涉及的版权问题负责。如原作者认为侵权,请联系我们,我们会立即删除文章!蜗牛学社 » 为剑侠新增NPC提供指定道具销毁
分享到: 更多 (0)