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

Project1

 找回密码
 注册会员
搜索
楼主: sai90306
打印 上一主题 下一主题

[已经解决] 請問如何用全局變量給腳本設定一個開關

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
跳转到指定楼层
1
发表于 2012-4-16 18:09:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 eve592370698 于 2012-4-18 11:33 编辑

版主eve说:脚本初学者一定要看一下此贴特别是后面各位在回复中对脚本知识的讲解:在实际操作中非常受用!

我想設定一個全局變量作為遊戲中決定要不要使用"角色跟隨角本"的開關 來該關整個腳本
(不是要讓跟隨的腳色變透明喔 要讓整個腳本停止運作 不然在用ZTBS進入戰鬥MAP的時候會衝突)
請問要怎麼實現?

我胡亂想到的方法是(高手們請噴)....將整個"角色跟隨角本"包在一個字定義的module內....(例如 module 角色跟隨)
然後再另建一個空白腳本裡面設製一個用來當開關的全局變量(例如$角色跟隨角本開關)
在空白腳本裡面寫(用代碼框會發出空白帖...所以直接寫了)

版主eve说,这种直接在类下面弄条件分歧等非赋值是错误的。

  1. class 角色跟隨角本開關
  2.   case $角色跟隨角本開關
  3.   when true #設定$角色跟隨角本開關=0時 執行module 角色跟隨
  4.     角色跟隨   
  5.   else
  6.                #這邊我不會了 = = 要怎麼樣設定才能取消when true的設置阿?
  7.   end
  8.   
  9. end
复制代码
也不知道思路對不對...或是完全錯誤

点评

说真的,本问题也是我在研究FUKI对话框时困扰我好久的问题,是避免在RGSS优化脚本特别是按条件判定参数的时候必不可少的一项知识!  发表于 2012-4-18 11:29
能够问这个问题已经到达非常高的境界了,说真的我已经比不上你了……  发表于 2012-4-17 18:28
回复错了…抱歉。  发表于 2012-4-16 23:26

评分

参与人数 2星屑 +36 收起 理由
hys111111 + 24 能够问这个问题已经到达非常高的境界了,说.
eve592370698 + 12 肯于出来探索,鼓励一下。

查看全部评分

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
2
 楼主| 发表于 2012-4-16 21:52:13 | 显示全部楼层
本帖最后由 sai90306 于 2012-4-16 21:53 编辑

感謝鼓勵

以下是我參考後做的修改
角色跟隨腳本的修改...

module RUNTA
"角色跟隨腳本"的內容
end

空白腳本寫入
  1. class runTA
  2.   def initialize
  3.   case $RUNTA_Switch
  4.   when 1
  5.     RUNTA   
  6.   else
  7.   end
  8.   
  9. end
  10. end
复制代码
確實角色不跟隨了
但為什麼在遊戲中用事件讓$RUNTA_Switch=1還是無法變回跟隨呢?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
3
 楼主| 发表于 2012-4-17 17:15:59 | 显示全部楼层
本帖最后由 sai90306 于 2012-4-17 17:18 编辑
eve592370698 发表于 2012-4-17 07:09
不好意思,出现这个错误是我缺乏相关理论知识,这怨我。
在自由Ruby语言里头,这么做绝对是没问题的,但 ...


請問為什麼我在
腳本中插入
  1.     class Eve592370698
  2.       if $abc == true
  3.         p "谁说我跳不出来?"
  4.         def hello
  5.           p "嘿嘿"
  6.         end
  7.       else
  8.         p "就是错误的"
  9.       end
  10.     end
复制代码
在事件中插入腳本
  1. $abc = false
  2. Eve592370698.new.hello
复制代码
對話後
會出現"unidentified method 'hello' for Eve592370698" ?

点评

考虑一下ruby…一旦覆盖定义就不太能取消。因此只能在定义内进行判断。也就是说您需要在每个覆盖了原脚本中定义的定义里判断。  发表于 2012-4-17 21:27
那值要怎麼設才能符合定義呢?設數字嗎?  发表于 2012-4-17 19:08
出错的原因是hello那个方法因为之前变量的值不符合要求而没有被定义,所以出现运行错误。  发表于 2012-4-17 19:01
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-6 10:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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