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

1
Thanks. I'll try to figure it out from here.
2
Quote from: jayje on August 31, 2019, 10:45:56 pmI was talking with KK20, with this, but it seemed like it was a bad time to talk then. No big hurry just wanted to get help with this if possible. Here's what the conversation was at that point:

Spoiler: ShowHide

Al CheddahToday at 12:00 AM
say i have a limit on stat boosting items
and once a certain number is reached, the bonuses don't work
pink b0iToday at 12:01 AM
like the pokemon IV items?
Al CheddahToday at 12:02 AM
that might e the best way to explain it, yes
pink b0iToday at 12:02 AM
yeah you're better off going another route
Al CheddahToday at 12:02 AM
i have a CE that just says "You've reached your limit", but I wanna makes sure it doesn't do anything
i see
what would/should i do?
pink b0iToday at 12:03 AM
do you want the item to call a common event?
Al CheddahToday at 12:04 AM
yes
all the stat boster call the same event
that adds 1 to a variale when there used
pink b0iToday at 12:05 AM
how are you determining what item was used
Al CheddahToday at 12:05 AM
i got an item ID catcher from LittleDrago awhile back
that gets the item ID
pink b0iToday at 12:08 AM
and your item use counter is stored in game variables
Al CheddahToday at 12:08 AM
yes
once it reaches a set number it should stop giving a bonus
pink b0iToday at 12:09 AM
then make the item itself add nothing, and do all the stat manipulation in the event
Al CheddahToday at 12:09 AM
okay. how would I go about that?
using the code from earlier?
pink b0iToday at 12:10 AM
conditional branch: if not reached limit
  actor stat+
else
  message "can no longer boost"
  add item back to party
Al CheddahToday at 12:11 AM
ok, but would I wo do that for the item target?
pink b0iToday at 12:12 AM
maybe you can make another variable for Game_Party, like last_item_target
Al CheddahToday at 12:13 AM
in a script call?:thinking:
pink b0iToday at 12:14 AM

class Game_Party
  attr_accessor :last_item_target
end

Al CheddahToday at 12:14 AM
aahhh
in the actual script
ok
pink b0iToday at 12:14 AM

      # If single target
      if @target_window.index >= 0
        # Apply item use effects to target actor
        target = $game_party.actors[@target_window.index]
        $game_party.last_item_target = target
        used = target.item_effect(@item)
      end

Al CheddahToday at 12:15 AM
ok so make last_item_target a variable
like in that code
Al CheddahToday at 12:34 AM
wait i thought we were adding/removing the item effects in the event instead of the item itself?
pink b0iToday at 12:35 AM
i had written code that i have since deleted
you can ignore
thanks again and I hope all is well with all parties involved.

What I'm basically trying to do is have stat boosting items that increase a certain stat up to a set limit (say 30) after that, it would have no affect. Similar to like Iron or Calcium in Pokemon. TIA!
3
I was talking with KK20, with this, but it seemed like it was a bad time to talk then. No big hurry just wanted to get help with this if possible. Here's what the conversation was at that point:

Spoiler: ShowHide

Al CheddahToday at 12:00 AM
say i have a limit on stat boosting items
and once a certain number is reached, the bonuses don't work
pink b0iToday at 12:01 AM
like the pokemon IV items?
Al CheddahToday at 12:02 AM
that might e the best way to explain it, yes
pink b0iToday at 12:02 AM
yeah you're better off going another route
Al CheddahToday at 12:02 AM
i have a CE that just says "You've reached your limit", but I wanna makes sure it doesn't do anything
i see
what would/should i do?
pink b0iToday at 12:03 AM
do you want the item to call a common event?
Al CheddahToday at 12:04 AM
yes
all the stat boster call the same event
that adds 1 to a variale when there used
pink b0iToday at 12:05 AM
how are you determining what item was used
Al CheddahToday at 12:05 AM
i got an item ID catcher from LittleDrago awhile back
that gets the item ID
pink b0iToday at 12:08 AM
and your item use counter is stored in game variables
Al CheddahToday at 12:08 AM
yes
once it reaches a set number it should stop giving a bonus
pink b0iToday at 12:09 AM
then make the item itself add nothing, and do all the stat manipulation in the event
Al CheddahToday at 12:09 AM
okay. how would I go about that?
using the code from earlier?
pink b0iToday at 12:10 AM
conditional branch: if not reached limit
  actor stat+
else
  message "can no longer boost"
  add item back to party
Al CheddahToday at 12:11 AM
ok, but would I wo do that for the item target?
pink b0iToday at 12:12 AM
maybe you can make another variable for Game_Party, like last_item_target
Al CheddahToday at 12:13 AM
in a script call?:thinking:
pink b0iToday at 12:14 AM

class Game_Party
  attr_accessor :last_item_target
end

Al CheddahToday at 12:14 AM
aahhh
in the actual script
ok
pink b0iToday at 12:14 AM

      # If single target
      if @target_window.index >= 0
        # Apply item use effects to target actor
        target = $game_party.actors[@target_window.index]
        $game_party.last_item_target = target
        used = target.item_effect(@item)
      end

Al CheddahToday at 12:15 AM
ok so make last_item_target a variable
like in that code
Al CheddahToday at 12:34 AM
wait i thought we were adding/removing the item effects in the event instead of the item itself?
pink b0iToday at 12:35 AM
i had written code that i have since deleted
you can ignore
thanks again and I hope all is well with all parties involved.
4
I'm using SRD to redo the Battle status display for my game. I got  advice to use Yanfly's Battle core in addition to it to achieve the effect I wanted.

IT WORKED!!


My question now is how do I get the rest of the party to look like the first party member? Any ideas or thoughts would be great! T.I.A.

(PS: The reason for using Yanfly's battle Core was to use a function that related to the party member's positions)
5
I found a solution that works. Will post a write-up if folks are interested.
6
I'm not sure if this would go n the forum or not, but I've been thinking about this mechanic for about a month.
Okay. I want to have a battle mechanic where:
1. I can fuse two different party members
2. you can choose which ones
3. you change the one's class of the first party member you chose
4. you remove the second party member you choose
5. after battle the first party member reverts to their original class and the second party member returns back to the party

I've come with ideas to pull off a few of these, but fumble on the rest. any ideas?

I've tried to figure this out on my own with eventing.

7
I didn't know if you had a forum for this site, so I'm late. I am hosting a Game Jam right now. https://itch.io/jam/the-collect-a-friend-game-jam
It's a week in, but I do have over 80s and one submission. If you'd like to join or just peep the situation, pleas stop by!
8
That DEFINITELY did the trick. THANKS! :haha:
9
I had gotten permission to use the Easy Party Switcherhttps://forum.chaos-project.com/index.php/topic,116.0.html by Blizzard and got help editting it by KK20(Awesome job BTW :haha:) It works great!

But I have a problem.  :(  :(

I can call the scene with the $scene = Scene_PartySwitcher.new script call and I can close it just fine. The problem is I can't call it again without frezzing, and then closing, my game. I was told it was a "$scene = nil" type of error.

Here is the edited code:
Spoiler: ShowHide

#==============================================================================
# module BlizzCFG
#==============================================================================

module BlizzCFG

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Conficuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  # how many party members do you use
  MAX_PARTY = 4
  # set to true to use facesets instead of spritesets
  FACESETS = true
  # allows a party with 0 members
  ALLOW_EMPTY_PARTY = false
  # allows switching the party in battle
  BATTLE_SWITCH = false
  # name of the call command in the party menu in battle
  SWITCH_COMMAND = 'Switch'
  # gives all other characters EXP (specify in %)
  EXP_RESERVE = 50
  # gives "not available" characters EXP (specify in %)
  EXP_NOT_AVAILABLE = 0
  # gives "disabled for party" characters EXP (specify in %)
  EXP_DISABLED_FOR_PARTY = 0
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Conficuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

end

# recognition variable for plug-ins
$easy_party_switcher = 2.51

#==============================================================================
# Game_Actor
#==============================================================================

class Game_Actor < Game_Battler

  attr_accessor :must_be_in_party
  attr_accessor :disabled_for_party
  attr_accessor :not_available
  attr_accessor :forced_position
 
  alias setup_eps_later setup
  def setup(actor_id)
    setup_eps_later(actor_id)
    @must_be_in_party = @disabled_for_party = @not_available = false
  end 
end

#==============================================================================
# Game_System
#==============================================================================

class Game_System

  attr_accessor :stored_party
  attr_accessor :order_only
  attr_accessor :battle_order_only
  attr_accessor :battle_switch
 
  alias init_eps_later initialize
  def initialize
    init_eps_later
    @order_only = @battle_order_only = false
    @battle_switch = BlizzCFG::BATTLE_SWITCH
  end 
end

#==============================================================================
# Game_Party
#==============================================================================

class Game_Party

  attr_accessor :actors
  attr_accessor :forced_size
 
  def any_forced_position
    return (@actors.any? {|actor| actor != nil && actor.forced_position != nil})
  end 
end

#==============================================================================
# Window_Base
#==============================================================================

class Window_Base

  alias draw_actor_graphic_eps_later draw_actor_graphic
  def draw_actor_graphic(actor, x, y)
    if actor != nil
      classes = [Window_Current]
      if BlizzCFG::FACESETS && !$all_available && classes.include?(self.class)
        draw_actor_face_eps(actor, x, y)
      else
        if classes.include?(self.class)
          bitmap = RPG::Cache.character(actor.character_name,
              actor.character_hue)
          x += bitmap.width / 8 + 24
          y += bitmap.height / 4 + 16
        end
        # this may need changing when using a custom draw_actor_graphic method
        if actor.not_available || actor.must_be_in_party
          bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
          cw = bitmap.width / 4
          ch = bitmap.height / 4
          src_rect = Rect.new(0, 0, cw, ch)
          self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, 128)
        else
          draw_actor_graphic_eps_later(actor, x, y)
        end
      end
    end
  end

  def draw_actor_face_eps(actor, x, y)
    actor_num = actor.class_id
    bitmap = RPG::Cache.picture("face#{actor_num}")
    src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    stretch_rect = Rect.new(x, y, 72, 72)
    self.contents.stretch_blt(stretch_rect, bitmap, src_rect)
  end
end

#==============================================================================
# Window_BattleResult
#==============================================================================

class Window_BattleResult
 
  attr_reader :exp
 
end

#==============================================================================
# Window_Current
#==============================================================================

class Window_Current < Window_Selectable

  def initialize
    super(240, 60, 76 + 32,
        BlizzCFG::MAX_PARTY > 4 ? 360 : BlizzCFG::MAX_PARTY * 88)
    self.contents = Bitmap.new(width - 32,
        448 + (BlizzCFG::MAX_PARTY - 4) * 120)
    @item_max = BlizzCFG::MAX_PARTY
    if $fontface != nil
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
    elsif $defaultfonttype != nil
      self.contents.font.name = $defaultfonttype
      self.contents.font.size = $defaultfontsize
    end
    self.contents.font.size = 24
    refresh
    self.active, self.index, self.z = false, -1, 5000
    self.back_opacity = 160
  end
 
  def refresh
    self.contents.clear
    $game_party.actors.each_index {|i|
        if $game_party.actors[i] != nil
          draw_actor_graphic($game_party.actors[i], 4, i * 80 + 4)
#          draw_actor_name($game_party.actors[i], 152, i * 120 - 4)
#          draw_actor_level($game_party.actors[i], 88, i * 120 - 4)
#          draw_actor_hp($game_party.actors[i], 88, i * 120 + 24)
#          draw_actor_sp($game_party.actors[i], 88, i * 120 + 52)
        end}
  end

  def setactor(index_1, index_2)
    $game_party.actors[index_2], $game_party.actors[index_1] =
        $game_party.actors[index_1], $game_party.actors[index_2]
    refresh
  end

  def getactor(index)
    return $game_party.actors[index]
  end
 
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    self.top_row = row if row < self.top_row
    if row > top_row + (page_row_max - 1)
      self.top_row = row - (page_row_max - 1)
    end
    y = (@index / @column_max) * 80 - self.oy
    self.cursor_rect.set(0, y, self.width - 32, 80)
  end

  def clone_cursor
    row = @index / @column_max
    self.top_row = row if row < self.top_row
    if row > top_row + (page_row_max - 1)
      self.top_row = row - (page_row_max - 1)
    end
    y = (@index / @column_max) * 80
    src_rect = Rect.new(0, 0, self.width, 88)
    bitmap = Bitmap.new(self.width-32, 88)
    bitmap.fill_rect(0, 0, self.width-32, 88, Color.new(255, 255, 255, 192))
    bitmap.fill_rect(2, 2, self.width-32, 88, Color.new(255, 255, 255, 80))
    self.contents.blt(0, y, bitmap, src_rect, 192)
  end
 
  def top_row
    return self.oy / 116
  end

  def top_row=(row)
    self.oy = (row % row_max) * 120
  end

  def page_row_max
    return (self.height / 80)
  end
end
=begin
#==============================================================================
# Window_Reserve
#==============================================================================

class Window_Reserve < Window_Selectable
 
  attr_reader :actors
 
  def initialize(scene)
    super(0, 0, 368, 320)
    setup
    @column_max = 3
    rows = @item_max / @column_max
    self.contents = Bitmap.new(width - 32, rows > 3 ? rows * 96 : height - 32)
    if $fontface != nil
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
    elsif $defaultfonttype != nil
      self.contents.font.name = $defaultfonttype
      self.contents.font.size = $defaultfontsize
    end
    self.contents.font.size = 24
    self.active, self.index, self.z = false, -1, 5000
    refresh
    if scene == Scene_Map && $game_system.order_only ||
        scene == Scene_Battle && $game_system.battle_order_only
      self.opacity = 128
    end
  end
 
  def setup
    @actors = []
    (1...$data_actors.size).each {|i|
        if !$game_party.actors.include?($game_actors[i]) &&
            !$game_actors[i].disabled_for_party || $all_available
          @actors.push($game_actors[i])
        end}
    @item_max = (@actors.size + $game_party.actors.size + 2) / 3 * 3
  end
 
  def refresh
    self.contents.clear
    @actors.each_index {|i|
        draw_actor_graphic(@actors[i], i % 3 * 112 + 16, i / 3 * 96 + 8)}
  end
 
  def getactor(index)
    return @actors[index]
  end
 
  def get_number
    return (@actors.find_all {|actor| actor != nil}).size if $all_available
    return (@actors.find_all {|actor| actor != nil &&
        !actor.not_available}).size
  end
 
  def setactor(index_1, index_2)
    @actors[index_1], @actors[index_2] = @actors[index_2], @actors[index_1]
    refresh
  end

  def setparty(index_1, index_2)
    @actors[index_1], $game_party.actors[index_2] =
        $game_party.actors[index_2], @actors[index_1]
    refresh
  end

  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    self.top_row = row if row < self.top_row
    self.top_row = row - (page_row_max-1) if row > top_row + (page_row_max-1)
    x = (@index % @column_max) * 112 + 8
    y = (@index / @column_max) * 96 - self.oy
    self.cursor_rect.set(x, y, 96, 96)
  end

  def clone_cursor
    row = @index / @column_max
    self.top_row = row if row < self.top_row
    if row > top_row + (page_row_max - 1)
      self.top_row = row - (page_row_max - 1)
    end
    x, y = (@index % @column_max) * 112 + 8, (@index / @column_max) * 96
    src_rect = Rect.new(0, 0, 96, 96)
    bitmap = Bitmap.new(96, 96)
    bitmap.fill_rect(0, 0, 96, 96, Color.new(255, 255, 255, 192))
    bitmap.fill_rect(2, 2, 92, 92, Color.new(255, 255, 255, 80))
    self.contents.blt(x, y, bitmap, src_rect, 192)
  end
 
  def top_row
    return self.oy / 96
  end

  def top_row=(row)
    row = row % row_max
    self.oy = row * 96
  end

  def page_row_max
    return (self.height - 32) / 96
  end
end

#==============================================================================
# Window_HelpStatus
#==============================================================================

class Window_HelpStatus < Window_Base

  def initialize(gotactor, scene)
    super(0, 0, 400 - 32, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    if $fontface != nil
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
    elsif $defaultfonttype != nil
      self.contents.font.name = $defaultfonttype
      self.contents.font.size = $defaultfontsize
    end
    self.contents.font.size = 24
    refresh(gotactor)
    self.active, self.z = false, 5000
    if scene == Scene_Map && $game_system.order_only ||
        scene == Scene_Battle && $game_system.battle_order_only
      self.opacity = 128
    end
  end
 
  def refresh(actor)
    self.contents.clear
    if actor != nil
      self.contents.font.color = normal_color
      if actor.not_available && !$all_available
        self.contents.draw_text(8, 0, 160, 32, 'not available', 0)
      end
      draw_actor_graphic(actor, 0, 40)
      draw_actor_name(actor, 160, 32)
      draw_actor_level(actor, 96, 32)
      draw_actor_hp(actor, 96, 64)
      draw_actor_sp(actor, 96, 96)
    end
  end
end
=end
#==============================================================================
# Window_Warning
#==============================================================================

class Window_Warning < Window_Base

  def initialize(mode, members)
    super(0, 0, 320, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    if $fontface != nil
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
    elsif $defaultfonttype != nil
      self.contents.font.name = $defaultfonttype
      self.contents.font.size = $defaultfontsize
    end
    self.contents.font.size = 24
    self.x, self.y, self.z = 320 - width/2, 240 - height/2, 9999
    self.contents.font.color = normal_color
    case mode
    when 0
      self.contents.draw_text(0, 0, 288, 32, 'You need a party', 1)
      num = members + $game_party.actors.nitems
      if $game_party.forced_size != nil && $game_party.forced_size < num
        num = $game_party.forced_size
      end
      self.contents.draw_text(0, 32, 288, 32, "of #{num} members!", 1)
    when 1
      self.contents.draw_text(0, 0, 288, 32, 'You cannot remove', 1)
      self.contents.draw_text(0, 32, 288, 32, 'the last party member!', 1)
    when 2
      self.contents.draw_text(0, 0, 288, 32, 'At least one member', 1)
      self.contents.draw_text(0, 32, 288, 32, 'has to be alive!', 1)
    end
  end
end

#==============================================================================
# Window_PartyCommand
#==============================================================================

class Window_PartyCommand
 
  alias init_eps_later initialize
  def initialize
    if $game_system.battle_switch
      if defined?(SDK) && self.is_a?(Window_HorizCommand)
        s1 = SDK::Scene_Commands::Scene_Battle::Fight
        s2 = SDK::Scene_Commands::Scene_Battle::Escape
        s3 = BlizzCFG::SWITCH_COMMAND
        super(640, [s1, s2, s3])
        disable_item(1) if !$game_temp.battle_can_escape
      else
        super(0, 0, 640, 64)
        self.contents = Bitmap.new(width - 32, height - 32)
        @commands = ['Fight', 'Escape', BlizzCFG::SWITCH_COMMAND]
        @item_max = @column_max = 3
        draw_item(0, normal_color)
        draw_item(1, $game_temp.battle_can_escape ?
            normal_color : disabled_color)
        draw_item(2, normal_color)
      end
      self.active, self.visible, self.index = false, false, 0
      self.back_opacity = 160
    else
      init_eps_later
    end
  end
 
  alias draw_item_eps_later draw_item
  def draw_item(index, color)
    if $game_system.battle_switch
      self.contents.font.color = color
      rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      self.contents.draw_text(rect, @commands[index], 1)
    else
      draw_item_eps_later(index, color)
    end
  end
 
  alias update_cursor_rect_eps_later update_cursor_rect
  def update_cursor_rect
    if $game_system.battle_switch
      self.cursor_rect.set(80 + index * 160, 0, 128, 32)
    else
      update_cursor_rect_eps_later
    end
  end
 
  def command(index = self.index)
    return @commands[index]
  end 
end

#==============================================================================
# Scene_PartySwitcher
#==============================================================================

class Scene_PartySwitcher
 
  def initialize(wipe_party = 0, reset = 0, store = 0)
    @wipe_party, @reset, @store = wipe_party, reset, store
    @current_window_temp = @reserve_window_temp = 0
    @scene_flag, @temp_window = false, ''
    @scene = $scene.class
  end
 
  def main
    if @store != 0
      swap_parties
      $scene = Scene_Map.new
      $game_player.refresh
      return
    end
    case @wipe_party
    when 1 then setup_forced_party
    when 2 then wipe_party
    when 3
      $game_system.stored_party = $game_party.actors
      wipe_party
    when 10 then $all_available = true
    end
    if @reset == 1
      (1...$data_actors.size).each {|i| $game_actors[i].not_available = false}
    end
    @current_window = Window_Current.new
    @current_window.index, @current_window.active = 0, true
    @spriteset = Spriteset_Map.new
    #@reserve_window = Window_Reserve.new(@scene)
    #@reserve_window.x, @reserve_window.y = 272, 160
    #@help_window = Window_HelpStatus.new(@reserve_window.getactor(0), @scene)
    #@help_window.x = 240 + 32
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @current_window.dispose
    $game_party.actors.compact!
    $game_player.refresh
    $all_available = false
  end
 
  def update
#begin
#    check = @reserve_window.index
#    if @reserve_window.active
#      reserve_update
#      @reserve_window.update
#    end
#    if check != @reserve_window.index
#      if @reserve_window.active
#        actor = @reserve_window.getactor(@reserve_window.index)
#      elsif @current_window.active
#        actor = @reserve_window.getactor(@reserve_window_temp)
#      end
#      @help_window.refresh(actor) if ['', 'Current'].include?(@temp_window)
#    end
#end
    current_update if @current_window.active
    if Input.trigger?(Input::B)
      if @scene_flag
        $game_system.se_play($data_system.cancel_se)
        @scene_flag, @temp_window = false, ''
        @current_window.refresh
        return
      end
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
    end
  end
   
  def current_update
    @current_window.update
    if Input.trigger?(Input::C)
      actor = @current_window.getactor(@current_window.index)
      if actor != nil && actor.forced_position != nil
        $game_system.se_play($data_system.buzzer_se)
      else
        if @scene_flag
          switch_members
        else
          $game_system.se_play($data_system.decision_se)
          @scene_flag, @temp_window = true, 'Current'
          @temp_actor_index = @current_window.index
          @current_window.clone_cursor
        end
      end
#begin
#    elsif Input.trigger?(Input::RIGHT)
#      if @scene == Scene_Map && $game_system.order_only ||
#          @scene == Scene_Battle && $game_system.battle_order_only
#        $game_system.se_play($data_system.buzzer_se)
#      else
#        $game_system.se_play($data_system.cursor_se)
#        @current_window.active = false
#        @reserve_window.active = true
#       @current_window_temp = @current_window.index
#        actor = @reserve_window.getactor(@reserve_window_temp)
#        @current_window.index = -1
#        @reserve_window.index = @reserve_window_temp
#       @help_window.refresh(actor) if !@scene_flag
#      end
#    end
    end
  end
#begin 
#  def reserve_update
#    if Input.trigger?(Input::C)
#      if @scene_flag
#        switch_members
#      else
#        $game_system.se_play($data_system.decision_se)
#        @scene_flag, @temp_window = true, 'Reserve'
#        @temp_actor_index = @reserve_window.index
#        @reserve_window.clone_cursor
#      end
#    elsif @reserve_window.index % 3 == 0 && Input.repeat?(Input::LEFT)
#     $game_system.se_play($data_system.cursor_se)
#      @reserve_window.active = false
#      @current_window.active = true
#      @reserve_window_temp = @reserve_window.index
#      @reserve_window.index = -1
#      @current_window.index = @current_window_temp
#    end
#  end
#end 
  def switch_members
    if @temp_window == 'Current' && @current_window.active
      @current_window.setactor(@temp_actor_index, @current_window.index)
    end
    $game_system.se_play($data_system.decision_se)
    @scene_flag, @temp_window = false, ''
  end
   
  def wipe_party
    $game_party.actors.each {|actor| actor.not_available = true if actor != nil}
    setup_forced_party(true)
    if $game_party.actors == []
      (1...$data_actors.size).each {|i|
          if !$game_actors[i].not_available ||
              $game_actors[i].disabled_for_party
            $game_party.actors.push($game_actors[i])
            return
          end}
    end
  end
 
  def setup_forced_party(flag = false)
    $game_party.actors, party = [], []
    (1...$data_actors.size).each {|i|
        if $game_actors[i] != nil && $game_actors[i].must_be_in_party &&
             (!$game_actors[i].disabled_for_party || flag) &&
             !$game_actors[i].not_available
          party.push($game_actors[i])
        end}
    party.clone.each {|actor|
        if actor.forced_position != nil
          $game_party.actors[actor.forced_position] = actor
          party.delete(actor)
        end}
    $game_party.actors.each_index {|i|
        $game_party.actors[i] = party.shift if $game_party.actors[i] == nil}
    $game_party.actors += party.compact
  end 
 
  def swap_parties
    $game_party.actors.compact!
    temp_actors = $game_party.actors
    temp_actors.each {|actor| actor.not_available = true}
    $game_system.stored_party.compact!
    $game_system.stored_party.each {|actor| actor.not_available = false}
    $game_party.actors = $game_system.stored_party
    $game_system.stored_party = (@store == 1 ? temp_actors : nil)
  end
   
end

#==============================================================================
# Scene_Battle
#==============================================================================
 
class Scene_Battle
 
  alias update_phase2_eps_later update_phase2
  def update_phase2
    update_phase2_eps_later
    if Input.trigger?(Input::C) && @party_command_window.index == 2
      $game_system.se_play($data_system.decision_se)
      @spriteset.dispose
      $scene = Scene_PartySwitcher.new
      $scene.main
      $scene = self
      @spriteset = Spriteset_Battle.new
      15.times {@spriteset.update}
      @status_window.refresh
      Graphics.transition(0)
    end
  end
 
  alias start_phase5_eps_later start_phase5
  def start_phase5
    exp = 0
    oldexp = 0
    if $game_party.actors.size > 0
      oldexp = $game_party.actors[0].exp
      start_phase5_eps_later
      exp = $game_party.actors[0].exp - oldexp if $game_party.actors.size > 0
    else
      start_phase5_eps_later
    end
    exp = @result_window.exp if exp == 0 && @result_window != nil
    exp = @exp if exp == 0 && @exp != nil
    if exp > 0
      (1...$data_actors.size).each {|i|
          if !$game_party.actors.include?($game_actors[i])
            if $game_actors[i].not_available
              addexp = exp * BlizzCFG::EXP_NOT_AVAILABLE / 100
            elsif $game_actors[i].disabled_for_party
              addexp = exp * BlizzCFG::EXP_DISABLED_FOR_PARTY / 100
            else
              addexp = exp * BlizzCFG::EXP_RESERVE / 100
            end
            $game_actors[i].exp += addexp
          end}
    end
  end 
end


Any help is appreciated.

10
Projects / Games / Re: [XP]Monstructs: Makers and Mayhem
February 01, 2019, 02:23:28 pm
It's been a heck of a long time, but THIS PROJECT ISN'T DEAD!

In fact, as of the last post here, THIS GAME HAS CONTINUED PROGRESS AND HAS PRODUCED IT"S FIRST BETA!

You can download and play this at the links BELOW:







FEEL FREE TO LEAVE YOUR FEEDBACK AT MY GAME DEV DISCORD!

Thanks for your time! :) :haha: :D
11
Thanks for the headsup. I'll post the results later on.
12
I got an error using that scriptlet:
name = 'face' + $game_variables
[920].to_s
$game_screen.pictures[12].show(name,
0, 120, 120, 100, 100, 255, 0)


Quote"TypeError occurred while running script. cannot convert Game_Variables into string"
13
I tried to use this:
$game_screen.pictures[12].show(Wraith, [0], 120, 120, 0, 0, 255, [0])

and got an error. So I messed up. I have a bunch of pictures, numbered 1-100, that correspond to the actor  IDs in my database. Each picture is called 'Face" followed by a number face1, face2, etc. How would I get it to show these pictures with a variable?

I'm Looking to do something similar to this. A combination of SHOW Choice and Pictures:
14
any way I could script call show a picture based on a variable? IE Show Picture 1 \V[1]?
15
New Projects / RMMV Slime Kingdom (IGMC Entry)
November 30, 2018, 08:56:55 pm

This is a Prototype submission for the IGMC 2018. I stopped progress on my current project, to try my hand at this. Leave me your thoughts, ideas and feedback. T.I.A.

https://itch.io/jam/igmc2018/rate/294024

Story/Plot
A lowly slime barely survives an encounter with an adventurer and limps(?) his way home. He's mad about his lot in life as just a exp grab for some dimwitted noob with a dream. He's tired of the oppression of those wandering brutes and their swords and spells.

He decides to fight back and create a safe place for slimes of all kinds to ooze about their lives. This is his story...

Setting
You know the basic trope. A mob decides to be a hero, after some kind of miraculous event. But THIS time, it's a slime determined to make a safe space for him and his. The world is just like any RPG world with heroes, demon kings, dragons, etc and our gooey little friend has to overcome them all. He'll need some help to avoid being a smear on some adventurer's boot. Can he recruit a strong enough team to accomplish his almost impossible goal?

SLIMES come in many different forms, based on environment/element:
Snots: Poison
Nectars: Healing
Magmas: Fire
Clays: Earth
Rimes: Ice
Mosses: Plant
Custards: Lightning
Gels: Water
Meringues: Air
Slags: Metal

Game Mechanics/Features

Synchronicity/Synergy affects most aspects of the this game. As you gather Party members, growing closer to them helps unlock many great benefits:

Spoiler: ShowHide
-Synergy: When two or more party members have a high enough affinity, they can unleash a Synergy Charge that gives a boost to skills and attacks.

-Synchro Skills (element): party members can gain skills that are a fusion of theirs and another members element.

-Fusions: All slimes can fuse together and with other creatures. (Not in Prototype, yet)

Other Features
-Equippable Talents: Sometimes enemies will give you skills that you can equip them with.

-Expandable Kingdom map: The more members you recruit, the bigger your kingdom grows. (Not available in-game, will add later)

-A unique Storybook-like Art style!

-Side-scrolling Maps: Because THEY'RE COOL!

-Sideview Battle System: Best fit for a game like this, IMHO...


CHARACTERS
These are seen throughout the prototype.
Spoiler: ShowHide

16
Script Troubleshooting / [RMMV] Follower script issues
November 01, 2018, 10:13:26 pm
Hey folks! I got a stumper for ya!!  :^_^\': I found a Follower script that help give ore control over the follower movement. However, it doesn't seem compatible with the latest version of MV. I also want to know if this can work for characters greater than the normal 48x 48 sprite style.

Here's the code

Spoiler: ShowHide
//============================================================================
// Karberus - Simple Follower Control
// SimpleFollowerControl.js
// Version 1.1
// No credit required. Can be used commercially or non commercially
//============================================================================
//============================================================================
var Imported = Imported || {};
Imported.SimpleFollowerOptions = true;

var Karberus = Karberus || {};
Karberus.FollowerOpt = Karberus.FollowerOpt || {};
//============================================================================
//============================================================================
/*:
* @plugindesc v1.1 Allows you simple control over your followers.
* @author Karberus
* @version 1.1
*
*
*
* @param Follower Collision
* @desc Whether events collide with your followers.
* Default: false
* @default false
*
*
*@help This Plugin allows you to have some control over your followers.
*
*After using the Plugin Command to choose which follower to move,
*in an event, use the Set Movement Route: Player command.
*
*By default, your followers will go through walls and such. You must set
*Through OFF in the set move route in order to disable this.
*
*If Through is set to OFF they will automatically skip if cannot move.
*As of now, you can't change their speed or frequency.
*You may only move one follower at a time.
*
*
* //==============================================================================
* //                  Plugin Commands
* //==============================================================================
*
* //Overrides Set Move Route to allow you some control over your followers.
*
* MoveFollower x   //Where x equals: 0 = Player, 1 = First Follower, and so on.
*
* //Stops all follower movement, allowing you to move without them following you.
*
* StopFollowers true/false  //Example: StopFollowers true
*
* //Allows you to show balloon animation on your followers
*
* BalloonFollower x  //Where x equals: 0 = player, 1 = First Follower, and so on.
*
* //==============================================================================
* //==============================================================================
*
*
*/
(function() {

Karberus.Parameters = PluginManager.parameters("SimpleFollowerControl");

Karberus.FollowerOpt.WhichFollower = 0;
Karberus.FollowerOpt.StopFollowers = false;
Karberus.FollowerOpt.FollowerCollision = String(Karberus.Parameters["Follower Collision"]);
Karberus.FollowerOpt.getIDforBalloon = 0;

var Karb_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;

    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        Karb_Game_Interpreter_pluginCommand.call(this, command, args);
         if (command === "MoveFollower") {
           Karberus.FollowerOpt.WhichFollower = args;
         }
         if (command === "StopFollowers") {
           Karberus.FollowerOpt.StopFollowers = String(args);
         }
         if (command === "BalloonFollower") {
           Karberus.FollowerOpt.getIDforBalloon = args[0];
         }
};

_karb_Game_Interpreter_command213 = Game_Interpreter.prototype.command213;
Game_Interpreter.prototype.command213 = function() {
  if (Karberus.FollowerOpt.getIDforBalloon > 0) {
    this._character = $gamePlayer._followers._data[Karberus.FollowerOpt.getIDforBalloon-1];
    if (this._character) {
        this._character.requestBalloon(this._params[1]);
        if (this._params[2]) {
            this.setWaitMode('balloon');
       }
    }
  }
  else {
    _karb_Game_Interpreter_command213.call(this);
  }
    return true;
};

Game_Player.prototype.isCollided = function(x, y) {
  if (eval(Karberus.FollowerOpt.FollowerCollision) === false) {
    if (this.isThrough()) {
        return false;
    } else {
        return this.pos(x, y);
    }
  }
  else {
    if (this.isThrough()) {
        return false;
    } else {
        return this.pos(x, y) || this._followers.isSomeoneCollided(x, y);
    }
  }
};


Game_Player.prototype.moveStraight = function(d) {
  if (eval(Karberus.FollowerOpt.StopFollowers) === false) {
    if (this.canPass(this.x, this.y, d)) {
        this._followers.updateMove();
    }
  }
    Game_Character.prototype.moveStraight.call(this, d);
};


Game_Followers.prototype.moveFollower = function(follower_direction) {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveStraight(follower_direction);
};
Game_Followers.prototype.moveDiagonallyFollower = function(follower_direction1, follower_direction2) {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveDiagonally(follower_direction1, follower_direction2);
};
Game_Followers.prototype.setDirectionFollower = function(follower_direction) {
  this._data[Karberus.FollowerOpt.WhichFollower-1].setDirection(follower_direction);
};
Game_Followers.prototype.jumpFollower = function(params, params) {
  this._data[Karberus.FollowerOpt.WhichFollower-1].jump(params, params);
};
Game_Followers.prototype.turnRight90Follower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnRight90();
};
Game_Followers.prototype.turnLeft90Follower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnLeft90();
};
Game_Followers.prototype.moveRandomFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveRandom();
};
Game_Followers.prototype.moveTowardPlayerFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveTowardPlayer();
};
Game_Followers.prototype.moveAwayFromPlayerFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveAwayFromPlayer();
};
Game_Followers.prototype.moveForwardFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveForward();
};
Game_Followers.prototype.moveBackwardFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].moveBackward();
};
Game_Followers.prototype.setThroughFollower = function(followerSwitch) {
  this._data[Karberus.FollowerOpt.WhichFollower-1].setThrough(followerSwitch);
};
Game_Followers.prototype.turn180Follower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turn180();
};
Game_Followers.prototype.turnRightOrLeft90Follower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnRightOrLeft90();
};
Game_Followers.prototype.turnRandomFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnRandom();
};
Game_Followers.prototype.turnTowardPlayerFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnTowardPlayer();
};
Game_Followers.prototype.turnAwayFromPlayerFollower = function() {
  this._data[Karberus.FollowerOpt.WhichFollower-1].turnAwayFromPlayer();
};

_Karb_Game_Character_updateRoutineMove = Game_Character.prototype.updateRoutineMove;
Game_Character.prototype.updateRoutineMove = function() {
    if (this._waitCount > 0) {
        this._waitCount--;
    } else {
        this.setMovementSuccess(true);
        var command = this._moveRoute.list[this._moveRouteIndex];
        if (command && Karberus.FollowerOpt.WhichFollower > 0) {
            this.processMoveFollowerCommand(command);
            this.advanceMoveRouteIndex();
        }
        else if (command) {
            _Karb_Game_Character_updateRoutineMove.call(this);
        }
    }
};

Game_Character.prototype.processMoveFollowerCommand = function(command) {
    var gc = Game_Character;
    var params = command.parameters;
    switch (command.code) {
    case gc.ROUTE_END:
        this.processRouteEnd();
        break;
    case gc.ROUTE_MOVE_DOWN:
        this._followers.moveFollower(2);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_LEFT:
        this._followers.moveFollower(4);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_RIGHT:
        this._followers.moveFollower(6);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_UP:
        this._followers.moveFollower(8);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_LOWER_L:
        this._followers.moveDiagonallyFollower(4,2);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_LOWER_R:
        this._followers.moveDiagonallyFollower(6,2);
          this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_UPPER_L:
        this._followers.moveDiagonallyFollower(4,8);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_UPPER_R:
        this._followers.moveDiagonallyFollower(6,8);
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_RANDOM:
        this._followers.moveRandomFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_TOWARD:
        this._followers.moveTowardPlayerFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_AWAY:
        this._followers.moveAwayFromPlayerFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_FORWARD:
        this._followers.moveForwardFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_MOVE_BACKWARD:
        this._followers.moveBackwardFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_JUMP:
        this._followers.jumpFollower(params[0], params[1]);
        this._waitCount = 16;
        break;
    case gc.ROUTE_WAIT:
        this._waitCount = params[0] - 1;
        break;
    case gc.ROUTE_TURN_DOWN:
        this._followers.setDirectionFollower(2);
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_LEFT:
        this._followers.setDirectionFollower(4);
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_RIGHT:
        this._followers.setDirectionFollower(6);
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_UP:
        this._followers.setDirectionFollower(8);
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_90D_R:
        this._followers.turnRight90Follower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_90D_L:
        this._followers.turnLeft90Follower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_180D:
        this._followers.turn180Follower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_90D_R_L:
        this._followers.turnRightOrLeft90Follower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_RANDOM:
        this._followers.turnRandomFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_TOWARD:
        this._followers.turnTowardPlayerFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_TURN_AWAY:
        this._followers.turnAwayFromPlayerFollower();
        this._waitCount = 16;
        break;
    case gc.ROUTE_SWITCH_ON:
        $gameSwitches.setValue(params[0], true);
        break;
    case gc.ROUTE_SWITCH_OFF:
        $gameSwitches.setValue(params[0], false);
        break;
    case gc.ROUTE_CHANGE_SPEED:
        this.setMoveSpeed(params[0]);
        break;
    case gc.ROUTE_CHANGE_FREQ:
        this.setMoveFrequency(params[0]);
        break;
    case gc.ROUTE_WALK_ANIME_ON:
        this.setWalkAnime(true);
        break;
    case gc.ROUTE_WALK_ANIME_OFF:
        this.setWalkAnime(false);
        break;
    case gc.ROUTE_STEP_ANIME_ON:
        this.setStepAnime(true);
        break;
    case gc.ROUTE_STEP_ANIME_OFF:
        this.setStepAnime(false);
        break;
    case gc.ROUTE_DIR_FIX_ON:
        this.setDirectionFix(true);
        break;
    case gc.ROUTE_DIR_FIX_OFF:
        this.setDirectionFix(false);
        break;
    case gc.ROUTE_THROUGH_ON:
        this._followers.setThroughFollower(true);
        break;
    case gc.ROUTE_THROUGH_OFF:
        this._followers.setThroughFollower(false);
        break;
    case gc.ROUTE_TRANSPARENT_ON:
        this.setTransparent(true);
        break;
    case gc.ROUTE_TRANSPARENT_OFF:
        this.setTransparent(false);
        break;
    case gc.ROUTE_CHANGE_IMAGE:
        this.setImage(params[0], params[1]);
        break;
    case gc.ROUTE_CHANGE_OPACITY:
        this.setOpacity(params[0]);
        break;
    case gc.ROUTE_CHANGE_BLEND_MODE:
        this.setBlendMode(params[0]);
        break;
    case gc.ROUTE_PLAY_SE:
        AudioManager.playSe(params[0]);
        break;
    case gc.ROUTE_SCRIPT:
        eval(params[0]);
        break;
    }
};

})();
//============================================================================================
//=======================================END FILE=============================================
//============================================================================================
17
I was wanting the just show the menu without the weird black background, if i could. Also, if I were to set the Puase to false would that fix the "bug"?

EDIT: Yes That Fixed It. THANKS FOR POINTING THAT OUT.

18
Maybe I mispoke. What I'm trying to do is have the flash happen once the variable is changed. I tried what you told me and the same thing happened. When I removed the script the Flash occured once the variable changed(which was automatic).
19
I can give you a google drive link. https://drive.google.com/drive/folders/19wpA6hy8Grw8r2tkTCh7GSG1LYdiPlk9?usp=sharing. You'll notice that when you start you're asked to use an item. When you heal with potion a variable (VAR1) is supposed to be increased by 1. But the script pauses this for some reason and then lets it update.

Thanks for looking.

20
Yes these are variables that you use in the regular events menu. I've tested it using a cond. branch to see if the variable changes or not. When the variable is "0", do one thing, but if it isn't, make a screen flash and play a sound. I've tried it with and without the script and noticed there was a delay.