Help - Search - Members - Calendar
Full Version: Comaptibility needed for this script
RPG RPG Revolution Forums > Scripting > Script Development and Support
Viewer
I have Shanghai's fancy deaths script, but it's not compatible with Takentai. Can anyone help me?
Thanks!
Here's the script.

CODE
#======================================================================
=========
#
# Shanghai Simple Script - Fancy Deaths
# Last Date Updated: 2010.05.09
# Level: Normal
#
# This makes certain enemies die a fancy way if they have the fancy death tags
# inside of their notebox. These were made for the default animations. If you
# are using different animations, you can change the IDs these fancy deaths use.
# Works for default battle system, Battle Engine Melody, and Tankentai.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
#
# <fancy death: string>
# Replace string with one of the ones below:
# fire - Makes the enemy die in a fancy fiery death.
# ice - Makes the enemy freeze and die.
# elec - Makes the enemy spark and die.
# water - Makes the enemy melt and die.
# stone - Makes the enemy change to stone.
# wind - Makes the enemy vanish with the wind.
# holy - Makes the enemy disappear into light.
# dark - Makes the enemy disappear into darkness.
#===============================================================================

$imported = {} if $imported == nil
$imported["FancyDeaths"] = true

module SSS
# Fiery death animation IDs.
FIERY_DEATH_ANI1 = 2
FIERY_DEATH_ANI2 = 79
# Icy death animation IDs.
ICY_DEATH_ANI1 = 62
ICY_DEATH_ANI2 = 3
# Electric death animation IDs.
ELECTRIC_DEATH_ANI1 = 18
ELECTRIC_DEATH_ANI2 = 4
# Watery death animation ID.
WATERY_DEATH_ANI = 69
# Stone death animation ID.
STONE_DEATH_ANI = 40
# Wind death animation ID.
WINDY_DEATH_ANI1 = 73
WINDY_DEATH_ANI2 = 31
# Holy death animation ID.
HOLY_DEATH_ANI1 = 42
HOLY_DEATH_ANI2 = 75
# Dark death animation ID.
DARK_DEATH_ANI1 = 77
DARK_DEATH_ANI2 = 51
end

#==============================================================================
# RPG::Enemy
#==============================================================================

class RPG::Enemy
#--------------------------------------------------------------------------
# fancy death
#--------------------------------------------------------------------------
def fancy_death
return @fancy_death if @fancy_death != nil
@fancy_death = 0
self.note.split(/[\r\n]+/).each { |line|
case line
when /<(?:FANCY_DEATH|fancy death):[ ](.*)>/i
case $1.upcase
when "FIRE"
@fancy_death = 1
when "ICE"
@fancy_death = 2
when "ELEC"
@fancy_death = 3
when "WATER"
@fancy_death = 4
when "STONE"
@fancy_death = 5
when "WIND"
@fancy_death = 6
when "HOLY"
@fancy_death = 7
when "DARK"
@fancy_death = 8
end
end
}
return @fancy_death
end
end

#==============================================================================
# ** Sprite_Battler
#==============================================================================

class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :effect_duration
#--------------------------------------------------------------------------
# * Set New Effect
#--------------------------------------------------------------------------
alias setup_new_effect_sss_fancy_deaths setup_new_effect unless $@
def setup_new_effect
if @battler.collapse and @battler.is_a?(Game_Enemy)
if @battler.enemy.fancy_death > 0
@battler.collapse = false
@battler_visible = false
case @battler.enemy.fancy_death
when 1 # Fiery Death
@effect_type = 574897410001
@effect_duration = 169
return
when 2 # Icy Death
@effect_type = 574897410002
@effect_duration = 125
return
when 3 # Electric Death
@effect_type = 574897410003
@effect_duration = 97
return
when 4 # Watery Death
@effect_type = 574897410004
@effect_duration = 101
return
when 5 # Stone Death
@effect_type = 574897410005
@effect_duration = 81
return
when 6 # Windy Death
@effect_type = 574897410006
@effect_duration = 91
return
when 7 # Holy Death
@effect_type = 574897410007
@effect_duration = 106
return
when 8 # Dark Death
@effect_type = 574897410008
@effect_duration = 91
return
end
end
end
setup_new_effect_sss_fancy_deaths
end
#--------------------------------------------------------------------------
# * Update Effect
#--------------------------------------------------------------------------
alias update_effect_sss_fancy_deaths update_effect unless $@
def update_effect
if @effect_duration > 0
case @effect_type
when 574897410001
update_fiery_death
return
when 574897410002
update_icy_death
return
when 574897410003
update_electric_death
return
when 574897410004
update_watery_death
return
when 574897410005
update_stone_death
return
when 574897410006
update_windy_death
return
when 574897410007
update_holy_death
return
when 574897410008
update_dark_death
return
end
end
update_effect_sss_fancy_deaths
end
#--------------------------------------------------------------------------
# * Start Death Animation
#--------------------------------------------------------------------------
def start_death_animation(animation, mirror)
if $imported["BattleEngineMelody"]
start_sub_animation(animation, mirror)
else
start_animation(animation, mirror)
end
end
#--------------------------------------------------------------------------
# * Update Fiery Death
#--------------------------------------------------------------------------
def update_fiery_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 168, 138, 108, 78
self.color.set(255, 128, 128, 128)
start_death_animation($data_animations[SSS::FIERY_DEATH_ANI1], false)
when 48
start_death_animation($data_animations[SSS::FIERY_DEATH_ANI2], false)
when 0..47
self.opacity = 256 - (48 - @effect_duration) * 6
end
end
#--------------------------------------------------------------------------
# * Update Icy Death
#--------------------------------------------------------------------------
def update_icy_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 124
self.color.set(128, 128, 255, 128)
start_death_animation($data_animations[SSS::ICY_DEATH_ANI1], false)
when 48
start_death_animation($data_animations[SSS::ICY_DEATH_ANI2], false)
when 0..47
self.opacity = 256 - (48 - @effect_duration) * 6
end
end
#--------------------------------------------------------------------------
# * Update Electric Death
#--------------------------------------------------------------------------
def update_electric_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 96
self.color.set(255, 255, 128, 128)
start_death_animation($data_animations[SSS::ELECTRIC_DEATH_ANI1], false)
when 48
start_death_animation($data_animations[SSS::ELECTRIC_DEATH_ANI2], false)
when 0..47
self.opacity = 256 - (48 - @effect_duration) * 6
end
end
#--------------------------------------------------------------------------
# * Update Watery Death
#--------------------------------------------------------------------------
def update_watery_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 100
self.color.set(64, 64, 255, 128)
self.wave_amp = 10
self.wave_speed = 3600
when 61..99
self.wave_speed += 100
when 60
start_death_animation($data_animations[SSS::WATERY_DEATH_ANI], false)
when 0..47
self.opacity = 256 - (48 - @effect_duration) * 6
end
end
#--------------------------------------------------------------------------
# * Update Stone Death
#--------------------------------------------------------------------------
def update_stone_death
@effect_duration -= 1
case @effect_duration
when 80
start_death_animation($data_animations[SSS::STONE_DEATH_ANI], false)
when 0..79
opacity = [(80 - @effect_duration) * 4, 200].min
self.color.set(200, 200, 200, opacity)
end
end
#--------------------------------------------------------------------------
# * Update Windy Death
#--------------------------------------------------------------------------
def update_windy_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 90
self.color.set(128, 255, 128, 128)
start_death_animation($data_animations[SSS::WINDY_DEATH_ANI1], false)
when 45
start_death_animation($data_animations[SSS::WINDY_DEATH_ANI2], false)
self.visible = false
when 0
self.opacity = 0
self.visible = true
end
end
#--------------------------------------------------------------------------
# * Update Holy Death
#--------------------------------------------------------------------------
def update_holy_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 105
self.color.set(255, 255, 255, 128)
start_death_animation($data_animations[SSS::HOLY_DEATH_ANI1], false)
when 45
start_death_animation($data_animations[SSS::HOLY_DEATH_ANI2], false)
when 0..44
self.opacity = 256 - (48 - @effect_duration) * 6
end
end
#--------------------------------------------------------------------------
# * Update Dark Death
#--------------------------------------------------------------------------
def update_dark_death
@effect_duration -= 1
self.blend_type = 1
case @effect_duration
when 90
self.color.set(0, 0, 0, 128)
start_death_animation($data_animations[SSS::DARK_DEATH_ANI1], false)
when 60
self.visible = false
when 45
start_death_animation($data_animations[SSS::DARK_DEATH_ANI2], false)
when 0
self.opacity = 0
self.visible = true
end
end
end

#==============================================================================
# ** Spriteset_Battle
#==============================================================================

class Spriteset_Battle
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :enemy_sprites
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * wait_for_deaths
#--------------------------------------------------------------------------
def wait_for_deaths
update_basic
loop do
amount = 0
for sprite in @spriteset.enemy_sprites
amount += 1 if sprite.effect_duration <= 0
end
break if amount >= @spriteset.enemy_sprites.size
update_basic
end
end
#--------------------------------------------------------------------------
# * Process Victory
#--------------------------------------------------------------------------
alias process_victory_sss_fancy_deaths process_victory unless $@
def process_victory
if $imported["BattleEngineMelody"]
@judge_win_loss = true
pause_atb(true, true)
@enemy_gauge_window.dispose if @enemy_gauge_window != nil
@hide_battlecursor = true
@party_input_flag = true
@message_window.visible = true
end
wait_for_deaths
process_victory_sss_fancy_deaths
end
end

#===============================================================================
#
# END OF FILE
#
#===============================================================================
Kread-EX
You know, you don't need to post the script - you can just post a link to the topic. And this belongs to the Script Support section, so moving it.

To answer your question, noteboxes are those large white squares in the database where you can input text -with "Note" as title. In the case of Fancy Deaths, you need to use them on the "Enemies" tab (it is located right of the Action Patterns selector) and input this:
CODE
<fancy death: string>

Where "string" can be fire, ice, elec, water, stone, wind, holy or dark.
Viewer
blink.gif AAAA... blink.gif Oh... blink.gif Ehh. Me like big white rectangle in enemies tab. Yap, yap, yap. Like like like yes.gif

Ok, I'm just kiddin'. I know what a notebox is. And I know what I'm supposed to write in it. But it didn't work. Also I'm using Takentai.
I noticed if I put it in a clean project it works just fine. I guess I'll just have to check all my scripts and maybe I can find the problem.
I just hoped someone would know something about this.

Can you tell me if it could be Takentai?
Thanks.
Kread-EX
Pretty much all of Shanghai's scripts are incompatible with Tankentai. They're made for Melody, in spirit.
Viewer
Well, maybe someone knows a solution. I won't close the post just yet.
Viewer
BUMP
Viewer
BUMP
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.