Project1

标题: 如何实现 变身 效果 [打印本页]

作者: 吼姆拉    时间: 2015-9-21 23:00
标题: 如何实现 变身 效果
本帖最后由 吼姆拉 于 2015-9-21 23:03 编辑

RT
比如一个角色
拥有【熊】 【鹿】 【蜘蛛】 三个战斗形态
通过在菜单中或者战斗中使用对应【变身】技能进行【人】与【兽】形态的自由切换
包括头像和行走图。

希望高手能指教下具体如何操作实现这样的效果。
作者: Silentever    时间: 2015-9-22 04:15
角色变身吗?这个发想好像挺有趣的
在技能公式里放transform(ID)可以变成相应ID的角色,战后恢复
出炉全程不到30秒,当然没测试,效果也完全不明(
……今天没时间,有问题我再回来解决吧
  1. class Game_Actor < Game_Battler
  2.   attr_reader   :original_id
  3.   alias :initialize_trs :initialize
  4.   def initialize(actor_id)
  5.     initialize_trs(actor_id)
  6.     @original_id = actor_id; end
  7.   def transform(actor_id)
  8.     @actor_id = actor_id
  9.     init_graphics
  10.     refresh; end
  11.   def on_battle_end
  12.     transform(@original_id)
  13.     super; end
  14. end
复制代码

作者: tan12345    时间: 2015-9-22 10:27
  1. #=======================附加某某状态后更改行走图==========================
  2. class Game_Actor < Game_Battler
  3.   
  4.   attr_reader   :tan_character_name           # 行走图文件名(记录,还原用)
  5.   attr_reader   :tan_character_index          # 行走图索引(记录,还原用)
  6.   
  7.   alias tan_change_character_initialize initialize
  8.   def initialize(actor_id)
  9.     tan_change_character_initialize(actor_id)
  10.     @tan_character_name = @character_name
  11.     @tan_character_index = @character_index
  12.   end
  13.   
  14.   #--------------------------------------------------------------------------
  15.   # ● 更改图像
  16.   #     character_name  : 新的行走图文件名
  17.   #     character_index : 新的行走图索引
  18.   #--------------------------------------------------------------------------
  19.   def set_graphic(character_name, character_index)
  20.     @character_name = character_name
  21.     @character_index = character_index
  22.   end
  23. end


  24. class Game_Battler < Game_BattlerBase
  25.   #--------------------------------------------------------------------------
  26.   # ● 附加状态
  27.   #--------------------------------------------------------------------------
  28.   def add_state(state_id)
  29.     if state_addable?(state_id)
  30.       add_new_state(state_id) unless state?(state_id)
  31.       reset_state_counts(state_id)
  32.       @result.added_states.push(state_id).uniq!
  33.       #更改行走图===========================================
  34.       case state_id
  35.       when 26#26号状态使得变身为文件名animal行走图的6号人物
  36.         set_graphic("animal", 6)
  37.       end
  38.       #结束改动=============================================
  39.     end
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 解除状态
  43.   #--------------------------------------------------------------------------
  44.   def remove_state(state_id)
  45.     if state?(state_id)
  46.       revive if state_id == death_state_id
  47.       erase_state(state_id)
  48.       refresh
  49.       @result.removed_states.push(state_id).uniq!
  50.       #还原行走图===========================================
  51.       if state_id == 26
  52.         set_graphic(self.tan_character_name, self.tan_character_index) if actor?
  53.       end
  54.       #结束改动=============================================
  55.     end
  56.   end
  57. end
复制代码





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