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

Project1

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

[已经解决] 如何实现 变身 效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1237
在线时间
9 小时
注册时间
2014-8-6
帖子
2
跳转到指定楼层
1
发表于 2015-9-21 23:00:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 吼姆拉 于 2015-9-21 23:03 编辑

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

希望高手能指教下具体如何操作实现这样的效果。

Lv3.寻梦者

梦石
0
星屑
3278
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
3
发表于 2015-9-22 10:27:54 | 只看该作者
  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
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
2
发表于 2015-9-22 04:15:55 | 只看该作者
角色变身吗?这个发想好像挺有趣的
在技能公式里放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
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 02:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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