查看: 3332|回复: 9

[已经解决] 如何在多个地方同时调用同一个if判断

[复制链接]
梦石
0
星屑
4657
在线时间
1069 小时
注册时间
2013-3-28
回帖
309

开拓者

发表于 2019-1-9 02:28:56 来自手机 | 显示全部楼层 |阅读模式

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

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

×
个人想到的方法是设定一个常量然后判断是否为真,但是不知道怎么把多行的字符串转换为可执行语句,eval只能执行单行
梦石
0
星屑
4017
在线时间
604 小时
注册时间
2017-4-21
回帖
177
发表于 2019-1-9 09:01:33 | 显示全部楼层
感觉描写得不够详细。
比如举两个例子,说明在那几个地方需要用到,这样使用是要达到什么效果。

看了帖子,我的理解是
用事件里面的公共事件?

或者在main前插入
  1. class WOSHIMINGCHENG
  2.   def initialize
  3.      #这里是内容,比如
  4.       $game_variables[51] = 0
  5.       if $game_variables[13] == 1
  6.         $game_variables[51] = 1
  7.       end
  8.   end
  9. end
复制代码


事件脚本里面调用:WOSHIMINGCHENG.new

点评

你这个貌似是使用事件編緝器  发表于 2019-1-9 21:48
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-1-9 11:49:07 | 显示全部楼层
在多个地方同时调用同一个if判断,最好的办法是把这个if判断封装到对象类中。
如果涉及数据对象则装进对象类中。比如Game_BaseItemr中的is_skill?,is_item?等方法。
不涉及对象的话,开关$game_switches勉强算是其中一种。这种全局变量尽量集中使用。

另外,eval好像可以执行多行的。
[pre lang="ruby"]eval(
"p 1
p 2
p 3"
)[/pre]

点评

居然真的可以,看来是脚本编辑器颜色不变化  发表于 2019-1-9 23:50
你把我这里发的代码复制到脚本编辑器里运行一下就知道行不行了。- 0  发表于 2019-1-9 23:43
但是"只能字符串化一行  发表于 2019-1-9 23:35
我觉得事件狂魔不会满口常量,字符串,if,eval而是张口闭口公共事件。  发表于 2019-1-9 23:35
翻看楼主的紀錄應該是萌新,事件狂魔,所以这些他听不懂  发表于 2019-1-9 23:15

评分

参与人数 2星屑 +50 赞 +1 收起 理由
RyanBern + 50 认可答案
陈大帅帅帅哥 + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
14720
在线时间
2175 小时
注册时间
2016-9-20
回帖
777
发表于 2019-1-9 23:10:02 | 显示全部楼层
方法1
module 你想要的
def self 方法
if...end
end
end
然后你調用就 module 你想要的.方法

方法2
或者用alias 重命名一个updata 在你的場景比如在 Class Scene_map中


贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部