赞 | 0 |
VIP | 10 |
好人卡 | 49 |
积分 | 10 |
经验 | 22958 |
最后登录 | 2020-8-1 |
在线时间 | 2161 小时 |
Lv3.寻梦者 酱油的
- 梦石
- 0
- 星屑
- 1035
- 在线时间
- 2161 小时
- 注册时间
- 2007-12-22
- 帖子
- 3271
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 后知后觉 于 2009-12-29 16:37 编辑
那個啥?一個自動狀態根本就不夠用嘛!- #==============================================================================
- # 附加多於一個自動狀態
- # 禾西
- #==============================================================================
- 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
- end
- end
- #==============================================================================
- # ■ 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
- end
- end
复制代码 使用方法如下圖:
說明 + @s + 狀態ID1, 狀態ID2, 狀態ID3
設定方法武器防具通用
放假很無聊……外加近來沒有找到想寫的東西T T
[本贴由 风雪优游 于 2008-3-19 22:20:22 进行了编辑] |
|