Save-Point
That nasty SP bar - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Code Support (https://www.save-point.org/forum-20.html)
+--- Thread: That nasty SP bar (/thread-5785.html)

Pages: 1 2


RE: That nasty SP bar - Mel - 05-12-2016

Ok, now the bar doesn't do it's weird stuff but now it's only updating properly after using another skill when the actor has restored some SP.

I never thought this script would cause so many issues. :/


RE: That nasty SP bar - DerVVulfman - 05-13-2016

Version 1.4 coming up

Code:
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# DerVV's Enemy/Actor HP / SP Bars Fix v 1.4
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# By:  DerVVulfman (a fix for El Conducter's script v 4.0)
# Written May 12, 2016
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Put below his script and it should allow SP healing and damage now!!!
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 2 : start action)
  #--------------------------------------------------------------------------
  alias elconducter_set_sp_fix1 set_target_battlers
  alias elconducter_set_sp_fix2 make_basic_action_result
  #--------------------------------------------------------------------------
  # * Set Targeted Battler for Skill or Item
  #     scope : effect scope for skill or item
  #--------------------------------------------------------------------------
  def set_target_battlers(scope)
    # The original call to get the scopes
    scopers = elconducter_set_sp_fix1(scope)
    # Now create an empty area to store SP values
    @battler_sp_dmg = []
    # And cycle through all the determined battlers to get 'em
    for target in @target_battlers
      @battler_sp_dmg.push(target.sp)
    end
    return scopers
  end
  #--------------------------------------------------------------------------
  # * Make Basic Action Results
  #--------------------------------------------------------------------------
  def make_basic_action_result
    # Set the array to nil (to skip any SP healing)
    @battler_sp_dmg = nil
    # And return with the called action
    return elconducter_set_sp_fix2
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 5 : damage display)
  #--------------------------------------------------------------------------
  def update_phase4_step5
    # Hide help window
    @help_window.visible = false
    # Refresh status window
    @status_window.refresh
    # Display damage
    for target in @target_battlers
      if target.damage != nil
        target.damage_pop = true
      end
    end
    counter = 0
    # Display damage
    for target in @target_battlers
      # Default each target to no magic
      target.magic_casting = false
      # Skip if the battler array is nil
      next if @battler_sp_dmg.nil?
      # Get the old SP value
      old_sp = @battler_sp_dmg[counter]
      # Compare if the old SP to the new SP
      if old_sp != target.sp
        # Set the passed sp_used to the difference
        target.sp_used = old_sp - target.sp
        # And set magic casting flag to true
        target.magic_casting = true
      end
      # Ad to the count
      counter += 1
    end
    # Shift to step 6
    @phase4_step = 6
  end  
end



RE: That nasty SP bar - Mel - 05-13-2016

Wow, finally it works. :)
Thank you very much!

The only thing which doesn't work now are SP altering effects from other custom scripts such as SP shields, or SP DoTs/HoTs.
But I think that would require a fix for each custom script unless there is a way to make general fix which works for everything.


RE: That nasty SP bar - DerVVulfman - 05-14-2016

Hm... script placement? Try placing it after the other custom scripts. Then it may perform properly after letting your other scripts do their thing.


RE: That nasty SP bar - Mel - 05-14-2016

I already tried that, but it has no effect.
I have to use a skill to update the bar.

These are the two scripts, if you are interested:

Content Hidden
Content Hidden



RE: That nasty SP bar - DerVVulfman - 05-15-2016

Well, you have a problem with MP Shield Status Effect by Xelias... Line 66 reads:
Code:
if $game_system.MP_SHIELD_STATUS && MP_SHIELD_IDS.any? {|i| @states.include?(i)}
There is no $game_system.MP_SHIELD_STATUS method. And even if there was, no one capitalilzes a method. The script breaks when the effect is supposed to be placed on the combatants.

BUT......
Code:
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# DerVV's Enemy/Actor HP / SP Bars Fix for HoT/DoT v 1.0
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# By:  DerVVulfman (a fix for Shdwlink1993's script v 1.04)
# Written May 15, 2016
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Put below his script and the Bar Stats script and slip damage should work.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#  This class deals with battlers. It's used as a superclass for the Game_Actor
#  and Game_Enemy classes.
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias hotdot_hpsp_fix slip_damage_effect
  #--------------------------------------------------------------------------
  # * Application of Slip Damage Effects
  #--------------------------------------------------------------------------
  def slip_damage_effect
    old_sp = self.sp
    hotdot_hpsp_fix
    new_sp = self.sp
    return if old_sp == new_sp
    return unless $game_temp.in_battle
    @sp_used = old_sp - new_sp
    # And set magic casting flag to true
    @magic_casting = true    
  end
end
This plugin fixes sp slip damage for battle. Took all of 5 minutes. Winking


RE: That nasty SP bar - Mel - 05-21-2016

I extraced the MP shield code out of a larger script. I think I messed it up. ^^"

This is the full script.
Content Hidden

Thank you for the Dot fix.