本帖最后由 国产吃货 于 2013-12-25 14:18 编辑
hash 哈希表
作用类同于一个二维数组。
A={"吴莉嘉"=>10,"班尼特"=15}
我定义了一个叫A的hash表,表内有两个数据。
如果我调用,A["班尼特"],那么会返回 15
同理,调用A["吴莉嘉],则会返回10
如果我调用A["伊尔维亚"],由于A里面没有叫伊尔维亚的主键,所以就会返回默认的nil(空)
新增属性其实很简单,只不过RM编辑器只和默认的脚本兼容。
你新增的属性要么自己在脚本里赋值,要么想其他的办法赋值。
比如 好感度。
class Game_Actor < Game_Battler attr_accessor :friend alias old_initialize initialize def initialize(actor_id) old_initialize(actor_id) [url=home.php?mod=space&uid=69816]@friend[/url] = {} end end
class Game_Actor < Game_Battler
attr_accessor :friend
alias old_initialize initialize
def initialize(actor_id)
old_initialize(actor_id)
[url=home.php?mod=space&uid=69816]@friend[/url] = {}
end
end
这样就给Actor类添加了一个新的属性,当然这只是创建了一个属性,还没有处理它的方法,
就算这样,他也具备工作能力了。
比如
# 获取好感度 name=$game_actors[2].name # 第二个角色的名字 $game_actors[1].friend[name] # 返回一号角色对二号角色的好感度 $game_actors[1].friend[name]=0 if $game_actors[1].friend[name]==nil # 设置好感度 name=$game_actors[2].name # 第二个角色的名字 p $game_actors[1].friend[name]+=10 # 设置一号角色对二号角色为0
# 获取好感度
name=$game_actors[2].name # 第二个角色的名字
$game_actors[1].friend[name] # 返回一号角色对二号角色的好感度
$game_actors[1].friend[name]=0 if $game_actors[1].friend[name]==nil
# 设置好感度
name=$game_actors[2].name # 第二个角色的名字
p $game_actors[1].friend[name]+=10 # 设置一号角色对二号角色为0
|