I'm tinkering around with it, but having serious trouble figuring out the method of which 'dmg' pops are created and used...more specifically, I'm trying to create a way to make XP & GP pop on enemy defeat.
And thinking about 'dmg' pops, I've seen scripts where in regular battles where a single animation would produce multiple dmgpops, is this possible to re-create within/for Blizz-ABS? None of the ones that work in regular battle that I've seen seem to work in the ABS...I suppose its more a curiousity as to possibility than a request.
Thanks for those that reply with information on these two concepts.
You contribute to my learning experience :)
--JeR
I personally don't know, I've never used it, but check out Caldaron's Realistic ABS.
I believe there is a demo for it at RPG-Palace.
I'm not sure, but I think there might be something along them lines in the script.
From what I can tell,
damage(string damage, bool critical)
is a method of RPG::Sprite, which we don't have access to modify. In-game, it is used in Sprite_Battler to pop damage (line 110).
If you want everything to look the same (color-wise and all), you should just just be able to tack on 'XP' or something at the end of damage and make a separate call. If you want to modify how the pops are displayed, you need to write your own pop method.
Its interesting that there is so much code that they left open and available to the public to dawdle with, but even more interesting that they hide a lot of it as well.
In regards to XP popping, I've seen scripts that modify the default battle system so that on defeat, enemies will spew forth their XP/GP amounts, etc. However, the XP/GP pop that I refer to was more aiming at the popping of the Blizz-ABS damage sprites.
I've found a couple important parts that I believe could play a role in what I seek:
This is within the module BlizzABS::Utility.
#--------------------------------------------------------------------------
# request_damage_sprite
# char - map character
# Requests a sprite for damage display.
#--------------------------------------------------------------------------
def request_damage_sprite(char, damage = nil)
# if map battler
if damage != nil
# get damage text colors and strings
colors, damages = self.get_damage_data(damage)
else
# get damage text colors and strings
colors, damages = self.get_damage_data(char.battler)
end
# for each existing color
colors.each_index {|i|
# create one damage sprite request
$BlizzABS.cache.damages.push(DamageRequest.new(char, damages[i],
colors[i], char.battler.critical))}
end
and this lies within module BlizzABS::Processor.
#--------------------------------------------------------------------------
# remove_enemy
# enemy - the killed enemy event
# Processes the after-death period of enemies.
#--------------------------------------------------------------------------
def remove_enemy(enemy)
# stop except if enemy event code is to be executed or enemy is erased
return if enemy.execute || enemy.erased
# start event code if there is some
enemy.start if enemy.trigger == BlizzABS::CETDeath
# remove except if code needs to be executed
$game_map.events.delete(enemy.id) unless enemy.execute
# get all dropped items on the map
items = drop_items(enemy)
# experience result
exp_result(enemy)
# gold result
gold = gold_result(enemy)
# if not using drop gold mode
if BlizzABS::Config::DROP_GOLD == ''
# just increase gold
$game_party.gain_gold(gold)
# if dropping any gold
elsif gold > 0
# add gold to items
items = [gold] + items
end
# execute all additional enemy results
additional_result(enemy)
# if using corpses
if BlizzABS::Config::CORPSES
# if using empty corpses or any drop exists
if BlizzABS::Config::EMPTY_CORPSES || items.size > 0
# create a corpse dropped items
drop_event(items, enemy.real_x, enemy.real_y, enemy)
end
else
# create all necessary dropped items
items.each {|item| drop_event([item], enemy.real_x, enemy.real_y)}
end
end
But for the life of me I cannot put the two together(or more if required), and its kind of frustrating.
What jragyn00 said. Alias BlizzABS::Processor#remove_enemy and add calls with $BlizzABS.request_sprite_damage(ARGS).