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

Project1

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

[已经过期] 想以超过道具id为条件的条件句要怎么写?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
跳转到指定楼层
1
发表于 2021-2-21 12:42:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在vx 脚本只要写成 if item.id > 100 就行了。
但在 va 中就行不通了。请教之。

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2021-2-21 13:12:47 | 只看该作者
为啥行不通

只要 item 不为 nil , 是个 RPG::Item 就行得通的吧...

#<RPG::Item:0xc8a9678 @description="回复500HP。", @name="药水", @consumable=true, @occasion=0, @icon_index=192, @price=50, @scope=7, @animation_id=37, @note="", @speed=0, @id=1, @features=[], @effects=[#<RPG::UsableItem::Effect:0xc8a9484 @code=11, @data_id=0, @value1=0.0, @value2=500.0>], @damage=#<RPG::UsableItem::Damage:0xc8a9204 @type=0, @element_id=0, @formula="0", @variance=20, @critical=false>, @success_rate=100, @hit_type=0, @itype_id=1, @repeats=1, @tp_gain=0>
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36392
在线时间
10789 小时
注册时间
2009-3-15
帖子
4813
3
发表于 2021-2-21 15:20:34 | 只看该作者
item可以是道具可以是技能...所以不行吗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
4
 楼主| 发表于 2021-2-21 16:28:30 | 只看该作者
搞不定,我是在window_help 中想用条件句切换显示内容。
item.id 似乎要在Scene_Item之中,使用才会正常。
如果要在别的场景中使用,有时灵有时不灵。
可能是在va中,必需对item 先做限制声明,不然会直接弹窗“找不到 id 的方法。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
5
发表于 2021-2-21 16:53:29 | 只看该作者
本帖最后由 alexncf125 于 2021-2-21 17:01 编辑
alianlord 发表于 2021-2-21 16:28
搞不定,我是在window_help 中想用条件句切换显示内容。
item.id 似乎要在Scene_Item之中,使用才会正常。
...


请问为什么我在Window_Help写的这红句能正常地p出物品ID

class Window_Help < Window_Base
  alias set_item_p_item_id set_item
  def set_item(item)
    p item.id if item && item.is_a?(RPG::Item)
    p_item_id_set_item(item)
  end
end

点评

我很赞同  发表于 2021-2-21 17:04
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
6
 楼主| 发表于 2021-2-21 17:24:58 | 只看该作者
alexncf125 发表于 2021-2-21 16:53
请问为什么我在Window_Help写的这红句能正常地p出物品ID

class Window_Help < Window_Base

我题出的推理只是假设,错了也正常。
你能在地图场景中,写个能显示item_id的触发事件吗?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
7
发表于 2021-2-21 18:54:01 | 只看该作者
本帖最后由 alexncf125 于 2021-2-21 20:22 编辑
alianlord 发表于 2021-2-21 17:24
我题出的推理只是假设,错了也正常。
你能在地图场景中,写个能显示item_id的触发事件吗? ...


我就不写了
看看Scene_Map(地图场景)下的Window_KeyItem第45行item.id
只就「地图场景中,显示item_id」这问题而言, 我觉得应该很有关联

至于为什么在Scene_Item之中,能正常使用item.id呢
一是因为Scene_Item第35行有@item_window = Window_ItemList.new吧...
二是因为Scene_ItemBase第27-29行有  def item; @item_window.item; end吧...

而Window_ItemList里有什么呢...
  def item
    @data && index >= 0 ? @data[index] : nil
  end

@data是什么呢...
  def make_item_list
    @data = $game_party.all_items.select {|item| include?(item) }
    @data.push(nil) if include?(nil)
  end
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
8
 楼主| 发表于 2021-2-21 20:45:10 | 只看该作者
alexncf125 发表于 2021-2-21 18:54
我就不写了
看看Scene_Map(地图场景)下的Window_KeyItem第45行item.id
只就「地图场景中,显示item_id」 ...

感谢答主如此详细的说明。
想用帮助窗口来显示相关信息好像只有item 和 skill 两种场景。
va系统的 item.id事实上有很多(Skill,Item,Weapon,Armor)共用。
单纯的 item.id 在没有前置的分流下 会产生错误。
至于要如何改写我也还没试出来。
脚本真是牵一发而动全身啊………
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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