<DBS Mod for mob state icons, damage pops and actor graphics at processing> AKA Joy's never satisfied.<07-13-2009>
Summary Alrighty..hate to ask for more scripting help, but the more I look at this DBS the more I'd like to improve it. What I need done is a bit of reshuffling (which in a pinch I could do on my own), and a few new features to the DBS (which I'm nowhere near decent enough to do).
The first and hopefully easiest bit is just adding state icons to the mob targeting screen, I'm using Zifee's icon animation in the main battle window to cycle through multiple states and would like this to work in this instance as well, but it's not a huge priority, just icons will work if it has to.
Second, and there is a script for this in it's basic form by Vixotic on Rpgmakervx.net. However, it will not work on it's own with the third bit I'll explain in a bit. I need a basic damage/healing pop-up for both mobs and actors (explained more in the next paragraph). Just a number pop up with basic healing or damage color ability.
The third bit involves a major change to the battle processing window (where battle info messages appear with damage, skills, ect.). I'd like to add a window including the actor battlefaces (from a script Moogle Warrior did for me) in a row where the top of the battle message window was, also shortening the info window to two lines. The battle faces would need to be where the aforementioned damage pop-up for actors would show up on the approriate actor. I would also like the functionality to flash the image when that actor is hit or attacks and drop the opacity when the actor has fallen. This window would only be active during damage/skill processing.
Let me know if anyone might be willing to give this a shot, I think it would really add some shine to the battle system in OotM.
Features Desired Display a line of battle faces for actors during the battle processing phase (when you get all the damage messages) Shortening of the battle processing info box o two lines Damage pops for faces (There exists a script by Vixotic on RPGVX.net for mob damage pops, but it does not have the functionality to do this part) Flashing of actor face bars when attacking or taking damage, opacity change for fallen actors Adjustment of enemy target select screen to include state icons. I'm currently using a script by Zifee for animating icons in order to cycle between multiple applied states, I'd like to be able to have this on mobs as well, but won't pitch a fit if it's too much of a pain. Mockups How my main screen currently looks. I'm using zifee's icon animation and a custom snippet Moogle Warrior whipped up for the face display, included below images.
A mock-up of how I'd like the select target screen to look, only change here is that it displays the mob's status effects.
The big one, this illustrates the kind of setup I'd like, with damage/healing pops on both mobs battlers and on the correct face for actors. The battle info window would be reduced to two lines.
Current Scripts Spoiler for Animated Icons by Ziifee :
=begin ************************************************************************ * State Icon Animation Ver2.00 Actor states will animate and cycle through multiple icons rather than display a limited amount. Script by ziifee =end # ************************************************************************ module StateAnime # * Settings NOR = 0 # "Normal" state icon. Use icon index number from Iconset. SPE = 50 # Icon change speed. (1 second = 60) end #============================================================================== # ? StateIcons #============================================================================== class StateIcons #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_reader :x # X ?? attr_reader :y # Y ?? attr_reader :bitmap # ?????? (??????) #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- def initialize(icons, x, y, bitmap) @icons = icons.empty? ? [0] : icons @x , @y = x , y @bitmap = bitmap @index = 0 end #-------------------------------------------------------------------------- # ? ????????????????? #-------------------------------------------------------------------------- def change? return true if @icons.size > 1 return false end #-------------------------------------------------------------------------- # ? ??????? #-------------------------------------------------------------------------- def icon icon = @icons[@index] @index = (@index + 1) % @icons.size return icon end #-------------------------------------------------------------------------- # ? ?? #-------------------------------------------------------------------------- def dispose @bitmap.dispose end end #============================================================================== # ? Window_Base #============================================================================== class Window_Base #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- alias :stateanime_initialize :initialize def initialize(x, y, width, height) stateanime_initialize(x, y, width, height) @stateanime_new = true @stateanime_set = [] @stateanime_count = 0 end #-------------------------------------------------------------------------- # ? ?? #-------------------------------------------------------------------------- alias :stateanime_dispose :dispose def dispose stateanime_dispose for state in @stateanime_set do state.dispose end end #-------------------------------------------------------------------------- # ? ??????????? #-------------------------------------------------------------------------- def clear_stateanime for state in @stateanime_set do state.dispose end @stateanime_new = false @stateanime_set = [] @stateanime_count = 0 end #-------------------------------------------------------------------------- # ? ?????????????? # obj : ??????????????? #-------------------------------------------------------------------------- def draw_stateanime(obj, setting = false) return if not obj.change? and not setting self.contents.clear_rect(obj.x, obj.y, 24, 24) self.contents.blt(obj.x, obj.y, obj.bitmap, Rect.new(0, 0, 24, 24)) draw_icon(obj.icon, obj.x, obj.y) end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- alias :stateanime_update :update def update stateanime_update unless @stateanime_set.empty? @stateanime_count += 1 if @stateanime_count % StateAnime::SPE == 0 @stateanime_new = true unless @stateanime_new for obj in @stateanime_set do draw_stateanime(obj) end end end end #-------------------------------------------------------------------------- # ? ??????? ?? #-------------------------------------------------------------------------- def draw_actor_state(actor, x, y, dummy_width = 24) clear_stateanime if @stateanime_new icons = [] for state in actor.states icons.push(state.icon_index) if state.icon_index > 0 end if icons.empty? return if StateAnime::NOR <= 0 # ? ???????? icons.push(StateAnime::NOR) end icons.uniq! bitmap = Bitmap.new(24, 24) src_rect = Rect.new(x, y, 24, 24) bitmap.blt(0, 0, self.contents, src_rect) obj = StateIcons.new(icons, x, y, bitmap) @stateanime_set.push(obj) draw_stateanime(obj, true) end end
Spoiler for Custom Battle Faces by Moogle Warrior :
#============================================================================== # Extremely Specialized Battle Face Script, by Moogle Warrior #------------------------------------------------------------------------------ # This script adds character face graphics to Window_BattleStatus, at the # cost of the status display. # # To use, simply install the script under Materials, and place character # face images (at 112 x 24 or less, though it won't get cut off if they're # bigger) in a subfolder in "Graphics" (named "Battle Faces" by default). # To change the name of the folder to check, see line 50. # # Image names should be a three-digit number corresponding to the character's # ID in the database (i.e. "001.png" for the first database slot). # # NOTE: The script will return an error if it can't find the requested image. # This is normal RGSS behavior. Please make sure images are in their # proper place before testing! wink.gif #============================================================================== class Window_BattleStatus def draw_item(index) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color actor = $game_party.members[index] draw_actor_bface(actor.id, 0, rect.y) draw_actor_name(actor, 142, rect.y) draw_actor_state(actor, 114, rect.y, 48) draw_actor_hp(actor, 210, rect.y, 90) draw_actor_mp(actor, 310, rect.y, 70) end def draw_actor_bface(id, x, y) bitmap = Cache.bface(id) self.contents.blt(x, y, bitmap, bitmap.rect) end end # Slight cache extension module Cache def self.id_to_name(id) if id < 10 filename = "00" + id.to_s elsif id < 100 filename = "0" + id.to_s end return filename end def self.bface(id) filename = id_to_name(id) # The directory in which the face graphics are stored load_bitmap("Graphics/Battle Faces/", filename) end end
Games its been in None that I can think of, but battle damage pop ups is ancient. Did you search? Yup
Where did you search? What did you search for? CBS State Icons Enemy Display actor graphic battle