查看: 2339|回复: 5

[已经解决] 请教判断变量$game_variables[2]的值是否有过一次小于0的时候

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2022-7-11 06:38:29 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taeckle 于 2022-7-11 06:41 编辑

大家好,

我想在游戏进行到一定时候时在大地图上设置一个NPC, 这个NPC可以用来判断公共变量$game_variables[2]的值从游戏开始到现在是否有过小于0的时候,
如果有的话则打开开关$game_switches[666],如果没有的话打开开关$game_switches[444],请问下这个判断又该怎么写呢?

if 公共变量$game_variables[2]的值从游戏开始到现在至少有过一次小于0的时候
$game_switches[666]=true
else
$game_switches[444]=true
end

还请大家多多指教,多谢啦!
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2022-7-11 10:25:33 | 显示全部楼层
本帖最后由 RyanBern 于 2022-7-11 10:28 编辑

随手写的,未测试。插入到 main 前。

[pre lang="Ruby"]
class Game_Variables
  alias :rb_array_set_20220711 :[]=
  def []=(variable_id, value)
    @aux = true if variable_id == 2 && value < 0
    rb_array_set_20220711(variable_id, value)
  end
  def v2_is_negative_since_game_start
    @aux || false
  end
end
[/pre]

使用:
[pre lang="Ruby"]if $game_variables.v2_is_negative_since_game_start
  # do this
else
  # do that
end
[/pre]

点评

同求这个内部函数介绍  发表于 2022-7-14 06:36
其实我很好奇这些内部函数哪里有介绍  发表于 2022-7-12 19:13

评分

参与人数 2赞 +2 收起 理由
taeckle + 1 多谢大神指点!
alexncf125 + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
 楼主| 发表于 2022-7-14 07:00:27 | 显示全部楼层
RyanBern 发表于 2022-7-11 10:25
随手写的,未测试。插入到 main 前。

大神请问下这个@aux || false的意思就是吗:
  1. if @aux==false
  2. @aux=false
  3. else
  4. @aux=true
  5. end
复制代码

点评

如果 @aux 未被定义就返回 false,否则返回其本身  发表于 2022-7-21 20:56
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部