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

Project1

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

[已经解决] 升等完全恢復的問題......

[复制链接]

Lv2.观梦者

梦石
0
星屑
405
在线时间
84 小时
注册时间
2012-12-21
帖子
18
跳转到指定楼层
1
发表于 2015-2-27 15:12:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
角色升級時,
如何讓他恢復HP、MP、異常狀態.......
求教

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-2-27 15:20:39 | 只看该作者
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22461
在线时间
8598 小时
注册时间
2011-12-31
帖子
3364
3
发表于 2015-2-27 15:52:51 | 只看该作者
本帖最后由 tseyik 于 2015-2-27 15:58 编辑

  1. #--------------------------------------------------------------------------
  2. # RGSS3 勝利時 HP・MP回復スクリプト
  3. #--------------------------------------------------------------------------
  4. =begin

  5.  戦闘終了時、勝利していればRECOVER_VICTORYモジュールの設定内容を実行します。

  6.  RECOVER_DECLARATION … 開関。「全員のXXが少量回復した!」表示/不表示。
  7.  HP_RECOVER_FLAG   … 開関。勝利時HP回復/不回復。
  8.   HP_RECOVER_VALUE  … 変数。勝利時HP回復量。
  9.               最大HP / VALUE の値が現在のHPに足されます。
  10.  MP_RECOVER_FLAG   … 開関。勝利時MP回復/不回復。
  11.   MP_RECOVER_VALUE  … 変数。勝利時MP回復量。
  12.               最大MP / VALUE の値が現在のMPに足されます。

  13.   改寫VICTORY_TEXT_HEALb的内容、可改変表示文字。
  14.   
  15.   テキストは表示できますが、テンポが悪くなるので推奨しません。
  16. =end

  17. module RECOVER_VICTORY
  18.   RECOVER_DECLARATION =  86  # 勝利時 回復宣言フラグ
  19.   HP_RECOVER_FLAG     =  87  # 勝利時 HP回復フラグ
  20.   HP_RECOVER_VALUE    =   5  # 勝利時 HP回復量
  21.   MP_RECOVER_FLAG     =  88  # 勝利時 MP回復フラグ
  22.   MP_RECOVER_VALUE    =  17  # 勝利時 MP回復量
  23. end

  24. module Vocab
  25.   VICTORY_TEXT_HEAL         = "全員の%sが少量回復した!"
  26. end

  27. module BattleManager
  28.   #--------------------------------------------------------------------------
  29.   # ● 戦闘メンバーのHP指定数回復(生存時のみ)
  30.   #--------------------------------------------------------------------------
  31.   def self.hp_recover_assign_value_battle_members
  32.     $game_party.battle_members.each do |actor|
  33.       actor.hp += actor.mhp / RECOVER_VICTORY::HP_RECOVER_VALUE if actor.alive?
  34.     end
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 戦闘メンバーのMP指定数回復(生存時のみ)
  38.   #--------------------------------------------------------------------------
  39.   def self.mp_recover_assign_value_battle_members
  40.     $game_party.battle_members.each do |actor|
  41.       actor.mp += actor.mmp / RECOVER_VICTORY::MP_RECOVER_VALUE if actor.alive?
  42.     end
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 勝利の処理
  46.   #--------------------------------------------------------------------------
  47.   def self.process_victory
  48.     play_battle_end_me
  49.     replay_bgm_and_bgs
  50.     $game_message.add(sprintf(Vocab::Victory, $game_party.name))
  51.     display_exp
  52.     gain_gold
  53.     gain_drop_items
  54.     gain_exp
  55.     if $game_switches[RECOVER_VICTORY::HP_RECOVER_FLAG] == true
  56.       hp_recover_assign_value_battle_members
  57.       if $game_switches[RECOVER_VICTORY::RECOVER_DECLARATION] == true
  58.         Sound.play_recovery
  59.         $game_message.add(sprintf(Vocab::VICTORY_TEXT_HEAL, Vocab::hp))
  60.         wait_for_message
  61.       end
  62.     end
  63.     if $game_switches[RECOVER_VICTORY::MP_RECOVER_FLAG] == true
  64.       mp_recover_assign_value_battle_members
  65.       if $game_switches[RECOVER_VICTORY::RECOVER_DECLARATION] == true
  66.         Sound.play_recovery
  67.         $game_message.add(sprintf(Vocab::VICTORY_TEXT_HEAL, Vocab::mp))
  68.         wait_for_message
  69.       end
  70.     end
  71.     SceneManager.return
  72.     battle_end(0)
  73.     return true
  74.   end
  75. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
450 小时
注册时间
2015-2-25
帖子
365
4
发表于 2015-2-27 16:27:07 | 只看该作者
本帖最后由 howhow1314 于 2015-2-27 16:30 编辑

我也是新手才學RM幾天,跟你分享一下自行解決的辦法

按F11打開腳本編輯器,Ctrl+Shift+F嘗試搜尋一些關鍵字,比如level/level_up/level += 1(level = level + 1的意思)等

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 等級上升
  3.   #--------------------------------------------------------------------------
  4.   def level_up
  5.     @level += 1
  6.     self.class.learnings.each do |learning|
  7.       learn_skill(learning.skill_id) if learning.level == @level
  8.     end
  9.   end

找到這,第一行@level += 1,就是等級加一,後面的則是習得升級學會的技能,這明顯就是等級上升的函數了
只要在裡面加上恢復hp的script就可以了
不過通常做法好像是不直接在這改,下面的插件腳本插入一個,把前面的函數複製到這邊,
(名稱不一定叫SYSTEM,可以隨意改,沒影響的,這樣把自己加的系統都集合一處比較方便修改或查看)
然後再作修改,不過這要加上
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.  
  3. end

就是變成
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2. def level_up
  3.     @level += 1
  4.     self.class.learnings.each do |learning|
  5.       learn_skill(learning.skill_id) if learning.level == @level
  6.     end
  7.   end
  8. end

這樣,因為原本的函數是在class Game_Actor < Game_Battler底下的(def level_up那邊往上拉就找到)
順便分享一下自己的經驗,如果遇到其他不確定作用的函數,可以這樣做,比如level_up
RUBY 代码复制
  1. def level_up
  2.     msgbox "123"         #加這句
  3.     @level += 1
  4.     self.class.learnings.each do |learning|
  5.       learn_skill(learning.skill_id) if learning.level == @level
  6.     end
  7.   end

然後你f12進遊戲升一級,出現msgbox,那就可以大概知道函數是什麼時候被調用的
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
5
发表于 2015-2-27 22:44:24 | 只看该作者
  1. class Game_Actor < Game_Battler
  2. #--------------------------------------------------------------------------
  3.   # ● 等级上升
  4.   #--------------------------------------------------------------------------
  5.   def level_up
  6.     @level += 1
  7.     self.class.learnings.each do |learning|
  8.       learn_skill(learning.skill_id) if learning.level == @level
  9.     end
  10.     self.recover_all
  11.   end
  12. end
复制代码

点评

最好alias一下  发表于 2015-2-28 16:16

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
84 小时
注册时间
2012-12-21
帖子
18
6
 楼主| 发表于 2015-2-28 14:26:42 | 只看该作者
感謝 可以了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 01:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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