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

1
Oh hey, I totally forgot VX had Notes. I was actually testing hunger by running around, which didn't increase hunger levels, but I just tried attaching <Hunger 10> to a potion, and it didn't do anything, either.

So it could be an issue of the actors' maxhungers being stuck at zero, if this doesn't work?

I can only assume the switch is on, because I flipped it in an autorun event that also gives you potions, and you still get the potions.
2
All righty, so here's the non-crashing-but-not-really-working combination I found:
Spoiler: ShowHide
#===============================================================================
# Hunger/Thirst Factor
# By Jet10985 (Jet)
#===============================================================================
# This script will add a hunger and/or thirst factor to every actor. These
# can effect a lot of things, such as stats in battle, disabling dashing, or
# even life or death.
# This script has: 32 customization option.
#===============================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Game_Actor: initialize
# Game_Character: jump, increase_steps
# Game_Player: dash?
# Scene_Battle: execute_action_attack, execute_action_skill, execute_action_item,
# execute_action_guard, execute_action_wait, execute_action_escape
# Game_Battler: item_effect, apply_state_changes, atk, def, agi, spi
# Window_Status: refresh
# Scene_Base: update
#===============================================================================

=begin

Event commands:

change_hunger(actor, amount)
change_thirst(actor, amount)

actor = the actor you want to change the stat of
amount = how much you want to change it by
These method SUBTRACT from the score, so if you want to add hunger/thirst,
use a negative number like -100.


To make an item effect hunger/thirst, put this in the item's notebox:

<hunger ##>
<thirst ##>
## = how much it will decrease hunger or thirst by.


To check hunger/thirst, you much use slightly more scripting method such as:

Equal to:
$game_party.members[actor].hunger == amount

Greater than or equal to:
$game_party.members[actor].hunger >= amount

Less than or equal to:
$game_party.members[actor].hunger <= amount

Greater than:
$game_party.members[actor].hunger > amount

Less than:
$game_party.members[actor].hunger < amount

NOTE: Just replace hunger with thirst to check for thirst.

actor = actor id you want to check hunger/thirst of.
amount = what the amount of hunger/thirst you are checking against

=end


module HungerThirst
 
  # Do you want to use the hunger factor?
  USE_HUNGER = true
 
  # Do you want to use the thirst factor?
  USE_THIRST = false
 
  # What is the maximum thirst?
  MAX_THIRST = 1000
 
  # Will the character who has a maxed out hunger/thirst die?
  DIE_ON_MAX_HUNGER_OR_THIRST = false
 
  # If the above is set to true, when the dead character is revived,
  # how much hunger/thirst will be taken away?
  REVIVED_HUNGER_LOWER = 500
  REVIVED_THIRST_LOWER = 300
 
  # How much hunger will be added for each step?
  STEP_HUNGER_ADDED = 2
 
  # How much thirst will be added for each step?
  STEP_THIRST_ADDED = 1
 
  # Do you want the player to add hunger/thirst when jumping?
  JUMP_SYSTEM_COMPATABILITY = true
 
  # How much hunger will be added for each jump?
  JUMP_HUNGER_ADDED = 2
 
  # How much thirst will be added for each jump?
  JUMP_THIRST_ADDED = 2
 
  # How much hunger do they need until they can no longer dash?
  # Note: They will not be able to dash if EITHER this or NO_DASH_THIRST is met.
  NO_DASH_HUNGER = 1000
 
  # How much thirst do they need until they can no longer dash?
  # Note: They will not be able to dash if EITHER this or NO_DASH_HUNGER is met.
  NO_DASH_THIRST = 750
 
  # Do you want hunger to effect player's stats?
  AFFECT_STATS = true
 
  # How much hunger do they need until stats are effected?
  LOWER_STATS_HUNGER = 500
 
  # How much thirst do they need until stats are effected?
  LOWER_STATS_THIRST = 400
 
  # This is what stats will be multiplied by if the character is too hungry.
  #                       ATK  DEF  SPI  AGI
  HUNGER_LOWERED_STATS = [0.8, 0.8, 0.8, 0.8]
 
  # This is what stats will be multiplied by if the charatcer is too thirsty.
  #                       ATK  DEF  SPI  AGI
  THIRST_LOWERED_STATS = [0.9, 0.9, 0.9, 0.9]
 
  # Do you want battle actions to effect hunger/thirst?
  BATTLE_ACTIONS_AFFECT = true
 
  # How much attacking will affect hunger/thirst.
  ATTACK_HUNGER_RAISE = 10
  ATTACK_THIRST_RAISE = 7
 
  # How much using a skill will affect hunger/thirst.
  SKILL_HUNGER_RAISE = 8
  SKILL_THIRST_RAISE = 6
 
  # How much guarding will affect hunger/thirst.
  GUARD_HUNGER_RAISE = 5
  GUARD_THIRST_RAISE = 4
 
  # How much using an item will affect hunger/thirst.
  ITEM_HUNGER_RAISE = 2
  ITEM_THIRST_RAISE = 1
 
  # How much trying to escape will affect hunger/thirst.
  ESCAPE_HUNGER_RAISE = 5
  ESCAPE_THIRST_RAISE = 6
 
  # How much waiting will affect hunger/thirst.
  WAIT_HUNGER_RAISE = 2
  WAIT_THIRST_RAISE = 2
 
  # Do you want each actor's hunger to be output to a variable?
  HUNGER_TO_VARIABLE = true
 
  # If the above is true, configure the hash below following the format listed.
  ACTOR_HUNGER_VARIABLES = {
 
  1 => 90,  # ACTOR_ID => VARIABLE_ID
  2 => 91,  # ACTOR_ID => VARIABLE_ID
  3 => 92,  # ACTOR_ID => VARIABLE_ID
  4 => 93  # ACTOR_ID => VARIABLE_ID
  }
 
  # Do you want each actor's thirst to be output to a variable?
  THIRST_TO_VARIABLE = true
 
  # If the above is true, configure the hash below following the format listed.
  ACTOR_MAXHUNGER_VARIABLES = {
 
  1 => 94,  # ACTOR_ID => VARIABLE_ID
  2 => 95,  # ACTOR_ID => VARIABLE_ID
  3 => 96,  # ACTOR_ID => VARIABLE_ID
  4 => 97  # ACTOR_ID => VARIABLE_ID
  }
 
 
end
 
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class Game_Actor
   def maxhunger
      # Accessing ACTOR_MAXHUNGER_VARIABLES in module Something
      maxhunger = HungerThirst::ACTOR_MAXHUNGER_VARIABLES
      # Get the variable id based on actor id
      variable_id = maxhunger[@actor_id]
      # If the variable id doesn't exist, return 0
      return 0 if variable_id == nil
      # Return the value of variable id
      return $game_variables[variable_id]
    end

  attr_accessor :hunger
  attr_accessor :thirst
 
  alias jet5482_initialize initialize unless $@
  def initialize(*args)
    jet5482_initialize(*args)
    @hunger = 0
    @thirst = 0
  end
end

class Game_Interpreter
 
  include HungerThirst
 
  def change_hunger(actor, amount)
    $game_party.members[actor].hunger -= amount
    if $game_party.members[actor].hunger > $game_party.members[actor].maxhunger
      $game_party.members[actor].hunger = $game_party.members[actor].maxhunger
    elsif $game_party.members[actor].hunger < 0
      $game_party.members[actor].hunger = 0
    end
  end
 
  def change_thirst(actor, amount)
    $game_party.members[actor].thirst -= amount
    if $game_party.members[actor].thirst > $game_variables[ACTOR_MAXHUNGER_VARIABLES[actor.id]]
      $game_party.members[actor].thirst = $game_variables[ACTOR_MAXHUNGER_VARIABLES[actor.id]]
    elsif $game_party.members[actor].thirst < 0
      $game_party.members[actor].thirst = 0
    end
  end
end

module Jet
 
    def self.check_tag_number(obj, tag)
    obj.note.split(/[\r\n]+/).each { |notetag|
    case notetag
    when tag
      @result = $1.to_i
    end }
    return @result
  end
end

module RPG
  class UsableItem
   
    def lower_hunger
      if @hunger.nil?
        txt = Jet.check_tag_number(self, /<(?:hunger)[ ]*(\d+)>/i)
        @hunger = txt.nil? ? :unhunger : txt.to_i
      end
      return @hunger
    end
   
    def lower_thirst
      if @thirst.nil?
        txt = Jet.check_tag_number(self, /<(?:thirst)[ ]*(\d+)>/i)
        @thirst = txt.nil? ? :unthirst : txt.to_i
      end
      return @thirst
    end
  end
end

class Game_Character
 
  include HungerThirst
 
  if JUMP_SYSTEM_COMPATABILITY
    alias jet5903_jump jump unless $@
    def jump(*args)
      for i in 0...$game_party.members.size
        $game_party.members[i].hunger += JUMP_HUNGER_ADDED if USE_HUNGER
        $game_party.members[i].thirst += JUMP_THIRST_ADDED if USE_THIRST
        if $game_party.members[i].hunger > MAX_HUNGER
          $game_party.members[i].hunger = MAX_HUNGER
        elsif $game_party.members[i].hunger < 0
          $game_party.members[i].hunger = 0
        end
        if $game_party.members[i].thirst > MAX_THIRST
          $game_party.members[i].thirst = MAX_THIRST
        elsif $game_party.members[i].thirst < 0
          $game_party.members[i].thirst = 0
        end
      end
      jet5903_jump(*args)
    end
  end
 
  alias jet2211_increase_steps increase_steps unless $@
  def increase_steps(*args)
    if self.is_a?(Game_Player)
      for i in 0...$game_party.members.size
        $game_party.members[i].hunger += STEP_HUNGER_ADDED if USE_HUNGER
        $game_party.members[i].thirst += STEP_THIRST_ADDED if USE_THIRST
        if $game_party.members[i].hunger > $game_party.members[i].maxhunger
          $game_party.members[i].hunger = $game_party.members[i].maxhunger
        elsif $game_party.members[i].hunger < 0
          $game_party.members[i].hunger = 0
        end
        if $game_party.members[i].thirst > MAX_THIRST
          $game_party.members[i].thirst = MAX_THIRST
        elsif $game_party.members[i].thirst < 0
          $game_party.members[i].thirst = 0
        end
      end
    end
    jet2211_increase_steps(*args)
  end
end

class Game_Player
 
  include HungerThirst
 
  alias jet6901_dash? dash? unless $@
  def dash?
    for i in 0...$game_party.members.size
      if USE_HUNGER
        if $game_party.members[i].hunger >= NO_DASH_HUNGER
          return false
        end
      end
      if USE_THIRST
        if $game_party.members[i].thirst >= NO_DASH_THIRST
          return false
        end
      end
    end   
    jet6901_dash?
  end
end

class Scene_Battle
   
  include HungerThirst
 
  if BATTLE_ACTIONS_AFFECT
    alias jet0134_execute_action_attack execute_action_attack unless $@
    def execute_action_attack
      if @active_battler.actor?
        @active_battler.hunger += ATTACK_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += ATTACK_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0134_execute_action_attack
    end

    alias jet0135_execute_action_guard execute_action_guard unless $@
    def execute_action_guard
      if @active_battler.actor?
        @active_battler.hunger += GUARD_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += GUARD_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0135_execute_action_guard
    end

    alias jet0136_execute_action_escape execute_action_escape unless $@
    def execute_action_escape
      if @active_battler.actor?
        @active_battler.hunger += ESCAPE_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += ESCAPE_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0136_execute_action_escape
    end

    alias jet0137_execute_action_wait execute_action_wait unless $@
    def execute_action_wait
      if @active_battler.actor?
        @active_battler.hunger += WAIT_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += WAIT_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0137_execute_action_wait
    end

    alias jet0138_execute_action_skill execute_action_skill unless $@
    def execute_action_skill
      if @active_battler.actor?
        @active_battler.hunger += SKILL_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += SKILL_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0138_execute_action_skill
    end
   
    alias jet0139_execute_action_item execute_action_item unless $@
    def execute_action_item
      if @active_battler.actor?
        @active_battler.hunger += ITEM_HUNGER_RAISE if USE_HUNGER
        @active_battler.thirst += ITEM_THIRST_RAISE if USE_THIRST
        if @active_battler.hunger > @active_battler.maxhunger
          @active_battler.hunger = @active_battler.maxhunger
        elsif @active_battler.hunger < 0
          @active_battler.hunger = 0
        end
        if @active_battler.thirst > MAX_THIRST
          @active_battler.thirst = MAX_THIRST
        elsif @active_battler.thirst < 0
          @active_battler.thirst = 0
        end
      end
      jet0139_execute_action_item
    end
  end
end

class Game_Battler
 
  include HungerThirst
 
  alias jet5823_item_effect item_effect unless $@
  def item_effect(user, item)
    jet5823_item_effect(user, item)
    unless @skipped
      user.hunger -= item.lower_hunger unless item.lower_hunger == :unhunger
      user.thirst -= item.lower_thirst unless item.lower_thirst == :unthirst
      if user.hunger > user.maxhunger
        user.hunger = user.maxhunger
      elsif user.hunger < 0
        user.hunger = 0
      end
      if user.thirst > MAX_THIRST
        user.thirst = MAX_THIRST
      elsif user.thirst < 0
        user.thirst = 0
      end
    end
  end
 
  alias jet9243_apply_state_changes apply_state_changes unless $@
  def apply_state_changes(obj)
    if obj.minus_state_set.include?(1) && DIE_ON_MAX_HUNGER_OR_THIRST && self.actor?
      self.hunger -= REVIVED_HUNGER_LOWER
      self.thirst -= REVIVED_THIRST_LOWER
      if self.hunger > self.maxhunger
        self.hunger = self.maxhunger
      elsif self.hunger < 0
        self.hunger = 0
      end
      if self.thirst > MAX_THIRST
        self.thirst = MAX_THIRST
      elsif self.thirst < 0
        self.thirst = 0
      end
    end
    self.jet9243_apply_state_changes(obj)
  end
 
  if AFFECT_STATS
    alias jet0132_atk atk unless $@
    def atk
      n = jet0132_atk
      if self.actor?
        if self.hunger >= LOWER_STATS_HUNGER
          n *= HUNGER_LOWERED_STATS[0]
        end
        if self.thirst >= LOWER_STATS_THIRST
          n *= THIRST_LOWERED_STATS[0]
        end
      end
      return n
    end
   
    alias jet8921_def def unless $@
    def def
      n = jet8921_def
      if self.actor?
        if self.hunger >= LOWER_STATS_HUNGER
          n *= HUNGER_LOWERED_STATS[1]
        end
        if self.thirst >= LOWER_STATS_THIRST
          n *= THIRST_LOWERED_STATS[1]
        end
      end
      return n
    end

    alias jet9021_spi spi unless $@
    def spi
      n = jet9021_spi
      if self.actor?
        if self.hunger >= LOWER_STATS_HUNGER
          n *= HUNGER_LOWERED_STATS[2]
        end
        if self.thirst >= LOWER_STATS_THIRST
          n *= THIRST_LOWERED_STATS[2]
        end
      end
      return n
    end

    alias jet0213_agi agi unless $@
    def agi
      n = jet0213_agi
      if self.actor?
        if self.hunger >= LOWER_STATS_HUNGER
          n *= HUNGER_LOWERED_STATS[3]
        end
        if self.thirst >= LOWER_STATS_THIRST
          n *= THIRST_LOWERED_STATS[3]
        end
      end
      return n
    end
  end
end

class Window_Status
 
  alias jet5840_refresh refresh unless $@
  def refresh
    jet5840_refresh
    self.contents.font.color = system_color
    self.contents.draw_text(50, 310, 100, 24, "Hunger: ")
    self.contents.font.color = normal_color
    self.contents.draw_text(150, 310, 100, 24, @actor.hunger)
    self.contents.font.color = system_color
    self.contents.draw_text(50, 334, 100, 24, "Thirst: ")
    self.contents.font.color = normal_color
    self.contents.draw_text(150, 334, 100, 24, @actor.thirst)
  end
end

class Scene_Base
   
  include HungerThirst
 
  alias jet2034_update update unless $@
  def update
    jet2034_update
    unless $scene.is_a?(Scene_Title)
      for actor in $game_party.members
        next if actor.nil?
        $game_variables[ACTOR_HUNGER_VARIABLES[actor.id]] = actor.hunger unless actor.nil? || ACTOR_HUNGER_VARIABLES[actor.id].nil? || !USE_HUNGER
        #$game_variables[ACTOR_THIRST_VARIABLES[actor.id]] = actor.thirst unless actor.nil? || ACTOR_THIRST_VARIABLES[actor.id].nil? || !USE_THIRST
        if actor.hunger == actor.maxhunger && DIE_ON_MAX_HUNGER_OR_THIRST && actor.hp != nil
          actor.hp = 0
          if $game_party.all_dead?
            @window = Window_Help.new
            @window.y = 152
            @window.set_text("Your last party member has died of hunger.", 1)
            loop do
              Graphics.update
              Input.update
              if Input.trigger?(Input::C)
                @window.dispose
                $scene = Scene_Gameover.new
                break
              end
            end
          end
        elsif actor.thirst == MAX_THIRST && DIE_ON_MAX_HUNGER_OR_THIRST && actor.hp != nil
          actor.hp = 0
          if $game_party.all_dead?
            @window = Window_Help.new
            @window.y = 152
            @window.set_text("Your last party member has died of Thirst.", 1)
            loop do
              Graphics.update
              Input.update
              if Input.trigger?(Input::C)
                @window.dispose
                $scene = Scene_Gameover.new
                break
              end
            end
          end
        end
      end
    end
  end
end

Also, I was thinking of making hunger from skill usage based on the MP needed to use the skill, but if the past is any indication, I can't just plop @actor.mp -= @actor.calc_mp_cost(@skill) under the execute_action_skill method, huh?
3
Annnnd eventually...
It doesn't crash! But none of the actors' hunger levels are going above 0, by script or by common event...
Not sure which part of the code I should paste for this ^-^;
4
Absolutely, thanks! I can't say I'd be able to use all of those in a from-scratch code, but I'm fairly sure I can at least recognize and follow them.

Except for ::, which I see you've used a few times in that sample code, what's that do?
5
So, this solution looks quite promising, thanks! There are a couple (probably related things) I'm running into, though:

First, it says HungerThirst::Actor_Id is uninitialized when the game starts--I take it I shouldn't be using a Parallel Process Common Event to set the actors' maximum hunger level variables (should I initialize them all at some random number, then let the parallel process correct it once the game starts?), or is that a different issue?

Also, I noticed you used Actor_Id at some parts and actor.id at others. What's the difference?
6
Oh, well that is what I asked for, but I guess not knowing how things are organized in RGSS means I can't exactly use it for what I wanted ^-^;

Hm, guess I'll go back to trying to find a script that already does what I need (while constantly reminding Google that VX Ace is not VX <_<")
7
I guess the title is right...?

This is probably ridiculously simple (but hard to explain and therefore search, sorry ^-^; ), but how do I set something in a script to be Variable?

Like, I'm using Jet10985's Hunger/Thirst system, but instead of having a Thirst system, I want each actor's maximum hunger to be different. I have these set to variables that I want to refer to with this modified little thing
  ACTOR_MAXHUNGER_VARIABLES = {
 
  1 => 94,  # ACTOR_ID => VARIABLE_ID
  2 => 95,  # ACTOR_ID => VARIABLE_ID
  3 => 96,  # ACTOR_ID => VARIABLE_ID
  4 => 97  # ACTOR_ID => VARIABLE_ID
  }

But then what would I do to
  # What is the maximum hunger?
  MAX_HUNGER = somehowputavariablehere
?

Hopefully that makes sense, and thanks in advance!
8
Script Troubleshooting / Re: [VX] Can't Move Up-Right
October 30, 2013, 02:06:16 am
OHHHH okay that makes a lot of sense, thanks! I didn't think of that since I'm on a laptop.

I suppose since the main issue is solved, I'll go ahead and change the topic title, thanks again!
9
The italicized part has been solved~
So my code's about the most simple edit to the stock scripts:
  #--------------------------------------------------------------------------
 # * Processing of Movement via input from the Directional Buttons
 #--------------------------------------------------------------------------
 def move_by_input
   return unless movable?
   return if $game_map.interpreter.running?
   case Input.dir8
   when 1;  move_lower_left  #new
   when 3;  move_lower_right #new
   when 5;  move_upper_right #new
   when 7;  move_upper_left  #new
   when 2;  move_down
   when 4;  move_left
   when 6;  move_right
   when 8;  move_up
   end
 end

Basically, it's adding four more directions of overworld movement that are already programmed for, and it works great--for three of the four. When trying to move_upper_right, the character just stops and doesn't move anywhere.

The character also stops when trying to move diagonally along a straight wall, but that at least is expected.


The bolded part has not yet been solved
And while I'm asking such a small question, where's the script that causes the player character (or any overworld character, I guess) to stop animating when they stop moving? I've found some suspects, but nothing definitive.


Thanks!
10
Gee, I forgot I had an account here xP

Anyway...

This is hopefully a simple fix, but I'm trying to make actors' hit rates somewhat dependent on their level (so that when re-visiting old areas with inaccurate weapons, you won't have a hard time hitting super weak bats and bees). What I have in Game_Battler under the *Calculate Hit Rate of Skill/Item is
def item_hit(user,item)
 rate=item.success_rate * 0.01
 rate*= user.hit if item.physical?
 rate+=user.level if user.actor? #THIS IS THE ADDED LINE
 return rate
end

Testing a high-level character against a high-avoid enemy, however, that extra line seems to do nothing. Help?

(Also, this question is for RPG Maker VX ACE!)

And if it matters, I'm using Yanfly's battle system.

Thanks!
11
Oh, so +=/-= do work? That's great to know.

But the script seems to work like a charm! I had to increase the value, but things make much more sense now. Now to find a good reason to make the player want to defend...

Thanks, though! I'm already crediting you for a bunch of stuff so there's nothing else I can say  :^_^':
12
Yeah, I tried a few things with that. But how do I sort?

I think most of what I tried is similar to

    # Decide action speed for all
    for battler in @action_battlers
      battler.make_action_speed
    end
    #IMPORTANT PART STARTS HEEEEEERE
    if @active_battler.current_action.basic == 1
      battler.make_action_speed = battler.make_action_speed + 200
    end
    #MY FAIL EDITS END HEEEEEERE
    # Line up action speed in order from greatest to least
    @action_battlers.sort! {|a,b|
      b.current_action.speed - a.current_action.speed }
  end
13
I always found it annoying how in RMXP, actors and enemies will Defend whenever their speed tells them to, but that the defending applies to the whole turn. I tried to fix this, but I don't even know how turn order is determined :^_^':

So my request is: Could someone make an edit to the default Scene_Battle4 script (or whatever else is necessary) to make actors using Defend act before any other actor?

Thanks!
14
Oh, well you helped me figure it out regardless :P
I don't exactly know what the protocol is here. Lock the thread, ignore it, whatever. But thanks again! Now I'm going to point at my newest thread :^_^':
15
Man, I feel like I've been posting a lot of (help) threads lately. Oh well.

So I'm using Mr. Wiggles' alchemy script (ForeverZer0's has a bunch of complicated functions I don't need), but a number of my recipes aren't working. There doesn't seem to be any rhyme or reason to which recipes work and which ones don't. Here's the important part of my script:
#-------------------------------------------------------------------------------
module ALCHEMY#/////////           *** EDIT AREA  ***                 /////////#
#-------------------------------------------------------------------------------
# Item IDs that can be used in Alchemy.
ALCHEMY_ITEMS   = [1,2,3,4,5,46,47,63,70]
#-------------------------------------------------------------------------------
# Item IDs that are not consumed when combined.
NON_CONSUME_ITEMS = []
#-------------------------------------------------------------------------------
# Weapon IDs that can be used in Alchemy.
ALCHEMY_WEAPONS = []
#-------------------------------------------------------------------------------
# Weapon IDs that are not consumed when combined.
NON_CONSUME_WEAPONS = []
#-------------------------------------------------------------------------------
# Armor IDs that can be used in Alchemy.
ALCHEMY_ARMORS  = []
#-------------------------------------------------------------------------------
# Armor IDs that are not consumed when combined.
NON_CONSUME_ARMORS = []
#-------------------------------------------------------------------------------
# Can combine more then the same type of item together, or just one of each.
COMBINE_DUPS = true
#-------------------------------------------------------------------------------
# Button that is used to check if the items being combined make anything.
CHECK_RECIPE_BUTTON = Input::A
#-------------------------------------------------------------------------------
# Sound to play if the recipe was successful. leave blank if none.
RIGHT_SE = "055-Right01"
#-------------------------------------------------------------------------------
# Sound to play if the recipe failed. leave blank if none.
WRONG_SE = "057-Wrong01"
#-------------------------------------------------------------------------------
# recipes to make items. Example of a recipe:
# [[A,B], [A,B], [A,B], [A,B]]
# A = Type of Item in the recipe, (0 = Item, 1 = Weapon, 2 = Armor)
# B = ID if Item
# if slot is not being used in recipe, use 0.
ALCHEMY_RECIPES = [
[[0,1],[0,1],[0,63],0],#HealPot
[[0,4],[0,4],[0,63],0],#SPot
[[0,2], [0,1], [0,1], [0,4]],#HealPot+
[[0,46],[0,70],0,0],#Raw Meat
[[0,46],[0,70],[0,70],0],#Overcooked Meat
[[0,46],[0,70],[0,70],[0,70]],#Burnt Meat
[[1,2], [2,4], [0,6],   0  ],
[[2,2], [0,2], [1,7],   0  ]
]# needs to be here
#-------------------------------------------------------------------------------
# Out comes of the above recipes:
# [A, B]
# A = Type of Creation (0 = Item, 1 = Weapon, 2 = Armor)
# B = ID of Item
ALCHEMY_OUTCOMES = [
[0, 2],#HealPot
[0, 5],#SPot
[0, 3],#HealPot+
[0, 46],#Raw Meat
[0, 47],#Overcooked Meat
[0, 48],#Burnt Meat
[1, 5],
[0, 3]
]# needs to be here
#-------------------------------------------------------------------------------
# Blue prints: the basic idea behind this is that the player can not create any
# items that they do not know how to create it. This can be done by using a
# script call command in an event that says:
# $game_system.add_blue_prints(Blue Print ID)
# the Blue print id refers to the location of the recipe in the
# ALCHEMY_RECIPES array, also remember that it starts counting at 0, this
# means that 1=0, 2=1, and so on.
#
# Bellow is the blue prints that the player already knows at the start of the
# game. [BP, BP, BP]  BP = Blue Print ID
BLUE_PRINTS = [1,2,3,4,5,6,7]
#-------------------------------------------------------------------------------
# Remove the items being combined if the recipe is wrong.
PENALIZE = true
#-------------------------------------------------------------------------------
# Give the player a junk item if the mix was wrong. PENALIZE must be true for
# this. If you don't want to use this set the ID to 0.
JUNK_ITEM_ID = 0
#-------------------------------------------------------------------------------
end#/////////              *** END EDIT AREA  ***                     /////////#
#-------------------------------------------------------------------------------

Even though I have blueprints set for all those recipes, only these ones show up in the recipe book, as well as have the ability to be made in the alchemy scene:

If I try to make, say, a HealPot(Health Potion), I get the same message as if I had tried to make a nonexistent item.

Help?

EDIT: Never mind, finally got it! Turns out changes to the script don't apply to previously saved game files.
16
Script Troubleshooting / Re: [XP]UMS Forgets Shortcuts?
November 25, 2011, 07:18:13 pm
Ohhhh that's it. And now I see what Blizzard was saying. I need to register the shortcut with brackets, too. Well, then, thanks!
17
Script Troubleshooting / Re: [XP]UMS Forgets Shortcuts?
November 25, 2011, 05:27:34 pm
Nope, now the command is ignored entirely.
18
Heya, I'm using Ccoa's Universal Message System (vl8.0, if that means anything), and it's pretty awesome. One thing, though. If I save the game, quit out, and start it back up, then enter a talking event, previously defined shortcuts over 9 are forgotten. So if I type \c10, then the \c1 character will appear, and a 0 will start the message. This is... Well, annoying. Help?

(And while I'm at it, I feel like saying that there's quite a delay between when I win a battle and when the EXP/G/Items window pops up. Is this normal?)
19
General Discussion / Re: Screenshot Thread
May 07, 2011, 01:47:35 am
Despite the lack of shadows, those are literally awesome, though I'm seeing one little place that's not.

The second-to-last screenie of the cave has that ramp thingy, and that looks comparatively ugly. You should probably try and stick something to the sides of that to make it look less like a tile and more like a way up the rocks.
20
Um, yeah, I doubt I'll be doing any of that any time soon  :^_^':

As for animations in general, can animations be specified to play when a character receives damage?

Also about animations, can spell/attack animations shake the screen? (Like for an Earth-based spell)