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

Project1

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

[已经过期] 请教制作一个周目储物箱需要用到的知识点以及原因

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
跳转到指定楼层
1
发表于 2021-7-15 07:57:54 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
我想做一个简单的周目储物箱,保证每周目存储道具数量上限增加3,都弄了一个多月了也没怎么弄明白,
还请大神跟咱多讲点思路,光给咱一个断章取义的代码咱也只能学个一知半解,咱先抛砖引玉:

1.要制作一个周目储物箱,需要学会插入图片,插入一张储物箱的图片。
2.要制作一个周目储物箱,需要学会XXX, XXX是用来设置周目数对周目储物箱数量上限的限制。

还请诸位大神多多指教(尤其是上面那个用来设置周目数对周目储物箱数量上限限制的知识点)

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
14
 楼主| 发表于 2021-7-26 00:42:41 | 只看该作者
本帖最后由 taeckle 于 2021-7-26 00:44 编辑
guoxiaomi 发表于 2021-7-25 18:16
所以游戏通关后,会传送到一个位置继续,然后玩家可以继续走一遍通关路线?

不知道你给的那个脚本要干啥, ...


没错,继续走一遍通关,那个脚本是做物品分类用的,使用过后物品会根据数据库说明一栏里@后的名称自动分类, 比如这圣灵药:

qx.PNG (64.77 KB, 下载次数: 6)

qx.PNG
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

13
发表于 2021-7-25 18:16:57 | 只看该作者
所以游戏通关后,会传送到一个位置继续,然后玩家可以继续走一遍通关路线?

不知道你给的那个脚本要干啥,还不如发截图
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
12
 楼主| 发表于 2021-7-25 17:39:13 | 只看该作者
本帖最后由 taeckle 于 2021-7-25 17:41 编辑
guoxiaomi 发表于 2021-7-24 09:01
变量1如何增加?你有多个存档的话,储物箱里的内容准备怎么处置?是各存档之间可以通过这个箱子交换物品? ...


变量1在游戏每周目通关战斗结束后设置增加1, 各个存档互相独立,保证这个周目储存箱只依赖对应单个存档, 存储箱里最好能用到那个根据数据库物品描述@后面定义的分类脚本(具体情况可参考这个脚本: https://rpg.blue/thread-376475-1-1.html ) ,变量1每增加1后存储箱存储物品数量上限对应增加3

#==============================================================================
# ■ RPG追加定义,使用@符号分类
#==============================================================================

module RPG
  class Weapon
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "武器类"
    end
  end
  class Item
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "普通物品"
    end
  end
  class Armor
    def description
      description = @description.split(/@/)[0]
      return description != nil ? description : ''
    end
    def desc
      desc = @description.split(/@/)[1]
      return desc != nil ? desc : "防具类"
    end
  end
end


PS: 周目存储箱界面需有3个选项: 1 存入,2 取出, 3 离开

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

11
发表于 2021-7-24 09:01:23 | 只看该作者
变量1如何增加?你有多个存档的话,储物箱里的内容准备怎么处置?是各存档之间可以通过这个箱子交换物品?还是这个储物箱只依赖单个存档,每个存档的变量1都不一样?

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神指点!

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
10
 楼主| 发表于 2021-7-24 03:22:37 | 只看该作者
guoxiaomi 发表于 2021-7-23 01:00
如6楼所说,你并没有描述清楚“周目”。你要把问题说的更详细才可以得到合适的回答。而且6楼已经给出合适的 ...


我就想做一个简简单单的周目储物箱,保证每周目存储物品(道具+武器+防具之和)数量上限增加3,周目数就用$game_variables[1]表示,周目储存箱所用到的图片名为xiangzi.png, 周目储存箱所属的类就命名为$scene = Scene_Warehouse.new

这样清楚了嘛。。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

9
发表于 2021-7-23 01:00:56 | 只看该作者
如6楼所说,你并没有描述清楚“周目”。你要把问题说的更详细才可以得到合适的回答。而且6楼已经给出合适的方案了。

评分

参与人数 1+1 收起 理由
taeckle + 1 塞糖

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
8
发表于 2021-7-23 00:22:02 | 只看该作者
本帖最后由 enghao_lim 于 2021-7-23 00:23 编辑
taeckle 发表于 2021-7-22 16:51
大神那请问下这个在game_party添加的本地数组又该怎么写才能保证其随周目数的增加(比如周目数就是$game_v ...


并不需要对数组进行数量限制,数量限制在存放物品的时候再检查就可以了。

假设game_party已经添加了一个用于储存物品的数组叫做storage_box那就可以对game_party追加一个简易函数来判断是否箱子已满。

举例:
  1. def storage_box_full
  2.   return @storage_box.length <= $game_variables[1] * 10 #假设一个周目多10个位子
  3. end
复制代码


这样就可以用$game_party.storage_box_full来检查箱子是否满了,只要变量1一直增值下去那箱子的大小也会一直增加。

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢了!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
7
 楼主| 发表于 2021-7-22 16:51:46 | 只看该作者
enghao_lim 发表于 2021-7-20 14:15
单一存档继承周目的方式有两种:

1. 在开始新游戏时强制选着存档并询问是否继承,在确认后读取选择的存档 ...

大神那请问下这个在game_party添加的本地数组又该怎么写才能保证其随周目数的增加(比如周目数就是$game_variable[1])而无限增加呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
6
发表于 2021-7-20 14:15:42 | 只看该作者
单一存档继承周目的方式有两种:

1. 在开始新游戏时强制选着存档并询问是否继承,在确认后读取选择的存档里头特定的变量用于继承。
所需知识:更改标题界面,针对开始游戏添加存档选择,存档读取方式。(scene_title, scene_load, scene_save 这些包括底下的窗口(window)最好吃透)

2. 在游戏通关后强制进入结束过场,重置一切除了需要继承的变量。
所需知识:所以基本数据库资料脚本,重置的数据包括开关,变量,角色,道具,金钱等。(game_actor, game_party, game_variables, game_switch)

储物箱脚本:
这个目前没有,所以怎样都得自写,其原理更像现有站上的仓库脚本,可以参考。如果箱子里头的东西需要继承,用(1)的方法需要在读取村当时也读取箱子里头的东西并继承,用(2)的方法则是不需要重置即可继承。
通常仓库的设计是在game_party添加一个本地数组用于储存物品,或者用变量也行,这两个都会自动记录进存档而并不需要而外对存档读档进行修改。

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神指点!

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-4 20:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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