赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
本帖最后由 雪流星 于 2011-1-9 21:53 编辑
- $revive_item_id = 21 # 復活物品ID
- $revive_equip_id = 31 # 復活裝備ID
- $revive_state_id = 17 # 復活狀態ID
- module Vocab
- #=======================================================
- # %1$s 會替代為物品/裝備/狀態名稱
- # %2$s 會替代為角色名稱
- # %3$s 會替代為數據庫中設定的 HP 名稱
- #=======================================================
- AutoRevive_Item = "%1$s發生效用,%2$s復活並恢復一半%3$s"
- AutoRevive_Equip = "%1$s發生效用,%2$s復活並恢復一半%3$s"
- AutoRevive_State = "%1$s發生效用,%2$s復活並恢復一半%3$s"
- end
- class Game_Battler
- def auto_revive?
- # 檢查角色是否附有自動復活狀態
- return 1 if $revive_state_id!=0 and state?($revive_state_id)
- # 檢查角色是否裝備自動復活裝備
- return 2 if $revive_equip_id!=0 and armor4_id == $revive_equip_id
- # 檢查隊伍是否擁有自動復活物品
- return 3 if $revive_item_id!=0 and $game_party.item_number($data_items[$revive_item_id])>0
- # 無法自動復活
- return false
- end
- def try_auto_revive
- return 0 unless actor?
- return 0 unless dead?
- ar = auto_revive?
- return 0 unless ar
- @hp = maxhp/2 # 補充一半的HP
- remove_state(1)
- case ar
- # 若復活方式是使用自動復活狀態
- when 1
- remove_state($revive_state_id) # 移除自動復活狀態
- # 若復活方式是使用自動復活裝備
- when 2
- lose_armor = $data_armors[$revive_equip_id]
- discard_equip(lose_armor) # 損失復活裝備
- # 若復活方式是使用隊伍中的自動復活物品
- when 3
- lose_item = $data_items[$revive_item_id]
- $game_party.lose_item(lose_item, 1, false) # 損失復活物品
- end
- return ar
- end
- end
- class Scene_Battle < Scene_Base
- alias auto_revivie_display_state_changes display_state_changes
- def display_state_changes(target, obj = nil)
- auto_revivie_display_state_changes(target, obj) # 呼叫原有方法
- do_auto_revive(target)
- end
- def do_auto_revive(target)
- ar = target.try_auto_revive # 嘗試自動復活
- return if ar==0 # 若復活失敗則離開本方法
- case ar
- when 1
- ar_text = sprintf(Vocab::AutoRevive_State, $data_states[$revive_state_id].name, target.name, Vocab::hp)
- when 2
- ar_text = sprintf(Vocab::AutoRevive_Equip, $data_armors[$revive_equip_id].name, target.name, Vocab::hp)
- when 3
- ar_text = sprintf(Vocab::AutoRevive_Item, $data_items[$revive_item_id].name, target.name, Vocab::hp)
- end
- @message_window.add_instant_text(ar_text) # 顯示復活文字
- end
- end
复制代码 插入main 前面即可,注意最上面要設置好,數據庫裡面也要增加對應id 的物品、裝備或狀態。不想使用的設置為0 (例如你不想使用自動復活裝備,就把$revive_equip_id設為0) |
评分
-
查看全部评分
|