- 累计送礼:
- 0 个
- 累计收礼:
- 0 个
TA的每日心情 | 开心 昨天 18:01 |
---|
签到天数: 114 天 连续签到: 4 天 [LV.6]常住居民II

管理员
  
- VIP
- 6
- 卡币
- 10622
- OK点
- 16
- 推广点
- 0
- 同能卷
- 0
- 积分
- 13391


|
那個啥?一個自動狀態根本就不夠用嘛! - #==============================================================================# 附加多於一個自動狀態# 禾西#==============================================================================module RPG class Weapon def auto_state_set auto_state_set = [] return [] if @description.split(/@s/)[1].nil? a = @description.split(/@s/)[1].split(/,/) a.each {|i| auto_state_set.push(i.to_i)} return auto_state_set.nil? ? [] : auto_state_set end def description description = @description.split(/@s/)[0] return description.nil? ? '' : description end end class Armor def auto_state_set auto_state_set = [] return [] if @description.split(/@s/)[1].nil? a = @description.split(/@s/)[1].split(/,/) a.each {|i| auto_state_set.push(i.to_i)} return auto_state_set.nil? ? [] : auto_state_set end def description description = @description.split(/@s/)[0] return description.nil? ? '' : description end endend#==============================================================================# ■ Game_Actor#------------------------------------------------------------------------------# 处理角色的类。本类在 Game_Actors 类 ($game_actors)# 的内部使用、Game_Party 类请参考 ($game_party) 。#==============================================================================class Game_Actor < Game_Battler #--------------------------------------------------------------------------# # ● 更新自动状态組(新方法) # # old_armor : 卸下防具 # # new_armor : 装备防具 # #--------------------------------------------------------------------------# def update_auto_state_set(old_armor, new_armor) # 强制解除卸下防具的自动状态 if old_armor != nil and old_armor.auto_state_set.empty? != true for i in 0...old_armor.auto_state_set.size if @states.include? old_armor.auto_state_set[i] remove_state(old_armor.auto_state_set[i], true) end end end # 强制附加装备防具的自动状态 if new_armor != nil and new_armor.auto_state_set.empty? != true for i in 0...new_armor.auto_state_set.size add_state(new_armor.auto_state_set[i], true) end end end #----------------------------------------------------------------------------# ● 召喚舊方法#---------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● 设置 # actor_id : 角色 ID #-------------------------------------------------------------------------- alias sidaf_setup setup def setup(actor_id) sidaf_setup(actor_id)#---------------------刷新自动状态組---------------------# update_auto_state_set(nil, $data_weapons[@weapon_id]) update_auto_state_set(nil, $data_armors[@armor1_id]) update_auto_state_set(nil, $data_armors[@armor2_id]) update_auto_state_set(nil, $data_armors[@armor3_id]) update_auto_state_set(nil, $data_armors[@armor4_id])#--------------------------------------------------------# end #-------------------------------------------------------------------------- # ● 变更装备 # equip_type : 装备类型 # id : 武器 or 防具 ID (0 为解除装备) #-------------------------------------------------------------------------- def equip(equip_type, id) case equip_type when 0 # 武器 if id == 0 or $game_party.weapon_number(id) > 0 # 刷新自動狀態組--------------------------------------------------------- update_auto_state_set($data_weapons[@weapon_id], $data_weapons[id])# 完了------------------------------------------------------------------------- $game_party.gain_weapon(@weapon_id, 1) @weapon_id = id $game_party.lose_weapon(id, 1) end when 1 # 盾 if id == 0 or $game_party.armor_number(id) > 0 # 刷新自動狀態組--------------------------------------------------------- update_auto_state_set($data_armors[@armor1_id], $data_armors[id])# 完了------------------------------------------------------------------------- update_auto_state($data_armors[@armor1_id], $data_armors[id]) $game_party.gain_armor(@armor1_id, 1) @armor1_id = id $game_party.lose_armor(id, 1) end when 2 # 头 if id == 0 or $game_party.armor_number(id) > 0 # 刷新自動狀態組--------------------------------------------------------- update_auto_state_set($data_armors[@armor2_id], $data_armors[id])# 完了------------------------------------------------------------------------- update_auto_state($data_armors[@armor2_id], $data_armors[id]) $game_party.gain_armor(@armor2_id, 1) @armor2_id = id $game_party.lose_armor(id, 1) end when 3 # 身体 if id == 0 or $game_party.armor_number(id) > 0 # 刷新自動狀態組--------------------------------------------------------- update_auto_state_set($data_armors[@armor3_id], $data_armors[id])# 完了------------------------------------------------------------------------- update_auto_state($data_armors[@armor3_id], $data_armors[id]) $game_party.gain_armor(@armor3_id, 1) @armor3_id = id $game_party.lose_armor(id, 1) end when 4 # 装饰品 if id == 0 or $game_party.armor_number(id) > 0 # 刷新自動狀態組--------------------------------------------------------- update_auto_state_set($data_armors[@armor4_id], $data_armors[id])# 完了------------------------------------------------------------------------- update_auto_state($data_armors[@armor4_id], $data_armors[id]) $game_party.gain_armor(@armor4_id, 1) @armor4_id = id $game_party.lose_armor(id, 1) end end endend复制代码
复制代码使用方法如下圖:

說明 + @s + 狀態ID1, 狀態ID2, 狀態ID3
設定方法武器防具通用
放假很無聊……外加近來沒有找到想寫的東西T T
[本贴由 风雪优游 于 2008-3-19 22:20:22 进行了编辑]
本帖来自P1论坛作者禾西,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=80420 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |
|