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

Project1

 找回密码
 注册会员
搜索
查看: 17010|回复: 23
打印 上一主题 下一主题

[RMVX发布] 【教程】+【范例】简易多背包系统(超萌的范例)

[复制链接]

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4694
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

跳转到指定楼层
1
发表于 2011-9-23 13:59:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 protosssonny 于 2011-11-4 09:11 编辑

今天给大家发一个“简易多背包系统”。
首先声明:
1、如果您是(新手+伸手党),请无须看我这些废话,直接把范例工程拿去用;
2、如果您是(新手+非伸手党),请看完我这罗罗嗦嗦几百字,再下范例工程,对您会有很大帮助的;
3、如果您是高手,请无视本帖子。


(新手+非伸手党的)正文部分:
自定义的全局变量($asd等以$开头的变量)是无法被存档的,即下次载入游戏存档时,上次运行有数值的全局变量将变成nil。所以自定义的全局变量只能随时计算随时使用。

而有些特殊的全局变量是可以被存档的,例如开关($game_swicthes[m])、变量($game_variables[n])、独立开关($game_self_switches[[m,n,"A"]])等等。于是我们可以利用他们能被存档的特性来储存我们的背包物品。

不要以为$game_variables[n]只是一个变量,其实$game_variables[n]还可以当一个开关、甚至一个数组。
例如当数组使用的情况:
  1. $game_variables[1]=[1,3,nil,"等等"]
  2. p $game_variables[1]
复制代码
运行结果就是:[1,3,nil,"等等"]

于是我们把很大的变量1000号以上用来制作简易多背包系统的储存数组的想法是可行的,毕竟做一个正常的游戏用到1000+的变量几乎是不可能的,退一万步,实在发生了可能,我们可以2000+甚至3000+以上的变量,无所谓。  
思路是,我们把数组$game_variables[1001]的元素定义为999个,每一个元素对应一个武器的数量、比如,当某武器3号数量为0时,数组$game_variables[1001]的3号元素元素就为0;武器5号数量为2时,数组$game_variables[1001]的5号元素元素就为2。作了这样的一一对应,再加上$game_variables[1001]是可以存档的,以后要调用某武器数量,就有调用数据的依据了。
我们把所有的物品、武器、防具都作了这样的一一对应以后,就可以做成一个简易的多背包系统了。

怎样定义一个999个元素的数组?很简单,比如1000号变量定义为含999个元素的数组:
  1. $game_variables[1000]=[]
  2. for i in 1..999
  3.   $game_variables[1000][i] = 0
  4. end
  5. #如此一来,$game_variables[1000]就是这样一个数组:
  6. #[nil,0,0,0,0,0,0,0,……,0,0]
复制代码
有同学可能会问,为什么要用数组来储存数据,直接用1号变量对应1号武器,2号对应2号难道不可以吗?当然可以,可是假如我们有300个武器、400个防具、900个物品,那么将消耗1600个变量,浪费了很多很多变量,而且管理起来也不方便。如果用数组来处理,只消耗3个变量,即1001至1003号,非常精简。所以我们选择了数组来储存数据。

最后总结一下,本教程提供了一个储存数据的思路——利用变量可以存档,可以定义为数组。同样的道理,我们还可以使用开关、独立开关形成数组来储存数据,方法是一样的。利用这个思路,我们可以储存大量繁多的数据列表,简单方便。写脚本也思路清晰,简单明了。

(新手+伸手党的)正文部分:
请直接下载范例工程: 简易多背包系统.rar (247.82 KB, 下载次数: 8820)

高手的正文部分:
请无视本帖子,谢谢。

点评

所以更盼望VA能够有更给力的脚本。  发表于 2012-9-3 13:23
RSGG3似乎很难学,所以虽然盼着程序可以转战VA但是也不敢给人填麻烦。对一般玩家而言,数据库就可以实现的功能能不用脚本最好  发表于 2012-9-3 13:23
因为VA比起VX确实非常好用,特别是在地图的设置上面,VX与之一比实在是渣。我之前也纠结着VX和VA因为我的坑都在VX,不过一看地图设定,就只有VA了  发表于 2012-9-3 13:07
好吧,个人对使用到 RGSS 本身的全局变量还是有一点顾忌的。  发表于 2012-1-11 21:15

评分

参与人数 12星屑 +265 +1 收起 理由
zsy120989 + 1 我很赞同
游弋 + 15 我很赞同
Fakmab + 2 凑整不解释
宠物小精灵 + 7 好人啊楼主
小学生 + 5 精品文章
sai90306 + 12 學習!!
风雪优游 + 40 投币。
黑白界 + 40 好人……
MSQ + 24 楼主是好人!
仲秋启明 + 20 我很赞同

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747

Lv1.梦旅人

梦石
0
星屑
48
在线时间
678 小时
注册时间
2010-8-11
帖子
1533
2
发表于 2011-9-23 22:29:19 | 只看该作者
比起脚本,这个范例更萌=w=
我突然有灵感了啊XD

点评

萌一点的范例有利于激发人们的兴趣。  发表于 2011-9-24 10:43
小艾工作室开张= =
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
731
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

3
发表于 2011-9-24 03:24:44 | 只看该作者
思路/脚本很不错 =W= 抱走
其实能不能存档这个问题,重定义一下Scene_File的write_save_data(file)和read_save_data(file)不就好了?
嘛……一般变量用不到那么多倒是真的。况且的确大大简化代码 =W= ~

点评

再有就是感谢你们的认可。我想本帖子的思路方法对不少人会有启发的,这样我的发帖初衷就达到了。  发表于 2011-9-24 10:42
读写存档的脚本我是不想改了,上次我发的存档出问题的帖子,猫君哥也是知道的。到现在还没有解决呢。所以不动存档了,另辟蹊径。呵呵!  发表于 2011-9-24 10:41
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
80 小时
注册时间
2011-1-21
帖子
85
4
发表于 2011-10-10 13:05:57 | 只看该作者
非常感谢 楼主对新人的照顾~~   作为时间不多 又想做游戏的人   楼主的 范例工程 非常实用

点评

希望我的帖子能更好地帮助新人进步。  发表于 2011-10-10 16:18
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4694
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

5
 楼主| 发表于 2011-11-3 22:12:28 | 只看该作者
花了一天做出的超萌的范例,决不能就这样沉了!

点评

光头葛炮!蓝猫!吴克!尽在P叔!(喵呜!额喵呜!呜咪!哦咪哦咪!)  发表于 2013-2-20 09:40
P叔,下载成功了,你真是好人,理论上你应该得到100000000000000000000张好人卡  发表于 2012-10-25 21:23
再者也是对自己劳动成果的一种肯定、一种珍惜,更是一种自信的表现!我相信本帖子对很多人都有用,至少思路方法是值得借鉴的。  发表于 2011-11-4 08:58
本区对坟的定义是回复间隔大于30天,这里还没有到30天。再说,能帮助人,挖就挖吧,扣分就扣吧。牺牲我一个,幸福千万家。  发表于 2011-11-4 08:57
虽然东西是不错啦,但是你这算挖纹啊……  发表于 2011-11-3 22:16
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

6
发表于 2011-11-5 22:34:06 | 只看该作者
自定义的全局变量($asd等以$开头的变量)是无法被存档的,即下次载入游戏存档时,上次运行有数值的全局变量将变成nil。所以自定义的全局变量只能随时计算随时使用。

这个其实很容易解决,只要改动Scene_Save和Scene_Load里相应保存的地方就好

点评

我以前做宠物系统的时候宠物的数组就修改了存档部分存在了存档中。  发表于 2011-11-7 09:26
没有试过,做完《逝二》以后我来试看看。  发表于 2011-11-6 10:05
回复 支持 反对

使用道具 举报

Lv-1.咸鱼 (游客)

梦石
0
星屑
-2115
在线时间
0 小时
注册时间
2011-11-6
帖子
4
7
发表于 2011-11-6 12:59:38 | 只看该作者
小弟初来咋到

点评

大神啊 膜拜ING。。。。  发表于 2013-3-20 23:53
-负2115经验了。。。  发表于 2012-10-25 21:15

评分

参与人数 1星屑 -20 收起 理由
精灵使者 -20 纯水小小警告下

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2011-12-9
帖子
23
8
发表于 2011-12-11 09:35:30 | 只看该作者
新手在伸手中~~

点评

这个真的大丈夫= =?  发表于 2011-12-11 16:22

评分

参与人数 1星屑 -10 收起 理由
忧雪の伤 -10 酱油瓶 谢谢惠顾

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2011-11-28
帖子
9
9
发表于 2012-1-10 13:34:18 | 只看该作者
LZ....在你的范例里是好使的.....可是我用到我的游戏里面就......
只要切换背包就

点评

广告- -  发表于 2012-10-29 16:25
图挂了  发表于 2012-1-10 21:41
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

10
发表于 2012-1-11 21:07:45 | 只看该作者
本帖最后由 忧雪の伤 于 2012-1-11 21:07 编辑

首先,动用 RGSSGame_Variable 到底有什么好处?
其次,
  1. ary = Array.new(9999) {}
复制代码
我什么都不知道哦~

点评

好处就是 $game_variables 是全局变量,可以任意调用;而且是可以载入存档的全局变量,是$abc或者@abc无法取代的。  发表于 2012-1-11 21:13
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-22 00:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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