Project1

标题: 关于Game_Actor的问题 [打印本页]

作者: 化螺耕    时间: 2014-4-3 16:29
标题: 关于Game_Actor的问题
好久没来问了这次看到这个脚本时总结了一下总共有4个问题,希望大家不会怪我太多问题哈
1.
  1.     @exp_list = Array.new(101)#有问题
复制代码
第51行这里括号里的101是什么意思,查了帮助没有找到,望指教
2.
  1.     update_auto_state(nil, $data_armors[@armor1_id])
复制代码
第74行这里,请问括号里的nil究竟是什么呢
3.
  1.     table = [0,200,150,100,50,0,-100]
复制代码
请问113行这里为什么里面会有2个0呢,去掉一个0的话会发生什么事
4.
  1.     when 0  # 武器
  2.       if id == 0 or $game_party.weapon_number(id) > 0
  3.         $game_party.gain_weapon(@weapon_id, 1)#有问题为什么这里不用像下面那样更新状态
  4.         @weapon_id = id
  5.         $game_party.lose_weapon(id, 1)
  6.       end
  7.     when 1  # 盾
  8.       if id == 0 or $game_party.armor_number(id) > 0
  9.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  10.         $game_party.gain_armor(@armor1_id, 1)
  11.         @armor1_id = id
  12.         $game_party.lose_armor(id, 1)
  13.       end
复制代码
请问398行武器这里为什么不用更新状态呢…………
望大家不吝赐教,能答的话就尽量答吧,我肯定会尽我所能塞糖的,虽然我的糖不多不胜感激~
作者: 女王律    时间: 2014-4-3 16:44
新人撸过
作者: RyanBern    时间: 2014-4-3 16:58
下次尽量不要一贴多问,版规你懂的。
虽然不可以一贴多问,但是对回答还是没有限制……

第一个问题,这句话的意思就是生成一个有101个单元的数组,这个功能跟用一对方括号"[]"初始化空数组的功能基本相同,不过可以指定数组长度。生成101个单元原因是角色最多可以升级到99级,@exp_list的第i个元素存放着角色升到第i级所需经验。其中0号单元是nil,不加利用,是为了和平时习惯一致。

第二个问题,这句话的意思是角色由没有装备到拥有装备变化时,要刷新自动状态。因为这句在角色的初始化中,因此将改变状态之前视为角色没有穿相应的装备,用nil就表示当前的位置没有装备。具体请参考update_auto_state的定义部分。

第三个问题,0的作用是占位用,table实际能用得上的地方是后面6个数,分别和A-F对应,这就是数据库中的有效度。注意,这里F1提供的叙述不正确,1-6应该对应A-F,而不是0-5,去掉之后会发生关于nil的NoMethodError。

第四个问题,因为武器没有自动状态这一属性,因此不能进行刷新判断。
作者: chd114    时间: 2014-4-3 19:29
第三个问题给你简单讲下好了,就好比你们班一排有六张桌子,没坐人的空桌就是0,如果把那个桌子拿掉,你们校长看到就会说这个教室很不美观很难看,然后你们老师就被骂了,这就等于你去掉那个0之后就会出现错误···如果去掉其他非0的,就等于你们老师惩罚你们班的某个人,把桌子拿了让他站着上课,然后校长看到是剥夺受教育权利,你们老师又会被啪,这样也会导致错误




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