获取:1,打怪掉落, 2,礼包获取 3,商城获取 说明:基本上 除去商城获取的道具数据是由商城的脚本处理的,其他的获取方式都是从道具处理类给予道具处理的。搞清楚了获取方式,就好办,从相应的地方修改。

商城的脚本处理:

修改商城获取很简单, 打开 "商城处理类.lua" 找到要修改的道具,添加一个"可叠加=true"。基本上GGE的所有版本都是这个标记,如果有单独修改的,自行查找道具能否叠加的标记。

添加好之后,保存,重启! 现在购买的金柳露 就可以叠加了。

------------------------------------------------------------------------ 给予道具处理: 这个就需要在道具处理类中添加要修改的道具。首先打开"道具处理类.lua",搜索"道具处理类:给予道具"。

找到“if self.数据[道具id].可叠加” 在前面根据视频演示写入。

elseif 名称 == "超级金柳露" then if 数量 == nil then 数量 = 1 end self.数据[道具id].可叠加=true end 这一段的说明是,当处理道具是"超级金柳露"时,执行下面的操作。当"数量"变量是空的时候,将赋予数量的值为1.然后"self.数据[道具id].可叠加=true"这一段是修改这个道具为可叠加。 然后 重启。

这个是刚才修改了商城的金柳露,导致背包的金柳露已经是可以叠加了。所以再通过道具处理获取到金柳露时就自动叠加上去了。很多人以为这样就可以了。但如果背包没有从商城购买的金柳露时,通过道具处理类获取道具的时候就不会叠加了。就像这样。

好了,现在保存重启再看看修改好了没。

测试OK,不管是商城购买的道具还是其他方式获取的,都正常了。

---------------------------------------------修改使用--------------------------------------------------

一个游戏中的道具各种用途都不同,所以修改某个道具的时候,一定要清楚他的使用方法。刚才咱们修改了超级金柳露的获取方法。测试都OK,接下在要修改使用方式。如果不修改的话,就会出现召唤兽食用的时候一次就扣除一组了。看演示。

不知道这个端超级金柳露为什么会这样,先不管,我用金柳露来做演示吧。

if 名称 == "超级金柳露" or 名称 == "金柳露" then 这个的意思是 当名称 是 超级金柳露 或者 金柳露 时,都会向下执行。大佬忽略。。

后面的这些问题都是我这个端存在的一些问题,大家不用管。

看到没,这样就直接将一组金柳露全部删掉了。这个时候我们就要修改一下使用后的扣除了。

修改方法:我使用的方法是开启数据打印,查找到召唤兽炼妖处理扣除的地方,每个道具使用的时候处理的地方都不一样,如果不知道了,可以用数据打印来查找。

学会灵活使用数据打印来查找修改问题,基本上就可以解决99%的问题了。

怎么用,大家可以看我的演示。尤其是小白,大佬请忽视。

我这里已经开启了print 数据打印了,只要服务端有产生数据交互,都会打印出来。

{硬盘="WT811813216132 8\0\0\0\0",ip="127.0.0.1",序列=1,数字id="4000001",序号=5008,序列1=3} 这一段就是处理召唤兽炼妖的数据。

现在网络处理类里面找到这个序号的跳转目标。这里5008 elseif 序号>5000 and 序号<=5500 then -- 在这里面。就在召唤兽处理类里面。

召唤兽处理类:洗练处理(连接id,序号,id,内容) 这里就是定位到数据处理的位置。

我个人有点强迫症,看到代码没有对齐,总想着排一下...

玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]]=nil -----这个就是道具的信息 玩家数据[id].角色.数据.道具[物品]=nil -----这个就是背包的道具数据ID

这里就是删除道具,也就是金柳露的代码。正常GGE的梦幻里面 删除道具是两个地方,一个是背包的道具数据ID,一个是道具数据的信息。

看我的写法:

看我的写法:
if 玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]].数量 ~= nil then
--检测这个道具数据中是都有"数量"这个建,如果道具是可叠加的,这个建就一定不会是空的。所以这里就检测这个就可以了。

if 玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]].数量 > 1 then
--检测这个道具的数量是否大于1。大于1的时候就回往下执行

玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]].数量 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]].数量 - 1 --这里就是执行删除这个道具的数量,扣几个就删几个,如果是删除多个,就需要在检测哪里加上数量。然后这里的数量本身就是大于1,那么至少也是2个了,用掉了一个扣除后还会有剩余,所以就不用删除这个道具的数据。只需要这一行的修改数量就好了。
else --反之,检测不满足上面的时候就会执行下面的代码,这里不管数量是0或者是1,用掉一个后,这个道具就没有了,所以执行下面的删除道具数据和背包的数据ID就可以了。
玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]]=nil
玩家数据[id].角色.数据.道具[物品]=nil
end
else --同理,这里就是第一个检测 数量建是否是空的时候,当数量建是空的时候,就会执行下面的数据。删除道具数据和背包的数据ID
玩家数据[id].道具.数据[玩家数据[id].角色.数据.道具[物品]]=nil
玩家数据[id].角色.数据.道具[物品]=nil
end

现在修改好了,重启测试。 OK,现在就是修改成功了。

======================================================================================

本次教程中有涉及到一些错误查到,修改,数据打印的东西,只要大家学会这三样,基本上就能自行修改99%的内容。