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

Project1

 找回密码
 注册会员
搜索
查看: 84|回复: 9

[有事请教] 如何在多个地方同时调用同一个if判断

[复制链接]

Lv3.寻梦者

梦石
0
星屑
988
在线时间
774 小时
注册时间
2013-3-28
帖子
310

开拓者

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

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

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

x
个人想到的方法是设定一个常量然后判断是否为真,但是不知道怎么把多行的字符串转换为可执行语句,eval只能执行单行

Lv3.寻梦者

梦石
0
星屑
2337
在线时间
364 小时
注册时间
2017-4-21
帖子
143
发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

另外,eval好像可以执行多行的。
RUBY 代码复制打印
  1. eval(
  2. "p 1
  3. p 2
  4. p 3"
  5. )

点评

居然真的可以,看来是脚本编辑器颜色不变化  发表于 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

评分

参与人数 1+1 收起 理由
陈大帅帅帅哥 + 1 认可答案

查看全部评分


陨石坑——Alice Union
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

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


回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-1-21 00:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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