Project1

标题: 请问如何做,一人战斗结束后,全部人物都获得经验? [打印本页]

作者: 爆焰    时间: 2012-1-9 02:59
标题: 请问如何做,一人战斗结束后,全部人物都获得经验?
就是说,一个人出战,胜利后在队伍中的其他未出战人物也获得经验,升级也提示。
如果不行,就直接全部人物包括不在队伍中的,都获得经验。请高手帮帮忙。dsu_plus_rewardpost_czw
作者: 赤夜玄魔    时间: 2012-1-9 05:28
本帖最后由 赤夜玄魔 于 2012-1-9 06:33 编辑

  1. Scene_Battle 2
  2. 167开始 “# 获得 EXP” 到 “# 获得金钱” 前 的东东都改掉,如果你要升级提示的话,请把提示脚本附上。

  3.     lsa = 0
  4.     for i in 1...$data_actors.size
  5.       actor = $game_actors[i]
  6.       if actor.name != ""
  7.         if actor.cant_get_exp? == false
  8.           last_level = actor.level
  9.           actor.exp += exp
  10.           if actor.level > last_level
  11.             lsb = $game_party.actors[lsa]
  12.             if lsb.name == actor.name
  13.             @status_window.level_up(lsa)
  14.             end
  15.             lsb = $game_party.actors[lsa+1]
  16.             if lsb != nil
  17.             lsa += 1
  18.             end
  19.           end
  20.         end
  21.       end
  22.     end
复制代码
补充一句,以上更改后,升级提示会有问题,所以LZ,请将你想调用的升级提示发给我,我帮你整合。
作者: 爆焰    时间: 2012-1-9 08:48
赤夜玄魔 发表于 2012-1-9 05:28
补充一句,以上更改后,升级提示会有问题,所以LZ,请将你想调用的升级提示发给我,我帮你整合。 ...

  1. $data_system_level_up_se = "" #升级时的音效设置
  2. $data_system_level_up_me = "Audio/ME/升级" # 升级时播放的ME
  3. $data_system_skilllearn_se = "Audio/SE/106-Heal02" # 学会特技时播放的声效。

  4. #=============================================================
  5. # ■ Window_LevelUpWindow
  6. #-------------------------------------------------------------------
  7. #  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
  8. #=============================================================
  9. class Window_LevelUpWindow < Window_Base
  10.   #---------------------------------------------------------
  11.   # ● オブジェクト初期化
  12.   #------------------------------------------------------
  13.   def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  14.     super(0, 150, 160, 192)
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     self.visible = false
  17.     self.back_opacity = 160
  18.     refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  19.   end
  20.   #-----------------------------------------------------------
  21.   # ● リフレッシュ
  22.   #---------------------------------------------------------
  23.   def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  24.     self.contents.clear
  25.     self.contents.font.color = system_color
  26.     self.contents.font.size = 14
  27.     self.contents.draw_text( 0, 0, 160, 24, "等级上升")
  28.     self.contents.font.size = 18
  29.     self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp)
  30.     self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp)
  31.     self.contents.font.size = 14
  32.     self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str)
  33.     self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex)
  34.     self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi)
  35.     self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int)
  36.     self.contents.draw_text(92, 0, 128, 24, "→")
  37.     self.contents.draw_text(76, 28, 128, 24, "=")
  38.     self.contents.draw_text(76, 50, 128, 24, "=")
  39.     self.contents.draw_text(76, 72, 128, 24, "=")
  40.     self.contents.draw_text(76, 94, 128, 24, "=")
  41.     self.contents.draw_text(76, 116, 128, 24, "=")
  42.     self.contents.draw_text(76, 138, 128, 24, "=")
  43.     self.contents.font.color = normal_color
  44.     self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2)
  45.     self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2)
  46.     self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2)
  47.     self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2)
  48.     self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2)
  49.     self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2)
  50.     self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2)
  51.     self.contents.font.size = 20
  52.     self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2)
  53.     self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2)
  54.     self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2)
  55.     self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2)
  56.     self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2)
  57.     self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
  58.     self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
  59.   end
  60. end
  61. #===========================================================
  62. # ■ Window_SkillLearning
  63. #------------------------------------------------------------------------------
  64. #  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
  65. #=============================================================
  66. class Window_SkillLearning < Window_Base
  67.   #-------------------------------------------------------------
  68.   # ● 公開インスタンス変数
  69.   #-----------------------------------------------------------
  70.   attr_reader :learned # スキルを習得したかどうか
  71.   #----------------------------------------------------------
  72.   # ● オブジェクト初期化
  73.   #----------------------------------------------------------
  74.   def initialize(class_id, last_lv, now_lv)
  75.     super(160, 64, 320, 64)
  76.     self.contents = Bitmap.new(width - 32, height - 28) # わざと▽を表示
  77.     self.visible = false
  78.     self.back_opacity = 160
  79.     @learned = false
  80.     refresh(class_id, last_lv, now_lv)
  81.   end
  82.   #------------------------------------------------------------
  83.   # ● リフレッシュ
  84.   #-------------------------------------------------------
  85.   def refresh(class_id, last_lv, now_lv)
  86.     for i in 0...$data_classes[class_id].learnings.size
  87.       learn_lv = $data_classes[class_id].learnings[i].level
  88.       # 今回のレベルアップ範囲で習得するスキルの場合
  89.       if learn_lv > last_lv and learn_lv <= now_lv
  90.         @learned = true
  91.         # SEの再生
  92.         if $data_system_skilllearn_se != ""
  93.           Audio.se_play($data_system_skilllearn_se)
  94.         end
  95.         # 各描写
  96.         skill_name = $data_skills[$data_classes[class_id].learnings[i].skill_id].name
  97.         self.contents.clear
  98.         self.contents.font.color = text_color(0)
  99.         self.contents.draw_text(0,0,448,32, "学会特技:"+skill_name)
  100.         self.contents.font.color = text_color(6)
  101.         self.contents.draw_text(0,0,448,32, "          "+skill_name)
  102.         self.contents.font.color = text_color(0)
  103.         self.visible = true
  104.         # メインループ
  105.         loop do
  106.           # ゲーム画面を更新
  107.           Graphics.update
  108.           # 入力情報を更新
  109.           Input.update
  110.           # フレーム更新
  111.           update
  112.           # 画面が切り替わったらループを中断
  113.           if @learned == false
  114.             break
  115.           end
  116.         end
  117.       # メインループここまで
  118.       end
  119.     end
  120.   end
  121.   #-----------------------------------------------------------
  122.   # ● フレーム更新
  123.   #------------------------------------------------------------
  124.   def update
  125.     # C ボタンが押された場合
  126.     if Input.trigger?(Input::C)
  127.       @learned = false
  128.       self.visible = false
  129.     end
  130.   end
  131. end
  132. #==================================================================
  133. # ■ Window_BattleStatus
  134. #==================================================================
  135. class Window_BattleStatus < Window_Base
  136.   #---------------------------------------------------------
  137.   # ● 追加?公開インスタンス変数
  138.   #-------------------------------------------------------
  139.   attr_accessor :level_up_flags # LEVEL UP!表示
  140. end
  141. #===============================================================
  142. # ■ Game_Battler
  143. #===============================================================
  144. class Game_Battler
  145.   #--------------------------------------------------------------
  146.   # ● 追加?公開インスタンス変数
  147.   #----------------------------------------------------------
  148.   attr_accessor :exp_gain_ban # EXP取得一時禁止
  149.   #------------------------------------------------------
  150.   # ● オブジェクト初期化
  151.   #-----------------------------------------------------
  152.   alias xrxs_bp10_initialize initialize
  153.   def initialize
  154.     @exp_gain_ban = false
  155.     xrxs_bp10_initialize
  156.   end
  157.   #-------------------------------------------------------
  158.   # ● ステート [EXP を獲得できない] 判定
  159.   #-----------------------------------------------------
  160.   alias xrxs_bp10_cant_get_exp? cant_get_exp?
  161.   def cant_get_exp?
  162.     if @exp_gain_ban == true
  163.       return true
  164.     else
  165.       return xrxs_bp10_cant_get_exp?
  166.     end
  167.   end
  168. end
  169. #==============================================================
  170. # ■ Scene_Battle
  171. #==============================================================
  172. class Scene_Battle
  173.   #--------------------------------------------------
  174.   # ● アフターバトルフェーズ開始
  175.   #--------------------------------------------------
  176.   alias xrxs_bp10_start_phase5 start_phase5
  177.   def start_phase5
  178.     # EXP 獲得禁止
  179.     for i in 0...$game_party.actors.size
  180.       $game_party.actors[i].exp_gain_ban = true
  181.     end
  182.     xrxs_bp10_start_phase5
  183.     # EXP 獲得禁止の解除
  184.     for i in 0...$game_party.actors.size
  185.       $game_party.actors[i].exp_gain_ban = false
  186.     end
  187.     # EXPを初期化
  188.     @exp_gained = 0
  189.     for enemy in $game_troop.enemies
  190.       # 獲得 EXPを追加 # エネミーが隠れ状態でない場合
  191.       @exp_gained += enemy.exp if not enemy.hidden
  192.     end
  193.     # 設定
  194.     @phase5_step = 1
  195.     @exp_gain_actor = -1
  196.     # リザルトウィンドウを表示
  197.     @result_window.visible = true
  198.   end
  199.   #----------------------------------------------------------
  200.   # ● フレーム更新 (アフターバトルフェーズ)
  201.   #--------------------------------------------------------
  202.   #alias xrxs_bp10_update_phase5 update_phase5
  203.   def update_phase5
  204.     case @phase5_step
  205.     when 1
  206.       update_phase5_step1
  207.     else
  208.     # ウェイトカウントが 0 より大きい場合
  209.       if @phase5_wait_count > 0
  210.         # ウェイトカウントを減らす
  211.         @phase5_wait_count -= 1
  212.         # ウェイトカウントが 0 になった場合
  213.         if @phase5_wait_count == 0
  214.           # リザルトウィンドウを表示
  215.           #@result_window.visible = true
  216.           # メインフェーズフラグをクリア
  217.           $game_temp.battle_main_phase = false
  218.           # ステータスウィンドウをリフレッシュ
  219.           @status_window.refresh
  220.         end
  221.       return
  222.       end
  223.       # C ボタンが押された場合
  224.       if Input.trigger?(Input::C)
  225.         # バトル終了
  226.         battle_end(0)
  227.       end
  228.     # レベルアップしている場合は強制バトル終了
  229.     battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
  230.     end
  231.   end
  232.   #-----------------------------------------------------------
  233.   # ● フレーム更新 (アフターバトルフェーズ 1 : レベルアップ)
  234.   #-----------------------------------------------------------
  235.   def update_phase5_step1
  236.     # C ボタンが押された場合
  237.     if Input.trigger?(Input::C)
  238.       # ウィンドウを閉じて次のアクターへ
  239.       @levelup_window.visible = false if @levelup_window != nil
  240.       @status_window.level_up_flags[@exp_gain_actor] = false
  241.       phase5_next_levelup
  242.     end
  243.   end
  244.   #---------------------------------------------------------
  245.   # ● 次のアクターのレベルアップ表示へ
  246.   #---------------------------------------------------------
  247.   def phase5_next_levelup
  248.     begin
  249.       # 次のアクターへ
  250.       @exp_gain_actor += 1
  251.       # 最後のアクターの場合
  252.       if @exp_gain_actor >= $game_party.actors.size
  253.         # アフターバトルフェーズ開始
  254.         @phase5_step = 0
  255.         return
  256.       end
  257.       actor = $game_party.actors[@exp_gain_actor]
  258.       if actor.cant_get_exp? == false
  259.         # 現在の能力値を保持
  260.         last_level = actor.level
  261.         last_maxhp = actor.maxhp
  262.         last_maxsp = actor.maxsp
  263.         last_str = actor.str
  264.         last_dex = actor.dex
  265.         last_agi = actor.agi
  266.         last_int = actor.int
  267.         # 経験値取得の決定的瞬間(謎
  268.         actor.exp += @exp_gained
  269.         # 判定
  270.         if actor.level > last_level
  271.           actor.hp = actor.maxhp;         
  272.           actor.sp = actor.maxsp
  273.           # レベルアップした場合
  274.           @status_window.level_up(@exp_gain_actor)
  275.           # リザルトウィンドウを消す
  276.           @result_window.visible = false
  277.           # SEの再生
  278.           if $data_system_level_up_se != ""
  279.             Audio.se_play($data_system_level_up_se)
  280.           end
  281.           # MEの再生
  282.           if $data_system_level_up_me != ""
  283.             Audio.me_stop
  284.             Audio.me_play($data_system_level_up_me)
  285.           end
  286.           # LEVEL-UPウィンドウの設定
  287.           @levelup_window = Window_LevelUpWindow.new(actor, last_level,
  288.           actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
  289.           actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
  290.           @levelup_window.x = 160 * @exp_gain_actor
  291.           @levelup_window.visible = true
  292.           # ステータスウィンドウをリフレッシュ
  293.           @status_window.refresh
  294.           # スキル習得ウィンドウの設定
  295.           @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
  296.           # ウェイトカウントを設定
  297.           @phase5_wait_count = 40
  298.           @phase5_step = 1
  299.           return
  300.         end
  301.       end
  302.     end until false
  303.   end
  304. end


  305. #=============================================================
  306. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  307. #=============================================================
复制代码

作者: 赤夜玄魔    时间: 2012-1-9 23:09
爆焰 发表于 2012-1-9 08:48
  1. $data_system_level_up_se = "" #升级时的音效设置
  2. $data_system_level_up_me = "Audio/ME/011-Item02" # 升级时播放的ME ★这里我改了
  3. $data_system_skilllearn_se = "Audio/SE/106-Heal02" # 学会特技时播放的声效。

  4. #=============================================================
  5. # ■ Window_LevelUpWindow
  6. #-------------------------------------------------------------------
  7. #  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
  8. #=============================================================
  9. class Window_LevelUpWindow < Window_Base
  10.   #---------------------------------------------------------
  11.   # ● オブジェクト初期化
  12.   #------------------------------------------------------
  13.   def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  14.     super(0, 150, 160, 192)
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     self.visible = false
  17.     self.back_opacity = 160
  18.     refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  19.   end
  20.   #-----------------------------------------------------------
  21.   # ● リフレッシュ
  22.   #---------------------------------------------------------
  23.   def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  24.     self.contents.clear
  25.     self.contents.font.color = system_color
  26.     self.contents.font.size = 14
  27.     self.contents.draw_text( 0, 0, 160, 24, actor.name+" "+"等级上升")
  28.     self.contents.font.size = 18
  29.     self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp)
  30.     self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp)
  31.     self.contents.font.size = 14
  32.     self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str)
  33.     self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex)
  34.     self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi)
  35.     self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int)
  36.     self.contents.draw_text(92, 0, 128, 24, "→")
  37.     self.contents.draw_text(76, 28, 128, 24, "=")
  38.     self.contents.draw_text(76, 50, 128, 24, "=")
  39.     self.contents.draw_text(76, 72, 128, 24, "=")
  40.     self.contents.draw_text(76, 94, 128, 24, "=")
  41.     self.contents.draw_text(76, 116, 128, 24, "=")
  42.     self.contents.draw_text(76, 138, 128, 24, "=")
  43.     self.contents.font.color = normal_color
  44.     self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2)
  45.     self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2)
  46.     self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2)
  47.     self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2)
  48.     self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2)
  49.     self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2)
  50.     self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2)
  51.     self.contents.font.size = 20
  52.     self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2)
  53.     self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2)
  54.     self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2)
  55.     self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2)
  56.     self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2)
  57.     self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
  58.     self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
  59.   end
  60. end
  61. #===========================================================
  62. # ■ Window_SkillLearning
  63. #------------------------------------------------------------------------------
  64. #  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
  65. #=============================================================
  66. class Window_SkillLearning < Window_Base
  67.   #-------------------------------------------------------------
  68.   # ● 公開インスタンス変数
  69.   #-----------------------------------------------------------
  70.   attr_reader :learned # スキルを習得したかどうか
  71.   #----------------------------------------------------------
  72.   # ● オブジェクト初期化
  73.   #----------------------------------------------------------
  74.   def initialize(class_id, last_lv, now_lv)
  75.     super(160, 64, 320, 64)
  76.     self.contents = Bitmap.new(width - 32, height - 28) # わざと▽を表示
  77.     self.visible = false
  78.     self.back_opacity = 160
  79.     @learned = false
  80.     refresh(class_id, last_lv, now_lv)
  81.   end
  82.   #------------------------------------------------------------
  83.   # ● リフレッシュ
  84.   #-------------------------------------------------------
  85.   def refresh(class_id, last_lv, now_lv)
  86.     for i in 0...$data_classes[class_id].learnings.size
  87.       learn_lv = $data_classes[class_id].learnings[i].level
  88.       # 今回のレベルアップ範囲で習得するスキルの場合
  89.       if learn_lv > last_lv and learn_lv <= now_lv
  90.         @learned = true
  91.         # SEの再生
  92.         if $data_system_skilllearn_se != ""
  93.           Audio.se_play($data_system_skilllearn_se)
  94.         end
  95.         # 各描写
  96.         skill_name = $data_skills[$data_classes[class_id].learnings[i].skill_id].name
  97.         self.contents.clear
  98.         self.contents.font.color = text_color(0)
  99.         self.contents.draw_text(0,0,448,32, "学会特技:"+skill_name)
  100.         self.contents.font.color = text_color(6)
  101.         self.contents.draw_text(0,0,448,32, "          "+skill_name)
  102.         self.contents.font.color = text_color(0)
  103.         self.visible = true
  104.         # メインループ
  105.         loop do
  106.           # ゲーム画面を更新
  107.           Graphics.update
  108.           # 入力情報を更新
  109.           Input.update
  110.           # フレーム更新
  111.           update
  112.           # 画面が切り替わったらループを中断
  113.           if @learned == false
  114.             break
  115.           end
  116.         end
  117.       # メインループここまで
  118.       end
  119.     end
  120.   end
  121.   #-----------------------------------------------------------
  122.   # ● フレーム更新
  123.   #------------------------------------------------------------
  124.   def update
  125.     # C ボタンが押された場合
  126.     if Input.trigger?(Input::C)
  127.       @learned = false
  128.       self.visible = false
  129.     end
  130.   end
  131. end
  132. #==================================================================
  133. # ■ Window_BattleStatus
  134. #==================================================================
  135. class Window_BattleStatus < Window_Base
  136.   #---------------------------------------------------------
  137.   # ● 追加?公開インスタンス変数
  138.   #-------------------------------------------------------
  139.   attr_accessor :level_up_flags # LEVEL UP!表示
  140. end
  141. #===============================================================
  142. # ■ Game_Battler
  143. #===============================================================
  144. class Game_Battler
  145.   #--------------------------------------------------------------
  146.   # ● 追加?公開インスタンス変数
  147.   #----------------------------------------------------------
  148.   attr_accessor :exp_gain_ban # EXP取得一時禁止
  149.   #------------------------------------------------------
  150.   # ● オブジェクト初期化
  151.   #-----------------------------------------------------
  152.   alias xrxs_bp10_initialize initialize
  153.   def initialize
  154.     @exp_gain_ban = false
  155.     xrxs_bp10_initialize
  156.   end
  157.   #-------------------------------------------------------
  158.   # ● ステート [EXP を獲得できない] 判定
  159.   #-----------------------------------------------------
  160.   alias xrxs_bp10_cant_get_exp? cant_get_exp?
  161.   def cant_get_exp?
  162.     if @exp_gain_ban == true
  163.       return true
  164.     else
  165.       return xrxs_bp10_cant_get_exp?
  166.     end
  167.   end
  168. end
  169. #==============================================================
  170. # ■ Scene_Battle
  171. #==============================================================
  172. class Scene_Battle
  173.   #--------------------------------------------------
  174.   # ● アフターバトルフェーズ開始
  175.   #--------------------------------------------------
  176.   alias xrxs_bp10_start_phase5 start_phase5
  177.   def start_phase5
  178.     # EXP 獲得禁止
  179.     for i in 0...$game_party.actors.size
  180.       $game_party.actors[i].exp_gain_ban = true
  181.     end
  182.     xrxs_bp10_start_phase5
  183.     # EXP 獲得禁止の解除
  184.     for i in 0...$game_party.actors.size
  185.       $game_party.actors[i].exp_gain_ban = false
  186.     end
  187.     # EXPを初期化
  188.     @exp_gained = 0
  189.     for enemy in $game_troop.enemies
  190.       # 獲得 EXPを追加 # エネミーが隠れ状態でない場合
  191.       @exp_gained += enemy.exp if not enemy.hidden
  192.     end
  193.     # 設定
  194.     @jubua = 0
  195.     @phase5_step = 1
  196.     @exp_gain_actor = -1
  197.     # リザルトウィンドウを表示
  198.     @result_window.visible = true
  199.   end
  200.   #----------------------------------------------------------
  201.   # ● フレーム更新 (アフターバトルフェーズ)
  202.   #--------------------------------------------------------
  203.   #alias xrxs_bp10_update_phase5 update_phase5
  204.   def update_phase5
  205.     case @phase5_step
  206.     when 1
  207.       update_phase5_step1
  208.     else
  209.     # ウェイトカウントが 0 より大きい場合
  210.       if @phase5_wait_count > 0
  211.         # ウェイトカウントを減らす
  212.         @phase5_wait_count -= 1
  213.         # ウェイトカウントが 0 になった場合
  214.         if @phase5_wait_count == 0
  215.           # リザルトウィンドウを表示
  216.           #@result_window.visible = true
  217.           # メインフェーズフラグをクリア
  218.           $game_temp.battle_main_phase = false
  219.           # ステータスウィンドウをリフレッシュ
  220.           @status_window.refresh
  221.         end
  222.       return
  223.       end
  224.       # C ボタンが押された場合
  225.       if Input.trigger?(Input::C)
  226.         # バトル終了
  227.         battle_end(0)
  228.       end
  229.     # レベルアップしている場合は強制バトル終了
  230.     battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
  231.     end
  232.   end
  233.   #-----------------------------------------------------------
  234.   # ● フレーム更新 (アフターバトルフェーズ 1 : レベルアップ)
  235.   #-----------------------------------------------------------
  236.   def update_phase5_step1
  237.     # C ボタンが押された場合
  238.     if Input.trigger?(Input::C)
  239.       # ウィンドウを閉じて次のアクターへ
  240.       @levelup_window.visible = false if @levelup_window != nil
  241.       @status_window.level_up_flags[@exp_gain_actor] = false
  242.       phase5_next_levelup
  243.     end
  244.   end
  245.   #---------------------------------------------------------
  246.   # ● 次のアクターのレベルアップ表示へ
  247.   #---------------------------------------------------------
  248.   def phase5_next_levelup
  249.     begin
  250.     lsb = false
  251.     lsc = true
  252.       # 次のアクターへ
  253.       @exp_gain_actor += 1
  254.       # 最後のアクターの場合
  255.       if @exp_gain_actor >= $game_party.actors.size + 1
  256.         # アフターバトルフェーズ開始
  257.         @phase5_step = 0
  258.         return
  259.       end
  260.       if @exp_gain_actor >= $game_party.actors.size #超过队伍的最大人数
  261.         lsb = true
  262.         @exp_gain_actor -= 1
  263.         @jubua += 1
  264.         actor = $game_actors[@jubua]
  265.         if actor.id == $game_party.actors[0].id and $game_party.actors[0] != nil
  266.           lsc = false
  267.         elsif actor.id == $game_party.actors[1].id and $game_party.actors[1] != nil
  268.           lsc = false
  269.         elsif actor.id == $game_party.actors[2].id and $game_party.actors[2] != nil
  270.           lsc = false
  271.         elsif actor.id == $game_party.actors[3].id and $game_party.actors[3] != nil
  272.           lsc = false
  273.         else
  274.           lsc = true
  275.         end
  276.         if @jubua == $data_actors.size - 1 #等于数据库的最大角色数
  277.           @exp_gain_actor += 1
  278.         end
  279.       else
  280.         actor = $game_party.actors[@exp_gain_actor]
  281.       end
  282.       if actor.cant_get_exp? == false and lsc == true
  283.         # 現在の能力値を保持
  284.         last_level = actor.level
  285.         last_maxhp = actor.maxhp
  286.         last_maxsp = actor.maxsp
  287.         last_str = actor.str
  288.         last_dex = actor.dex
  289.         last_agi = actor.agi
  290.         last_int = actor.int
  291.         # 経験値取得の決定的瞬間(謎
  292.         actor.exp += @exp_gained
  293.         # 判定
  294.         if actor.level > last_level
  295.           actor.hp = actor.maxhp
  296.           actor.sp = actor.maxsp
  297.           # レベルアップした場合
  298.           if lsb == false
  299.             @status_window.level_up(@exp_gain_actor)
  300.           end
  301.           # リザルトウィンドウを消す
  302.           @result_window.visible = false
  303.           # SEの再生
  304.           if $data_system_level_up_se != ""
  305.             Audio.se_play($data_system_level_up_se)
  306.           end
  307.           # MEの再生
  308.           if $data_system_level_up_me != ""
  309.             Audio.me_stop
  310.             Audio.me_play($data_system_level_up_me)
  311.           end
  312.           # LEVEL-UPウィンドウの設定
  313.           @levelup_window = Window_LevelUpWindow.new(actor, last_level,
  314.           actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
  315.           actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
  316.           if lsb == false
  317.           @levelup_window.x = 160 * @exp_gain_actor
  318.           @levelup_window.y = 150
  319.           else
  320.           @levelup_window.x = 240
  321.           @levelup_window.y = 128
  322.           end
  323.           @levelup_window.visible = true
  324.           # ステータスウィンドウをリフレッシュ
  325.           @status_window.refresh
  326.           # スキル習得ウィンドウの設定
  327.           @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
  328.           # ウェイトカウントを設定
  329.           @phase5_wait_count = 40
  330.           @phase5_step = 1
  331.           return
  332.         end
  333.       end
  334.     end until false
  335.   end
  336. end


  337. #=============================================================
  338. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  339. #=============================================================
复制代码

作者: 赤夜玄魔    时间: 2012-1-10 00:06
本帖最后由 赤夜玄魔 于 2012-1-10 14:26 编辑

我听不太懂,如果是说想让某个人获得不了经验。
不改脚本最好的办法就是给他一个不获得EXP的状态。
如果你想只让已经加入队伍,但处于阵地待机的人获得经验,而离开阵地和队伍的人不获得经验,你可以在这个地方改。
  1. if actor.id == $game_party.actors[0].id and $game_party.actors[0] != nil

  2. lsc = false

  3. elsif actor.id == $game_party.actors[1].id and $game_party.actors[1] != nil

  4. lsc = false

  5. elsif actor.id == $game_party.actors[2].id and $game_party.actors[2] != nil

  6. lsc = false

  7. #这样插入脚本……
  8. elsif $game_switches [10+actor.id] == false
  9. lsc =false
  10. #这时候会判断 角色ID+10的开关是否打开,如果没打开,说明角色不在里面,也就不加经验。
  11. 也就是说 如果角色 ID = 2 ,那么12号开关打开的话,证明角色在里面,如果没有就不加经验。

  12. elsif actor.id == $game_party.actors[3].id and $game_party.actors[3] != nil

  13. lsc = false

  14. #这时候会判断 角色ID是不是等于 变量50号所记录的ID,如果是,这角色也就不加经验。

  15. else
  16. lsc = true

  17. end


复制代码

作者: 赤夜玄魔    时间: 2012-1-10 14:29
上面的回答就是这个意思……
你需要在角色加入阵地的时候开启角色ID编号+10的开关……只有开启开关他才能获得经验。
懂?
作者: 爆焰    时间: 2012-1-10 17:50
赤夜玄魔 发表于 2012-1-10 14:29
上面的回答就是这个意思……
你需要在角色加入阵地的时候开启角色ID编号+10的开关……只有开启开关他才能获 ...

请转至:http://rpg.blue/forum.php?mod=vi ... d=219131&extra=




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1