Epic Battle Defeated
This was done as a script request over at the RPGRevolution community forums. I took the special monster death sequences out of Enu’s japanese RPG Tankentai Battle System (TBS).
Enu’s tankentai battlesystem flashes the screen a couple times when the selected epic or boss monsters die, then they fade down in a moving cloud. These epic monster deaths should work fine with any other sort of custom Rpg Maker VX battle system, or even the default. Click more to see the script from the RMVX Takentai BS:
Credit: Enu (japanese scripter)
Place the number IDs of any monsters you wish to have an “epic” death in the EpicBattleMonsters = [#] section. Like so: [1,2,3,8]
# Taken from Enu's Tankentai BS as a request
module GameBaker
EpicBattleMonsters = [4]
end
class Sprite_Battler
alias gb_nonepic_collapse update_collapse
alias gb_epic_setupeffect setup_new_effect
def setup_new_effect
sg = @battler.collapse
gb_epic_setupeffect
if sg
if @battler.is_a?(Game_Enemy) &&
GameBaker::EpicBattleMonsters.include?(@battler.enemy_id)
@effect_duration = 330
@gb_epic_collapse = true
end
end
end
def update_collapse
if !@gb_epic_collapse
gb_nonepic_collapse
return
end
if @effect_duration == 320
Audio.se_play(”Audio/SE/Absorb1″)
self.flash(Color.new(255,255,255),60)
viewport.flash(Color.new(255,255,255),20)
end
if @effect_duration == 280
Audio.se_play(”Audio/SE/Absorb1″)
self.flash(Color.new(255,255,255),60)
viewport.flash(Color.new(255,255,255),20)
end
if @effect_duration == 220
Audio.se_play(”Audio/SE/Earth4″)
#reset
self.blend_type = 1
self.color.set(255,128,128,128)
self.wave_amp = 6
end
if @effect_duration < 220
self.src_rect.set(0,@effect_duration/2 - 110,@width,@height)
self.x += 8 if @effect_duration % 4 == 0
self.x -= 8 if @effect_duration % 4 == 2
self.wave_amp += 1 if @effect_duration % 10 == 0
self.opacity = @effect_duration
return if @effect_duration < 0
Audio.se_play(”Audio/SE/Earth4″) if @effect_duration % 50 == 0
end
end
end





March 2nd, 2009 at 1:56 pm
This one is not working properly. It runs and there is not any script errors but when you put the ID in, and you test battle, it doenst work . It’s just a regular death
March 2nd, 2009 at 3:13 pm
You might be using a different RMVX battle system script that interferes with it. Worked great when we tested. Try putting it farther down the list, right above the Rpg Maker VX scripts main, if you can. Might fix your problem!
March 2nd, 2009 at 10:52 pm
It did not fix it…I was hoping for this to work…oh well. Thanks though for the help :)
March 2nd, 2009 at 11:20 pm
I like this one cause it is just the script I need but I did fin another script that is like this plus music and some other stuff just for the takentai battle system. and it works. But thank you though
April 15th, 2009 at 12:24 am
yes, this excited me, but it unfortunately doesnt work…
April 25th, 2009 at 8:11 am
Semi-necro post, but I found this script using google and…
It didn’t work right away, but I saw an error with the audio files and looked at the code. I noticed that when I pasted the script into RPG Maker, the quotations around the sounds were in some different ASCII notation, so once I deleted them and put in new quotation marks the script works great. Thanks.
June 4th, 2009 at 9:15 pm
Yay! It worked.
But no pause before the victory screen.
June 8th, 2009 at 6:16 am
I also noticed that the victory screen doesn’t wait until the animation is complete… There’s got to be another piece of code somewhere that’ll fix this…
July 6th, 2009 at 4:52 am
I made a little fix to make the battle wait until the enemy has died. The way it works is any battle with an enemy who is considered epic, waits for roughly the length of time it takes for them to die before showing the results. Sadly this means there will be an odd pause in battles with an epic monster and normal monsters where the normal monsters died last.
Anyway the code:
[code]class Scene_Battle < Scene_Base
#————————————————————————–
# * Determine Win/Loss Results
#————————————————————————–
def judge_win_loss
if $game_temp.in_battle
if $game_party.all_dead?
process_defeat
return true
elsif $game_troop.all_dead?
wait(300) if $game_troop.boss?
process_victory
return true
else
return false
end
else
return true
end
end
end
class Game_Troop < Game_Unit
def boss?
for enemy in @enemies
return true if GameBaker::EpicBattleMonsters.include?(enemy.enemy_id)
end
return false
end
end
[/code]
December 20th, 2009 at 3:13 pm
what does enter id mean?
1,2,3? what is that?>