| 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.exp和actor.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
|