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

1
RMXP Script Database / Re: [XP] Tons of Add-ons
July 15, 2026, 11:12:48 pm
Quote from: Aunknown_Artist on July 14, 2026, 06:18:45 pmI don't know if you still update this script, but I was wondering if you could possibly consider adding the ability to animate battlebacks with effects in engine (such as swirl,scrolling, and wave effects) to achieve earthbound like battlebacks without having to hand make each frame.   
Tons will only get updated if there's any major bugs reported and Blizzard finds the time to do it.

As for your request, those kind of effects are more akin to using shaders, which XP does not natively support. It would require a DLL (C/C++ code) to modify the image's bitmap data in memory, and having the script call this method every frame to update it. This is quite complex to do and is beyond the scope of what Tons aims to be.
2
RMXP Script Database / Re: [XP][VXA] Localization
June 11, 2026, 09:26:49 pm
Updated VXA version to 2.0

Addresses an issue where your localization is setup like this example:
Code: text
[en-US]
1=Alex
2=Your name is \N[1]
test=\loc[2]
where Actor 1 is named "\loc[1]" and attempt to do a Show Text with the content "\loc[test]".

It should now correctly output "Your name is Alex".

Credits to LucaBicono from the OG RM forums for reporting this issue.
3
@Farrell you're replying to a 12 year old topic. If you read any of it, your brain should have fired off immediate red flags that the parts listed are old and unrealistic to be used in a new PC build today.

Locking topic for grave digging.
4
Thanks for reporting this, though I'm not going to make any updates to XPA for the foreseeable future. It's been several years with no one ever reporting this bug, which goes to show how infrequently scripters use arr[index, length] = value. We prefer to use push/pop/shift/unshift instead.
5
In Part 2 of BABS, around line 5000 is the method def request_damage_sprite. You see the logic at the start is
    def request_damage_sprite(char, damage = nil)
      # stop if no damage sprites flag
      return if char.no_dmg_sprites
You can add your own logic right above that line. If you don't want it to show at all for the entirety of the game, you can just leave it as return. But if you want to control it with some switch being turned on, that'd look something like
    def request_damage_sprite(char, damage = nil)
      return if $game_switches[1]
      # stop if no damage sprites flag
      return if char.no_dmg_sprites
replacing the ID accordingly.

Note that this affects all battlers. If you're specifically targeting only the player, then do
    def request_damage_sprite(char, damage = nil)
      return if char.is_a?(Game_Player) && $game_switches[1]
      # stop if no damage sprites flag
      return if char.no_dmg_sprites
6
RMXP Script Database / Re: [XP] Battle Memory Commands
October 06, 2025, 09:40:22 am
You could try removing the line
$game_party.actors.each {|a| a.reset_memory }
, but if you add/remove a skill or item between battles, the cursor index will be off.
7
Don't even have to change the tileset to reproduce it. Doing a search for NO_ENEMY_TAGS in the scripts shows that it only appears in one method: get_respawn_coordinates. This has nothing to do with movement passibility, so either the User Manual typo'd or it's a regression.
8
Moved your post as its own topic since it's fairly generic and was grave digging/off topic for something to be posted in a shared script.

You'll need to share what you are doing, what have you tried, and why they don't solve your problem. There's plenty of path finding scripts out there.

Also I think Ao Oni just uses the built-in follow player event movement pattern.
9
This thread has been dead for 13 years. Your feedback has fallen on deaf ears.

Locking
10
https://forum.chaos-project.com/index.php/topic,23.0.html

There really isn't any way to know whether two scripts will work with each other. It's something you get better at recognizing when scripting. Some things are just more obvious, like having two systems that do the same thing. Script authors should be conscientious about communicating what their script isn't compatible with and where it should ideally be placed.

When it comes to testing scripts, there's nothing better than just creating a new project and throwing the scripts in one-at-a-time. And if things seem like they work together but end up being the problem, that's when you need someone to look deep in the code.
11
Sorry, I'm the only one who can script around these parts anymore, and I've never accepted battle system requests. Good luck finding anyone who still scripts in XP.
12
Events and Pictures do not reside on the same Viewport. In Spriteset_Map:
    # Make viewports
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
...
    # Make character sprites
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # Make weather
    @weather = RPG::Weather.new(@viewport1)
    # Make picture sprites
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
Try making Sprite_Pictures instantiate on @viewport1.
13
RMXP Script Database / Re: [XP] Continuous Maps
September 12, 2024, 01:41:12 am
Resolution is not the issue, it's the fact that XPA completely rewrites how maps are rendered and updated, which is what Continuous Maps does too. Neither Blizz nor I are going to make a compatible fix for this.
14
It will require an edit to whatever script you're trying to use. There's no easy way to make this 100% compatible with everything out there.
15
RMXP Script Database / Re: [XP] Tons of Add-ons
September 04, 2024, 06:58:34 pm
Another bug fix for Multi-Hit (replace Scene_Battle within the script):
Code: ruby
class Scene_Battle

  def rand_hits(value)
    return value if value.is_a?(Integer)
    return (rand(value.max - value.min + 1) + value.min)
  end

  def repeating_action?
    return (@repeat[1] - @repeat[0] > 0)
  end

  alias update_phase4_step1_multi_hit_later update_phase4_step1
  def update_phase4_step1(battler = nil)
    if battler != nil
      update_phase4_step1_multi_hit_later(battler)
      return
    end
    update_phase4_step1_multi_hit_later
    @repeat = [1, 1, 0]
    return if @active_battler == nil || !$game_system.MULTI_HIT
    if @active_battler.current_action.kind == 0
      if @active_battler.current_action.basic == 0
        if @active_battler.is_a?(Game_Actor)
          hits = rand_hits(BlizzCFG.weapon_hits(@active_battler.weapon_id))
        elsif @active_battler.is_a?(Game_Enemy)
          hits = rand_hits(BlizzCFG.enemy_hits(@active_battler.id))
        end
        @repeat = [hits, hits, 2]
      end
    elsif @active_battler.current_action.kind == 1
      @repeat[2] = 3
    elsif @active_battler.current_action.kind == 2
      @repeat[2] = 4
    end
  end
 
  alias update_phase4_step2_multi_hit_later update_phase4_step2
  def update_phase4_step2(battler = nil)
    if battler != nil
      update_phase4_step2_multi_hit_later(battler)
      return
    end
    update_phase4_step2_multi_hit_later
    return if !$game_system.MULTI_HIT
    if @phase4_step != 1
      if @repeat[2] == 3
        hits = rand_hits(BlizzCFG.skill_hits(@skill.id))
        @repeat = [hits, hits, 5]
      elsif @repeat[2] == 4
        hits = rand_hits(BlizzCFG.item_hits(@item.id))
        @repeat = [hits, hits, 5]
      end
    end
    if repeating_action?
      unless BlizzCFG::SHOW_ANIMATION_PER_HIT
        @animation1_id = 0
        @animation2_id = 0
      end
      @help_window.visible = false
    end
  end
 
  alias update_phase4_step3_multi_hit_later update_phase4_step3
  def update_phase4_step3
    update_phase4_step3_multi_hit_later
    @active_battler.white_flash = false if repeating_action?
  end
 
  alias update_phase4_step4_multi_hit_later update_phase4_step4
  def update_phase4_step4
    update_phase4_step4_multi_hit_later
    @wait_count = 0 if repeating_action? && !BlizzCFG::SHOW_ANIMATION_PER_HIT
  end
 
  alias update_phase4_step5_multi_hit_later update_phase4_step5
  def update_phase4_step5(battler = nil)
    if battler != nil
      update_phase4_step5_multi_hit_later(battler)
      return
    end
    update_phase4_step5_multi_hit_later
    return if !$game_system.MULTI_HIT
    if @active_battler.current_action.kind == 1
      if BlizzCFG::SKILL_RANDOM.include?(@skill.id)
        if @active_battler.is_a?(Game_Actor)
          @active_battler.current_action.decide_random_target_for_actor
        elsif @active_battler.is_a?(Game_Enemy)
          @active_battler.current_action.decide_random_target_for_enemy
        end
      else
        if @active_battler.is_a?(Game_Actor)
          @active_battler.current_action.decide_last_target_for_actor
        elsif @active_battler.is_a?(Game_Enemy)
          @active_battler.current_action.decide_last_target_for_enemy
        end
      end
    elsif @active_battler.current_action.kind == 2
      if BlizzCFG::ITEM_RANDOM.include?(@item.id)
        if @active_battler.is_a?(Game_Actor)
          @active_battler.current_action.decide_random_target_for_actor
        elsif @active_battler.is_a?(Game_Enemy)
          @active_battler.current_action.decide_random_target_for_enemy
        end
      else
        if @active_battler.is_a?(Game_Actor)
          @active_battler.current_action.decide_last_target_for_actor
        elsif @active_battler.is_a?(Game_Enemy)
          @active_battler.current_action.decide_last_target_for_enemy
        end
      end
    elsif @active_battler.is_a?(Game_Actor)
      if BlizzCFG::WEAPON_RANDOM.include?(@active_battler.weapon_id)
        @active_battler.current_action.decide_random_target_for_actor
      else
        @active_battler.current_action.decide_last_target_for_actor
      end
    elsif @active_battler.is_a?(Game_Enemy)
      if BlizzCFG::ENEMY_RANDOM.include?(@active_battler.id)
        @active_battler.current_action.decide_random_target_for_enemy
      else
        @active_battler.current_action.decide_last_target_for_enemy
      end
    end
    @phase4_step = 2 if @repeat[0] > 1 && @repeat[2] > 0
    @repeat[0] -= 1
  end
 
  alias make_skill_action_result_multi_hit_later make_skill_action_result
  def make_skill_action_result(battler = nil, plus_id = nil)
    if battler != nil
      if plus_id != nil
        make_skill_action_result_multi_hit_later(battler, plus_id)
      else
        make_skill_action_result_multi_hit_later(battler)
      end
      return
    end
    if @repeat[2] == 5
      sp_cost = @skill.sp_cost
      if $game_system.SP_COST_MOD
        sp_cost = BlizzCFG.get_cost_mod(@active_battler.states, sp_cost)
      end
      @active_battler.sp += sp_cost
      @status_window.refresh
    end
    make_skill_action_result_multi_hit_later
  end
 
  alias make_item_action_result_multi_hit_later make_item_action_result
  def make_item_action_result
    if @repeat[2] == 5
      $game_party.gain_item(@item.id, 1)
      @status_window.refresh
    end
    make_item_action_result_multi_hit_later
  end
 
  # Compatibility fix for LockeZ Sacrifice HP
  if method_defined?(:sacrifice_hp)
    alias sacrifice_hp_if_not_repeating sacrifice_hp
    def sacrifice_hp(battler, action)
      sacrifice_hp_if_not_repeating(battler, action) unless @repeat[2] == 5
    end
  end
 
end
It addresses MP cost issues and consuming items multiple times.
Original thread: https://forums.rpgmakerweb.com/index.php?threads/xp-tons-of-add-ons-multi-hit-bug.171550/
16
Oh hey, welcome back, been quite a while since I last saw you.

Thanks for catching that bug. Turns out I forgot to get the skill and item IDs. I've updated the script, as well as provided a new script call (you can still use the old way, but this is much cleaner to use).
17
RMXP Script Database / Re: [XP] Design a HUD
August 13, 2024, 11:38:11 pm
I added a new variable to the config called HUD_TOGGLE_SWITCH_ID. Just set that to whatever switch ID you want to use to toggle its visibility on/off.
https://pastebin.com/h1h0cRtV (because the script breaks character limit)
19
RMXP Script Database / Re: [XP] Custom Resolution
August 08, 2024, 02:27:21 am
Quote from: thalesgal on August 07, 2024, 09:49:40 amPlease, I would like to resize the screen but just stretch it. I saw that this script resize the game but my game was entirely made 640x480. So I just want to resize just like ALT+ ENTER does. Just stretch it.
From what I remember, XP's game window doesn't actually stretch when you increase its width or height, unlike VXA. It instead just displays a black void beyond the 640x480 default. Fullscreen stretches because it's effectively changing your monitor's resolution to 640x480. So you're not really going to achieve what you want with the default engine.

You'll need to either use VXA's game executable (points at XPAce in signature) or use something like MKXP(-z)