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.

Topics - Leon_Westbrooke

1
New Projects / Elements of Travance
October 04, 2009, 11:54:27 am
Brief Synopsis
Leon and Jon were just two friends in the small town of Warlyth, until the stumbled upon a couple soldiers roughing up a merchant.  Now, they have been thrust into an adventure that will take them across world of Travance.  Join them, along with Ark, Kara, Lillian and Nisage as they travel the world in an effort to thwart the plans of Vladmir; who wishes to employ the legendary Staff of Elements to gain wealth and power.

Characters
characters: ShowHide





Screenshots
screenshots: ShowHide









Features

  • Learn skills from various pieces of equipments.
  • Equip active and passive skills to empower your characters.
  • Challenging puzzles.
  • An old-school styled game to revive the original feel of an RPG.
  • A unique shop system.
  • Locate elemental sprites to teach your characters new abilities.
Credits
Dubealex
Rythe
Cogwheel
Jesse
Sithjester
Naramura
Guillaume777
Wyzrd
Arkbennett
Nisage
Kiriashi
(If i forgot about you, please, pm me so I may make the correction)

Notes
I made this game as an old-school homage.  If the storyline seems 'quick', and the cut-scenes a little lax, or the story seems a little 'cliche', that is the reason why.  
Further, to all who play the demo:  Please, keep a list of all minor and major bugs.  I would really appreciate this, as well as during each 'segment' of the story, record your play time, so I can give an approximate playtime.
One more note:  Jon does talk with that strange accent.

Demo v1.1
Demo from 2-shared (31.6MB, 2 hr playtime)
2
Recruitment / Tech demo needs testing
September 20, 2009, 11:32:04 pm
I know, I am a bit of a ghost here, and for this I apologize.  I have just been busy with life and working on different unique ideas.  With this one, I just need people to test this tech demo, and see if they can find any flaws in the graphics of it all.

Now, as for the description:  This is a first-person labyrinth style tech demo.  This is one of many systems needed for the game I am working on, but with all the work it entails, it is difficult for me to test every nook and cranny.

'screenshot': ShowHide



Demo Download (700kb) (2shared)
3
RMXP Script Database / [XP] Screen Fog Debug menu
July 19, 2009, 07:08:27 pm
Screen Fog Debug Menu
Authors: Leon_Westbrooke
Version: 1.1
Type: Debug System


Introduction
This script is designed to assist in setting the fog exactly right in an RmXP project.



Features
Allows you to set the fog in-game and see what it looks like at that exact moment.



Screenshots
'screenshot': ShowHide






Script
'fogdebug': ShowHide
#===============================================================================
#  Leon_Westbrooke's Fog Debug Menu  (a.k.a. Leon)
#-------------------------------------------------------------------------------
#  Release: July 1st, 2009
#  version: 1.0
#-------------------------------------------------------------------------------
#  Instructions:
# Place above Main, but below all other default scripts.
# Any imported fogs must be added to the 'Names' array in the 'Fogs' module.
# Press F6 in Debug mode to call up this menu.
# Use the various controls to set your fog.
#-------------------------------------------------------------------------------
#  Features:
# Allows you to choose a fog for your current map, and set the following
# parameters:
#  Hue
#  Opacity
#  Blending
#  Starting Location (x and y)
#  Speed of Fog Scrolling (x and y)
#  Zoom
#  Tone
#
# This will only give you the values.  You MUST set these values up in an
# event to get the effect of them.  So, in essence, this to keep from having
# to test over and again.
#-------------------------------------------------------------------------------
#  Notes:
# The Starting Locations (ox and oy) will go haywire if you set the speed
# scroll options.  This is normal as it is just showing its current x and y
# of the upper left corner of the original fog graphic.
#-------------------------------------------------------------------------------
#  Credits:
# Credits go to Leon/Leon_Westbrooke for this one. It is really the same
# person.  I just added the '_Westbrooke' to I.D. myself better.
#-------------------------------------------------------------------------------


#===============================================================================
#  *  module Fogs
#===============================================================================
module Fogs
 #------------------------------------------------------------
 #  Add any imported fogs to this list.
 #------------------------------------------------------------
 Names = [ '',
'001-Fog01',
'002-Clouds01',
'003-Shade01',
'004-Shade02',
'005-Sandstorm01',
'006-Sandstorm02',
'007-Water01',
'008-Water02',
'009-Water03',
'010-Water04']
end
#===============================================================================
#  *  END Module
#===============================================================================



#===============================================================================
#  *  Game_Map
#===============================================================================
class Game_Map
 attr_accessor :fog_ox
 attr_accessor :fog_oy
 attr_accessor :fog_tone
end
#===============================================================================
# END Game_Map
#===============================================================================


#===============================================================================
#  *  Scene_Map
#===============================================================================
class Scene_Map
 
 alias leon_fogdebug_scenemap_update update

 def update
leon_fogdebug_scenemap_update
if $DEBUG and Input.press?(Input::F6)
 $scene = Scene_FogChange.new
end
 end
end
#===============================================================================
# END Scene_Map
#===============================================================================


#===============================================================================
#  *  Window_FogNames
#===============================================================================
class Window_FogNames < Window_Selectable
 def initialize
super(0, 0, 192, 160)
self.contents = Bitmap.new(width - 32, height - 32)
@item_max = Fogs::Names.size
@index = 0
@active = true
self.opacity = 96
refresh
 end
 
 def item
return @data[index]
 end
 
 
 def refresh
if self.contents != nil
 self.contents.dispose
 self.contents = nil
end
@data = []
for i in 0...Fogs::Names.size
 @data.push(Fogs::Names[i])
end
@item_max = @data.size
if @item_max > 0
 self.contents = Bitmap.new(width - 32, row_max * 32)
 for i in 0...@item_max
draw_item(i)
 end
end
 end
 
 def draw_item(index)
item = @data[index]
x = 4
y = index * 32
self.contents.draw_text(x, y, 160, 32, item)
 end
end
#===============================================================================
# END Window_FogNames
#===============================================================================


#===============================================================================
#  *  Window_FogSettings
#===============================================================================
class Window_FogSettings < Window_Selectable
 def initialize
super(0, 160, 192, 288)
self.contents = Bitmap.new(width - 32, height - 32)
@item_max = 8
self.index = -1
self.active = false
self.opacity = 96
refresh
 end
 
 def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 128, 32, "Hue:")
self.contents.draw_text(0, 32, 128, 32, "Opacity:")
self.contents.draw_text(0, 64, 128, 32, "Blending:")
self.contents.draw_text(0, 96, 128, 32, "Starting X:")
self.contents.draw_text(0, 128, 128, 32, "Starting Y:")
self.contents.draw_text(0, 160, 128, 32, "Move X:")
self.contents.draw_text(0, 192, 128, 32, "Move Y:")
self.contents.draw_text(0, 224, 128, 32, "Zoom:")

self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 160, 32, $game_map.fog_hue.to_s, 2)
self.contents.draw_text(0, 32, 160, 32, $game_map.fog_opacity.to_s, 2)
self.contents.draw_text(0, 64, 160, 32, $game_map.fog_blend_type.to_s, 2)
self.contents.draw_text(0, 96, 160, 32, $game_map.fog_ox.to_s, 2)
self.contents.draw_text(0, 128, 160, 32, $game_map.fog_oy.to_s, 2)
self.contents.draw_text(0, 160, 160, 32, $game_map.fog_sx.to_s, 2)
self.contents.draw_text(0, 192, 160, 32, $game_map.fog_sy.to_s, 2)
self.contents.draw_text(0, 224, 160, 32, $game_map.fog_zoom.to_s, 2)
 end
 
 def update_cursor_rect

if @index < 0
 self.cursor_rect.empty
else
 self.cursor_rect.set(100, @index * 32, 64, 32)
end
 end
end
#===============================================================================
# END Window_FogSettings
#===============================================================================


#===============================================================================
#  *  Window_FogTint
#===============================================================================
class Window_FogTint < Window_Selectable
 def initialize
super(192, 0, 192, 160)
self.contents = Bitmap.new(width - 32, height - 32)
@item_max = 4
self.index = -1
self.active = false
self.opacity = 96
refresh
 end
 
 def refresh
self.contents.clear
self.contents.draw_text(4, 0, 160, 32, "Red")
self.contents.draw_text(4, 32, 160, 32, "Green")
self.contents.draw_text(4, 64, 160, 32, "Blue")
self.contents.draw_text(4, 96, 160, 32, "Gray")
self.contents.draw_text(-4, 0, 160, 32, $game_map.fog_tone.red.to_i.to_s, 2)
self.contents.draw_text(-4, 32, 160, 32, $game_map.fog_tone.green.to_i.to_s, 2)
self.contents.draw_text(-4, 64, 160, 32, $game_map.fog_tone.blue.to_i.to_s, 2)
self.contents.draw_text(-4, 96, 160, 32, $game_map.fog_tone.gray.to_i.to_s, 2)
 end
end
#===============================================================================
# END Window_FogTint
#===============================================================================


#===============================================================================
#  *  Scene_FogChange
#===============================================================================
class Scene_FogChange
 def main
@spriteset = Spriteset_Map.new
@name_window = Window_FogNames.new
@settings_window = Window_FogSettings.new
@tint_window = Window_FogTint.new

Graphics.transition
loop do
 Graphics.update
 Input.update
 update
 if $scene != self
break
 end
end
Graphics.freeze

@name_window.dispose
@settings_window.dispose
@spriteset.dispose
@tint_window.dispose
 end
 
 def update
$game_map.update
@spriteset.update

if @name_window.active
 update_name
 return
end

if @settings_window.active
 update_settings
 return
end

if @tint_window.active
 update_tint
 return
end
 end
 
 def update_name
@name_window.update
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or Input.repeat?(Input::DOWN) or Input.repeat?(Input::UP)
 $game_map.fog_name = @name_window.item
end
if Input.trigger?(Input::C)
 @name_window.active = false
 @settings_window.active = true
 @settings_window.index = 0
end
if Input.trigger?(Input::B)
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Map.new
end
 end
 
 def update_settings
@settings_window.update
case @settings_window.index
when 0
 if Input.trigger?(Input::RIGHT)
$game_map.fog_hue += 1
if $game_map.fog_hue >= 360
 $game_map.fog_hue = 360
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_hue -= 1
if $game_map.fog_hue <= 0
 $game_map.fog_hue = 0
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_hue += 5
if $game_map.fog_hue >= 360
 $game_map.fog_hue = 360
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_hue -= 5
if $game_map.fog_hue <= 0
 $game_map.fog_hue = 0
end
@settings_window.refresh
 end
when 1
 if Input.trigger?(Input::RIGHT)
$game_map.fog_opacity += 1
if $game_map.fog_opacity >= 255
 $game_map.fog_opacity = 255
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_opacity -= 1
if $game_map.fog_opacity <= 0
 $game_map.fog_opacity = 0
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_opacity += 5
if $game_map.fog_opacity >= 255
 $game_map.fog_opacity = 255
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_opacity -= 5
if $game_map.fog_opacity <= 0
 $game_map.fog_opacity = 0
end
@settings_window.refresh
 end
when 2
 if Input.trigger?(Input::RIGHT)
$game_map.fog_blend_type += 1
if $game_map.fog_blend_type >= 2
 $game_map.fog_blend_type = 2
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_blend_type -= 1
if $game_map.fog_blend_type <= 0
 $game_map.fog_blend_type = 0
end
@settings_window.refresh
 end
when 3
 if Input.trigger?(Input::RIGHT)
$game_map.fog_ox += 0.1
if $game_map.fog_ox >= 640
 $game_map.fog_ox = 640
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_ox -= 0.1
if $game_map.fog_ox <= -640
 $game_map.fog_ox = -640
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_ox += 0.5
if $game_map.fog_ox >= 640
 $game_map.fog_ox = 640
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_ox -= 0.5
if $game_map.fog_ox <= -640
 $game_map.fog_ox = -640
end
@settings_window.refresh
 end
when 4
 if Input.trigger?(Input::RIGHT)
$game_map.fog_oy += 0.1
if $game_map.fog_oy >= 640
 $game_map.fog_oy = 640
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_oy -= 0.1
if $game_map.fog_oy <= -640
 $game_map.fog_oy = -640
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_oy += 0.5
if $game_map.fog_oy >= 640
 $game_map.fog_oy = 640
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_oy -= 0.5
if $game_map.fog_oy <= -640
 $game_map.fog_oy = -640
end
@settings_window.refresh
 end
when 5
 if Input.trigger?(Input::RIGHT)
$game_map.fog_sx += 1
if $game_map.fog_sx >= 256
 $game_map.fog_sx = 256
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_sx -= 1
if $game_map.fog_sx <= -256
 $game_map.fog_sx = -256
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_sx += 5
if $game_map.fog_sx >= 256
 $game_map.fog_sx = 256
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_sx -= 5
if $game_map.fog_sx <= -256
 $game_map.fog_sx = -256
end
@settings_window.refresh
 end
when 6
 if Input.trigger?(Input::RIGHT)
$game_map.fog_sy += 1
if $game_map.fog_sy >= 256
 $game_map.fog_sy = 256
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_sy -= 1
if $game_map.fog_sy <= -256
 $game_map.fog_sy = -256
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_sy += 5
if $game_map.fog_sy >= 256
 $game_map.fog_sy = 256
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_sy -= 5
if $game_map.fog_sy <= -256
 $game_map.fog_sy = -256
end
@settings_window.refresh
 end
when 7
 if Input.trigger?(Input::RIGHT)
$game_map.fog_zoom += 1
if $game_map.fog_zoom >= 800
 $game_map.fog_zoom = 800
end
@settings_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_zoom -= 1
if $game_map.fog_zoom <= 100
 $game_map.fog_zoom = 100
end
@settings_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_zoom += 5
if $game_map.fog_zoom >= 800
 $game_map.fog_zoom = 800
end
@settings_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_zoom -= 5
if $game_map.fog_zoom <= 100
 $game_map.fog_zoom = 100
end
@settings_window.refresh
 end
end
if Input.trigger?(Input::C)
 @settings_window.index = -1
 @settings_window.active = false
 @tint_window.active = true
 @tint_window.index = 0
end
if Input.trigger?(Input::B)
 $game_system.se_play($data_system.cancel_se)
 @name_window.active = true
 @settings_window.index = -1
 @settings_window.active = false
end
 end
 
 def update_tint
@tint_window.update
case @tint_window.index
when 0
 if Input.trigger?(Input::RIGHT)
$game_map.fog_tone.red += 1
if $game_map.fog_tone.red >= 255
 $game_map.fog_tone.red = 255
end
@tint_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_tone.red -= 1
if $game_map.fog_tone.red <= -255
 $game_map.fog_tone.red = -255
end
@tint_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_tone.red += 5
if $game_map.fog_tone.red >= 255
 $game_map.fog_tone.red = 255
end
@tint_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_tone.red -= 5
if $game_map.fog_tone.red <= -255
 $game_map.fog_tone.red = -255
end
@tint_window.refresh
 end
when 1
 if Input.trigger?(Input::RIGHT)
$game_map.fog_tone.green += 1
if $game_map.fog_tone.green >= 255
 $game_map.fog_tone.green = 255
end
@tint_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_tone.green -= 1
if $game_map.fog_tone.green <= -255
 $game_map.fog_tone.green = -255
end
@tint_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_tone.green += 5
if $game_map.fog_tone.green >= 255
 $game_map.fog_tone.green = 255
end
@tint_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_tone.green -= 5
if $game_map.fog_tone.green <= -255
 $game_map.fog_tone.green = -255
end
@tint_window.refresh
 end
when 2
 if Input.trigger?(Input::RIGHT)
$game_map.fog_tone.blue += 1
if $game_map.fog_tone.blue >= 255
 $game_map.fog_tone.blue = 255
end
@tint_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_tone.blue -= 1
if $game_map.fog_tone.blue <= -255
 $game_map.fog_tone.blue = -255
end
@tint_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_tone.blue += 5
if $game_map.fog_tone.blue >= 255
 $game_map.fog_tone.blue = 255
end
@tint_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_tone.blue -= 5
if $game_map.fog_tone.blue <= -255
 $game_map.fog_tone.blue = -255
end
@tint_window.refresh
 end
when 3
 if Input.trigger?(Input::RIGHT)
$game_map.fog_tone.gray += 1
if $game_map.fog_tone.gray >= 255
 $game_map.fog_tone.gray = 255
end
@tint_window.refresh
 elsif Input.trigger?(Input::LEFT)
$game_map.fog_tone.gray -= 1
if $game_map.fog_tone.gray <= -255
 $game_map.fog_tone.gray = -255
end
@tint_window.refresh
 elsif Input.repeat?(Input::RIGHT)
$game_map.fog_tone.gray += 5
if $game_map.fog_tone.gray >= 255
 $game_map.fog_tone.gray = 255
end
@tint_window.refresh
 elsif Input.repeat?(Input::LEFT)
$game_map.fog_tone.gray -= 5
if $game_map.fog_tone.gray <= -255
 $game_map.fog_tone.gray = -255
end
@tint_window.refresh
 end
end
if Input.trigger?(Input::C)
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Map.new
end
if Input.trigger?(Input::B)
 @tint_window.active = false
 @tint_window.index = -1
 @settings_window.active = true
 @settings_window.index = 0
end
 end
end
#===============================================================================
# END Scene_FogChange
#===============================================================================




Instructions
Place the script below the default scripts, and above main.
In game, press 'F6' to access the Fog debug menu.



Compatibility
No known issues.



Credits and Thanks

  • Just myself.





Author's Notes
4
Welcome! / Hey
July 19, 2009, 06:44:20 pm
Hey, I disappeared for quite some time, due to lack of interest in the RmXP project.  Now that i am starting to get back into it, I thought I'd drop by and see how things are going.
5
Script Troubleshooting / Does this syntax exist?
March 29, 2008, 09:05:28 pm
Is there a syntax that will allow text to skip down to the next line?  In the help file, it says to use "\n" for a new line, but it did nothing for me.  if there isn't a syntax for it, please, let me know. 
6
Projects / Games / Shadows of the Forgotten
March 27, 2008, 04:30:13 pm
Shadows of the Forgotten

Story
"Five years ago, in the midst of battle, General Tyeg was betrayed by his own soldiers under his command."  This was a popular story told by Maraux to the kids of the small village of Warlyth, when the war was over.  However, this story always enraged General Tyeg's daughter, Annabel.  Armed with anger and thoughts of revenge, she decides she wants to set out for the man who killed her father, Nyral.

You play as Reiner, General Tyeg's son.  One who would rather stay at home and put the past behind him.  However, with Annabel's wanting to leave, you must set out with her and help her find truth and peace, so that she too can finally put the past behind her.


Characters

General Tyeg
  A general in the King's army.  He was believed to have died at the hands of his own soldiers.

Reiner
  A easy-going young man, and older brother to Annabel.

Annabel
  A young lady bent on revenging the death of her father, who died at the hands of Nyral.

Maraux
  An old friend of General Tyeg.  He practically raised Reiner and Annabel.


Features

  • Keep tabs on your current party with a graphic HUD.
  • Although you level, it won't raise your stats.  You must create stat enhancing items.  Just bear in mind your level determines the maximum.
  • The Real Time Active Battle System (by Cogwheel) will keep you on your toes as you battle fierce enemies.
  • A weapon system where the weapon itself will level.  The higher the level, the more customizable the weapon is with the use of 'Tags'.
  • Hidden tag keywords will enhance your weapons even more.
  • Learn skills with a new Chart System.  Customize the skills each character learns using Chart Points gained by leveling.



Screenshots
Spoiler: ShowHide







Demo
http://www.sendspace.com/file/8hy16g


Other Notes
The font Monotype Corsiva is recommended, but not required:
Font

Credits
This is everyone who helped.
  Graphics:
    Wyzrd
    Ryan
    Phlegming Street Studios
   
  Scripting:
    Dubealex
    Ryethe
    Blizzard
    Guillaume777
    Rataime
    Cogwheel
    Leon
 
  Eventing:
    Arkbennett
    Leon
   
  System Development
    Arkbennett
    ViolentPurge
    Leon
   
  Story:
    Desiree
    Leon
    Phlegming Street Studios
   
  Beta Testers and Proofreaders:
    Arkbennett
    Wyzrd
    The Flaming Red
    Massampage
    Vikirosen
   
  Special Thanks to:
    Fish E Bloop
    Tiberius
7
RMXP Script Database / [XP] New Shop Interface
January 23, 2008, 04:53:16 pm
New Shop Interface
Authors: Leon_Westbrooke
Version: 1.1
Type: Shopping System
Key Term: Custom Shop System



Introduction
This script is for all of those who want a new way of looking at the shopping menu.



Features


  • Replaces the old shop system.



Screenshots
Spoiler: ShowHide




Script
Place the script below all defaults, but above main:
shop_system.txt
shop_system.txt mirror


Instructions
Please look in-script.



Compatibility
There are no known compatability issues.



Credits and Thanks
The only person to really credit is me, Leon_Westbrooke.
8
RMXP Script Database / [XP] Party Switcher
January 23, 2008, 03:05:26 am
Party Switcher
Authors: Leon_Westbrooke
Version: 2.0
Type: Custom Component
Key Term: Player / Party / Troop Add-on



Introduction
This script is to allow an easy way to add/remove actors from the party, and create a reserve party.


Features


  • Allows the player to make a party from the minimum to maximum size.
  • Extra members are limitless.
  • You can remove a person from the party and put it into reserve using:
           $game_party.remove_actor_to_party(actor_id)
  • You can remove a person from the reserve if they exist, and them into the party:
           $game_party.add_actor_to_party(actor_id)
  • You can lock a character in reserve or active party by using:
           $game_party.locked.push(actor_id)
  • You can set the maximum and minimum number of the party in-game using:
           $game_party.min_size = x
           $game_party.max_size = x
           (NOTE: Do NOT make the max size lower than the minimum size.)
  • Allows you to use the default add/remove actors command.
           (NOTE: If you remove an actor with this method, he is gone from both
                  the party and the reserve members.)



    Screenshots
    Spoiler: ShowHide





    Script
    Spoiler: ShowHide

    [/list]

    #===================================
    #  Party Changing System by Leon_Westbrooke
    #   -v 1.1
    #----------------------------------------------------------------------
    #  Instructions:  Place above main, but below all other default scripts.

    #  Features: 
    #    -Allows the player to make a party from the minimum to maximum size.
    #    -Extra members are limitless.
    #    -You can remove a person from the party and put it into reserve using:
    #       $game_party.remove_actor_to_party(actor_id)
    #    -You can remove a person from the reserve if they exist, and them into
    #     the party:
    #       $game_party.add_actor_to_party(actor_id)
    #    -You can lock a character in reserve or active party by using:
    #       $game_party.locked.push(actor_id)
    #    -You can set the maximum and minimum number of the party in-game using:
    #       $game_party.min_size = x
    #       $game_party.max_size = x
    #       (NOTE: Do NOT make the max size lower than the minimum size.)
    #    -Allows you to use the default add/remove actors command.
    #       (NOTE: If you remove an actor with this method, he is gone from both
    #              the party and the reserve members.)
    #
    #  Credits:
    #    This setup uses SephirothSpawn's coding to simplify the cursor's position.
    #
    #
    #  Command Quick-list:
    #    $game_party.remove_actor_from_party(actor_id)
    #      -Removes an actor from the party, and puts them in reserve.
    #    $game_party.add_actor_to_party(actor_id)
    #      -Replaces the last actor in the party with the actor in reserve.
    #    $game_party.locked.push(actor_id)
    #      -Locks the actor in place.
    #    $game_party.min_size = x
    #    $game_party.max_size = x
    #      -Sets the minimum and maximum party size.
    #
    #
    #  Notes:
    #    This script rewrites these methods from Game_Party:
    #      add_actor
    #      remove_actor
    #===================================

    #==================================================
    #  Game_Party
    #==================================================
    class Game_Party

      attr_accessor :party_members
      attr_accessor :move
      attr_accessor :locked
      attr_accessor :min_size
      attr_accessor :max_size
     
      alias leon_partyswitch_gameactor_initialize initialize

      def initialize
        leon_partyswitch_gameactor_initialize
        @party_members = []
        #  Edit :This is to change if an actor is locked or not. To lock them, add
        #        their id to the array below.
        @locked = [1, 6]
        @min_size = 1
        @max_size = 4
      end
     
     
      def add_actor(actor_id)
        actor = $game_actors[actor_id]
        if @actors.size < @max_size
          unless @actors.include?(actor)
            unless @party_members.include?(actor.id)
              @actors.push(actor)
              $game_player.refresh
            end
          end
        else
          unless @party_members.include?(actor.id)
            unless @actors.include?(actor)
              @party_members.push(actor.id)
              $game_player.refresh
            end
          end
        end
      end
     
      def remove_actor(actor_id)
        @actors.delete($game_actors[actor_id])
        @party_members.delete(actor_id)
        $game_player.refresh
      end
     
      def remove_actor_from_party(actor_id)
        if @actors.include?($game_actors[actor_id])
          unless @party_members.include?(actor_id)
            @party_members.push(actor_id)
            @party_members.sort!
          end
        end
            @actors.delete($game_actors[actor_id])
        $game_player.refresh
      end

      def add_actor_to_party(actor_id)
        if @party_members.include?(actor_id)
          if @actors[@max_size - 1] != nil
            @party_members.push(@actors[@max_size - 1].id)
            @actors.delete_at(@max_size - 1)
          end
          @actors.push($game_actors[actor_id])
          @party_members.delete(actor_id)
        end
      end
    end
    #==================================================
    #  END Game_Party
    #==================================================

    #==============================================================================
    # ** Window_Selectable
    #==============================================================================
    class Window_Selectable < Window_Base
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :cursor_height
      #--------------------------------------------------------------------------
      # * Alias Initialization
      #--------------------------------------------------------------------------
      alias custom_int initialize
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x, y, width, height)
        custom_int(x, y, width, height)
        @cursor_height = 32
      end
      #--------------------------------------------------------------------------
      # * Get Top Row
      #--------------------------------------------------------------------------
      def top_row
        # Divide y-coordinate of window contents transfer origin by 1 row
        # height of @cursor_height
        return self.oy / @cursor_height
      end
      #--------------------------------------------------------------------------
      # * Set Top Row
      # row : row shown on top
      #--------------------------------------------------------------------------
      def top_row=(row)
        # If row is less than 0, change it to 0
        if row < 0
          row = 0
        end
        # If row exceeds row_max - 1, change it to row_max - 1
        if row > row_max - 1
          row = row_max - 1
        end
        # Multiply 1 row height by 32 for y-coordinate of window contents
        # transfer origin
        self.oy = row * @cursor_height
      end
      #--------------------------------------------------------------------------
      # * Get Number of Rows Displayable on 1 Page
      #--------------------------------------------------------------------------
      def page_row_max
        # Subtract a frame height of 32 from the window height, and divide it by
        # 1 row height of @cursor_height
        return (self.height - 32) / @cursor_height
      end
      #--------------------------------------------------------------------------
      # * Update Cursor Rectangle
      #--------------------------------------------------------------------------
      def update_cursor_rect
        # If cursor position is less than 0
        if @index < 0
          self.cursor_rect.empty
          return
        end
        # Get current row
        row = @index / @column_max
        # If current row is before top row
        if row < self.top_row
          # Scroll so that current row becomes top row
          self.top_row = row
        end
        # If current row is more to back than back row
        if row > self.top_row + (self.page_row_max - 1)
          # Scroll so that current row becomes back row
          self.top_row = row - (self.page_row_max - 1)
        end
        # Calculate cursor width
        cursor_width = self.width / @column_max - 32
        # Calculate cursor coordinates
        x = @index % @column_max * (cursor_width + 32)
        y = @index / @column_max * @cursor_height - self.oy
        if self.active == true
          # Update cursor rectangle
          self.cursor_rect.set(x, y, cursor_width, @cursor_height)
        end
      end
    end

    #==============================================================================
    # ** Window_Command
    #==============================================================================
    class Window_Command < Window_Selectable
      #--------------------------------------------------------------------------
      # * Unisable Item
      # index : item number
      #--------------------------------------------------------------------------
      def undisable_item(index)
        draw_item(index, normal_color)
      end
    end
    #============================================================


    #==================================================
    #  Window_Party_Info
    #==================================================
    class Window_Party_Info < Window_Base
      def initialize
        super(0, 0, 640, 64)
        self.contents = Bitmap.new(width - 32, height - 32)
        refresh
      end

      def refresh
        self.contents.clear
        self.contents.draw_text(0, 0, 614, 32, "Please make a party of #{$game_party.min_size.to_s} to #{$game_party.max_size.to_s} members.", 1)
      end
    end
    #==================================================
    #  END Window_Party_Info
    #==================================================


    #==================================================
    #  Window_Party_Slots
    #==================================================
    class Window_Party_Slots < Window_Selectable

      def initialize
        super(0, 64, 320, 416)
        @item_max = 4
        self.contents = Bitmap.new(width - 32, height - 32)
        self.index = 0
        self.active = true
        refresh
      end
     
      def actors
        if @data[index] != nil
          return @data[index]
        end
      end

      def refresh
        @data = []
        if self.contents != nil
          self.contents.dispose
          self.contents = nil
        end
        for i in 0...$game_party.actors.size
          @data.push($game_party.actors[i])
        end
        @item_max = (@data.size + 1)
        if @item_max > 0
          if @item_max > 4
            @item_max = 4
          end
          self.contents = Bitmap.new(width - 32, row_max * 96)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        @actor = @data[index]
        y = index * 96
        x = 4
        if $game_party.locked.include?(@actor.id)
          self.contents.font.color = disabled_color
          opacity = 128
        else
          self.contents.font.color = normal_color
          opacity = 255
        end
        if @actor != nil
          self.contents.draw_text(x + 100, y, 192, 32, @actor.name)
          draw_actor_hp(@actor, x + 100, y + 32)
          draw_actor_sp(@actor, x + 100, y + 64)
          bitmap = RPG::Cache.character(@actor.character_name, @actor.character_hue)
          cw = bitmap.width / 4
          ch = bitmap.height / 4
          facing = 0
          src_rect = Rect.new(0, facing * ch, cw, ch)
          self.contents.blt(x + 24, y + 32, bitmap, src_rect, opacity)
        end
      end
     
      def update_cursor_rect
        if @index > -1
          x = 0
          y = index * 96
          self.cursor_rect.set(x, y, (self.width - 32), 96)
        else
          self.cursor_rect.empty
        end
      end
     
    end
    #==================================================
    #  END Window_Party_Slots
    #==================================================


    #==================================================
    #  Window_Party_Extras
    #==================================================
    class Window_Party_Extras < Window_Selectable
      def initialize
        super(320, 64, 320, 416)
        self.cursor_height = 96
        self.contents = Bitmap.new(width - 32, height - 32)
        self.index = -1
        self.active = false
        refresh
      end
     
      def actors
        if @data != nil
          return @data[index]
        end
      end

      def refresh
        if self.contents != nil
          self.contents.dispose
          self.contents = nil
        end
        @data = []
        for i in 0...$game_party.party_members.size
          @data.push($game_actors[$game_party.party_members[i]])
        end
        @data.push(nil)
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 32, row_max * 96)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        @actor = @data[index]
        y = index * 96
        x = 4
        if $game_party.locked.include?(@actor.id)
          self.contents.font.color = disabled_color
          opacity = 128
        else
          self.contents.font.color = normal_color
          opacity = 255
        end
        if @actor != nil
          self.contents.draw_text(x + 100, y, 192, 32, @actor.name)
          draw_actor_hp(@actor, x + 100, y + 32)
          draw_actor_sp(@actor, x + 100, y + 64)
          bitmap = RPG::Cache.character(@actor.character_name, @actor.character_hue)
          cw = bitmap.width / 4
          ch = bitmap.height / 4
          facing = 0
          src_rect = Rect.new(0, facing * ch, cw, ch)
          self.contents.blt(x + 24, y + 32, bitmap, src_rect, opacity)
        end
      end
     
    end
    #===================================
    #  END Window_Party_Extras
    #===================================


    #===================================
    #  Scene_Party_Change
    #===================================
    class Scene_Party_Change
      def main
       
        @info_window = Window_Party_Info.new
        @slot_window = Window_Party_Slots.new
        @extra_window = Window_Party_Extras.new
       
        Graphics.transition
        loop do
          Graphics.update
          Input.update
          update
          if $scene != self
            break
          end
        end
        Graphics.freeze
       
        @info_window.dispose
        @slot_window.dispose
        @extra_window.dispose
      end
     
      def update
        @slot_window.update
       
        if @slot_window.active
          update_slot
          return
        end
       
        if @extra_window.active
          update_extra
          return
        end
      end
     
      def update_slot
        if Input.trigger?(Input::B)
          if $game_party.actors.size >= $game_party.min_size and $game_party.actors.size <= $game_party.max_size
            $game_player.refresh
            $game_system.se_play($data_system.cancel_se)
            $scene = Scene_Map.new
          else
            $game_system.se_play($data_system.buzzer_se)
          end
        end
       
        if Input.trigger?(Input::C)
          if $game_party.locked.include?(@slot_window.actors.id) == true
            if @slot_window.index != 0
              $game_system.se_play($data_system.decision_se)
              @slot_window.active = false
              @extra_window.active = true
              @extra_window.index = 0
            else
              $game_system.se_play($data_system.buzzer_se)
            end
          else
            $game_system.se_play($data_system.decision_se)
            @slot_window.active = false
            @extra_window.active = true
            @extra_window.index = 0
          end
        end
      end
     
      def update_extra
        @extra_window.update
        if Input.trigger?(Input::B)
          $game_system.se_play($data_system.cancel_se)
          @slot_window.active = true
          @extra_window.active = false
          @extra_window.index = -1
        end
       
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
          if $game_party.locked.include?(@extra_window.actors.id)
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          if @extra_window.actors == nil
            if $game_party.actors[@slot_window.index] != nil
              $game_party.party_members.push($game_party.actors[@slot_window.index].id)
              $game_party.remove_actor_from_party($game_party.actors[@slot_window.index].id)
              $game_party.party_members.sort!
              @slot_window.refresh
              @extra_window.refresh
              @slot_window.active = true
              @extra_window.active = false
              @extra_window.index = -1
            else
              @slot_window.active = true
              @extra_window.active = false
              @extra_window.index = -1
            end
          else
            if $game_party.actors[@slot_window.index] != nil
              hold = @extra_window.actors
              $game_party.party_members.push($game_party.actors[@slot_window.index].id)
              $game_party.actors[@slot_window.index] = hold
              $game_party.party_members.delete_at(@extra_window.index)
              $game_party.party_members.sort!
              @slot_window.refresh
              @extra_window.refresh
              @slot_window.active = true
              @extra_window.active = false
              @extra_window.index = -1
            else
              $game_party.actors[@slot_window.index] = @extra_window.actors
              $game_party.party_members.delete_at(@extra_window.index)
              $game_party.party_members.sort!
              @slot_window.refresh
              @extra_window.refresh
              @slot_window.active = true
              @extra_window.active = false
              @extra_window.index = -1
            end
          end
        end
      end
     
    end




    Instructions
    Instructions can be found in the header.


    Compatibility
    No known compatability issues.


    Credits and Thanks

    • Created by Leon_Westbrooke
    • Creds to SephirothSpawn for some help with the scrolling cursor.



    Author's Notes
    Additional notes are found in the script.
9
Castlevania CoD style Crafting System
Authors: Leon_Westbrooke
Version: 1.3
Type: Crafting
Key Term: Misc System



Introduction
This script is based on the Castlevania: Curse of Darkness system.  It allows you to specify 1 or more recipes per item made.  For instance, 2 ways to make a 'Full Potion'.


Features


  • Set up 1 or more recipes per item.
  • You can set up if the menu automatically update (or not) if you have the items to craft a new item.
  • You can set this to be 'recipe based'.



Screenshots




Demo
Craft_System_Demo.zip


Instructions
The instructions are in the script.


Compatibility
I know of no known compatability issues.


Credits and Thanks
Please, credit Leon for this script, but I in turn, credit Tiberius_XXVII for teaching me to script.


Author's Notes
No notes.
10
Welcome! / Hey, I'm Leon
January 18, 2008, 02:23:33 am
Hey everyone, I'm Leon (or Leon_Westbrooke).  I am a scripter, though not even near the best.  I just hope I can contribute here.