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

Project1

 找回密码
 注册会员
搜索

请教制作一个周目储物箱需要用到的知识点以及原因

查看数: 4769 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-7-15 07:57

正文摘要:

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

回复

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

不知道你给的那个脚本要干啥,还不如发截图
taeckle 发表于 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 离开

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

评分

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

查看全部评分

taeckle 发表于 2021-7-24 03:22:37
guoxiaomi 发表于 2021-7-23 01:00
如6楼所说,你并没有描述清楚“周目”。你要把问题说的更详细才可以得到合适的回答。而且6楼已经给出合适的 ...


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

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

评分

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

查看全部评分

enghao_lim 发表于 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 多谢了!

查看全部评分

taeckle 发表于 2021-7-22 16:51:46
enghao_lim 发表于 2021-7-20 14:15
单一存档继承周目的方式有两种:

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

大神那请问下这个在game_party添加的本地数组又该怎么写才能保证其随周目数的增加(比如周目数就是$game_variable[1])而无限增加呢?
enghao_lim 发表于 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-11-23 17:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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