设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

让数据网游化(实现思想)

查看数: 2922 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-5-2 11:16

正文摘要:

本帖最后由 578783944 于 2016-5-2 14:42 编辑 首先,这是我个人的心得,仅仅是思想,几乎没有代码的参考价值。 数据指的是:装备,物品,角色 网游化:同样的东西可复制,并且部分属性可随机(动态实现) PS: ...

回复

jiushiainilip19 发表于 2016-5-5 21:52:07
挺期待XP的未来能够走向更加完美,也支持LZ能够完成这项工程,不懂编程的我只能默默支持!{:2_267:}

点评

谢谢  发表于 2016-5-6 13:05
怪蜀黍 发表于 2016-5-4 11:14:05
随机属性应该有类似的范例吧。

点评

随机属性的话,很简单,在创建对象后调用的方法内:例如写上 @pdef = rand(10) * 100 + 50 即可。  发表于 2016-5-4 12:22
锡鹏 发表于 2016-5-3 21:42:56
楼主,有工程吗?

点评

不过,你想自己写的话,有什么不懂的可以来问我,我尽量及时回复。邮箱,这个网站,blog留言都可以  发表于 2016-5-3 21:47
不好意思,我是自己做的游戏,然后写的实现思想。自己写的话,不会冲突。外挂很容易冲突很麻烦的。不过写起来很麻烦。  发表于 2016-5-3 21:45
578783944 发表于 2016-5-2 14:29:44
RyanBern 发表于 2016-5-2 12:28
仿网游系统的基本思路讲解不错。其实如果去掉实现的部分,思路其实还是很清晰的。但是,我能说能真正实现一 ...

是的,我在文章结尾说了,如果抛弃数据库,商店物品出售就非常难解决,需要手动写脚本。如果想方便一点,可以在数据库设置一组数据即可,这些数据均作为模板数据,只有共性。而且,我的游戏中就是这么设计的。

这个实现过程,确实比较麻烦,需要一定的脚本基础,对系统有个了解,我就想让喜欢研究的人有个思路,毕竟很多都是只提供了代码,却没有一个思路详细解释的。
RyanBern 发表于 2016-5-2 12:28:51
仿网游系统的基本思路讲解不错。其实如果去掉实现的部分,思路其实还是很清晰的。但是,我能说能真正实现一个这样的系统实际上非常麻烦吗?需要考虑的东西太多了。

附上一个芯大实现的仿网游装备系统,虽然我没打开过工程,但是我能想象里面的代码特别麻烦。
https://rpg.blue/thread-346318-1-1.html

楼主的思路和我想到的有点不太一样。看了两遍文章,楼主的方案是先确定最大的物品种类数,然后使用ID偏移的办法来复制多个物品。这样做有一个问题就是一旦这个最大的物品种类数确定之后,千万不能再变化,否则ID会乱掉。具体说来,如果确定最多有15种物品,然后作者突然想起来应该是20种物品,这样的话$data_item里面所有的ID就要重新调一遍,否则虽然程序不会冲突,但是ID为1,16,31,...表示同一种物品的特性就会消失了。这一过程虽然可以通过代码实现自动更新,但是完全可以换一种思路来实现。

另外,看楼主的实现过程,应该是将每一个$data_items都存在档里面,完全抛弃数据库内容。从这方面上来说,我觉得数据库仍然可以利用起来,不至于到完全抛弃的地步。


下面说说我实现过的思路。原始RMXP不能仿网游的原因在于它的内部数据结构,第一,它的数据库限制了同一种物品只能有一种参数,不会出现同样都是[铜剑],然后一个攻击力15,一个攻击力20的情况(如果要实现这样的效果,唯一的办法就是占用多个数据库的位置);第二,在存储物品持有数量时,它只会记录物品的ID和对应的数量,这个机制在原始的数据库结构中是没有问题的,但是放在网游系统里面就出了问题。在网游系统中,同样都是[铜剑],但是属性值可以不一样。

我的想法就是修改RMXP存储物品的方式,必须把物品/武器/防具的每一个对象区分开来。具体来说,如果主角有两把[铜剑],我们记录的时候不要只是记录数字2,而是要生成两个[铜剑]对象然后存储起来,可以使用数组或者hash,区别不是很大。

那么,数据库是干什么用的呢?我们利用数据库来存储同类物品的共性。例如,假如我只需要武器和防具强化的功能,并且武器防具的基础值都是一样的,我们就可以在数据库里面设置这些基础值,而生成的对象里面只存储它们对应的ID和强化等级,这样修改起来非常方便,而且还比较节省空间。如果我需要武器和防具的基础值是随机的,那么数据库相应的部分也可以保留。例如我希望[铜剑]的攻击力在10~20之间波动,那么数据库我就设置为15,这样随机生成装备的时候正好就以数据库作为参照进行波动。总之,我建议要将数据库利用起来。

无论是哪种办法,需要的工作量都不小,因为你需要考虑到事件的[增减物品][增减武器][条件分歧][变更装备]等等。仿网游系统和RMXP原始系统结构非常不一样,因此无论使用什么思路,大概都会对原始系统进行巨大改动。个人感觉脚本新手很难独立完成。

点评

很重要的一点,确实这些数据都存档了,否则是会消失的。  发表于 2016-5-2 14:32
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 06:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表