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

Project1

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

[已经解决] 請教必須裝備物件的問題。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
跳转到指定楼层
1
发表于 2015-7-9 22:51:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想問問怎麼讓裝備的位置必須擁有一件物件。
簡單的說,就是不允許裝備位置沒有裝備的情況。
請問這個效果該怎麼實現。

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2015-7-10 09:59:14 | 只看该作者
Window_EquipItem 58 行 的"添加空白" 是用来卸下装备的, 注释掉试试。

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
3
 楼主| 发表于 2015-7-10 19:55:49 | 只看该作者
kuerlulu 发表于 2015-7-10 09:59
Window_EquipItem 58 行 的"添加空白" 是用来卸下装备的, 注释掉试试。

這個方法一注釋就會出錯······
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2014-9-2
帖子
267
4
发表于 2015-7-10 23:26:08 | 只看该作者
本帖最后由 蝉岭Cicada 于 2015-7-10 23:29 编辑

这样子的?
RUBY 代码复制
  1. 5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}

没有装备的话,不能返回
148行
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
5
 楼主| 发表于 2015-7-10 23:51:10 | 只看该作者
蝉岭Cicada 发表于 2015-7-10 23:26
这样子的?
5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}
[/pre]

測試可行,但感覺效果有些奇怪。
如果可以追加一下提示語的話就更好。
另外追問一下,如果只想指定某個部位必須有裝備
該怎麼修改原句?
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2014-9-2
帖子
267
6
发表于 2015-7-11 09:10:44 | 只看该作者
本帖最后由 蝉岭Cicada 于 2015-7-11 09:39 编辑
妖精蕾贝卡 发表于 2015-7-10 23:51
測試可行,但感覺效果有些奇怪。
如果可以追加一下提示語的話就更好。
另外追問一下,如果只想指定某個部 ...


解释一下吧{:2_287:}
RUBY 代码复制
  1. 5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}
  2. 5.times  #=>五次
  3. {|t|                              }  #=>迭代器
  4. return  #=>该行以下不执行
  5. @right_window  #=>Window_EquipRight的实例
  6. instance_variable_get  #=>取得实例变量(目的是取得 Window_EquipRight 中的 @data)
  7. @right_window.instance_variable_get(:@data)  #=>获得 Window_EquipRight 中的 @data(是个数组)
  8. @right_window.instance_variable_get(:@data)[t]  #=>调用数组(@data)的元素(t 为 0 到 4,迭代器迭代 5 次,依次返回 武器数据(0)、盾数据(1)、头数据(2)、身体数据(3)、装饰品数据(4))
  9. @right_window.instance_variable_get(:@data)[t] == nil  #=>如果 0 到 5 其中一项未装备则返回 true,即没有全部装备
  10. return if @right_window.instance_variable_get(:@data)[t] == nil  #=>如果没有全部装备,则该行以下不执行,即不执行 $scene = Scene_Menu.new(2),即不返回菜单
  11. 5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}  #=>总的来说就是,五个装备,从上到下依次迭代,如果有没装备的就不返回菜单



提示语,这样子如何
在def main里插入这段
RUBY 代码复制
  1. @alert_window = Window_Base.new(0, 0, 640, 64)
  2. @alert_window.contents = Bitmap.new(640 - 32, 64 - 32)
  3. @alert_window.opacity = 0
  4. @alert_window.contents.font.color = Color.new(255,128,128)
  5. @alert_window.contents.draw_text(0, 0, 640-32, 34, "请装备!", 2)
  6. @alert_window.visible = false


在def update_right里插入这段
RUBY 代码复制
  1. if @right_window.instance_variable_get(:@data)[0] == nil
  2.   @alert_window.visible = true
  3.   return
  4. end
  5. @alert_window.visible = false


效果!!



指定的话,以下 5 种情况,自己配合用吧,用 && 或 ||
RUBY 代码复制
  1. return if @right_window.instance_variable_get(:@data)[0] == nil  武器数据
  2. return if @right_window.instance_variable_get(:@data)[1] == nil  盾数据
  3. return if @right_window.instance_variable_get(:@data)[2] == nil  头数据
  4. return if @right_window.instance_variable_get(:@data)[3] == nil  身体数据
  5. return if @right_window.instance_variable_get(:@data)[4] == nil  装饰品数据
  6.  
  7. 组合示范
  8. return if @right_window.instance_variable_get(:@data)[2] == nil && @right_window.instance_variable_get(:@data)[4] == nil  如果 头数据 和 装饰品数据 是空的则不返回

评分

参与人数 2星屑 +20 梦石 +1 收起 理由
RyanBern + 1 认可答案
妖精蕾贝卡 + 20

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
7
 楼主| 发表于 2015-7-11 15:47:28 | 只看该作者
蝉岭Cicada 发表于 2015-7-11 09:10
解释一下吧
5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}
...

十分感謝您的說明和指導。
但還有一些瑕疵,提示文字一直顯示。
有無辦法等多少幀后消除掉?
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2014-9-2
帖子
267
8
发表于 2015-7-11 16:07:00 | 只看该作者
本帖最后由 蝉岭Cicada 于 2015-7-11 16:08 编辑
妖精蕾贝卡 发表于 2015-7-11 15:47
十分感謝您的說明和指導。
但還有一些瑕疵,提示文字一直顯示。
有無辦法等多少幀后消除掉? ...


疏忽了
这样子看看
RUBY 代码复制
  1. @alert_window.visible = false

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
9
 楼主| 发表于 2015-7-11 16:08:58 | 只看该作者
蝉岭Cicada 发表于 2015-7-11 16:07
疏忽了
这样子看看
@alert_window.visible = false

可以了感謝。
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-23 15:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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