Project1
标题:
如何实现 变身 效果
[打印本页]
作者:
吼姆拉
时间:
2015-9-21 23:00
标题:
如何实现 变身 效果
本帖最后由 吼姆拉 于 2015-9-21 23:03 编辑
RT
比如一个角色
拥有【熊】 【鹿】 【蜘蛛】 三个战斗形态
通过在菜单中或者战斗中使用对应【变身】技能进行【人】与【兽】形态的自由切换
包括头像和行走图。
希望高手能指教下具体如何操作实现这样的效果。
作者:
Silentever
时间:
2015-9-22 04:15
角色变身吗?这个发想好像挺有趣的
在技能公式里放transform(ID)可以变成相应ID的角色,战后恢复
出炉全程不到30秒,当然没测试,效果也完全不明(
……今天没时间,有问题我再回来解决吧
class Game_Actor < Game_Battler
attr_reader :original_id
alias :initialize_trs :initialize
def initialize(actor_id)
initialize_trs(actor_id)
@original_id = actor_id; end
def transform(actor_id)
@actor_id = actor_id
init_graphics
refresh; end
def on_battle_end
transform(@original_id)
super; end
end
复制代码
作者:
tan12345
时间:
2015-9-22 10:27
#=======================附加某某状态后更改行走图==========================
class Game_Actor < Game_Battler
attr_reader :tan_character_name # 行走图文件名(记录,还原用)
attr_reader :tan_character_index # 行走图索引(记录,还原用)
alias tan_change_character_initialize initialize
def initialize(actor_id)
tan_change_character_initialize(actor_id)
@tan_character_name = @character_name
@tan_character_index = @character_index
end
#--------------------------------------------------------------------------
# ● 更改图像
# character_name : 新的行走图文件名
# character_index : 新的行走图索引
#--------------------------------------------------------------------------
def set_graphic(character_name, character_index)
@character_name = character_name
@character_index = character_index
end
end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 附加状态
#--------------------------------------------------------------------------
def add_state(state_id)
if state_addable?(state_id)
add_new_state(state_id) unless state?(state_id)
reset_state_counts(state_id)
@result.added_states.push(state_id).uniq!
#更改行走图===========================================
case state_id
when 26#26号状态使得变身为文件名animal行走图的6号人物
set_graphic("animal", 6)
end
#结束改动=============================================
end
end
#--------------------------------------------------------------------------
# ● 解除状态
#--------------------------------------------------------------------------
def remove_state(state_id)
if state?(state_id)
revive if state_id == death_state_id
erase_state(state_id)
refresh
@result.removed_states.push(state_id).uniq!
#还原行走图===========================================
if state_id == 26
set_graphic(self.tan_character_name, self.tan_character_index) if actor?
end
#结束改动=============================================
end
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1