Main Menu
  • Welcome to The RPG Maker Resource Kit.

Unlimited Actors Custom Menu System

Started by IAMFORTE, September 07, 2009, 12:18:10 AM

0 Members and 1 Guest are viewing this topic.

DeckuZora

If you can get to me when you get to me, that'd be great. Having an issue with a line in the v.2 of the script. I haven't changed anything in the script yet so it shouldn't be too difficult to find, but after I get to a certain point in the test playthrough, the menu stops working and trying to load a save from the title screen gets the error:

Script 'af_CMSv2.0' line 1057: EOFError occurred

End of file reached.


I cannot save a new game either, same error. I only can save if I delete previous saves, and sure enough, eventually, it happens all over again. I know what the error means, but I don't really understand how to fix it, so I figured it's about time I learned. Can you help me when you have the time?

IAMFORTE

okay

ramen, that looks liek a problem with the bitmaps of items, make sure everything is 100% a ok there

Decku, what is on that line?

DeckuZora

Line reads:
      @game_system = Marshal.load(file)

I attached a text document with the script too if that helps. Again, I didn't change anything though, so it should be fine.

meiko_suzuki

I'm having that same problem as well, actually, Decku o_o'
Game in the works:
The Adventures of the Generic Hero(ine)
Gameplay: 20%
Mapping: 10%
Characters: 80%
Events: 30%
Ways to Die: 30%
Cliches: 65/192
?? ??
PROFIT!

IAMFORTE

hmm

what may be the position of this script in your overall order?

try putting it first above all other custom scripts and see if that helps

DeckuZora

@ meiko_suzuki: I'm glad it's not just me anyway. Haha...

@ Ike: Nope =/ it didn't help any... I placed it before the custom scripts I had and I got the same error message...

IAMFORTE

try the script in a new project? is there a problem?

it might be something that is interfering with it


DeckuZora

In a new project, there is no problem as long as there is no save file previously there that's more then about an hour into the game. If I play on the new project and save regularly at set times, after a certain amount of playtime, the script will show the End of File message...

IAMFORTE

okay, this is something i can't figure out, I looked into it  a little bit while i waited for your response.  I can't fathom what the problem is. Sorry.

DeckuZora

It's okay, it's a bit of a shame though since I really like the menu system itself. Thank you for your help.

InvokingRainbows

Hey! :) Just want to say this is exactly the type of script I was looking for. Now here is the question. Is it compatible with any side-view battle systems? If not, could you make it so? That would be PERFECT! :)

Ramenuzumaki

Quote from: IAMFORTE on October 21, 2010, 09:20:57 PM

ramen, that looks liek a problem with the bitmaps of items, make sure everything is 100% a ok there


sorry for the mega delay. have been dealing with some rl issues, and working on my game. everything seems to be fine now. the only problem i have is the battle tests. i get an error:

---------------------------
Æsir
---------------------------
Script '    Menu' line 3277: NoMethodError occurred.

undefined method `size' for nil:NilClass
---------------------------
OK   
---------------------------


that line is:
    for i in 0...$recent_items.size
[spoiler][/spoiler]

IAMFORTE

I think that ahs aproblem to do with recent items, recall that it gives you an item and sends it to an imaginary inventory. Since recent items cannot be used, since there is no inventory. So, this problem can't really be fixed withought disabling the system :/
So as long as regular battles are unnafected, I'm afraid you'll have to deal with it.. :(

Gracie

I WANT TO USE THIS BUT MY GAME ONLY HAS ONE PLAYER IN IT.

Fuuuuuuuuuuuuuuuu..........

Oh well, it looks fantastic, great job!


IAMFORTE

I modified it to do thaqt for a project of mine :)

I'll send it to you later today

Ramenuzumaki

Quote from: IAMFORTE on November 26, 2010, 01:14:13 PM
I think that ahs aproblem to do with recent items, recall that it gives you an item and sends it to an imaginary inventory. Since recent items cannot be used, since there is no inventory. So, this problem can't really be fixed withought disabling the system :/
So as long as regular battles are unnafected, I'm afraid you'll have to deal with it.. :(

i see! :O
thats fine :3
i could probably make two projects, and have one just for testing battles without the CMS in it...
i do love the CMS though :3
its really awesome!
i dont know why it was crashing with my old door events though lol i removed the variables and it works fine now
[spoiler][/spoiler]

IAMFORTE

Sterotypical :)

i got you menu, let me know if anything doesn't work or if you need modifications to it

Gracie



Ramenuzumaki

hey Ike? how do i go about hiding the hp/mp bars n such in the menu? my Monster HP Bar script for my battles renders bars in the menu as well so i have double D:
[spoiler][/spoiler]

IAMFORTE

uhh, you might want to disable the bars in the monster hp/mp  script

Ramenuzumaki

i dont think i cant disable the hp bars in the hp script
when i tried to remove them with # and you get into a fight the game crashes XD
[spoiler][/spoiler]

IAMFORTE


Ramenuzumaki

here you are :3

Did you want a .txt file? i attached one in case
also in case it didnt work i added a spoiler

[spoiler]#===========================================================================
# *** HP/MP/ATB/LimitBreak bar Slanted Style Compatible with RTAB ***
# *** Version 2.1
#---------------------------------------------------------------------------
# by Clive
# based on Cogwheel's Bars and Sephiroth Spawn's Slanted Bars.
#---------------------------------------------------------------------------
# ----- GREAT THANKS to DerVVulfman for solving the lag problem
#------This is a plug and play script so it should work without any problem!
#=============================================================================

# If using with Limit Break, must paste BELOW the Limit Break script as it re-
# writes the 'Gauge drawing' system.  Will cause an error if not properly put.

# If used with Trickster's STEAL SCRIPT version 6 R1 (revision 1), then the
# height of RTAB's AT Bar (Draw Actor ATG) may not be smaller than 5 pixels
# due to a float-to-float error.  A height of 6 pixels is the smallest.


#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Get the current EXP
  #--------------------------------------------------------------------------
  def now_exp
    return @exp - @exp_list[@level]
  end
  #--------------------------------------------------------------------------
  # * Get the next level's EXP
  #--------------------------------------------------------------------------
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end


#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This class is for all in-game windows.
#==============================================================================

class Window_Base < Window 
 
  #==========================================================================
  # * Draw Slant Bar(by SephirothSpawn)
  #==========================================================================
  def draw_slant_bar(x, y, min, max, width = 152, height = 6,
      bar_color = Color.new(150, 0, 0, 255),
      end_color = Color.new(255, 255, 60, 255))
    # Draw Border
    for i in 0..height
      self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
    end
    # Draw Background
    for i in 1..(height - 1)
      r = 100 * (height - i) / height + 0 * i / height
      g = 100 * (height - i) / height + 0 * i / height
      b = 100 * (height - i) / height + 0 * i / height
      a = 255 * (height - i) / height + 255 * i / height
      self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
    end
    # Draws Bar
    for i in 1..( (min.to_f / max.to_f) * width - 1)
      for j in 1..(height - 1)
        r = bar_color.red * (width - i) / width + end_color.red * i / width
        g = bar_color.green * (width - i) / width + end_color.green * i / width
        b = bar_color.blue * (width - i) / width + end_color.blue * i / width
        a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
        self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
      end
    end
  end
 
  #==========================================================================
  # * Draw HP
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : draw spot width
  #==========================================================================
  alias :draw_actor_hp_hpsp :draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 144)   
    draw_slant_bar(x, y + 12, actor.hp, actor.maxhp, width, 6,
      bar_color = Color.new(150, 0, 0, 255),
      end_color = Color.new(255, 255, 60, 255))
    draw_actor_hp_hpsp(actor, x, y, width)
   end
  #==========================================================================
  # * Draw SP
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : draw spot width
  #==========================================================================
  alias :draw_actor_sp_hpsp :draw_actor_sp
  def draw_actor_sp(actor, x, y, width = 144)
    draw_slant_bar(x, y + 12, actor.sp, actor.maxsp, width, 6,
      bar_color = Color.new(0, 0, 155, 255),
      end_color = Color.new(255, 255, 255, 255))
    draw_actor_sp_hpsp(actor, x, y, width)
  end
  #==========================================================================
  # * Draw EXP
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #==========================================================================
  alias raz_bars_base_exp draw_actor_exp 
  def draw_actor_exp(actor, x, y)
    if actor.level == 99
      draw_slant_bar(x, y + 18, 1, 1, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
    else
      draw_slant_bar(x, y + 18, actor.now_exp, actor.next_exp, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(255, 255, 255, 255))
    end
    raz_bars_base_exp(actor, x, y)
  end
  #==========================================================================
  # * Draw Parameter
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     type  : parameter type (0-6)
  #==========================================================================
  alias raz_bars_base_parameter draw_actor_parameter 
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      para_color1 = Color.new(100,0,0)
      para_color2 = Color.new(255,0,0)
      para_begin = actor.atk
    when 1
      para_color1 = Color.new(100,100,0)
      para_color2 = Color.new(255,255,0)
      para_begin = actor.pdef
    when 2
      para_color1 = Color.new(100,0,100)
      para_color2 = Color.new(255,0,255)
      para_begin = actor.mdef
    when 3
      para_color1 = Color.new(50,0,100)
      para_color2 = Color.new(50,0,255)
      para_begin = actor.str
    when 4
      para_color1 = Color.new(0,100,0)
      para_color2 = Color.new(0,255,0)
      para_begin = actor.dex
    when 5
      para_color1 = Color.new(50,0,50)
      para_color2 = Color.new(255,0,255)
      para_begin = actor.agi
    when 6
      para_color1 = Color.new(0,100,100)
      para_color2 = Color.new(0,255,255)
      para_begin = actor.int
    end
    draw_slant_bar(x, y + 18, para_begin, 999, 155, 4, bar_color = para_color1,
      end_color = para_color2)
    raz_bars_base_parameter(actor, x, y, type)
  end
  #=========================================================================
  # * Draw Actor ATG
  #     actor : Actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : draw spot width
  #=========================================================================
  def draw_actor_atg(actor, x, y, width = 144, height = 6)
    if @at_gauge == nil
      # plus_x:     revised x-coordinate
      # rate_x:     revised X-coordinate as (%)
      # plus_y:     revised y-coordinate
      # plus_width: revised width
      # rate_width: revised width as (%)
      # height:     Vertical width
      # align1: Type 1 ( 0: left justify  1: center justify 2: right justify )
      # align2: Type 2 ( 0: Upper stuffing 1: Central arranging  2:Lower stuffing )
      # align3: Gauge type 0:Left justify 1: Right justify
      @plus_x = 0
      @rate_x = 0
      @plus_y = 16
      @plus_width = 0
      @rate_width = 100
      @width = @plus_width + width * @rate_width / 100
      @height = 6
      @align1 = 0
      @align2 = 1
      @align3 = 0
      # Gradation settings:  grade1: Empty gauge   grade2:Actual gauge
      # (0:On side gradation   1:Vertically gradation    2: Slantedly gradation?
      grade1 = 1
      grade2 = 0
      # Color setting. color1: Outermost framework, color2: Medium framework
      # color3: Empty framework dark color, color4: Empty framework light/write color
      color1 = Color.new(0, 0, 0)
      color2 = Color.new(255, 255, 192)
      color3 = Color.new(0, 0, 0, 192)
      color4 = Color.new(0, 0, 64, 192)
      # Color setting of gauge
      # Usually color setting of the time
      color5 = Color.new(0, 64, 80)
      color6 = Color.new(255, 255, 255)#(0, 128, 160)
      # When gauge is MAX, color setting
      color7 = Color.new(80, 0, 0)
      color8 = Color.new(255, 255,255) #(240,0,0)
      # Color setting at time of cooperation skill use
      color9 = Color.new(80, 64, 32)
      color10 = Color.new(255, 255, 255) #(240, 192, 96)
      # Color setting at time of skill permanent residence
      color11 = Color.new(80, 0, 64)
      color12 = Color.new(255,255, 255) #(240, 0, 192)
      # Drawing of gauge
      gauge_rect_at(@width, @height, @align3, color1, color2, color3, color4,
          color5, color6, color7, color8, color9, color10, color11, color12,
          grade1, grade2)
    end
    # Variable at substituting the width of the gauge which is drawn
    if actor.rtp == 0
      at = (width + @plus_width) * actor.atp * @rate_width / 10000
    else
      at = (width + @plus_width) * actor.rt * @rate_width / actor.rtp / 100
    end
    # AT Width Check
    if at > width
      at = width
    end
    # Revision such as the left stuffing central posture of gauge
    case @align1
    when 1
      x += (@rect_width - width) / 2
    when 2
      x += @rect_width - width
    end
    case @align2
    when 1
      y -= @height / 2
    when 2
      y -= @height
    end
    # Draw Border
    for i in 0..height
      self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 2 , 3,
        Color.new(50, 50, 50, 255))
    end
    # Draw Background
    for i in 1..(height - 1)
      r = 100 * (height - i) / height + 0 * i / height
      g = 100 * (height - i) / height + 0 * i / height
      b = 100 * (height - i) / height + 0 * i / height
      a = 255 * (height - i) / height + 255 * i / height
      self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 3, 3,
        Color.new(r, b, g, a))
    end
    # Rect_X control
    if @align3 == 0
      rect_x = 0
    else
      x += @width - at - 1
      rect_x = @width - at - 1
    end

    # Color setting of gauge
    if at == width
    #Gauge drawing at the time of MAX
      for i in 0..height
        self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y -i +
        @plus_y, @at_gauge, Rect.new(rect_x, @height * 2, at, @height))
      end
    else
      if actor.rtp == 0
        for i in 0..height
          # Usually gauge drawing of the time
          self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y- i +
            @plus_y, @at_gauge,Rect.new(rect_x, @height, at, @height))
        end
      else
        if actor.spell == true
          for i in 0..height
            #Gauge drawing at time of cooperation skill use
            self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
              @plus_y, @at_gauge, Rect.new(rect_x, @height * 3, at, @height))
          end
        else
          for i in 0..height             
            # Gauge drawing at time of skill permanent residence
            self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
              @plus_y, @at_gauge, Rect.new(rect_x, @height * 4, at, @height))
          end
        end
      end
    end
  end
end
[/spoiler]
[spoiler][/spoiler]

starfoxluver

wow that sounds cool...Especially for my game (since i finally got myself RPG Maker XP I might as well try out some scripts) which has tons of playable characters.
THE CAKE IS A LIE!!!!!!!!!!!!!!!!!

Jaiden

#149
Could I request this script without the Beastiary and Recent Items? I think the recent items are giving me a serious problem because it crashes every time I open the menu then do something to change the items. And the Beastiary is just dead weight.

In case it helps, the error I get is
Script 'CMS_Menu' line 3267: NoMethodError occurred.

undefined method `push' for 14:Fixnum


If it helps, I'm also running Mr Mo's ABS

Sorry, I know it's a bit much to ask.