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

1
Hey guys, I'm working with RMXP and in my game, the player can go into skills and choose a "change kata" ability which calls a choice box with a list of katas to change into. What I want to do is after that choice, the skill status screen where I chose the "change kata" ability is called. That way you don't have to open the menu again. Anyone know the call for skill status screen from script event?

2
Here's my problem:
http://dl.dropbox.com/u/5185958/Skill%20Status%20Window%20Issue.PNG

Any ideas on how I would alter the numbers?

I'm using rpg maker xp and these are the scripts that i'm currently using, though none of them should alter the skill status screen...
Tigurus Fay's One-Player Menu Script
Tigurus Fay's One-Man Duel Battlesystem

The_Falcon's Power Word Shield Script
Game_guy's First Strike States script
Game_guy's First Strike Skills script
Lanzer's Counter Attack script
Blizzard's Custom Stat Growing System
Blizzard's Easy LvlUp Notifier Script

In that order. You'd think the one-player menu script alters something but i can't see where it alters skill status screen to do that...I've uploaded my project here:
*removed*
If someone could take a look and help me out with the numbers I'd be in your debt! Thanks in advance!
3
Hey! So I'm using Lanzer's Counter script in rpg maker xp:


#==========================================================================
# ** UL Counter Attack
#==========================================================================
# Uncle Lanzer
# Version 1
# 21.09.10
#==========================================================================
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#  
#  This work is protected by the following license:
# #----------------------------------------------------------------------------
# #  
# #  Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# #  ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #  
# #  You are free:
# #  
# #  to Share - to copy, distribute and transmit the work
# #  to Remix - to adapt the work
# #  
# #  Under the following conditions:
# #  
# #  Attribution. You must attribute the work in the manner specified by the
# #  author or licensor (but not in any way that suggests that they endorse you
# #  or your use of the work).
# #  
# #  Noncommercial. You may not use this work for commercial purposes.
# #  
# #  Share alike. If you alter, transform, or build upon this work, you may
# #  distribute the resulting work only under the same or similar license to
# #  this one.
# #  
# #  - For any reuse or distribution, you must make clear to others the license
# #    terms of this work. The best way to do this is with a link to this web
# #    page.
# #  
# #  - Any of the above conditions can be waived if you get permission from the
# #    copyright holder.
# #  
# #  - Nothing in this license impairs or restricts the author's moral rights.
# #  
# #----------------------------------------------------------------------------

#################
#               #  
# CONFIGURATION #
#               #
#################
# IT`S PRETTY SIMPLE........ JUST KILL THE BATMAN! <-- FORGET THAT -.-U
# MAKE A "(YOUR COUNTER NAME)" STATE
# UL_COUNTER_STATES = { A => [ B,C]}
# A = THE COUNTER STATE
# B = RATE OF SUCCESS
# C = STRENGHT OF COUNTER ( % OF A NORMAL ATTACK)
Scene_Battle::UL_Counter_States = { 20 => [100,100]} #ADD MORE BY THE SAME SYNTAX


# MESSAGGE WHEN COUNTER
Scene_Battle::UL_Counter_Messages = ['\m Counter!']

# CHECKING SCRIPT
if !@ul_counterattack_disabled

# START
class Game_Battler
 alias lanzer_counter_battler_atkeff attack_effect
 def attack_effect(attacker)
   lanzer_counter_battler_atkeff(attacker)
   if $scene.active_battler == attacker
     $scene.ul_atkcounter_test(self)
   end
 end
end

class Scene_Battle
 attr_accessor :active_battler
 
 def ul_atkcounter_test(battler)
   ul_temp = UL_Counter_States.keys
   for i in 0...ul_temp.size
     if battler.state?(ul_temp[i])
       if UL_Counter_States[ul_temp[i]][0] > rand(99)
         @ul_counter = UL_Counter_States[ul_temp[i]][1]
         @ul_countertarget = battler
         return
       end
     end
   end
 end
 
 alias lanzer_counter_battle_up4s5 update_phase4_step5
 def update_phase4_step5
   lanzer_counter_battle_up4s5
   if @ul_countertarget != nil
     @phase4_step = 1337  # LEET
     @ul_atkcounter = 28
   end
 end
 
 def ul_counter_update
   if @ul_countertarget.dead? or @ul_atkcounter == 0
     @ul_atkcounter = nil
     @ul_counter = nil
     @ul_countertarget = nil
     @phase4_step = 6
     return
   end
   @ul_atkcounter -= 1
   if @ul_atkcounter == 10
     @ul_countertarget.animation_id = @ul_countertarget.animation1_id
     @active_battler.animation_id = @ul_countertarget.animation2_id
     ul_temp = rand(UL_Counter_Messages.size)
     ul_temp = UL_Counter_Messages[ul_temp].clone
     ul_temp.gsub!(/\\[Mm]/) { @ul_countertarget.name }
     @help_window.set_text(ul_temp, 1)
     @active_battler.attack_effect(@ul_countertarget)
     if !@active_battler.damage.is_a?(String)
       @active_battler.hp += @active_battler.damage
       @active_battler.damage = @active_battler.damage * @ul_counter / 100
       @active_battler.hp -= @active_battler.damage
       @status_window.refresh
     end
     @active_battler.damage_pop = true
   end
 end
 
 alias lanzer_counter_battle_update update
 def update
   if @ul_atkcounter != nil
     ul_counter_update
   end
   lanzer_counter_battle_update
 end
end

#--------------------------------------------------------------------------#
end


And I'd like to be able to tie the success rate of the counter to a variable in-game. That way as the player progresses through the game they can "level up" counter. Any ideas on how I can make this happen? Thanks in advance! :D
4
So, I revisited an older project of mine and am thinking about bringing it back. The question is, should this be a book/movie or a game? Does killing off all the characters kill the story? Or is it ok since you are basically dealing with an antihero cast of characters? Here is the concept:
"Concept": ShowHide
You have 13 characters from the get go. They are a unit of knights that are going down a path of insanity. In the beginning, I give the players the feel that the actions that the knights take are justifiable. At one point, the knights liken themselves as invinicible gods of death and get in over their heads, completely losing the original focus for their own arrogant agendas. In a large scale battle gone wrong, they lose four of their number including the leader & second in command. After narrowly escaping, the remaining knights have a self-examination and begin to doubt themselves because of their foolish actions so far. It is in this self-examination that a new leader rises from among them and they decide to go off and fight one more battle to fulfill their original goals. They plan to go all out with no room for failure; however, one of them during that self-examination comes to the conclusion that all that they have been doing has been mindless killing and that all their sins are just catching up with them. During the final battle, that character betrays the group by letting in the enemy soldiers and ultimately commits suicide. The remaining knights fight an epic final battle against the opposing knights with many of the mini-battles having double knockouts(they both die). Only the main character remains at the end of the battle, having been unable to succeed in their final push. It is at this time while the winning knights are interrogating him, that the player finds out that there really is no reason to what they have been doing, they weren't even knights to begin with because the kingdom that they "represented" was fictious. They were just wandering insane serial killers. At the moment of his execution, standing beside the pikes with the heads of his former comrades, the main character is asked for his final words. He smiles and says "I am fear, I am destruction, I am death." The reason that he is smiling is because *pause for effect* his ropes have come lose. He kills the executioner and the guards beside him, takes the executioner's giant ax and leaps out into the crowd swinging before he is finally taken out by one of the holy knights he had fought previously. It ends with their "fictious" benefactor, who was hidden in the crowd, walking away.

Now, in terms of playability, death is really tough on players in rpgs...specifically if they put any time or effort into fixing them up. So what I was thinking about doing, was creating a point system where you upgrade the characters armor, weapons, skills, etc with points. That way when they croak you get the points back in a point pool. Their spirits live on with you, etc etc lol thoughts?
5
Troubleshooting / Help / 100% hit success?
November 03, 2010, 04:28:21 am
I'm actually surprised that this question doesn't get asked more often...*eyes bloodshot from searching forums for previous entry on subject* anywho, I'm using RPG Maker XP with Tons and Blizzard's Easy Overdrive system. Now, I have two issues with hit success. The first being with overdrive skills. Is there a way to make these skills specifically have a 100 % success rate? or unresistable? The second question is in regards to the hit rates for mages and priests who, though they have rods/hammers that deal low damage, have the hit rate as if they were weilding a two handed ax <.< i am fine with making their attack hit every time no miss. Is there a way that this can be done? I tried adding a "hit" state to the armor of the mage/priest that increased the hit rate to 200% but they still couldn't hit the broad side of a barn with a stick lol other then assigning the actors a ridiculously large amount of dex, I can't think of a way around this. Thoughts? Thanks forum :)
6
I didn't really know where to post this question...guess this is as good a place as any :^_^': I found an artist to work on my project Knights of the Black Gate and I am new to the whole commissioned thing. I want to give the artist something for their work but I dont know what is fair or expected. Any ideas on this?

Thanks :)
7
Hey there you sexy forum :naughty: I have a project that I am trying to get the ball rolling on:
http://forum.chaos-project.com/index.php/topic,6143.0.html?

I need major help in the Battler artwork, Sprite artwork, and Maps areas. I have the storyboard already written(that was the fun part hehe), music has already been chosen, and I have begun work on the database section. Just trying to get a team together so that we can get this game out there for people to enjoy ;) comment or pm me and I'll give you the specifics. Thank you for your interest!
8


:^_^': looks like I finally have a chance to post what I am working on hehe Tell me what you think forum, I'm also recruiting for the project but I'll post a thread about that in it's proper place momentarily. Well, I am going to present the story to you in two parts, the part that I am selling the game as and the part where I rock your world ;)

What is the game?: ShowHide
The game revolves around thirteen knights that are apart of a failing country's elite assassination group, Black Gate. Their ailing King, Lord Ainsley, orders these men to take back the former lands of this great nation by slaughtering all of those in the neighboring countries that have encroached upon them. Lord Ainsley has unleashed hell upon these lands and you are his demons, his gods of death. You are the knights of the Black Gate.

The Creed
We are fear.
We are destruction.
We are death.

The whispers among the townspeople
Thirteen warriors, clad in minacing black armor, come and go in the shadows.
Their eyes glow with a ghastly blue. Their armor smokes from the fires of hell itself.
Their weapons, carved from brimstone, are embedded with dark runes of unnatural power.
They say that when they are near you can hear the very souls of the dead cry out as if to warn the living.
They kill without mercy, emotion, or reason. They come and go, leaving only death and destruction in their wake.

Characters
1.Leon "The Eye"; Younger brother of Alexander and the "main character". He is quiet and speaks only when necessary. The "Eye" of the group, which means that he has a supernaturally high sensing ability which allows him to watch the backs of the group, see how strong the opponents are, and understand the nature of magical artifacts or traps. As the main character, he is more of, as his name implies, the "eye". He watches what all the others do unbiased, for he feels no emotion. He only wants to know what is going on at all times. A paranoid guy, but he has every reason to be. When asked why he slaughters, he replied "You never know what someone might do. I would rather kill them then trust my back to them."

2.Alexander of the Black Lightning; The de facto leader of the group. He is calm, decisive, and always seems to be one step ahead. His power is that of legends and is the "face" of the knights. When asked why he slaughters, he replied "It is the will of Lord Ainsley".

3.Richard; Alexander's right hand man. Quick to take charge and show that his way is superior to Alexander's. He fought with Alexander once for the "position" of leader and was soundly defeated. Longs only to prove himself. Despises Leon, because he sees him as creepy and feels like he is always watching him. When asked why he slaughters, he replied "I can't have Alexander killing more then me. I will prove to him, Lord Ainsley, and to my countrymen that I am a legendary warrior!"

4.Waldron; extremely gifted in magic. Once a high mage in the prestigeous Halls of Magic, he was banished due to his obsession with fire which scorch a forth of Halls of Magic killing several hundred mages and students in the process. When asked why he slaughters, he replied "There are those that just want to watch this world burn. I'll admit...I am a tad partial to the sight myself."

5.Renfred; the healer of the group and the only knight to usually refrain from the slaughter or is as far back as possible. After watching his brothers in arms come to him time and time again stained with blood, he begins to question their purpose and has tendences to sympathize. When asked why he slaughters, he replied "There is peace in the silence that follows death".

6.Otto; A genius with everything from magic to science. His past is a mystery, though it is believed that he once served as a lead weapons developer for a powerful empire but was dismissed because he attempted to mix science with magic. When asked why he slaughters, he replied "Finding ways to kill people is what I am good at. At least, this way I can be as 'creative' as I want."

7.Julian; He is tall, medium down hair, and built like a sprinter, carries a large sword and takes pride in not allowing any stragglers to escape. Julian never gives away too much emotion, mainly a straight face quiet killer. Normally pairs off with Emmett, though not as "energetic" as his counterpart Julian enjoys the way that Emmett works as he always gets himself in the "best situations". When asked why he slaughters, he replied "...to test my limits"

8.Grimaldo; The shield bearer. His purpose is be an insurmountable wall. They say he cannot feel pain anymore and that he longs to once again feel it's sensation. When asked why he slaughters, he replied "They failed to interest me".  

9.Emmett; A berserker who lives for battle and battle alone. His lust for blood has driven him insane and nothing will stop him from viciously getting what he lusts for. When asked why he slaughters, he replied "I want to see it. I want to see it bad. I want to see it more then you can comprehend! The color of your blood."

10.Douglas; The only knight to wield two swords. Douglas is skitzophrenic and is constantly in an argument with himself. The two personalities are both quite dominant yet exhibit two very different fighting styles which he uses to his advantage in combat. One is extremely eratic like a wild animal while the other is very refined as though he were trained in a dojo. When asked why he slaughters, he replied "We are one in battle."

11.Edric; Aristocratic, elegant, and charismatic. Edric uses a slightly thinner sword and is quite the fencer. To him, there is a beauty that can only be seen in the eyes of those that are departing for the black gate(dying). He longs for a beautiful death, where he can see the beauty of the black gate. Has a superiority complex. When asked why he slaughters, he replied "I want my beautiful self to be the last that they see. That moment when man sees the black gate...I want them to compare our beauty. Though as beautiful as I am...I can't help but feel a tad jealous of the possible greater beauty that they are beholding."

12.Ewald; Follows orders exactly. He is appalled at what they other empires have done to the country that he serves. Kicking around a smaller kingdom, stealing it's land, and turning it's people into slaves. Viewing himself as a revolutionary and an avenger of the people, he slaughters. When asked why he slaughters, he replied "For my country, for my King, and for almighty Justice I will show no mercy."

13.Aziz the all powerful; Twice the size of a normal man he is a mute and ruthless to a fault. He is the "sweeper" of the group. The one called in only when the enemy is very fierce or very many. He listens only to Alexander or Lord Ainsley himself. When asked why he slaughters, he continued to.


Gameplay: ShowHide
World
This game will have two views, a world view and an area view. The player will be able to walk on the world view map and once they reach a village, city, or garrison then a scenario(or a battle) will commence. The area view is the view the player will have when walking through a scenario(normal mapset).

Battle System
When the player launches into a scenario a screen with pop up allowing the player to divide up his pool of thirteen knights to suite the situation. This is similar to how the warfare battlesystem of final fantasy 3(6) was where you divided your pool of characters into three teams. Once the teams have been decided the groups will be sent to their starting positions on the map and will then be forced to carry out the conditions for victory(which is anything from set explosives to slaughtering the entire village. The player will also have to switch between the groups and can do so while out of battle. The fighting itself will be done via the standard menu based battle system.

Allocating Points
For those of you who read the spoiler, characters will die in this game(like die within the storyline) and I chose to not have the player level certain characters only to have them die and wasted all that time. So what I have devised is a point system, where the player gains blood points for killing individual people, completing storyline scenarios, and destroying areas. These blood points will accumulate in a pool which can be used to allocate points to the entire team. Skills will be gained and upgraded this way as well. When a character dies all of the points that were allocated to him will be refunded back to the pool to be divided out amongst the other characters.

Progression & Rewards System
The storyline will tell the player to go to certain places and destroy them. I wanted the give the player the option to go above and beyond by allowing them access to destroy the surrounding area first if they so desired before starting the scenario in the area that pushes the story. I also want to reward players for going the extra mile by having a system in place that allows the player, after so many villages have been destroyed, to view the pasts of the thirteen knights as well as some other extra surprises.



I hope I at least peeked your interest ;) Questions, Comments, Critiques, Jokes?
9
Chat / At work -_-#
April 15, 2010, 10:58:23 am
Yeesh, talk about busy <.< the life of an IT guy has it's ups and downs. The downs being when you get swamped after your two coworkers decide to take a week vacation together while you are stuck by yourself supporting a 600 employee building :'( I just want to make video games and write storylines out for my projects...hehe oh well, today is my "friday" so hopefully I'll be able to get some stuff done and post my projects here  :^_^': see you when I see you, forum!

-Will
10
Who are you?

I am a witch born of the shadows who has known only emptiness.

Though I have been released from the abysmal dark, there is still a lingering void within
me. At one time, I believed that I had found completeness through love; however, the
hands of time and fate are cruel, leaving only emptiness.

I was deemed too dangerous by those of my blood and the man I loved was taken from
me by the seduction of power. He aided in sealing me away, and here I sit, in the
darkness, covered head to foot in seals, bound by my own folly.

I cannot move, I cannot see, I can only sit here in my prison, frozen in time, waiting...
Time envelops both love and pain, until they fade away. Color fades to grey.

Though I cannot remember when, a whisper began echoing deep within my heart, fainter
then drops of evening dew. A glimmer of light appeared in the distance, hardly visible.
May this prayer escape my prison and reach the heavens where you are, so far away.

Please find me, oh glimmering light, that I might be free from this unbearable void.



Comments? Critiques? Jokes? hehe
11
Welcome! / Hi :)
April 10, 2010, 02:55:00 pm
I've been around this forum for awhile, but never really posted much until recently *shrug* just wanted to say hi ;) My name is Will, i'm 22, and I'm shooting to become a game designer/story board writer xD I pretty much dabble in every aspect of the game making process out of necessity since I can't really seem to pull a team together *shrug* hmmm I have an associate's in computer programming...and I live in a small apartment in Houston Texas :) that's me in a nutshell haha well see you guys in the forum ;)

-Will
12
I'm using RPG Maker XP and what i want is for my first character/actor (001) to be catagorized as must_be_in_party and also be forced into the first position unable to be moved. All the instructions for the script are right in front of my face with explicit detail...but i cant seem to grasp where i am supposed to make these changes or how i am supposed to call the script, as the instructions say, in an event. Any ideas?

Here is the script:
Spoiler: ShowHide
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Easy Party Switcher by Blizzard
# Version 2.0b
# Date: 21.05.2006
# Date v1.1: 25.05.2006
# Date v1.2b: 27.05.2006
# Date v1.5b: 3.11.2006
# Date v1.51b: 29.11.2006
# Date v1.52b: 6.12.2006
# Date v1.7b: 23.2.2007
# Date v1.8b: 30.4.2007
# Date v2.0b: 7.8.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Special Thanks to:
# Zeriab for pointing out a few glitches and shortening the code. =D
#
#
# IMPORTANT NOTE:
#
# Be sure to set the MAX_PARTY to the maximum size of your party.
# There is already a preconfiguration of 4.
#
#
# Compatibility:
#
# 98% compatible with SDK v1.x. 90% compatible with SDK 2.x. Can cause
# incompatibility issued with other Party Change Systems. WILL corrupt your old
# savegames.
#
#
# Features:
#
# - set party members for "not _available" (shown transparent in the reserve)
# - remove party members from the reserve list ("disabled_for_party")
# - set party members, who MUST be in the party (shown transparent in the
# current party, "must_be_in_party")
# - set up forced positions for party members
# - set up forced party size
# - option either to wipe the party (for multi-party use) or only remove every
# member (except 1) from the party.
# - easy to use and easy to switch party members
# - also supports small parties (2 or 3 members) and large parties (5 or more)
# - uses facesets optionally
#
# v1.5b:
# - better, shorter and more efficient code (less memory use, less CPU use)
# - fixed potential bugs
#
# v1.7b:
# - improved coding
# - facesets now optional
# - no extra bitmap files needed anymore
# - works now with Tons of Add-ons
#
# v1.8b:
# - added "forced position"
# - added "forced party size"
#
# v2.0b:
# - fixed the bug where you could empty the party... again...
# - fixed the bug that appeared when you pressed SHIFT
# - added option to allow an empty party
# - added "EXP for party members in reserve" option
# - made the forced_size for party work more convenient
# - improved coding
# - slightly decreased lag
#
#
# How to use:
#
# To call this script, make a "Call script" command in an event.
#
# 1. Syntax: $scene = Scene_PartySwitcher.new
# No extra feature will be applied and you can switch the party as you wish.
#
# 2. Syntax: $scene = Scene_PartySwitcher.new(XXX)
# You can replace XXX for 1 to remove all party members except one (either
# one, who must be in the party or a random one), or replace XXX with 2, to
# cause a wipe party. Wiping a party will disable the of the current members
# and a NEW party of the remaining members must be formed. If you replace it
# with 3, the current party configuration will be stored for a later fast
# switch-back.
#
# 3. Syntax: $scene = Scene_PartySwitcher.new(XXX, 1)
# You can use the XXX as described above or just set it to 0 to disable it.
# Also the "1" in the syntax will reset any disabled_for_party and is made
# to be used after multi-party use.
#
# 4. Syntax: $scene = Scene_PartySwitcher.new(XXX, YYY, ZZZ)
# You can replace ZZZ with 1 to replace the party with a stored one AND
# store the current or replace it with 2 to replace the party with a stored
# one, but without storing the current. USE THIS ONLY IF YOU ASSUME TO HAVE
# A STORED PARTY READY! You can simply test if there is a store party by
# putting this code into the conditional branch script:
#
# $game_system.stored_party != nil
#
# This syntax will not open the Party Switcher and it will override the
# commands XXX and YYY, so you can replace these with any number.
#
# - Character faces go into the "Characters" folder and they have the same name
# as the character spritesets have with _face added
#
# Example:
#
# sprite - Marlen.png
# face - Marlen_face.png
#
# Other syntaxes:
# $game_actors[ID].not_available = true/false
# $game_actors[ID].disabled_for_party = true/false
# $game_actors[ID].must_be_in_party = true/false
# $game_actors[ID].forced_position = nil/0/1/2/...
# OR
# $game_party.actors[POS].not_available = true/false
# $game_party.actors[POS].disabled_for_party = true/false
# $game_party.actors[POS].must_be_in_party = true/false
# $game_party.actors[POS].forced_position = nil/0/1/2/...
#
# ID - the actor's ID in the database
# POS - the actor's position in the party (STARTS FROM 0, not 1!)
#
# not_available
# - will disable the possibility of an already unlocked character to be in the
# current party
#
# disabled_for_party
# - will cause the character NOT to appear in the party switch screen at all
#
# must_be_in_party
# - will cause the character to be automatically moved into the current party
# and he also cannot be put in the reserve
#
# forced_position
# - will enforce the player to be at a specific position in the party, set this
# value to nil to disable this feature, use it in combination with
# must_be_in_party and $game_party.forced_size or you might experience bugs,
# set to nil to disable
#
# $game_party.forced_size = nil/0/1/2/...
#
# Using this syntax will enforce a specific party size. The EPS won't exit
# until this size is filled up or there are no more in the reserve. EPS will
# automatically "correct" this number if there are not enough characters in the
# reserve to fill up a party of forced_size. Set this value to nil to disable
# the size requirement. Note that the actor DO NOT HAVE TO be set in normal
# order without any empty position like in version 1.x.
#
#
# Additional note:
#
# For your own sake, do not apply the attribute "must_be_in_party" to a
# character at the same time with "not_available" or "disabled_for_party" as
# this WILL disrupt your party and party switch system. Use "forced_position"
# together with "must_be_in_party" to avoid bugs. Be careful when using
# "forced_position" with "$game_party.forced_size". Add actors at the very end
# to be sure the player can't put others after them if the "forced_size" is
# smaller than the maximum party size.
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# 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
# 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
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

# recognition variable for plug-ins
$easy_party_switcher = true

#==============================================================================
# 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 = false
@disabled_for_party = false
@not_available = false

end

end

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

class Game_System

attr_accessor :stored_party

end

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

class Game_Party

attr_accessor :actors
attr_accessor :forced_size

def any_forced_position
for actor in @actors
return true if actor != nil and actor.forced_position != nil
end
return false
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 and actor.character_name != ''
if FACESETS and
[Window_Current, Window_Reserve, Window_HelpStatus].include?(self.class)
draw_actor_face_eps(actor, x, y)
else
if [Window_Current, Window_Reserve, Window_HelpStatus].include?(self.class)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
x += bitmap.width / 8 + 24
y += bitmap.height / 4 + 16
end
draw_actor_graphic_eps_later(actor, x, y)
end
end
end

def draw_actor_face_eps(actor, x, y)
if $tons_version == nil or $tons_version < 3.71 or not FACE_HUE
hue = 0
else
hue = actor.character_hue
end
bitmap = RPG::Cache.character("#{actor.character_name}_face", hue)
src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
if actor.not_available or actor.must_be_in_party
self.contents.blt(x, y, bitmap, src_rect, 128)
else
self.contents.blt(x, y, bitmap, src_rect)
end
end

end

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

class Window_BattleResult

attr_reader :exp

end

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

class Window_Current < Window_Selectable

def initialize
super(0, 0, 240 + 32, (MAX_PARTY > 4 ? 480 : MAX_PARTY * 120))
self.contents = Bitmap.new(width - 32, 448 + (MAX_PARTY-4) * 120)
@item_max = MAX_PARTY
if $fontface != nil
self.contents.font.name = $fontface
elsif $defaultfonttype != nil
self.contents.font.name = $defaultfonttype
end
self.contents.font.size = 24
refresh
self.active = false
self.index = -1
end

def refresh
self.contents.clear
for i in 0...$game_party.actors.size
y = i * 120 - 4
self.contents.font.color = normal_color
if $game_party.actors[i] != nil
draw_actor_graphic($game_party.actors[i], 4, y + 8)
draw_actor_name($game_party.actors[i], 152, y)
draw_actor_level($game_party.actors[i], 88, y)
draw_actor_hp($game_party.actors[i], 88, y + 32)
draw_actor_sp($game_party.actors[i], 88, y + 64)
end
end
end

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

def getactor(index)
return $game_actors[$game_party.actors[index].id]
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)
y = (@index / @column_max) * 120 - self.oy
self.cursor_rect.set(0, y, self.width - 32, 88)
end

def clone_cursor
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)
y = (@index / @column_max) * 120
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-36, 84, 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)
row = row % row_max
self.oy = row * 120
end

def page_row_max
return (self.height / 120)
end

end

#==============================================================================
# Window_Reserve
#==============================================================================

class Window_Reserve < Window_Selectable

attr_reader :actors

def initialize
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
elsif $defaultfonttype != nil
self.contents.font.name = $defaultfonttype
end
self.contents.font.size = 24
self.active = false
self.index = -1
refresh
end

def setup
@actors = []
for i in 1...$data_actors.size
unless $game_party.actors.include?($game_actors[i]) or
$game_actors[i].disabled_for_party
@actors.push($game_actors[i])
end
end
@item_max = (@actors.size + $game_party.actors.size + 3) / 3 * 3
end

def refresh
self.contents.clear
for i in 0...@actors.size
draw_actor_graphic(@actors[i], i%3*112 + 16, i/3*96 + 8)
end
end

def getactor(index)
return @actors[index]
end

def get_number
count = 0
for actor in @actors
count += 1 unless actor == nil or actor.not_available
end
return count
end

def setactor(index_1, index_2)
temp = @actors[index_1]
@actors[index_1] = @actors[index_2]
@actors[index_2] = temp
refresh
end

def setparty(index_1, index_2)
temp = @actors[index_1]
@actors[index_1] = $game_party.actors[index_2]
$game_party.actors[index_2] = temp
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
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
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)
super(0, 0, 400 - 32, 160)
self.contents = Bitmap.new(width - 32, height - 32)
if $fontface != nil
self.contents.font.name = $fontface
elsif $defaultfonttype != nil
self.contents.font.name = $defaultfonttype
end
self.contents.font.size = 24
refresh(gotactor)
self.active = false
end

def refresh(actor)
self.contents.clear
if actor != nil
x = y = 0
self.contents.font.color = normal_color
if actor.not_available
self.contents.draw_text(x + 8, y, 160, 32, 'not available', 0)
end
draw_actor_graphic(actor, x, y + 40)
draw_actor_name(actor, x + 160, y + 32)
draw_actor_level(actor, x + 96, y + 32)
draw_actor_hp(actor, x + 96, y + 64)
draw_actor_sp(actor, x + 96, y + 96)
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
elsif $defaultfonttype != nil
self.contents.font.name = $defaultfonttype
end
self.contents.font.size = 24
self.x = 320 - width/2
self.y = 240 - height/2
self.z = 9999
self.contents.font.color = normal_color
if mode
self.contents.draw_text(0, 0, 288, 32, 'You need a party', 1)
num = [$game_party.forced_size, members + $game_party.actors.nitems].min
self.contents.draw_text(0, 32, 288, 32, "of #{num} members!", 1)
else
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)
end
end

end

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

class Scene_PartySwitcher

def initialize(wipe_party = 0, reset = 0, store = 0)
@wipe_party = wipe_party
@store = store
@reset = reset
@current_window_temp = 0
@reserve_window_temp = 0
@scene_flag = false
@temp_window = ''
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
end
if @reset == 1
for i in 1...$data_actors.size
$game_actors[i].not_available = false
end
end
@current_window = Window_Current.new
@current_window.index = 0
@current_window.active = true
@reserve_window = Window_Reserve.new
@reserve_window.x = 240 + 32
@reserve_window.y = 160
@help_window = Window_HelpStatus.new(@reserve_window.getactor(0))
@help_window.x = 240 + 32
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.freeze
@current_window.dispose
@reserve_window.dispose
@help_window.dispose
$game_party.actors.compact!
$game_player.refresh
end

def update
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
current_update if @current_window.active
if Input.trigger?(Input::
if Input.trigger?(Input::
if @scene_flag
$game_system.se_play($data_system.cancel_se)
@scene_flag, @temp_window = false, ''
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)
[@current_window, @reserve_window].each {|win| win.refresh}
return
end
if $game_party.forced_size != nil &&
($game_party.forced_size < $game_party.actors.nitems ||
($game_party.forced_size > $game_party.actors.nitems &&
@reserve_window.get_number != 0))
$game_system.se_play($data_system.buzzer_se)
warning(true)
return
end
$game_system.se_play($data_system.cancel_se)
# Switch to menu screen
$scene = Scene_Menu.new(0)
return
end
if $game_party.forced_size != nil
if $game_party.forced_size < $game_party.actors.nitems or
($game_party.forced_size > $game_party.actors.nitems and
@reserve_window.get_number != 0)
$game_system.se_play($data_system.buzzer_se)
warning(true)
return
end
end
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::A)
if $game_party.any_forced_position
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.decision_se)
$game_party.actors.compact!
@current_window.refresh
end
end
end

def current_update
@current_window.update
if Input.trigger?(Input::C)
actor = @current_window.getactor(@current_window.index)
if actor != nil and 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 = true
@temp_actor_index = @current_window.index
@temp_window = 'Current'
@current_window.clone_cursor
end
end
return
end
if Input.trigger?(Input::RIGHT)
$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) unless @scene_flag
return
end
end

def reserve_update
if Input.trigger?(Input::C)
unless @scene_flag
$game_system.se_play($data_system.decision_se)
@scene_flag = true
@temp_actor_index = @reserve_window.index
@temp_window = 'Reserve'
@reserve_window.clone_cursor
else
switch_members
end
return
end
if (@reserve_window.index % 3) == 0
if 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 == 'Reserve' and @reserve_window.active
@reserve_window.setactor(@temp_actor_index, @reserve_window.index)
actor = @reserve_window.getactor(@reserve_window.index)
@help_window.refresh(actor)
end
if @temp_window == 'Current' and @current_window.active
@current_window.setactor(@temp_actor_index, @current_window.index)
end
if @temp_window == 'Reserve' and @current_window.active
actor1 = @current_window.getactor(@current_window.index)
actor2 = @reserve_window.getactor(@temp_actor_index)
if call_warning?(@current_window.index, actor2)
if actor1 != nil and actor1.must_be_in_party
$game_system.se_play($data_system.buzzer_se)
@scene_flag = false
@temp_window = ''
actor = @reserve_window.getactor(@reserve_window_temp)
@current_window.refresh
@reserve_window.refresh
@help_window.refresh(actor)
return
end
if actor2 != nil and actor2.not_available
$game_system.se_play($data_system.buzzer_se)
@scene_flag = false
@temp_window = ''
actor = @reserve_window.getactor(@reserve_window_temp)
@current_window.refresh
@reserve_window.refresh
@help_window.refresh(actor)
return
end
@reserve_window.setparty(@temp_actor_index, @current_window.index)
@current_window.refresh
actor = @reserve_window.getactor(@reserve_window_temp)
@help_window.refresh(actor)
else
warning
end
end
if @temp_window == 'Current' and @reserve_window.active
actor1 = @current_window.getactor(@temp_actor_index)
actor2 = @reserve_window.getactor(@reserve_window.index)
if call_warning?(@temp_actor_index, actor2)
if actor1 != nil and actor1.must_be_in_party
$game_system.se_play($data_system.buzzer_se)
@scene_flag = false
@temp_window = ''
actor = @reserve_window.getactor(@reserve_window.index)
@current_window.refresh
@reserve_window.refresh
@help_window.refresh(actor)
return
end
if actor2 != nil and actor2.not_available
$game_system.se_play($data_system.buzzer_se)
@scene_flag = false
@temp_window = ''
actor = @reserve_window.getactor(@reserve_window.index)
@current_window.refresh
@reserve_window.refresh
@help_window.refresh(actor)
return
end
@reserve_window.setparty(@reserve_window.index, @temp_actor_index)
@current_window.refresh
actor = @reserve_window.getactor(@reserve_window.index)
@help_window.refresh(actor)
else
warning
end
end
$game_system.se_play($data_system.decision_se)
@scene_flag = false
@temp_window = ""
end

def wipe_party
for i in 0...$game_party.actors.size
$game_party.actors[i].not_available = true if $game_party.actors[i] != nil
end
setup_forced_party(true)
if $game_party.actors == []
for i in 1...$data_actors.size
unless $game_actors[i].not_available or $game_actors[i].disabled_for_party
$game_party.actors[$game_party.actors.size] = $game_actors[i]
return
end
end
end
end

def setup_forced_party(flag = false)
$game_party.actors = []
party = []
for i in 1...$data_actors.size
actor = $game_actors[i]
if actor != nil and actor.must_be_in_party and
(not actor.disabled_for_party or flag) and not actor.not_available
party[party.size] = actor
end
end
for i in 0...party.size
if actor.forced_position != nil
$game_party.actors[party[i].forced_position] = party[i]
party[i] = nil
end
end
party.compact!
for actor in party
$game_party.actors.push(actor)
end
end

def swap_parties
$game_party.actors.compact!
temp_actors = $game_party.actors
for actor in temp_actors
actor.not_available = true
end
$game_system.stored_party.compact!
for actor in $game_system.stored_party
actor.not_available = false
end
$game_party.actors = $game_system.stored_party
$game_system.stored_party = nil
$game_system.stored_party = temp_actors if @store == 1
end

def call_warning?(index, actor2)
return (ALLOW_EMPTY_PARTY or $game_party.actors[index] == nil or
actor2 != nil or $game_party.actors.nitems > 1)
end

def warning(flag = false)
$game_system.se_play($data_system.buzzer_se)
@warning_window = Window_Warning.new(flag, @reserve_window.get_number)
loop do
Graphics.update
Input.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se) if flag
@current_window.refresh
@reserve_window.refresh
@warning_window.dispose
@warning_window = nil
break
end
end
end

end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle

alias start_phase5_eps_later start_phase5
def start_phase5
start_phase5_eps_later
for i in 1...$data_actors.size
unless $game_party.actors.include?($game_actors[i])
if $game_actors[i].not_available
$game_actors[i].exp += @result_window.exp * EXP_NOT_AVAILABLE/100
elsif $game_actors[i].disabled_for_party
$game_actors[i].exp += @result_window.exp * EXP_DISABLED_FOR_PARTY/100
else
$game_actors[i].exp += @result_window.exp * EXP_RESERVE/100
end
end
end
end

end


Thanks for the help ^^