Project1

标题: 怎样 在游戏进行时添加角色的装备类型? [打印本页]

作者: 7795593    时间: 2014-5-20 22:31
标题: 怎样 在游戏进行时添加角色的装备类型?
例如角色1,装备类型只有【盾】
我想在游戏中经过【事件或脚本】来控制角色1,增加装备类型【魔法护甲】。
作者: moy    时间: 2014-5-21 03:16
比较靠谱的办法是通过转换职业或是增加永续状态的方式增加装备类型。
前者在分歧不多也不复杂的时候比较合适(比如没什么开启类型的顺序区别)
后者需要在复活后重新挂上状态(大概)
至于直接通过脚本修改…可以考虑这样试试,但我不确定可不可以。
  1. actor = $game_actors[actor_id]
  2. actor.features_set(FEATURE_EQUIP_WTYPE).push(wtype_id)
  3. actor.features_set(FEATURE_EQUIP_ATYPE).push(atype_id)
复制代码
actor_id,wtype_id,atype_id修改成自己需要的
作者: taroxd    时间: 2014-5-21 07:12
本帖最后由 taroxd 于 2014-6-6 07:44 编辑
moy 发表于 2014-5-21 03:16
比较靠谱的办法是通过转换职业或是增加永续状态的方式增加装备类型。
前者在分歧不多也不复杂的时候比较合 ...


你的脚本动了数据库,读个档就无效了

以下脚本未经测试
RUBY 代码复制
  1. =begin
  2.   使用方法:
  3.     $game_actors[1].add_wtype 4
  4.     ID为1的角色增加武器类型4
  5.     $game_actors[2].add_atype 4, 5
  6.     ID为2的角色增加护甲类型4,5
  7. =end
  8.  
  9. %w[wtype atype].each do |type|
  10.   Game_BattlerBase.class_eval %{
  11.     alias initialize_without_#{type} initialize
  12.     def initialize
  13.       initialize_without_#{type}
  14.       @extra_#{type} = []
  15.     end
  16.  
  17.     def add_#{type}(*ids)
  18.       @extra_#{type} |= ids
  19.     end
  20.  
  21.     alias no_extra_equip_#{type}_ok? equip_#{type}_ok?
  22.     def equip_#{type}_ok?(id)
  23.       no_extra_equip_#{type}_ok?(id) || @extra_#{type}.include?(id)
  24.     end
  25.   }
  26. end


@Sion 结贴
作者: 7795593    时间: 2014-5-22 16:25
taroxd 发表于 2014-5-21 07:12
你的脚本动了数据库,读个档就无效了

以下脚本未经测试


使用脚本没问题,就是一移动到装备栏就跳出。




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