Project1

标题: [腳本]抱歉很長一段時間沒空上66R... 想請問腳本問題 [打印本页]

作者: sdgn    时间: 2017-8-3 11:25
标题: [腳本]抱歉很長一段時間沒空上66R... 想請問腳本問題
请问如何写根据 A变数 的数字决定要载入哪个API或 类别?(也就是不使用IF)
例如我所有要被呼叫的CLASS都用数字来区分名称(EX: SC1 SC2.....N个)... 然后判断式做成呼叫 A变数 名称的CLASS...
也就是有N个(种)类别或事件可以读... 然后用变数决定要读哪个类别(1,2,3,4.....N);
实做时 带入一个全域变数~
根据需要进行把想要的数字代入该变数~
例如a带入2就是呼叫名称的开头或结尾是2的API或事件或类别...
目前我只知道用变数决定读档且不用IF的语法(例如变数A带入1就是读 OOO1.TXT)
但换做呼叫脚本内的CLASS或其他API的话 我不知道怎么写...
作者: 0nepeop1e    时间: 2017-8-4 01:23
这种时候可以用lambda和hash
  1. $apis = {}
  2. $apis["测试"] = lambda{p 123}
  3. $apis["测试"].call()
  4. $apis[$game_variable[1]].call
  5. # 以此类推
复制代码


作者: sdgn    时间: 2017-8-4 08:27
0nepeop1e 发表于 2017-8-4 01:23
这种时候可以用lambda和hash

假設我要載入
class Aaa_s1 這個類別
且那個1我要用變數來決定~ 這樣該怎麼寫?
我試過  
$a=1
aaa = Aaa_s($a).new
或者
aaa = Aaa_s("#{$a}").new
但是都失敗
作者: RyanBern    时间: 2017-8-4 09:18
sdgn 发表于 2017-8-4 08:27
假設我要載入
class Aaa_s1 這個類別
且那個1我要用變數來決定~ 這樣該怎麼寫?

RUBY 代码复制
  1. aaa = eval "Aaa_s#{$a}.new"

作者: fux2    时间: 2017-8-4 09:38
sdgn 发表于 2017-8-4 08:27
假設我要載入
class Aaa_s1 這個類別
且那個1我要用變數來決定~ 這樣該怎麼寫?

4楼的方法显然是对的,任意ruby版本都是没问题的,我在VA上测试也生效。
作者: 0nepeop1e    时间: 2017-8-4 13:59
  1. Object.const_get("Aaa_s#{$a}").new
复制代码





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