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

Project1

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

如何修改战斗结束后返回地图界面再显示获得经验?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
跳转到指定楼层
1
发表于 2009-1-16 04:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  我尝试修改的脚本如下:

在 Scene_Map 中加入下面的脚本.

  1. #--------------------------------------------------------------------------
  2.   # ● 画面更新 (结束战斗回合)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase5
  5.    
  6.     # 转移到回合 5
  7.     @phase = 5
  8.     # 演奏战斗结束 ME
  9.     $game_system.me_play($game_system.battle_end_me)
  10.     # 还原为战斗开始前的 BGM
  11.     $game_system.bgm_play($game_temp.map_bgm)
  12.     # 初始化 EXP、金钱、宝物
  13.     exp = 0
  14.     gold = 0
  15.     treasures = []
  16.     # 循环
  17.     for enemy in $game_troop.enemies
  18.       # 敌人不是隐藏状态的情况下
  19.       unless enemy.hidden
  20.         # 获得 EXP、增加金钱
  21.         exp += enemy.exp
  22.         gold += enemy.gold
  23.         # 出现宝物判定
  24.         if rand(100) < enemy.treasure_prob
  25.           if enemy.item_id > 0
  26.             treasures.push($data_items[enemy.item_id])
  27.           end
  28.           if enemy.weapon_id > 0
  29.             treasures.push($data_weapons[enemy.weapon_id])
  30.           end
  31.           if enemy.armor_id > 0
  32.             treasures.push($data_armors[enemy.armor_id])
  33.           end
  34.         end
  35.       end
  36.     end
  37.     # 限制宝物数为 6 个
  38.     treasures = treasures[0..5]
  39.     # 获得 EXP
  40.     for i in 0...$game_party.actors.size
  41.       actor = $game_party.actors[i]
  42.       if actor.cant_get_exp? == false
  43.         last_level = actor.level
  44.         actor.exp += exp
  45.         if actor.level > last_level
  46.           #!!! 升级后自动回复血法
  47.       actor.hp = actor.maxhp;  actor.sp = actor.maxsp  
  48.           @status_window.level_up(i)
  49.         end
  50.       end
  51.     end
  52.     # 获得金钱
  53.     $game_party.gain_gold(gold)
  54.     # 获得宝物
  55.     for item in treasures
  56.       case item
  57.       when RPG::Item
  58.         $game_party.gain_item(item.id, 1)
  59.       when RPG::Weapon
  60.         $game_party.gain_weapon(item.id, 1)
  61.       when RPG::Armor
  62.         $game_party.gain_armor(item.id, 1)
  63.       end
  64.     end   
  65.     # 等待计数大于 0 的情况下
  66. #    if @phase5_wait_count > 0
  67.       # 减少等待计数
  68. #      @phase5_wait_count -= 1
  69.       # 等待计数为 0 的情况下
  70. #     if @phase5_wait_count == 0

  71.      # 生成战斗结果窗口
  72.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  73.         # 显示结果窗口
  74.         @result_window.visible = true
  75.         # 清除主回合标志
  76.         $game_temp.battle_main_phase = false
  77.         # 刷新状态窗口
  78.     #    @status_window.refresh
  79.   #    end
  80.       return
  81.   #  end
  82.   
  83.    
  84.     # 按下 C 键的情况下
  85.    # if Input.trigger?(Input::C)
  86.       
  87.         # 显示结果窗口
  88.    #     @result_window.visible = false
  89.    # end
  90.    
  91.   end
复制代码



修改

  def main
    # 生成活动块
    @spriteset = Spriteset_Map.new
    # 生成信息窗口
    @message_window = Window_Message.new
   
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面切换的话就中断循环
      if $scene != self
        break
      end
    end
     
  # 回合分支
    case @phase
    when 1  # 自由战斗回合
      update_phase1
    when 2  # 同伴命令回合
      update_phase2
    when 3  # 角色命令回合
      update_phase3
    when 4  # 主回合
      update_phase4
    when 5  # 战斗结束回合
      update_phase5
    end
      
    # 准备过渡
    Graphics.freeze
    # 释放活动块
    @spriteset.dispose
    # 释放信息窗口
    @message_window.dispose
   
   
    if @result_window != nil
      @result_window.dispose
    end
         
    # 标题画面切换中的情况下
    if $scene.is_a?(Scene_Title)
      # 淡入淡出画面
      Graphics.transition
      Graphics.freeze
    end

  end


Scene_Battle 1  中的 start_phase5  修改成 update_phase5


   运行游戏正常, 进入战斗正常, 问题是战斗结束后, 并没有返回地图界面,就显示了经验,并且无法返回地图.

  请脚本高手帮忙看看,谢谢.



版务信息:本贴由楼主自主结贴~
十年磨一剑,蓦然回首,年华如水,青春如歌。

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
发表于 2009-1-16 07:37:11 | 只看该作者
http://rpg.blue/upload_program/d/ONEWateR_Project1_112490868.rar

楼主所贴的脚本有点混乱,于是自己弄了个,希望和你心意。
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
3
 楼主| 发表于 2009-1-16 17:06:44 | 只看该作者
非常感谢.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 22:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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