Home > Tutorial

RGSS基本修改

即使未能完全理解RGSS,

也可以修改一些少部分。
這篇學習日誌就是寫下修改一少部分Script的方法。
 
如果不是太熟識RGSS而又想修改一少部分的功能的話。
盡可能不要更改輸出和輸入的方式,
我以Class Scene_Battle的一個Method作例。
 
def start_phase5
 
  # 中間的Script省略
 
    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
  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
      actor.exp += exp
      if actor.level > last_level
        @status_window.level_up(i)
      end
    end
  end
 
  # 中間的Script省略
 
end
 
如果你要改設置獲得 EXP的方式,
盡可能不要修改enemy.expactor.exp作別的東西。
(我指的是對RGSS不熟識的人)
因為如果把enemy.exp改了作troop.exp等等的東西,
在別的地方又要作修改,
很容易出錯。
 
最後,我做了一個小範例,
裝備了123號的裝飾品,就有2倍的EXP,
其實不是想像中這麼難的。 
 
def start_phase5
 
  # 中間的Script省略
 
  # 獲得 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 actor.armor4_id = 123
        actor.exp += exp*2
      else
        actor.exp += exp
      end
      #裝備了123號的裝飾品,就有2倍的EXP
      if actor.level > last_level
        @status_window.level_up(i)
      end
    end
  end
 
  # 中間的Script省略
 
end 

回前頁

Hosted by www.Geocities.ws

1