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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4481
在线时间
1053 小时
注册时间
2013-3-28
帖子
390

开拓者

跳转到指定楼层
1
发表于 2019-1-9 02:28:56 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv3.寻梦者

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

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39592
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

3
发表于 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

评分

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

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14629
在线时间
2152 小时
注册时间
2016-9-20
帖子
861
4
发表于 2019-1-9 23:10:02 | 只看该作者
方法1
module 你想要的
def self 方法
if...end
end
end
然后你調用就 module 你想要的.方法

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


我发的贴子大多未经整理是草稿抱歉
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 14:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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