Project1

标题: 语法问题,如何将一个代码块框起来? [打印本页]

作者: 七重    时间: 2016-2-10 23:24
标题: 语法问题,如何将一个代码块框起来?
本帖最后由 七重 于 2016-2-10 23:57 编辑

如何将一个代码块框起来?

遇到两个脚本冲突。
因为其中一个脚本只在一张地图用到。
所以我打算用开关控制是否运行这两个脚本。

当某个开关打开时才执行脚本。

==================================

if $game_switches[??] == ture
  {
     想控制的脚本代码
}

==================================

这个是错的。
记得以前好像看过是有这么一个写法的,但是又记不清楚具体怎么写,正确的写法应该是什么呢。。?

这个问题好像很小白。。但是没有找到。。十分抱歉又来伸手
作者: 喵呜喵5    时间: 2016-2-11 00:18
若脚本本身没提供相应的功能的话
除非你看得懂该脚本,否则请不要这么进行尝试
作者: 七重    时间: 2016-2-11 08:02
本帖最后由 七重 于 2016-2-11 08:08 编辑
喵呜喵5 发表于 2016-2-11 00:18
若脚本本身没提供相应的功能的话
除非你看得懂该脚本,否则请不要这么进行尝试 ...


好像是有点乱来。。

出现冲突的脚本是:
ulds,
Khas Awesome Light Effects
以及一个没有作者信息的脚本layer,效果是将多个地图的内容在一个地图分层显示,效果和立交桥脚本差不多。附上代码。
(有冲突的就是第三个,其实和很多脚本冲突,之前本来放弃用这个了,但是这个效果有点炫啊。。所以想要抢救一下)
layer代码



  
作者: Vortur    时间: 2016-2-16 17:11
本帖最后由 Vortur 于 2016-2-20 18:27 编辑

这个方法可能行:

1.找到脚本的最顶端class
2.在该class下加入判断

[line]0[/line]
试试这样,以Scene_Base为例:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 主逻辑
  3.   #--------------------------------------------------------------------------
  4.   def main
  5.     start
  6.     post_start
  7.     update until scene_changing?
  8.     pre_terminate
  9.     terminate
  10.   end

这段改为
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 主逻辑
  3.   #--------------------------------------------------------------------------
  4.   def main
  5. if $66RPG==1
  6. then
  7.     start
  8.     post_start
  9.     update until scene_changing?
  10.     pre_terminate
  11.     terminate
  12. eng
  13.   end


当需要该功能时,就在事件里插入脚本
$66RPG=1,
否则
$66RPG=0


未测试,可能无效。猜测无效原因是:
该脚本于游戏进入时加载一遍,因编写的缘故,没有提供在游戏中刷新的功能;所以即使修改了变量,也无法被系统知道。







欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1