Save-Point
What's up, RMers? - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Development Discussion (https://www.save-point.org/forum-17.html)
+--- Thread: What's up, RMers? (/thread-395.html)



RE: What's up, RMers? - DerVVulfman - 05-08-2019

SuperVVulf to the rescue???

Sarah's Configuration Screen is a little menu screen with volume controls. Oh, and it includes a bonus; an audio fix to battle animations so their volume is adjusted too.


RE: What's up, RMers? - yamina-chan - 05-08-2019

Heh.
That's actually what I am trying to get to work here. ;)
By trying to find a way for it to know "okay, I'm in the title menu, I should exit to the title menu. And now I'm in the actual game, so I should probably exit back to the ingame menu."


RE: What's up, RMers? - Steel Beast 6Beets - 05-11-2019

I've encountered a very bizarre issue with this script. It's a fixed version of Wecoc's battle scope script. It adds more scope options to both items and skills. It's part of his collection that brings features from VX/ACE to XP.

The original bug was that it caused skills or items that revive more than one actor to not work at all. That got fixed but now the new bug it's that causes all the offensive skills aligned with the first element on System (Fire by default) to revive all the dead enemies on battle.


Code:
#==============================================================================
# [XP] VX Ace Wecoc Features (ACE_WF) VERSION 1.1
#------------------------------------------------------------------------------
# AC :     #024
# Name :   BATTLE_SCOPE
# Requires : -
# Incompat : -
# Author : Wecoc
#==============================================================================
# Description
#------------------------------------------------------------------------------
# Adds new 'random' scope options to items and skills.
#
#   0: none
#   1: one enemy
#   2: all enemies
#   3: one ally
#   4: all allies
#   5: 1 ally--HP 0
#   6: all allies--HP 0
#   7: the user
#
#   8: 1 random enemy
#   9: 2 random enemies
#  10: 3 random enemies
#  11: 4 random enemies
#  12: 5 random enemies
#  13: 6 random enemies
#  14: 7 random enemies
#
#  15: 1 random ally
#  16: 2 random allies
#  17: 3 random allies
#  18: 4 random allies
#  19: 5 random allies
#  20: 6 random allies
#  21: 7 random allies
#
#  22: 1 random ally--HP 0
#  23: 2 random allies--HP 0
#  24: 3 random allies--HP 0
#  25: 4 random allies--HP 0
#  26: 5 random allies--HP 0
#  27: 6 random allies--HP 0
#  28: 7 random allies--HP 0
#
# - How to call it
#     $data_items[id].scope = n
#     $data_skills[id].scope = n
#==============================================================================

module ACE_WF
  BATTLE_SCOPE = true
end

module RPG
  class Item
    def to_enemy?
      return [1, 2, 8, 9, 10, 11, 12, 13, 14].include?(@scope)
    end
    
    def to_ally?
      return (to_live_ally? or to_dead_ally?)
    end
    
    def to_live_ally?
      return [3, 4, 15, 16, 17, 18, 19, 20, 21].include?(@scope)
    end
    
    def to_dead_ally?
      return [5, 6, 22, 23, 24, 25, 26, 27, 28].include?(@scope)
    end
    
    def to_user?
      return @scope == 7
    end
    
    def to_singular?
      return [1, 3, 5, 7, 8, 15, 22].include?(@scope)
    end
    
    def to_multiple?
      return (not to_singular?)
    end
    
    def to_random?
      return @scope > 7
    end
  end
end

module RPG
  class Skill
    def to_enemy?
      return [1, 2, 8, 9, 10, 11, 12, 13, 14].include?(@scope)
    end
    
    def to_ally?
      return (to_live_ally? or to_dead_ally?)
    end
    
    def to_live_ally?
      return [3, 4, 15, 16, 17, 18, 19, 20, 21].include?(@scope)
    end
    
    def to_dead_ally?
      return [5, 6, 22, 23, 24, 25, 26, 27, 28].include?(@scope)
    end
    
    def to_user?
      return @scope == 7
    end
    
    def to_singular?
      return [1, 3, 5, 7, 8, 15, 22].include?(@scope)
    end
    
    def to_multiple?
      return (not to_singular?)
    end
    
    def to_random?
      return @scope > 7
    end
  end
end

class Scene_Battle
  def set_target_battlers(scope)
    live_actors = $game_party.actors.select {|x| x.exist? }
    dead_actors = $game_party.actors.select {|x| x && x.hp0?}
    live_enemies = $game_troop.enemies.select {|x| x.exist? }
    dead_enemies = $game_troop.enemies.select {|x| x && x.hp0?}
    # If battler performing action is enemy
    if @active_battler.is_a?(Game_Enemy)
      case scope
      when 1  # single enemy
        index = @active_battler.current_action.target_index
        @target_battlers.push($game_party.smooth_target_actor(index))
      when 2, 11..14  # all enemies
        for actor in live_actors + dead_actors # Bugfix
          @target_battlers.push(actor)
        end
      when 3  # single ally
        index = @active_battler.current_action.target_index
        @target_battlers.push($game_troop.smooth_target_enemy(index))
      when 4  # all allies
        for enemy in live_enemies + dead_enemies # Bugfix
          @target_battlers.push(enemy)
        end
      when 5  # single ally (HP 0)
        index = @active_battler.current_action.target_index
        enemy = $game_troop.enemies[index]
        if enemy != nil and enemy.hp0?
          @target_battlers.push(enemy)
        end
      when 6  # all allies (HP 0)
        for enemy in dead_enemies
          @target_battlers.push(enemy)
        end
      when 7  # user
        @target_battlers.push(@active_battler)
      when 8 # 1 random enemy
        @target_battlers.push(live_actors[rand(live_actors.size)])
      when 9 # 2 random enemies
        if live_actors.size <= 2
          for actor in live_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_actors.size
              rand_array.push(rand(live_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(live_actors[rand_array[0]])
          @target_battlers.push(live_actors[rand_array[1]])
        end
      when 10 # 3 random enemies
        if live_actors.size <= 3
          for actor in live_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_actors.size
              rand_array.push(rand(live_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(live_actors[rand_array[0]])
          @target_battlers.push(live_actors[rand_array[1]])
          @target_battlers.push(live_actors[rand_array[2]])
        end
      when 15 # 1 random ally
        @target_battlers.push(live_enemies[rand(live_enemies.size)])
      when 16 # 2 random allies
        if live_enemies.size <= 2
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
        end
      when 17 # 3 random allies
        if live_enemies.size <= 3
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
        end
      when 18 # 4 random allies
        if live_enemies.size <= 4
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 4
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
        end
      when 19 # 5 random allies
        if live_enemies.size <= 5
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 5
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
        end
      when 20 # 6 random allies
        if live_enemies.size <= 6
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 6
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
          @target_battlers.push(live_enemies[rand_array[5]])
        end
      when 21 # 7 random allies
        if live_enemies.size <= 7
          for enemy in live_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 7
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
          @target_battlers.push(live_enemies[rand_array[5]])
          @target_battlers.push(live_enemies[rand_array[6]])
        end
      when 22 # 1 random ally --HP=0
        @target_battlers.push(dead_enemies[rand(live_enemies.size)])
      when 23 # 2 random allies --HP=0
        if dead_enemies.size <= 2
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
        end
      when 24 # 3 random allies --HP=0
        if dead_enemies.size <= 3
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
          @target_battlers.push(dead_enemies[rand_array[2]])
        end
      when 25 # 4 random allies --HP=0
        if dead_enemies.size <= 4
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 4
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
          @target_battlers.push(dead_enemies[rand_array[2]])
          @target_battlers.push(dead_enemies[rand_array[3]])
        end
      when 26 # 5 random allies --HP=0
        if dead_enemies.size <= 5
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 5
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
          @target_battlers.push(dead_enemies[rand_array[2]])
          @target_battlers.push(dead_enemies[rand_array[3]])
          @target_battlers.push(dead_enemies[rand_array[4]])
        end
      when 27 # 6 random allies --HP=0
        if dead_enemies.size <= 6
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 6
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
          @target_battlers.push(dead_enemies[rand_array[2]])
          @target_battlers.push(dead_enemies[rand_array[3]])
          @target_battlers.push(dead_enemies[rand_array[4]])
          @target_battlers.push(dead_enemies[rand_array[5]])
        end
      when 28 # 7 random allies --HP=0
        if dead_enemies.size <= 7
          for enemy in dead_enemies
            @target_battlers.push(enemy)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_enemies.size
              rand_array.push(rand(dead_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 7
              break
            end
          end
          @target_battlers.push(dead_enemies[rand_array[0]])
          @target_battlers.push(dead_enemies[rand_array[1]])
          @target_battlers.push(dead_enemies[rand_array[2]])
          @target_battlers.push(dead_enemies[rand_array[3]])
          @target_battlers.push(dead_enemies[rand_array[4]])
          @target_battlers.push(dead_enemies[rand_array[5]])
          @target_battlers.push(dead_enemies[rand_array[6]])
        end
      end
    end
    # If battler performing action is actor
    if @active_battler.is_a?(Game_Actor)
      case scope
      when 1  # single enemy
        index = @active_battler.current_action.target_index
        @target_battlers.push($game_troop.smooth_target_enemy(index))
      when 2  # all enemies
        for enemy in live_enemies + dead_enemies # Bugfix
          @target_battlers.push(enemy)
        end
      when 3  # single ally
        index = @active_battler.current_action.target_index
        @target_battlers.push($game_party.smooth_target_actor(index))
      when 4, 18..21  # all allies
        for actor in live_actors + dead_actors # Bugfix
          @target_battlers.push(actor)
        end
      when 5  # single ally (HP 0)
        index = @active_battler.current_action.target_index
        actor = $game_party.actors[index]
        if actor != nil and actor.hp0?
          @target_battlers.push(actor)
        end
      when 6, 25..28  # all allies (HP 0)
        for actor in dead_actors
          @target_battlers.push(actor)
        end
      when 7  # user
        @target_battlers.push(@active_battler)
      when 8 # 1 random enemy
        @target_battlers.push(live_enemies[rand(live_enemies.size)])
      when 9 # 2 random enemies
        if live_enemies.size <= 2
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
        end
      when 10 # 3 random enemies
        if live_enemies.size <= 3
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
        end
      when 11 # 4 random enemies
        if live_enemies.size <= 4
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 4
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
        end
      when 12 # 5 random enemies
        if live_enemies.size <= 5
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 5
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
        end
      when 13 # 6 random enemies
        if live_enemies.size <= 6
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 6
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
          @target_battlers.push(live_enemies[rand_array[5]])
        end
      when 14 # 7 random enemies
        if live_enemies.size <= 7
          for actor in live_enemies
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_enemies.size
              rand_array.push(rand(live_enemies.size))
            end
            rand_array.uniq!
            if rand_array.size >= 7
              break
            end
          end
          @target_battlers.push(live_enemies[rand_array[0]])
          @target_battlers.push(live_enemies[rand_array[1]])
          @target_battlers.push(live_enemies[rand_array[2]])
          @target_battlers.push(live_enemies[rand_array[3]])
          @target_battlers.push(live_enemies[rand_array[4]])
          @target_battlers.push(live_enemies[rand_array[5]])
          @target_battlers.push(live_enemies[rand_array[6]])
        end
      when 15 # 1 random ally
        @target_battlers.push(live_actors[rand(live_actors.size)])
      when 16 # 2 random allies
        if live_actors.size <= 2
          for actor in live_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_actors.size
              rand_array.push(rand(live_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(live_actors[rand_array[0]])
          @target_battlers.push(live_actors[rand_array[1]])
        end
      when 17 # 3 random allies
        if live_actors.size <= 3
          for actor in live_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...live_actors.size
              rand_array.push(rand(live_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(live_actors[rand_array[0]])
          @target_battlers.push(live_actors[rand_array[1]])
          @target_battlers.push(live_actors[rand_array[2]])
        end
      when 22 # 1 random ally --HP = 0
        @target_battlers.push(dead_actors[rand(dead_actors.size)])
      when 23 # 2 random allies --HP = 0
        if dead_actors.size <= 2
          for actor in dead_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_actors.size
              rand_array.push(rand(dead_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 2
              break
            end
          end
          @target_battlers.push(dead_actors[rand_array[0]])
          @target_battlers.push(dead_actors[rand_array[1]])
        end
      when 24 # 3 random allies --HP = 0
        if dead_actors.size <= 3
          for actor in dead_actors
            @target_battlers.push(actor)
          end
        else
          rand_array = []
          loop do
            for i in 0...dead_actors.size
              rand_array.push(rand(dead_actors.size))
            end
            rand_array.uniq!
            if rand_array.size >= 3
              break
            end
          end
          @target_battlers.push(dead_actors[rand_array[0]])
          @target_battlers.push(dead_actors[rand_array[1]])
          @target_battlers.push(dead_actors[rand_array[2]])
        end
      end
    end
  end
end

I wasn't able to replicate the glitch on a new project, meaning it must also have something to do with one of the dozen or so scripts on my game. What a pain in the neck.


RE: What's up, RMers? - DerVVulfman - 05-11-2019

That's weird that it is making attacks with the first element nullify death. Is it not that the first 'status ailment/effect' is death? Check to see if you have any other scripts that touch upon $data_states and game_system's @elements... combined likely.


RE: What's up, RMers? - Steel Beast 6Beets - 05-11-2019

That's correct, the first status ailment on the database is Death/KO. Worth nothing that removing the element alignment from the skill solves the issue.

I think the only script that touches &data_states is Bearcat's Absorb, Null, and Weak Armors, specifically the System script.


Code:
=begin
#=============================================================================
#  Absorb, Null, and Weak Armors
#=============================================================================
# Bearcat
# Version 1.01
# 8.16.07
#=============================================================================
 This script allows you to make armors and states that absorb, nullify, or
 make the wearer weak to elemental damage. To set up an an armor or state,
 put the armor id and the element id in the appropriate hash in Absorb_Setup.
 
 There is no need to modify anything other than the hashes in Absorb_Setup.
 
 Free use, modification, and distribution permitted (commercial projects
 included) so long as credit is given to me, Bearcat.
==============================================================================
=end
module Absorb_Setup
  #--------------------------------------------------------------------------
  # * Absorb Armors
  #   syntax armor_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Absorb_Armors = {
  103 => [1], 106 => [2], 109 => [3], 112 => [4], 115 => [5], 118 => [6], 121 => [7], 124 => [8], 127 => [1, 2, 3, 4, 5, 6, 7, 8], 153 => [1], 156 => [2], 159 => [3], 162 => [4], 165 => [5], 168 => [6], 171 => [7], 174 => [8], 177 => [1, 2, 3, 4, 5, 6, 7, 8], 366 => [3], 260 =>[8], 347 => [1, 2, 3, 4, 5, 6, 7, 8], 389 => [2, 6]
  }
  #--------------------------------------------------------------------------
  # * Null Armors
  #   syntax armor_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Null_Armors = {
  102 => [1], 105 => [2], 108 => [3], 111 => [4], 114 => [5], 117 => [6], 120 => [7], 123 => [8], 126 => [1, 2, 3, 4 ,5 ,6 ,7 ,8], 152 => [1], 155 => [2], 158 => [3], 161 => [4], 164 => [5], 167 => [6], 170 => [7], 173 => [8], 176 => [1, 2, 3, 4, 5, 6, 7, 8], 369 => [5], 378 => [1,2,3], 388 => [9], 389 => [1, 5]
  }
  #--------------------------------------------------------------------------
  # * Weak Armors
  #   syntax armor_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Weak_Armors = {
  366 => [4], 259 => [10], 260 => [7], 385 => [3, 4]
  }
  #--------------------------------------------------------------------------
  # * Absorb States
  #   syntax state_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Absorb_States = {
  1 => [1]
  }
  #--------------------------------------------------------------------------
  # * Null States
  #   syntax state_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Null_States = {
  21 => [10]
  }
  #--------------------------------------------------------------------------
  # * Weak States
  #   syntax state_id => [element1, element2...]
  #--------------------------------------------------------------------------
  Weak_States = {
  73 => [1], 74 => [2], 75 => [3], 76 => [4], 77 => [5], 78 => [6], 79 => [7], 80 => [8]
  }
  #--------------------------------------------------------------------------
  # * Defaults DO NOT CHANGE
  #--------------------------------------------------------------------------
  Absorb_Armors.default = []
  Null_Armors.default = []
  Weak_Armors.default = []
  Absorb_States.default = []
  Null_States.default = []
  Weak_States.default = []
end


Code:
class Game_Actor
  def element_rate(element_id)
    absorb_flag = false
    # Get values corresponding to element effectiveness
    table = [0,200,150,100,50,0,-100]
    result = table[$data_classes[@class_id].element_ranks[element_id]]
    # Run Armor Stuff
    for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[i]
      # Halve damage if element is protected
      if armor != nil and armor.guard_element_set.include?(element_id)
        result /= 2
      end
      # Damage = 0 if element is nulled
      if armor != nil and armor.null_element_set.include?(element_id)
        result = 0
      end
      # Set flag to true if element is absorbed
      if armor != nil and armor.absorb_element_set.include?(element_id)
        absorb_flag = true
      end
      # Multiply damage if armor is weak to element
      if armor != nil and armor.weak_element_set.include?(element_id)
          result *= 2
      end
    end
    # Run State Stuff
    for i in @states
      # Halve damage if element is protected
      if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
      end
      # Damage = 0 if element is nulled
      if $data_states[i].null_element_set.include?(element_id)
        result = 0
      end
      # Set flag to true if element is absorbed
      if $data_states[i].absorb_element_set.include?(element_id)
        absorb_flag = true
      end
      # Multiply damage if state is weak to element
      if $data_states[i].weak_element_set.include?(element_id)
        result *= 2
      end
    end
    # If absorb_flag = true, multiply by -1
    if absorb_flag
      result *= -1
    end
  # End Method
  return result
  end
end

class Game_Enemy
  def element_rate(element_id)
    # Get a numerical value corresponding to element effectiveness
    table = [0,200,150,100,50,0,-100]
    result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
    for i in @states
      # Halve damage if element is protected
      if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
      end
      # Damage = 0 if element is nulled
      if $data_states[i].null_element_set.include?(element_id)
        result = 0
      end
      # Set flag to true if element is absorbed
      if $data_states[i].absorb_element_set.include?(element_id)
        absorb_flag = true
      end
      # Multiply damage if state is weak to element
      if $data_states[i].weak_element_set.include?(element_id)
        result *= 2
      end
    end
    # If absorb_flag = true, multiply by -1
    if absorb_flag
      result *= -1
    end
    # End Method
    return result
  end
end

Thinking about it, pretty sure I had a similar problem with another script that came into conflict with Game_Actor, hence why the default characters are still on the database of my project.


RE: What's up, RMers? - DerVVulfman - 05-12-2019

Well, that sucks. 'Cause I've used that script before and never had that problem. :/


RE: What's up, RMers? - Steel Beast 6Beets - 05-12-2019

Welp, Wecoc's script had to be scrapped.

As a side note, while I was reorganizing the scripts of my project I couldn't help but wonder why is the order so important. I noticed that some of them did not work correctly unless I put them either under or above others scripts.

I kind of assumed it had something to do with the way Ruby works with RMXP's... shall we say, "eccentricities".

EDIT: Also post number 300. Wowzers!


RE: What's up, RMers? - DerVVulfman - 05-12-2019

Scripts tend to work top-down when loaded. So if you have one script that does a 100% rewrite and another that just 'adds' new content, you want the one that performs the rewrite to be loaded first followed by the rewrite.

If you do it the other way around, you'd add the new content... and then do a full rewrite which would null out any changes.


RE: What's up, RMers? - Steel Beast 6Beets - 05-12-2019

I see. I noticed that Blizzard's Analyze System doesn't work if I put game_guy's First Strike States or the SP cost modificator script below it. Putting them above it solved the issue.


RE: What's up, RMers? - DerVVulfman - 05-13-2019

This one goes clickity cllack nicely!

[Image: attachment.php?aid=1133]

All the actual mechanics of the dialing and combination system are working, including the configuration section. I just now have to make it activate a switch so it can do its job.


[attachment=1133]