rpgmakervxace吧 关注:17,748贴子:51,170
  • 15回复贴,共1

【求助】如何使etype_id 为 1 的装备判定为武器

只看楼主收藏回复

且让我想想怎么描述这个问题的关键·····
在制作自定义装备栏的功能时,我注意到,装备栏的排列是由Game_Actor类下的equip_slots返回的数组来决定的。
比如[0,0,2,3,4],这样就是两栏武器,三栏(不同的)护甲。
当然,0,1,2,3,4,5……等等这些位置的装备栏名字,都是可以任意修改的。名称不是问题。
问题是,就算你把0位置的名字修改为“衣服”,它所接受的装备,依然是数据库中“武器”一栏中生成的装备。
翻过来也是一样的,就算你把其他位置的名字修改为“武器”,它也只能接受护甲型的装备。
在脚本中,区别就在于,0位置的装备被判定为RPG::Weapon的实例,而其他位置的装备都被判定为RPG::Armor的实例。


IP属地:澳大利亚1楼2015-05-03 15:57回复
    听不懂


    来自Android客户端2楼2015-05-03 15:59
    收起回复
      那么,假设我想完成以下功能:
      1.装备栏的前两格,都接受武器类型的装备。且,这两个装备栏显示的名字不一样。
      就遇到了问题。
      要让装备栏前两格都接受武器,那么简单的做法是,设置“双手持武器”的装备风格,然后将上述返回数组的值改为[0,0,2,3,4,5,6]……之类的样式。总之以两个0开头。
      但这样,两个装备栏的名字是一样的。
      另一种做法是,将第二个装备栏改成想要的名字,设置“双手持武器”的装备风格,然后数组值改为[0,1,2,3,4,5,6]……之类的样式。总之以0,1开头。
      但这样,第二个装备栏并不接受武器类的装备。
      而且,我发现1号位非常特殊。如果不勾选“双手持武器”的装备风格,然后数组值依然是[0,1,3,4,5,6]……这样的话。进入游戏,你会发现1号位被系统禁用了。
      在系统默认的设置中,1代表的是盾牌。它属于护甲,但又只能由“双手持武器”风格的角色持有。


      IP属地:澳大利亚3楼2015-05-03 16:07
      回复
        好高端的样子


        来自Android客户端4楼2015-05-03 16:09
        回复
          如果仅仅是以上这个功能,倒可以这样:
          在Window_EquipSlot类的slot_name方法中,决定了如何绘制装备栏的名字。如果单单把第二条武器栏做一个处理,让它的名字另外显示(但其实际的id依然是0),这样就可以实现上述的功能。
          这个做法,其实有点……怎么说呢,狡猾?
          那么, 当我想要做一些更加进阶的功能,比如:
          当一个双手持武器的角色,装备了一些特定的武器,就禁用他的第二个武器栏。当他脱下这件装备的时候,就将第二个装备栏解封。
          这样又再次遇到了问题。


          IP属地:澳大利亚6楼2015-05-03 16:13
          回复
            如果能将第二个武器栏的slot_id变为1,就能实现只禁用一条武器栏(而另一条依然可用)的效果。而要实现这一点,就要解决这一个问题:
            能否让 slot_id 为 1 的装备栏,接受 etype_id 为 0 的装备?
            ↑↑↑↑↑↑↑↑↑↑这就是问题的关键。
            在脚本中,进行这种坑爹判断的地方实在太多——
            什么 slot_id != etype_id 就return false啦,各种的穿不上装备啦,穿上了又给你扒下来啦……我都不知道究竟进行了多少重的检测,总之是改完一处又一处,装备还是穿不上。


            IP属地:澳大利亚8楼2015-05-03 16:32
            回复
              game_actor的219行附近有这么个函数
              def change_equip_by_id(slot_id, item_id)
              if equip_slots[slot_id] == 0
              change_equip(slot_id, $data_weapons[item_id])
              else
              change_equip(slot_id, $data_armors[item_id])
              end
              end
              只是粗略看了下,感觉是不是改一下这货就能解决LZ的问题了?_(:з」∠)_


              IP属地:浙江9楼2015-05-03 16:35
              收起回复
                回复 纸是芥末了 :
                人物依旧普通非双持
                需要双持的武器加上 装备风格双持
                盾牌一栏依旧改名
                这样 双持的武器装备上后 人物获得双持的能力 这样就能双持武器
                你说的特殊装备装备上后可以禁用盾牌栏 这样就只能单手装备武器


                IP属地:上海10楼2015-05-04 09:11
                收起回复