Project1

标题: 【怎么让离开的队员拥有经验。】 [打印本页]

作者: 偶要当英雄    时间: 2009-7-5 13:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-7-5 13:12
用一个变量记录着离开队伍的主角获得的经验,然后再次归队的时候再加上不就行了?
作者: 偶要当英雄    时间: 2009-7-5 14:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙鑫    时间: 2009-7-5 15:06
离开队伍的角色,他的经验增加有何意义?传统的RPG,默认的系统,只有角色加入队伍之后,才能查看他的经验。
作者: 偶要当英雄    时间: 2009-7-5 15:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风中承诺    时间: 2009-7-6 10:21
太晕了,有些不懂。不过可以.........增加退出队友的经验..加入时不勾选初始化。
可能不对啊....
作者: ONEWateR    时间: 2009-7-6 10:35
在Scene_Battle 2中
def start_phase5
添加 $game_party.actors[编号].exp += exp即可
作者: 偶要当英雄    时间: 2009-7-6 15:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: ONEWateR    时间: 2009-7-6 15:34
本帖最后由 ONEWateR 于 2009-7-6 15:51 编辑
具体说一下.....最好有范例....因为脚本段太长,
而且在公共事件内或事件内调用。
偶要当英雄 发表于 2009-7-6 15:30


公共事件内或事件内调用? 那只要将exp赋值在一变量,然后在增加经验exp即可
至于如何赋值
在 Scene_Battle 2 找到以下语句
  def start_phase5
    # 转移到回合 5
    @phase = 5
    # 演奏战斗结束 ME
    $game_system.me_play($game_system.battle_end_me)
    # 还原为战斗开始前的 BGM
    $game_system.bgm_play($game_temp.map_bgm)
    # 初始化 EXP、金钱、宝物
    exp = 0
    gold = 0
    treasures = []
    # 循环
    for enemy in $game_troop.enemies
      # 敌人不是隐藏状态的情况下
      unless enemy.hidden
        # 获得 EXP、增加金钱
        exp += enemy.exp
        gold += enemy.gold
        # 出现宝物判定
        if rand(100) < enemy.treasure_prob
          if enemy.item_id > 0
            treasures.push($data_items[enemy.item_id])
          end
          if enemy.weapon_id > 0
            treasures.push($data_weapons[enemy.weapon_id])
          end
          if enemy.armor_id > 0
            treasures.push($data_armors[enemy.armor_id])
          end
        end
      end
    end
  $game_variables[5] = 0
$game_variables[5] = exp if $game_party.actors.include?($game_actors[角色编号])

添加红色的那段~即可~
也就是说将exp赋值在变量5(可自行修改)
然后再事件命令中 增减exp 操作即可~

角色编号是某X的编号~
作者: 偶要当英雄    时间: 2009-7-6 15:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 偶要当英雄    时间: 2009-7-6 15:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: ONEWateR    时间: 2009-7-6 15:51
可是,如果某X离开了就不可以获得经验?不可以升级?
一定要回来才可以吗?
偶要当英雄 发表于 2009-7-6 15:44


已更新~
作者: 偶要当英雄    时间: 2009-7-6 15:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 偶要当英雄    时间: 2009-7-6 16:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: ONEWateR    时间: 2009-7-6 16:05
上述脚本只是片段~
仅供参考~
作者: 偶要当英雄    时间: 2009-7-6 16:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: ONEWateR    时间: 2009-7-6 16:18
附上范例
希望能解决楼主的问题

Project38.rar

187.28 KB, 下载次数: 42


作者: IamI    时间: 2009-7-6 16:19
XD用了横版你早说……= =
刚刚写了一个干净的脚本环境下有效的脚本
  1. class Scene_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始结束战斗回合
  4.   #--------------------------------------------------------------------------
  5.   def start_phase5
  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.     ########################C########################
  41.     $game_party.actors.push($game_actors[$game_variables[50]]) if $game_variables[50] > 0
  42.     #################################################
  43.     for i in 0...$game_party.actors.size
  44.       actor = $game_party.actors[i]
  45.       if actor.cant_get_exp? == false
  46.         last_level = actor.level
  47.         actor.exp += exp
  48.         if actor.level > last_level
  49.           @status_window.level_up(i)
  50.         end
  51.       end
  52.     end
  53.     ######################C##########################
  54.     $game_party.actors.delete($game_actors[$game_variables[50]]) if $game_variables[50] > 0
  55.     $game_variables[50] = 0
  56.     #################################################
  57.     # 获得金钱
  58.     $game_party.gain_gold(gold)
  59.     # 获得宝物
  60.     for item in treasures
  61.       case item
  62.       when RPG::Item
  63.         $game_party.gain_item(item.id, 1)
  64.       when RPG::Weapon
  65.         $game_party.gain_weapon(item.id, 1)
  66.       when RPG::Armor
  67.         $game_party.gain_armor(item.id, 1)
  68.       end
  69.     end
  70.     # 生成战斗结果窗口
  71.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  72.     # 设置等待计数
  73.     @phase5_wait_count = 100
  74.   end
  75. end
复制代码
如果变量50大于0,那么把变量50ID的队员加入并计算经验。经验计算结束后,该队员被移除,并且变量50清零。
作者: 偶要当英雄    时间: 2009-7-6 16:37
提示: 作者被禁止或删除 内容自动屏蔽




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