设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2129|回复: 8
打印 上一主题 下一主题

[已经解决] command_window的写法问题 $data_classes出错?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
跳转到指定楼层
1
发表于 2010-8-25 14:46:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 wangswz 于 2010-8-25 15:14 编辑

  1. com = []
  2.     for i in 1..$data_classes.size-1
  3.       com << $data_classes[$data_classes[i].id].name# if $data_classes[i].name != ""
  4.     end
  5.     @command_window = Window_Command.new(544, com, 6)
复制代码
为何 $data_classes.size 不减1 就会在最后多处一个重复职业?

哈希表.keys 在command_window 如何写?f1里说哈希表没有顺序 那么每次生成command_window是否都是重新打乱的?

。。表述有限 不吝赐教

Lv3.寻梦者

梦石
0
星屑
1210
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

2
发表于 2010-8-25 15:36:59 | 只看该作者
$data_classes[$data_classes[ i ].id] 不明白。
还有,如果要有序的输出hash的话,有一个很容易想到的办法

  1. ary_sort = []
  2. a_hash = {}
  3. new_ary = []
  4. a_hash.each_key do |key|
  5.   ary_sort << key
  6. end
  7. ary_sort.sort!
  8. ary_sort.each do |e|
  9.   new_ary << a_hash[e]
  10. end
复制代码
很明显,把key取出来先排序{:nm_3:}

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
3
 楼主| 发表于 2010-8-25 15:49:37 | 只看该作者
$data_classes[ i ].name出错
$data_classes[ i ].id返回的是一个代码。。
$data_classes[$data_classes[ i ].id].name只有这样才能返回中文的名称
我也不清楚为什么会这样。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1210
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

4
发表于 2010-8-25 16:21:55 | 只看该作者
回复 wangswz 的帖子


   p   $data_classes[ i ].id.class

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
5
 楼主| 发表于 2010-8-25 18:45:53 | 只看该作者
本帖最后由 wangswz 于 2010-8-25 19:20 编辑
DeathKing 发表于 2010-8-25 15:36
  1.   job = FSL::JOB::JOB_Default
  2.       job.each do |a, b|
  3.         case a
  4.         when "hp"
  5.           hplv = b
  6.         when "mp"
  7.           mplv = b
  8.         when "atk"
  9.           atklv = b
  10.         when "def"
  11.           deflv = b
  12.         when "spi"
  13.           spilv = b
  14.         when "agi"
  15.           agilv = b
  16.         end
  17.       end
复制代码
我想获取一个哈希表的值并赋值 这样写 draw_text时出错. 何解?


     
这是一段循环里的语句
数组的设置是
    #职业成长系数
    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]引用数组元素有问题么?类似二维数组

点评

= =你弄错include的用法了……  发表于 2010-8-25 19:30
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
6
发表于 2010-8-25 19:24:46 | 只看该作者
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到底是数组还是哈希啊= =
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
7
 楼主| 发表于 2010-8-25 19:29:40 | 只看该作者
本帖最后由 wangswz 于 2010-8-25 19:32 编辑

回复 小幽的马甲 的帖子
JOB_MAX[1] = [13,3,5,7,9,4]
这样的写法不行么...

之前用哈希表写的是返回未定义
换成数组又不会引用数组元素了..

越写越发现自己2的心碎..

  1. $data_classes[1].name
复制代码
...
刚才试怎么又有用了...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
8
发表于 2010-8-25 19:34:41 | 只看该作者
本帖最后由 小幽的马甲 于 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
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
9
 楼主| 发表于 2010-8-25 19:39:02 | 只看该作者
突然反映过来.... 真丢人..
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-11 05:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表