| 本帖最后由 夜狠简单 于 2016-1-21 00:37 编辑 
 应该是这个意思
 
   
 
 
 
  Project1.rar
(193.13 KB, 下载次数: 46) 
 没有特意设置角色等级限制后,就只能升级到限制的等级,允许本次获得经验后可以超过限制的等级,但下次就不在获取经验。
 如二号角色 击败敌人后可以 从 5级升到20级,但是他等级限制是 15级
 。 那么这次战斗后,其他伙伴和二号角色一同升级到20级左右。下次战斗胜利后,其他伙伴可以继续升级,但他不能升级。
 如果需要他可以再次升级,则修改限制的等级就行
 
 
 
 # 插在Main前面使用class Scene_Battle  #用数组给角色指定等级上限,只是一个预设定。  if  $actorlevel ==nil   $actorlevel=[]  end if $data_actors !=nil  for i in 1...$data_actors.size  #$actorlevel[1] = 10一号角色等级超过10不增加经验  #$actorlevel[2] = 20二号角色等级超过20不增加经验  #$actorlevel[7] = 30七号角色等级超过30不增加经验  $actorlevel[i] =99 #默认所有角色等级超过99级不增加经验  endend  #比如给五号角色增加等级限制50级 就写  $actorlevel[5]=50#如果要更改二号角色等级超过30级就不增加经验,也可以直接通过#事件指令-脚本 $actorlevel[2] = 30     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    # 限制宝物数为 6 个    treasures = treasures[0..5]    # 获得 EXP    for i in 0...$game_party.actors.size      actor = $game_party.actors[i]      if actor.cant_get_exp? == false         last_level = actor.level         #先判断角色是否存在等级限定      if $actorlevel[actor.id]!=nil        #执行有等级限定的步骤,不超过限定等级则加经验,超过限定等级就不加       actor.exp += exp   if actor.level<=$actorlevel[actor.id]       else #执行角色没有设置等级限定的步骤          actor.exp += exp       end       if actor.level > last_level          @status_window.level_up(i)        end      end    end    # 获得金钱    $game_party.gain_gold(gold)    # 获得宝物    for item in treasures      case item      when RPG::Item        $game_party.gain_item(item.id, 1)      when RPG::Weapon        $game_party.gain_weapon(item.id, 1)      when RPG::Armor        $game_party.gain_armor(item.id, 1)      end    end    # 生成战斗结果窗口    @result_window = Window_BattleResult.new(exp, gold, treasures)    # 设置等待计数    @phase5_wait_count = 100  endend
# 插在Main前面使用 
class Scene_Battle 
  #用数组给角色指定等级上限,只是一个预设定。 
  if  $actorlevel ==nil  
  $actorlevel=[] 
  end 
  
if $data_actors !=nil 
  for i in 1...$data_actors.size 
  #$actorlevel[1] = 10一号角色等级超过10不增加经验 
  #$actorlevel[2] = 20二号角色等级超过20不增加经验 
  #$actorlevel[7] = 30七号角色等级超过30不增加经验 
  $actorlevel[i] =99 #默认所有角色等级超过99级不增加经验 
  end 
end 
  
  
#比如给五号角色增加等级限制50级 就写  $actorlevel[5]=50 
#如果要更改二号角色等级超过30级就不增加经验,也可以直接通过 
#事件指令-脚本 $actorlevel[2] = 30  
  
   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 
    # 限制宝物数为 6 个 
    treasures = treasures[0..5] 
    # 获得 EXP 
    for i in 0...$game_party.actors.size 
      actor = $game_party.actors[i] 
      if actor.cant_get_exp? == false 
         last_level = actor.level 
         #先判断角色是否存在等级限定 
      if $actorlevel[actor.id]!=nil 
        #执行有等级限定的步骤,不超过限定等级则加经验,超过限定等级就不加 
       actor.exp += exp   if actor.level<=$actorlevel[actor.id]   
     else #执行角色没有设置等级限定的步骤 
          actor.exp += exp 
       end 
       if actor.level > last_level 
          @status_window.level_up(i) 
        end 
      end 
    end 
    # 获得金钱 
    $game_party.gain_gold(gold) 
    # 获得宝物 
    for item in treasures 
      case item 
      when RPG::Item 
        $game_party.gain_item(item.id, 1) 
      when RPG::Weapon 
        $game_party.gain_weapon(item.id, 1) 
      when RPG::Armor 
        $game_party.gain_armor(item.id, 1) 
      end 
    end 
    # 生成战斗结果窗口 
    @result_window = Window_BattleResult.new(exp, gold, treasures) 
    # 设置等待计数 
    @phase5_wait_count = 100 
  end 
end 
 
 |