Having experimented with the script editor I've come up with several little snippets that are surprisingly easy yet effective. Special thanks to
some person for showing me how make them into snippets and not just edits.
*Update*Just paste the snippets into materials and add the appropriate vocab.
1st: Separate sound effect for critical hits. Sound effect below the code. Place in materials.
CODE
class Scene_Battle < Scene_Base
def display_critical(target, obj = nil)
if target.critical
if target.actor?
text = Vocab::CriticalToActor
Audio.se_play('AUDIO/SE/superdamage', 80, 100)
else
text = Vocab::CriticalToEnemy
Audio.se_play('AUDIO/SE/superdamage', 80, 100)
end
@message_window.add_instant_text(text)
wait(5)
end
end
end
Superdamage.zip ( 16.84K )
Number of downloads: 46Mediafire alternative download.
http://www.mediafire.com/?jfxtzjwdybi2nd: Dragon Quest 8 damage calculation. Replace line 643 Game_Battler. (More realistic damage system i think.) This is an edit. Follow the instructions. Replace line 643 in Game_Battler.
CODE
damage = attacker.atk / 2 - self.def / 4
3rd: Common Event after battle without script. Insert in Scene_Battle, line 595 under display_level_up. This is an edit. Follow the instructions. Place under line 595 in Scene_Battle, under display_level_up.
CODE
$game_temp.common_event_id = "your event id without quotations"
4th: This will make the gold and exp messages more flexible. EX: If your currency is called gold coins and the monster you defeat in battle only gives 1 coin at the end, this edit will show the message "the party gained 1 gold coin" or whatever you have it to say. If you have the experience message to say "experience points" this will do the same.
Put these in the Script Editor Vocab with the rest of the vocab. NOTE: This is only for the specified examples when the currency isn't just called "Gold" or the experience is given more depth, saying "points" after experience. Otherwise it will sound weird.
CODE
ObtainExp = "Each party member recieves %s experience points!"
ObtainExp1 = "Each party member recieves %s experience point!"
ObtainGold1 = "The party gained %s%s."
ObtainGold2 = "The party gained %s gold coin."
CODE
class Scene_Battle < Scene_Base
def display_exp_and_gold
exp = $game_troop.exp_total
gold = $game_troop.gold_total
$game_party.gain_gold(gold)
text = sprintf(Vocab::Victory, $game_party.name)
$game_message.texts.push('\|' + text)
if exp == 1
text = sprintf(Vocab::ObtainExp1, exp)
$game_message.texts.push('\.' + text)
elsif exp > 1
text = sprintf(Vocab::ObtainExp, exp)
$game_message.texts.push('\.' + text)
end
if gold == 1
text = sprintf(Vocab::ObtainGold2, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
elsif gold > 1
text = sprintf(Vocab::ObtainGold1, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
end
wait_for_message
end
end
5th: This is for the damage messages. Like above this will only work correctly if the damage says "%s took %s points of damage!" for both ActorDamage and EnemyDamage. Paste the snippet in materials.
Put these in the script editor vocab as well.
CODE
Actor1Damage = "%s takes %s point of damage!"
Enemy1Damage = "%s took %s point of damage!"
CODE
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Show HP Damage
# target : Target
# obj : Skill or item
#--------------------------------------------------------------------------
def display_hp_damage(target, obj = nil)
if target.hp_damage == 0 # No damage
return if obj != nil and obj.damage_to_mp
return if obj != nil and obj.base_damage == 0
fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
text = sprintf(fmt, target.name)
elsif target.absorbed # Absorb
fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage)
elsif target.hp_damage == 1 # Damage
if target.actor?
text = sprintf(Vocab::Actor1Damage, target.name, target.hp_damage)
Sound.play_actor_damage
$game_troop.screen.start_shake(5, 5, 10)
else
text = sprintf(Vocab::Enemy1Damage, target.name, target.hp_damage)
Sound.play_enemy_damage
target.blink = true
end
elsif target.hp_damage > 0 # Damage
if target.actor?
text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage)
Sound.play_actor_damage
$game_troop.screen.start_shake(5, 5, 10)
else
text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
Sound.play_enemy_damage
target.blink = true
end
else # Recovery
fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage)
Sound.play_recovery
end
@message_window.add_instant_text(text)
wait(30)
end
end
6th: This will allow you to have alternative wait messages. Insert these into the Script Editor Vocab. You can edit what they say to your liking. But leave "%s" alone. You can thank Night5h4d3 for this snippet. Couldn't have got to work with out him. Paste snippet in materials.
CODE
DoWait1 = "%s laughed flippantly."
DoWait2 = "%s stared off into space."
DoWait3 = "%s prepared itself to attack."
DoWait4 = "%s is observing the battle."
CODE
class Scene_Battle < Scene_Base
def execute_action_wait
case rand(4)
when 0; text = sprintf(Vocab::DoWait1, @active_battler.name)
when 1; text = sprintf(Vocab::DoWait2, @active_battler.name)
when 2; text = sprintf(Vocab::DoWait3, @active_battler.name)
when 3; text = sprintf(Vocab::DoWait4, @active_battler.name)
end
@message_window.add_instant_text(text)
wait(45)
end
end
*New*7th: This new one will let you have random GameOver screens. Requested by DarkSarul. You can add more by copying one of the "when" lines and changing the number. Be sure "case rand()" is set to a number equal to the number of GameOver screens you are using. By default it's set to 3. Credit to Night5h4d3 also.
CODE
class Scene_Gameover < Scene_Base
def create_gameover_graphic
@sprite = Sprite.new
case rand(3)
when 0; @sprite.bitmap = Cache.system("GameOver")
when 1; @sprite.bitmap = Cache.system("GameOver2")
when 2; @sprite.bitmap = Cache.system("GameOver3")
end
end
end
8th: This one will let you have random Title screens. You can add more by copying one of the "when" lines and changing the number. Be sure "case rand()" is set to a number equal to the number of Title screens you are using. By default it's set to 3. Credit to Night5h4d3 also.
CODE
class Scene_Title < Scene_Base
def create_title_graphic
@sprite = Sprite.new
case rand(3)
when 0; @sprite.bitmap = Cache.system("Title")
when 1; @sprite.bitmap = Cache.system("Title2")
when 2; @sprite.bitmap = Cache.system("Title3")
end
end
end
9th: This one will let you have random Defeat messages. You can add more by copying one of the "when" lines and changing the number. Be sure "case rand()" is set to a number equal to the number of Defeat messages you are using. By default it's set to 3. Credit to Night5h4d3 also. Add defeat messages to Vocab in script editor. Edit what they say if you want, but leave "%s" alone.
CODE
Defeat = "%s was defeated!"
Defeat2 = "%s was utterly destroyed!"
Defeat3 = "%s was completely eliminated!"
CODE
class Scene_Battle < Scene_Base
def process_defeat
case rand(3)
when 0; text = sprintf(Vocab::Defeat, $game_party.name)
when 1; text = sprintf(Vocab::Defeat2, $game_party.name)
when 2; text = sprintf(Vocab::Defeat3, $game_party.name)
end
$game_message.texts.push(text)
wait_for_message
battle_end(2)
end
end
10th: This one will let you have random Victory messages. You can add more by copying one of the "when" lines and changing the number. Be sure "case rand()" is set to a number equal to the number of Victory messages you are using. By default it's set to 3. Credit to Night5h4d3 also. Add Victory messages to Vocab in script editor. Edit what they say if you want, but leave "%s" alone.
CODE
Victory = "%s was victorious!"
Victory2 = "%s won the battle!"
Victory3 = "%s dominated the enemies!"
CODE
class Scene_Battle < Scene_Base
def display_exp_and_gold
exp = $game_troop.exp_total
gold = $game_troop.gold_total
$game_party.gain_gold(gold)
case rand(3)
when 0; text = sprintf(Vocab::Victory, $game_party.name)
when 1; text = sprintf(Vocab::Victory2, $game_party.name)
when 2; text = sprintf(Vocab::Victory3, $game_party.name)
end
$game_message.texts.push('\|' + text)
if exp > 0
text = sprintf(Vocab::ObtainExp, exp)
$game_message.texts.push('\.' + text)
end
if gold > 0
text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
end
wait_for_message
end
end
NOTICEThe GB FLEX GOLD/EXP and GB RANDOM VICTORY MESSAGE scripts are not compatible while separate. To make these two work together use this combination instead.
CODE
class Scene_Battle < Scene_Base
def display_exp_and_gold
exp = $game_troop.exp_total
gold = $game_troop.gold_total
$game_party.gain_gold(gold)
case rand(3)
when 0; text = sprintf(Vocab::Victory, $game_party.name)
when 1; text = sprintf(Vocab::Victory2, $game_party.name)
when 2; text = sprintf(Vocab::Victory3, $game_party.name)
end
$game_message.texts.push('\|' + text)
if exp == 1
text = sprintf(Vocab::ObtainExp1, exp)
$game_message.texts.push('\.' + text)
elsif exp > 1
text = sprintf(Vocab::ObtainExp, exp)
$game_message.texts.push('\.' + text)
end
if gold == 1
text = sprintf(Vocab::ObtainGold2, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
elsif gold > 1
text = sprintf(Vocab::ObtainGold1, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
end
wait_for_message
end
end
If i think of anymore I'll post them.