Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Scoryth

1
Hello.

I am wondering if a script is required for this, because I can't come up with another way. I am using Minkoff's Animated Battler system along with SephirothSpawn's Multi Attack system. What I want to do is include the actor in the attack animation. Here's the problem. I know if I set the animation to appear on the user, I can set the timing box to "Hide Target" which will remove the actor during the animation. But, I can't take advantage of the multi attack system, because that system requires a blank frame to trigger a "hit" to score damage. If I set the animation to appear on the enemy target I can utilize the blank frames to score the hits. But, the battler's original image still appears in the idle position, therefore seeing two of the same actor on screen. Does my question make sense? Does anyone have an idea how to remedy that? Thanks in advance!

-Scoryth
2
I don't recall the system looking that awesome, but that is the general idea. The time bar was in the upper (right?) corner and it had a gradient color, but as far as functionality, yes that's quite accurate.

-Scoryth
3
Some time ago I was using an Active Time Battle system for RMXP that was unique. Instead of each actor having bars next to their names that filled as they waited their turn, this ATB had a single bar in the upper corner of the screen that had an icon of each actor and enemy in the battle. The icons started on the left of the bar and slid to the right. The speed of their movement along the bar was based on the actor's/enemy's speed. When the icon of said actor reached the right side of the bar that actor's command window appeared (or if it was the enemy it would perform its desired action). I have tried looking for it, but I can't find it. If anyone knows what I'm talking about, please point me in the right direction. Thank you.

-Scoryth
4
I'm using Nathmatt's Battle Dome with Blizz-ABS. There are a couple of things I would like to tweak to the Battle Dome system because I'm kind of OCD about it lol. First, after you kill the last enemy in battle, I would like there to be some kind of short gap in time between the defeat of the last enemy and the pop up of the results screen. Currently, as the last enemy dies, it instantly pops up, and I just want a little bit of time in between that. For example, in the DBS, once you kill the last enemy, there's usually a second or so that goes by before the results box appears. I'd like something like that - just a brief moment from defeat to screen.

Second, I'd like there to be a way to pause the action to cast a spell's animation. For example, say an enemy is casting a really epic attack. I'd like something that pauses the action so the animation can fully run. Then once the animation is complete, the damage pops occur and play resumes. Something along the lines of Secret of Mana or Secret of Evermore, if you're familiar with those games. During spell animations, all characters are paused, the animation plays, then damage pops and play continues.

If my descriptions are difficult to understand, feel free to ask so I can clarify.

Here is Nathmatt's Battle Dome system.
http://forum.chaos-project.com/index.php/topic,3183.0.html

Thanks for any help you can provide.
5
Works perfectly! Thank you!
6
Script Requests / Requesting help to merge scripts.
July 06, 2012, 06:10:37 pm
I don't mean to double post this in two forums, but I just realized that I posted the other one in the wrong area. Maybe I'll get better help if I put it in the right place.  :P

I'm using Nathmatt's Battle Dome in combination with BlizzABS and I would like to use a battle result window I found instead of the one that comes with Nathmatt's battle dome. How can this be done?

Nathmatt's Battle Dome
http://forum.chaos-project.com/index.php/topic,3183.0.html

This is the battle result script I would like to put in.
class Game_Actor < Game_Battler
 def exp=(exp)
   @exp = [[exp, 9999999].min, 0].max
   while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
     @level += 1
     
     # NEW - David
     $d_new_skill = nil
     
     for j in $data_classes[@class_id].learnings
       if j.level == @level
         learn_skill(j.skill_id)
     
         # NEW - David
         skill = $data_skills[j.skill_id]
         $d_new_skill = skill.name
     
       end
     end
   end
   while @exp < @exp_list[@level]
     @level -= 1
   end
   @hp = [@hp, self.maxhp].min
   @sp = [@sp, self.maxsp].min
 end
 
 #--------------------------------------------------------------------------
 # * Get the current EXP
 #--------------------------------------------------------------------------
 def now_exp
   return @exp - @exp_list[@level]
 end
 #--------------------------------------------------------------------------
 # * Get the next level's EXP
 #--------------------------------------------------------------------------
 def next_exp
   return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
 end

end

class Window_LevelUp < Window_Base

 #----------------------------------------------------------------
 def initialize(actor, pos)
   #change this to false to show the actor's graphic
   @face = false
   @actor = actor
   y = (pos * 120)
   super(280, y, 360, 120)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 255    
   if $d_dum == false
     refresh
   end
 end

 #----------------------------------------------------------------
 def dispose
   super
 end

 #----------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.size = 18
   if @face == true
   draw_actor_face(@actor, 4, 0)
   else
   draw_actor_graphic(@actor, 50, 80)
   end
   draw_actor_name(@actor, 111, 0)
   draw_actor_level(@actor, 186, 0)
   show_next_exp = @actor.level == 99 ? "---" : "#{@actor.next_exp}"
   min_bar = @actor.level == 99 ? 1 : @actor.now_exp
   max_bar = @actor.level == 99 ? 1 : @actor.next_exp
   draw_slant_bar(115, 80, min_bar, max_bar, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
   self.contents.draw_text(115, 24, 300, 32, "Exp:#{@actor.now_exp}")
   self.contents.draw_text(115, 48, 300, 32, "Level Up:" + show_next_exp)
 end

 
 #----------------------------------------------------------------
 def level_up
   self.contents.font.color = system_color
   self.contents.draw_text(230, 48, 80, 32, "LEVEL UP!")
 end
 
 #----------------------------------------------------------------
 def update
   super
 end
 
end # of Window_LevelUp

#=================================
#Window_EXP
# Written by: David Schooley
#=================================

class Window_EXP < Window_Base

 #----------------------------------------------------------------
 def initialize(exp)
   super(0, 0, 280, 60)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 255
   refresh(exp)
 end

 #----------------------------------------------------------------
 def dispose
   super
 end

 #----------------------------------------------------------------
 def refresh(exp)
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.draw_text(0, 0, 150, 32, "Exp Earned:")
   self.contents.font.color = normal_color
   self.contents.draw_text(180, 0, 54, 32, exp.to_s, 2)
 end
 
 #----------------------------------------------------------------
 def update
   super
 end
 
end # of Window_EXP

#=================================
#Window_Money_Items
# Written by: David Schooley
#=================================

class Window_Money_Items < Window_Base

 #----------------------------------------------------------------
 def initialize(money, treasures)
   @treasures = treasures
   super(0, 60, 280, 420)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 255
   refresh(money)
 end

 #----------------------------------------------------------------
 def dispose
   super
 end

 #----------------------------------------------------------------
 def refresh(money)
   @money = money
   self.contents.clear
   
   self.contents.font.color = system_color
   self.contents.draw_text(4, 4, 100, 32, "Items Found:")
   self.contents.font.color = normal_color
   
   y = 32
   for item in @treasures
     draw_item_name(item, 4, y)
     y += 32
   end
   
   cx = contents.text_size($data_system.words.gold).width
   self.contents.font.color = normal_color
   self.contents.draw_text(4, 340, 220-cx-2, 32, $game_party.gold.to_s, 2)
   self.contents.font.color = normal_color
   self.contents.draw_text(4, 300, 220-cx-2, 32, "+ " + @money.to_s, 2)
   self.contents.font.color = system_color
   self.contents.draw_text(124-cx, 340, cx + 100, 32, $data_system.words.gold, 2)
 end

 def update
   super
 end
 
end # of Window_Money_Items


class Scene_Battle
 alias raz_battle_report_main main
 alias raz_battle_report_be battle_end

 def main
   # NEW - David
   #$battle_end = false
   @lvup_window = []
   @show_dummies = true # Show dummy windows or not?
   raz_battle_report_main
   # NEW - David
   @lvup_window = nil
   @level_up = nil
   @ch_stats = nil
   @ch_compare_stats = nil
   Audio.me_stop
 end

 def battle_end(result)
   raz_battle_report_be(result)
   # NEW - David
   @status_window.visible = false
   @spriteset.dispose
   Graphics.transition
   if result == 0
     display_lv_up(@exp, @gold, @treasures)
     loop do
       Graphics.update
       Input.update
       if Input.trigger?(Input::C)
         break
       end
     end
     trash_lv_up
   end

 end
   
 def start_phase5
   @phase = 5
   $game_system.me_play($game_system.battle_end_me)
   $game_system.bgm_play($game_temp.map_bgm)
   exp = 0
   gold = 0
   treasures = []
   for enemy in $game_troop.enemies
     unless enemy.hidden
       exp += enemy.exp
       gold += enemy.gold
       if rand(100) < enemy.treasure_prob
         if enemy.item_id > 0
           treasures.push($data_items[enemy.item_id])
         end
         if enemy.weapon_id > 0
           treasures.push($data_weapons[enemy.weapon_id])
         end
         if enemy.armor_id > 0
           treasures.push($data_armors[enemy.armor_id])
         end
       end
     end
   end
   treasures = treasures[0..5]

   # NEW - David
   @treasures = treasures
   @exp  = exp
   @gold = gold

   
   for item in treasures
     case item
     when RPG::Item
       $game_party.gain_item(item.id, 1)
     when RPG::Weapon
       $game_party.gain_weapon(item.id, 1)
     when RPG::Armor
       $game_party.gain_armor(item.id, 1)
     end
   end
   @phase5_wait_count = 10
 end

 def update_phase5
   if @phase5_wait_count > 0
     @phase5_wait_count -= 1
     if @phase5_wait_count == 0
       
       # NEW - David
       $game_temp.battle_main_phase = false        
     end
     return
   end

   # NEW - David
     battle_end(0)

 end

 def display_lv_up(exp, gold, treasures)
   
   $d_dum = false
   d_extra = 0
   i = 0
   for actor in $game_party.actors
       # Fill up the Lv up windows
       @lvup_window[i] = Window_LevelUp.new($game_party.actors[i], i)
       i += 1
   end

   # Make Dummies
   if @show_dummies == true
     $d_dum = true
     for m in i..3
       @lvup_window[m] = Window_LevelUp.new(m, m)
     end
   end
   
   @exp_window = Window_EXP.new(exp)
   @m_i_window = Window_Money_Items.new(gold, treasures)
   @press_enter = nil
   gainedexp = exp
   @level_up = [0, 0, 0, 0]
   @d_new_skill = ["", "", "", ""]
   @d_breakout = false
   @m_i_window.refresh(gold)
   wait_for_OK

   @d_remember = $game_system.bgs_memorize
   Audio.bgs_play("Audio/SE/LOTF-Cursor.wav", 100, 300)
   
   # NEW - David
   max_exp = exp
   value = 28
   if exp < value
     value = exp
   end
   if value == 0
     value = 1
   end
   for n in 0..gainedexp - (max_exp / value)
     exp -= (max_exp / value)
     if @d_breakout == false
       Input.update
     end
     
     for i in 0...$game_party.actors.size
       actor = $game_party.actors[i]
       if actor.cant_get_exp? == false
         last_level = actor.level
         actor.exp += (max_exp / value)
         # Fill up the Lv up windows
         if @d_breakout == false
           @lvup_window[i].refresh
           @exp_window.refresh(exp)
         end
         
         if actor.level > last_level
           @level_up[i] = 5
           Audio.se_play("Audio/SE/LOTF-Level Up.ogg", 70, 150)
           if $d_new_skill
             @d_new_skill[i] = $d_new_skill
           end
         end
         
         if @level_up[i] == 0
           @d_new_skill[i] = ""
         end
         
         if @level_up[i] > 0
           @lvup_window[i].level_up
         end
         
         if Input.trigger?(Input::C) or exp <= 0
           @d_breakout = true
         end
       end
       
       if @d_breakout == false
         if @level_up[i] >0
           @level_up[i] -= 1
         end
         Graphics.update
       end
     end
     
     if @d_breakout == true
       for i in 0...$game_party.actors.size
         actor = $game_party.actors[i]
         if actor.cant_get_exp? == false
           actor.exp += exp
         end
       end
       exp = 0
       break
     end
   end
   Audio.bgs_stop
   @d_remember = $game_system.bgs_restore
   
   for i in 0...$game_party.actors.size
     @lvup_window[i].refresh
   end
   @exp_window.refresh(exp)
   Audio.se_play("Audio/SE/LOTF-Cursor.wav", 70, 150)
   $game_party.gain_gold(gold)
   @m_i_window.refresh(0)
   Graphics.update
 end
 
 def trash_lv_up
   # NEW - David
   i=0
   
   for i in 0 ... 4
     @lvup_window[i].visible = false
   end
   @exp_window.visible = false
   @m_i_window.visible = false
   @lvup_window = nil
   @exp_window = nil
   @m_i_window = nil
 end

 # Wait until OK key is pressed
 def wait_for_OK
   loop do
     Input.update
     Graphics.update
     if Input.trigger?(Input::C)
       break
     end
   end
 end

end

class Window_Base < Window
 def draw_actor_face(actor, x, y)
   bitmap = RPG::Cache.picture("Faces/" + actor.character_name)
   self.contents.blt(x, y, bitmap, Rect.new(0,0,96,96))
 end
 
 #--------------------------------------------------------------------------
 # * Draw Slant Bar(by SephirothSpawn)
 #--------------------------------------------------------------------------
 def draw_slant_bar(x, y, min, max, width = 152, height = 6,
     bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
   # Draw Border
   for i in 0..height
     self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
   end
   # Draw Background
   for i in 1..(height - 1)
     r = 100 * (height - i) / height + 0 * i / height
     g = 100 * (height - i) / height + 0 * i / height
     b = 100 * (height - i) / height + 0 * i / height
     a = 255 * (height - i) / height + 255 * i / height
     self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
   end
   # Draws Bar
   for i in 1..( (min / max.to_f) * width - 1)
     for j in 1..(height - 1)
       r = bar_color.red * (width - i) / width + end_color.red * i / width
       g = bar_color.green * (width - i) / width + end_color.green * i / width
       b = bar_color.blue * (width - i) / width + end_color.blue * i / width
       a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
       self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
     end
   end
 end

end



Thanks for your help!
7
I have implemented Nathmatt's Battle Dome and BlizzABS into my game. However, when I try to run the game and initiate a battle, I get the following error.

NoMethodError occurred while running script.

undefined method 'abatxp_form_id=' for #<Game_System:0x8d58d38>

I'm really at a loss as to what is causing this problem. The battle is initiated via an event command. The event occurs early in the game after a bit of cinematic introduction. To ease the testing so I don't have to wait through the cinematic, I just start where the event is going to take place. Here's what's confusing me. When I start the game at the location of the event, everything runs fine. The event triggers, the battle triggers properly, and I complete the event normally. However, if I sit through the cinematic introduction when I reach the event and the battle is triggered I get the error mentioned above. Any help? Thanks.

Here are the links to the scripts I mentioned.

Nathmatt Battle Dome
http://forum.chaos-project.com/index.php/topic,3183.0.html

BlizzABS
http://forum.chaos-project.com/index.php/topic,106.0.html

EDIT: Nevermind - problem solved. I had made a duplicate map for testing and somehow forgot to relocate the player transfer triggers to the correct maps.
8
RMXP Script Database / Re: [XP] Blizz-ABS
July 03, 2012, 11:29:04 pm
Two questions.
1 - When I use the ABS config, I can't seem to set the hotkey menu and the minimap menu on. The player has to press the appropriate key. I thought I could have them display by default. I checked the HUD, minimap, and Hotkeys checkboxes before generating and copying the script, and yet they still aren't appearing.

2 - I apologize if this question has been asked before, but is there a way I can turn off the HUD like during cutscenes and then back on during regular gameplay? Is there a script call or something? Thanks.