Project1
标题:
command_window的写法问题 $data_classes出错?
[打印本页]
作者:
wangswz
时间:
2010-8-25 14:46
标题:
command_window的写法问题 $data_classes出错?
本帖最后由 wangswz 于 2010-8-25 15:14 编辑
com = []
for i in 1..$data_classes.size-1
com << $data_classes[$data_classes[i].id].name# if $data_classes[i].name != ""
end
@command_window = Window_Command.new(544, com, 6)
复制代码
为何 $data_classes.size 不减1 就会在最后多处一个重复职业?
哈希表.keys 在command_window 如何写?f1里说哈希表没有顺序 那么每次生成command_window是否都是重新打乱的?
。。表述有限 不吝赐教
作者:
DeathKing
时间:
2010-8-25 15:36
$data_classes[$data_classes[ i ].id] 不明白。
还有,如果要有序的输出hash的话,有一个很容易想到的办法
ary_sort = []
a_hash = {}
new_ary = []
a_hash.each_key do |key|
ary_sort << key
end
ary_sort.sort!
ary_sort.each do |e|
new_ary << a_hash[e]
end
复制代码
很明显,把key取出来先排序{:nm_3:}
作者:
wangswz
时间:
2010-8-25 15:49
$data_classes[ i ].name出错
$data_classes[ i ].id返回的是一个代码。。
$data_classes[$data_classes[ i ].id].name只有这样才能返回中文的名称
我也不清楚为什么会这样。。
作者:
DeathKing
时间:
2010-8-25 16:21
回复
wangswz
的帖子
p $data_classes[ i ].id.class
作者:
wangswz
时间:
2010-8-25 18:45
本帖最后由 wangswz 于 2010-8-25 19:20 编辑
DeathKing 发表于 2010-8-25 15:36
job = FSL::JOB::JOB_Default
job.each do |a, b|
case a
when "hp"
hplv = b
when "mp"
mplv = b
when "atk"
atklv = b
when "def"
deflv = b
when "spi"
spilv = b
when "agi"
agilv = b
end
end
复制代码
我想获取一个哈希表的值并赋值 这样写 draw_text时出错. 何解?
[line]1[/line]
这是一段循环里的语句
数组的设置是
#职业成长系数
JOB_MAX = []
#设置 hp,mp,atk,def,spi,agi
JOB_MAX[1] = [13,3,5,7,9,4]
判断1号职业的角色include却返回false...
if FSL::JOB::JOB_MAX.include?(@actor.class_id)
self.contents.draw_text(x+270, y, 100, WLH * i*2, FSL::JOB::JOB_MAX[@actor.class_id][i-1])
还有想问一下 FSL::JOB::JOB_MAX[@actor.class_id][i-1]引用数组元素有问题么?类似二维数组
作者:
小幽的马甲
时间:
2010-8-25 19:24
for i in 1..$data_classes.size-1
直接写成for i in 1...$data_classes.size吧
$data_classes[0]是nil
p $data_classes[1].name=>“勇者"为啥我可以……
哈希顺序真不知道……OI里的哈希数据结构是模一个大质数存放的,不知道Ruby是怎么建的= =
draw_text时发生什么错误?变量赋值了吗?
JOB_MAX到底是数组还是哈希啊= =
作者:
wangswz
时间:
2010-8-25 19:29
本帖最后由 wangswz 于 2010-8-25 19:32 编辑
回复
小幽的马甲
的帖子
JOB_MAX[1] = [13,3,5,7,9,4]
这样的写法不行么...
之前用哈希表写的是返回未定义
换成数组又不会引用数组元素了..
越写越发现自己2的心碎..
[line]1[/line]
$data_classes[1].name
复制代码
...
刚才试怎么又有用了...
作者:
小幽的马甲
时间:
2010-8-25 19:34
本帖最后由 小幽的马甲 于 2010-8-25 19:36 编辑
应该是unless FSL::JOB::JOB_MAX[@actor.class_id] == nil
include是对数组里的元素用的
a = []
a[1] = 2
p a.include?(1)#=>false
p a.include?(2)#=>true
作者:
wangswz
时间:
2010-8-25 19:39
突然反映过来.... 真丢人..
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1