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 - Wraith89

1
There might be a bug with this particular fix and I haven't quite pinpointed it yet but it only affects the blue magic user. At some points, using any skill may direct the wrong targets. For example, using an item gets used on the enemy (imagine my surprise using a 100% HP/MP item on a major boss!) or using an offensive skill attacks your party instead! It seems to have only happened since this fix was implemented, but I'll keep testing to see what exactly triggers this. It's not as noticeable as the 'not enough MP' bug from earlier.
2
RMXP Script Database / Re: [XP] Tons of Add-ons
June 22, 2022, 09:23:50 pm
Wow it was such a simple fix. Thank you as always!

Also I wasn't sure how to edit the Blue Magic by Status skill to have a configuration to ignore certain skills as the Blue Magic as skills one.

class Game_Battler
 
  alias skill_effect_bluestatus_later skill_effect
  def skill_effect(user, skill)
    if $game_system.BLUE_MAGIC_STATUS && self.is_a?(Game_Actor)
      @states.each {|id|
          data = BlizzCFG.blue_states(id)
          if data.size > 1 && rand(100) < data[0] &&
              data[1, data.size-1].include?(user.class)
            learn_skill(skill.id)
            break
          end}
    end
    return skill_effect_bluestatus_later(user, skill)
  end
 
end

I assume it was editable here but it didn't seem to carry over the configs from the skill version sadly so any attacks that connect gets learnt. How would I do this one?
3
RMXP Script Database / Re: [XP] Tons of Add-ons
June 22, 2022, 12:29:23 am
Going back to the particular script for Blue Magic learn skill for Tons, I noticed that I would get a NoMethodError for 'damage' if the Blue Magic User uses the skill but has no MP to cast it at that time (for example if enemy deals MP damage to the caster).

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Blue Magic via Skill by Blizzard
# Version: 1.5
# Type: Skill Learning Skill
# Date: 14.11.2006
# Date v1.5: 17.2.2008
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#   This actor will learn one of the target's skills. Making this skill target
#   all allies/enemies, ONLY ONE SKILL WILL BE LEARNED FROM A RANDOM TARGET!
#   Make the skill do no damage to the target and use the hit rate to determine
#   the success chance of the skill.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
BLUE_MAGIC_IDS = [92] # add any Skill IDs and separate them with commas
BLUE_MAGIC_UNLEARNABLE_SKILLS = [1,2,3,4,5,6,7,8,9,10] #Unlearnable blue magic skills
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Scene_Battle
#==============================================================================
class Scene_Battle
 
  alias make_skill_action_result_blue_later make_skill_action_result
  def make_skill_action_result(battler = nil, plus_id = nil)
    if battler == nil
      make_skill_action_result_blue_later
      battler, targets = @active_battler, @target_battlers
    elsif plus_id == nil
      make_skill_action_result_blue_later(battler)
      targets = battler.target
    else
      make_skill_action_result_blue_later(battler, plus_id)
      targets = battler.target
    end
    if $game_system.BLUE_MAGIC_SKILL &&
        BLUE_MAGIC_IDS.include?(battler.current_action.skill_id)
      targets.each {|target| target.damage = nil}
      target = targets[rand(targets.size)]
      #if rand(100) < $data_skills[battler.current_action.skill_id].hit
        #if target.is_a?(Game_Enemy)
          #ids = []
          #target.actions.each {|act| ids.push(act.skill_id) if act.kind == 1}
        #elsif target.is_a?(Game_Actor)
          #ids = target.skills.clone
        #end
      if rand(100) < $data_skills[battler.current_action.skill_id].hit
         ids = []
         if target.is_a?(Game_Enemy)
         target.actions.each {|act| ids.push(act.skill_id) if act.kind == 1 &&!BLUE_MAGIC_UNLEARNABLE_SKILLS.include?(act.skill_id) }
       elsif target.is_a?(Game_Actor)
         target.skills.each {|skl| ids.push(skl) if !BLUE_MAGIC_UNLEARNABLE_SKILLS.include?(skl) }
        end
        if ids.size > 0
          skill = $data_skills[ids[rand(ids.size)]]
          if battler.skills.include?(skill.id)
            target.damage = "#{skill.name} known!"
          else
            battler.learn_skill(skill.id)
            target.damage = "#{skill.name} learned"
          end
        else
          target.damage = 'None available'
        end
      else
        target.damage = 'Miss'
      end
    end
  end
   
end

Here's a slightly modified version made by KK20 where one can define which skills are unlearnable by caster. The error is on 'target.damage = 'None available'' line when playtesting. This can be replicated by turning on SP damage, having caster slower than the enemy, taking SP damage, and trying to cast blue magic learn skill. Is there a way to fix this? Thank you.
4
RMXP Script Database / Re: [XP] Dynamic Gardening
October 14, 2021, 01:45:29 am
I'll post this here as a bit of an minor issue, or perhaps the coding clashes, but if you try to use LittleDrago's RPG Maker XP Internal Bug Fix for Parallel Process in the first map in this thread, "back_to_map" feature when hitting cancel doesn't work as intended and instead you're automatically engaging in the Gardening Event when it should not, as if you pushed confirm again. Replicate it by using that fix and this code together and you will see what I mean.
5
Script Requests / Re: [XP]Refreshing Battle Scene Earlier
December 22, 2020, 01:31:49 pm
What you posted definitely got me started in the right direction. The battle scenes look a bit better now but I still have some more testing to do. It's definitely a quirk in the default engine, but I feel such information would be helpful to a lot of other people who may find this feature jarring. Thank you for your help!
6
Script Requests / [XP]Refreshing Battle Scene Earlier
December 21, 2020, 03:16:45 am
A peculiar quirk (bug?) with the default battle system of RPG Maker XP is that some things seem to update after the next turn. For example, if my character is inflicted with a status that lasts for one turn like Stun, the Stun status indicator will remain for that turn, and will remain even until the next turn until I select actions. This stuff usually isn't that problematic, but it does when you have statuses or battle events that desperately needs to be resolved in that turn something has been inflicted, like magic reflect shield being put up on the first turn, and should run out at that same turn when used, but persists in display until you select your action the next turn, or if you cut your character's max HP and the HP bar overflows until you do something, or to remove a particular buff immediately when your character reaches 0 SP and not at the beginning of next turn after selecting actions, etc. Basically I'm saying the window doesn't refresh immediately when the turn ends so it can make for some awkward looking battles. Is there a way to change this? I'm looking at Scene_Battle 1 and I guess the frame update section ties with this. Thank you.
7
Using the fix from KK20's edit to Wecoc's Battle Scope, there is still a bit of weird processing when using revival skills. The animation of a skill that was last used plays before one is revived, I think particularly a "target all enemy" skill. If enemy used Fire 3 on your side, for example, and your character was KOd, and you would revive the said character, Fire 3's animation would play on your side again before your character was revived. I'm not sure if that's the only bug on that but is there any way to disable that? Thank you.
8
In the default database settings, weapon attack value can only be given to weapons for obvious reasons. In the armour tab, the option to give weapon attack value is not there and is replaced with evasion. Is there any way to script call or add this option to make shields give weapon attack value, for example? Thank you.
9
That is exactly the answer I was looking for. I'll test this out soon. I think using the "Chain Status Effect" of Blizzard's Tons of Addons Part 2, this information can help people make stacking buff skills on RMXP. Thank you very much for all your help!
10
In the default editor, there is the states editor, which allows one to create states for various purposes, including stat buffs and debuffs. However, I noticed the native editor can only allow a maximum value of 200% (for example, let's make Sharp raise actor's strength, but it cannot go over 200%, etc). Is there a way to raise this via a script? Of course, the editor would not allow it, but I was thinking more of a script call which can change the values of specific stats to override the editor's limitations. Thank you.
11
Thank you very much! That solved everything. That was actually the default setting in Tons, but I think within Tons there are still some parts that may be somewhat buggy, even within a fresh new project, and not just compatibility issues.
12
Hello. I have tried using Hima's Elemental Reflector (found here), but I found it incompatible with Blizzard's Tons of Addons' "Absorb HP/SP Skill" section. I am using one that is slightly modified thanks to KK20 for MP Shield damage calculations.

Spoiler: ShowHide
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Absorb HP/SP Skill by Blizzard
# Version: 2.0b
# Type: Enhanced Skill
# Date: 8.5.2006
# Date v1.7b: 14.11.2006
# Date v1.72b: 20.10.2007
# Date v1.8b: 20.3.2008
# Date v2.0b: 13.7.2008
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# new in v1.7b:
#   - overworked code, fixed bugs and glitches, added "undead SP"
#
# new in v1.72b:
#   - slightly improved code and slight system change
#
# new in v1.8b:
#   - fixed a bug with SP absorbing that would kill an enemy instead of taking
#     all remaining SP
#
# new in v2.0b:
#   - enhanced compatibility with Full Reflection System and Blizz-ABS
#
#   Just include all the skill IDs that are supposed to steal HP/SP. You can
#   also define undead enemies who will (due to common belief...) revert the HP
#   absorb effect. Also you may add any IDs of enemies who use the same undead
#   effect, but on SP. Just add the IDs into UNDEAD_SP. Note that you can make
#   enemies who only are "undead" for HP stealing, SP stealing or even both.
#
# Note:
#   If you let a skill steal both HP and SP, only HP will be stolen.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

SKILL_IDS_HP = [24,42,116,275,293,575,613,621,622,623,629,682,734] # add any Skill IDs and separate them with commas
SKILL_IDS_SP = [63,117] # add any Skill IDs and separate them with commas
UNDEAD_IDS = [] # add IDS and separate them with commas
UNDEAD_SP = [] # add IDS and separate them with commas

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
 
  alias skill_effect_hpsp_absorb_later skill_effect
  def skill_effect(user, skill)
    last_hp = self.hp
    last_sr = self.sr if $crls && self.is_a?(Game_Actor)
    result = skill_effect_hpsp_absorb_later(user, skill)
    if $game_system.ABSORB_HP_SP && self.damage.is_a?(Numeric)
      if SKILL_IDS_SP.include?(skill.id)
        self.sr = last_sr if $crls && self.is_a?(Game_Actor)
        if user != self
          if self.is_a?(Game_Enemy) && UNDEAD_SP.include?(self.id)
            self.damage = -self.damage
          end
          if self.sp >= self.damage
            self.sp -= self.damage
          else
            self.damage, self.sp = self.sp, 0
          end
        else
          self.damage = 0
        end
      elsif SKILL_IDS_HP.include?(skill.id)
        lost_hp = last_hp - self.hp
        self.sr = last_sr if $crls && self.is_a?(Game_Actor)
        if user != self
          if self.is_a?(Game_Enemy) && UNDEAD_IDS.include?(self.id)
            self.damage = -self.damage
          end
          self.damage = lost_hp
        else
          self.damage = 0
        end
      end
    end
    return result
  end
 
end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle

  alias update_phase4_step5_hpsp_absorb_later update_phase4_step5
  def update_phase4_step5(battler = nil)
    if $game_system.ABSORB_HP_SP
      @status_window.refresh
      @help_window.visible, damages = false, 0
      @target_battlers.each {|target|
          if target.damage != nil
            target.damage_pop = true
            damages += target.damage if target.damage.is_a?(Numeric)
          end}
      if check_absorb(@active_battler, @active_battler.current_action.skill_id,
          damages)
        @status_window.refresh
      end
      @skill, @phase4_step = nil, 6
    elsif battler == nil
      update_phase4_step5_hpsp_absorb_later
    else
      update_phase4_step5_hpsp_absorb_later(battler)
    end
  end
 
  def check_absorb(user, id, damage)
    if (SKILL_IDS_HP | SKILL_IDS_SP).include?(id)
      if SKILL_IDS_HP.include?(id)
        user.hp += damage
      elsif SKILL_IDS_SP.include?(id)
        user.sp += damage
      end
      user.damage, user.damage_pop = -damage, true
      return true
    end
    return false
  end
   
end


The issue is it reports back a "NoMethodError" for undefined method "type_of_skill" for Nil:Class (around line 148ish) within Hima's Reflector script. Moving the reflector script above Blizzard's Tons of Addons 3 makes the reflector "work" with the blocking part but not the actual damaging from reflection. After testing things on a blank project I concluded enabling the Absorb HP/SP script causes problems, even on a fresh version of Blizzard's script.

Any assistance would be greatly appreciated.

13
RMXP Script Database / Re: [XP] Tons of Add-ons
April 27, 2020, 10:10:49 pm
Thank you. It works perfectly! I'd give the level up if I could, but apparently it no longer exists.
14
RMXP Script Database / Re: [XP] Tons of Add-ons
April 27, 2020, 04:20:18 pm
Sorry. I will clarify. There are actually two Blue Magic addon in Tons: Blue Magic States and Blue Magic Skill. The one you posted is the state, and the groups that are defined are "Actors" and "Enemies". What I was asking was the following:

Suppose you use the blue magic skill (or be in a state, whichever addon is used) on an enemy that knows Fire and Heal. However, let's say in this scenario Heal cannot be copied by Blue Magic. I was asking if we can define skills that can never be copied by Blue Magic in any way, as in a list of exceptions by skill ID one can configure. Blue Magic addons currently do not have such parameters and will copy anything enemies and actors may have when targeted.
15
RMXP Script Database / Re: [XP] Tons of Add-ons
April 26, 2020, 06:08:51 pm
A little request for anyone willing to try: is there a way to configure "Blue Magic Skill" add-on to have untargetable skills? As in skills that will never be learned by a blue magic skill. Thank you in advance.
16
RMXP Script Database / Re: [XP] Passive Augments
June 18, 2019, 12:30:53 am
Sorry for the necropost on this particular thread but I had a question involving the part "Demi MP and Turbo MP". The description says:

#  DEMI_MP allows the character to cast spells for half the SP cost
#  TURBO_MP doubles the SP cost as well as the power of the skills.


And if you scroll down to this part this is where it is applied:

      if @active_battler.is_a?(Game_Actor) && @active_battler.skill_learn?(DEMI_MP_ID)
        @skill.sp_cost/=2
      end   
            if @active_battler.is_a?(Game_Actor) && @active_battler.skill_learn?(TURBO_MP_ID)
        @skill.sp_cost*=2
        end   


I remember testing this in the past but it has a major flaw in its application: the effect will never cease. For example, if your character had Turbo MP and was using a 6 MP Fire, the cost would rise to 12 MP as expected, but the next turn it will become 24, and then the turn afterwards, 48, and the MP price persists even after the battle ends, hence you have a permanently increasing MP cost. I am sure this was not the intended effect. Would there be a way to fix this so that the application only happens once? Thank you.
17
Tutorial Requests / Re: [REQUEST][XP]Soft Level Cap
December 17, 2018, 06:44:50 pm
I tested it out. It works very well thank you!
I did try the reverse by having the default cap at 30 and try to set it upwards to 50, but that didn't really work though. It only works if the cap is set lower than what the default database has, but regardless it is functioning.
18
Tutorial Requests / Re: [REQUEST][XP]Soft Level Cap
December 16, 2018, 08:48:35 pm
Once again, thank you very much. I'll test this out and see how it works. What I wanted was, um, if they're at a cap of level 10 (for example), they stop gaining EXP altogether, but changing the cap will once again allow them to gain EXP until they reach the next level cap. Does that make sense? ^^;;;
19
Tutorial Requests / Re: [REQUEST][XP]Soft Level Cap
December 16, 2018, 04:20:46 pm
Thank you for the answer ^^ Hm, that is one way to do it, but it would be more interesting without depending on a state for not gaining experience. It is functionally the same I suppose. I was really looking for a way to change the "max level" value in the middle of the game for an actor individually, if possible.
20
Tutorial Requests / [REQUEST][XP]Soft Level Cap
December 15, 2018, 09:29:43 pm
Hello. I was wondering if an actor's level cap can be changed through a variable. Let's say you want your character to stop levelling at level 10 until he reaches another point in the game, where a switch can be triggered and the character's level cap will increase by changing a max level variable, as opposed to how the current database is set up where a character's level cap remains the way it is on the database. Thank you.