查看: 1906|回复: 4

[已经解决] 怎么样在脚本中建新的组变量组啊

[复制链接]
梦石
0
星屑
50
在线时间
84 小时
注册时间
2013-4-5
回帖
138
发表于 2013-5-6 19:23:41 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 光の異形 于 2013-5-7 12:11 编辑

  蠢蠢的 只会这样 ······
  def   gcai_a2_4
          gcai_a2_4 = "悲伤"
      end
求助
梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-5-7 07:00:05 | 显示全部楼层
基本来说,变量有局部的,全局的分别,如果名称前不加附号,是局部的,用在 def 中就只有 def 中可以用,出了 def 就不算了,就像您写的那个,如果在前面加 @,就是在脚本中都可以用,如果在前面加的是 $,那就是全局的每一个脚本中都用得上。

另外还有 @@ $$ 之类的,就不说了,我也不太懂的。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
84 小时
注册时间
2013-4-5
回帖
138
 楼主| 发表于 2013-5-7 08:54:00 | 显示全部楼层
j433463 发表于 2013-5-7 07:00
基本来说,变量有局部的,全局的分别,如果名称前不加附号,是局部的,用在 def 中就只有 def 中可以用,出 ...

多谢前辈 我想了好久 已经明白了我问问题了
貌似从一个很厉害的 误区里边回来了
游戏里边其实定义了 5000个空白的 变量给玩家 设置这些变量上限的时候 这里变量从 nil 变成了 0 是不是这样啊
所以 我要一个整个游戏都可以用的变量组的话,要在脚本定义一个空白的组先?

$gcai_a1 = nil
$gcai_a1_001 = nil
$gcai_a1_002 = nil
...........
$gcai_a1_100 = nil

是这样吗?

回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-5-7 10:11:43 | 显示全部楼层
nil 是空的意思,如果按照 C 的说法,它指向一个空的指标,它是指向一个物件对象的 Empty 空值,而 Nil 则指向一个类而不是物件,我觉得应该这样解释。

一个变量没有指定前,它的值应该是 nil ,空的值,不存在任何值,未建立的值,nil 不是 0,两者不同,0 是可以计算的,有数的,nil 没有,它是空,
如果您这样测:

p $abc

控制台应该会看到 nil 这个值,因为 $abc 没有指定,它没有被赋值,所以初始就是 nil,而游戏定义的 5000 个变量,其实并不是只有 5000,
若用了破限脚本或许上万都可以,即使您用

p $game_variable[5013]

得到的还是 0,那已经超过了 5000 变量,为什么?因为 Game_Variable 中这样设置:

@data = []

@data[variable_id] || 0

它在初始化 initialize 时设了一个空的数组,然后在取得变量时指定了回传的值如果不是 @data[variable_id] 就是 0

这和您说的 nil 变成 0 没有实质的关连,只是被脚本这样设定而已,非值即 0,您也可以参考这样做。

点评

太谢谢了 又懂了好多呀  发表于 2013-5-7 12:11

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 认可答案

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部