Project1

标题: 脚本变量的调用问题 [打印本页]

作者: zfq1996    时间: 2012-4-16 20:45
标题: 脚本变量的调用问题
我定义了一个变量但是不知道在事件条件分歧脚本里怎么调用和给这个变量赋值求高人指点
这个是我定义的
class Ling
  attr_accessor :ling
def initialize
     @ling = Array.new(10)
end

def ling
   return @ling
end
end
a = Ling.new
b = a.lingdsu_plus_rewardpost_czw
作者: feizhaodan    时间: 2012-4-16 21:00
a.ling[0]  #返回@ling数组的第一个内容的内容
a.ling[0] = 10  #将@ling数组的第一个内容更改为10
作者: hys111111    时间: 2012-4-16 21:03
本帖最后由 hys111111 于 2012-4-16 21:10 编辑
  1. class Ling
  2.   attr_accessor :ling
  3. def initialize
  4.      @ling = Array.new(10)
  5. end

  6. def ling
  7.    return @ling
  8. end
  9. end
  10. a = Ling.new
  11. b = a.ling
复制代码
首先,attr_accessor :ling已经定义了实质变量,就可以不在用def ling了(避免冲突),那一段就可以去掉
而用a = Ling.new就是a相当于Ling这个类。
a.ling就是取Ling这个类里面的ling值。
就是这样子

补充:
直接用Ling.new.ling调用。
另外,Array是数值还是什么?如果是另一个类,真的就得放在def里面了。
作者: feizhaodan    时间: 2012-4-17 10:27
首先,要先在创建数据的地方同时创建一个全局变量,如
  1. $ling = Ling.new
复制代码
之后就可以在条件分歧-〉脚本内条件分歧。方法就是我之前写的如
  1. $ling.ling[0]
复制代码
顺便
我在事件中给Ling.new.ling[0] = 1 但是我在条件分歧脚本里打Ling.new.ling[0] == 1 却没效果这是为什么

因为数组初始化的时候,每个内容都是nil,与1比较当然不满足条件。
作者: orzfly    时间: 2012-4-17 12:23
Ling.new每次都是创建了新的Line对象。所以要把某次的Line.new保存到一个变量里以后操作那个变量而不是每次创建新的嘛。




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