Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Kupno pomocników
Autor Wiadomość
~Nakhitto 




Preferowany:
RPG Maker XP

Dołączył: 29 Lip 2012
Posty: 11
  Wysłany: Wto 02 Kwi, 2013 17:50
Kupno pomocników
~ RECRUIT SHOPS 1.0 ~


Krótki opis:
Mamy możliwość zakupienienia pomocników, sojuszników (etc.)

Autor:
IXFURU

Tłumaczenie:
Brak

Kompatybilność:
RPG Maker VX

Skrypt:
Spoiler:

Kod:
################################################################################

#                            RECRUIT SHOPS
#                             By: Ixfuru                 
#                             version 1.1
#                          December 26th, 2012
#
################################################################################

# This script allows you to 'recruit' actors to the party by purchasing them at
# shops.  The shops are a new scene, created by the script, which can be
# accessed at anytime by using a script call.  This means going to the third
# tab of an event and selecting 'Script'.  Then placing the following text into
# the window:
#               $scene = Scene_Recruit.new(shop_id)
#
# You'll have to set up the 'shop_id's below.  Once they are set up, just replace
# the 'shop_id' part of the script call with the id of the shop you want to
# access.
#
# This script has a great many customization options.  It is very versatile in
# both the scene's appearance and that actors which can be recruited.
#
# The recruits (or actors) you acquire can be set up to be 'random'.  That is,
# the pc will generate an actor from variables you set up in the module.
#
# To use the script, place it in the script editor, below Materials and above
# Main.
#
# Please take your time and make sure you read the instructions for the 6 parts
# of the script thoroughly.  If you have questions, just post them under this
# scripts topic and I'll do my best to answer them, as well as adapt them to
# compatibility with other scripts and fix them when necessary.
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#                     THINGS YOU WILL REQUIRE
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# You need to get ModernAlgebra's script "ParagraphFormatter 2.0".  You can find
# it here:
#            http://rmrk.net/index.php/topic,25129.0.html
#
# By taking it, you'll have to make sure and credit him or arrange permission
# from him.   
#
#-------------------------------------------------------------------------------
# Secondly, you can alter the windowskins of the shop scene by placing a new
# windowskin graphic in the Graphics\System folder of your project, and then
# setting the variable in SECTION 6.  If you attained this script via the
# demo, you'll find that I have already placed a somewhat cheap windowskin that
# I created in the folder for you.  It's not necessary for you to credit me for
# using the windowskin.
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#
# This AND every IXFURU script is the property of IXFURU.  You cannot
# redistribute this script without his permission.  You may alter it and use it
# for your own non-commercial projects at will provided that you give credit to
# him for the creation.  Furthermore, if you choose to use this in a commercial
# game, you'll be required to contact IXFURU and gain his permission.  He is
# NOT in anyway obligated to allow this script to be used in this manner.  But
# is open to discussion.
#
#===============================================================================
#                          ADVANCED USE OF THE SCRIPT
#===============================================================================
# There are many script calls which can be used for this script.  They can be
# used in conditional branches and other ways to get the most out of the script.
# They are as follows:
#
# 1) $game_actors[actor_id].is_random?
#     This can be used in a conditional branch to see if the actor is a randomly
#     generated one.
#
# 2) $game_actors[actor_id].is_male?, .is_female?, .is_beast?
#     These can be used in a conditional branch to state whether the actor is
#   one of the three 'types' of recruits.  Male, Female or Beast (by default)
#
# 3) $game_actors[actor_id].regenerate_random(top_level)
#      If the actor is random, this will regenerate them.  That is, will transform
# them into a new actor altogether.  This script call will transform the
# character, but will NOT change their 'type'. 
#
# 4)  $game_party.has_males?(amount), .has_females?(amount), .has_beasts?(amount)
#     These script calls, to be used in a conditional branch, can check to see
#  if there is 'amount' of the type of actors in your party.
#
# 5)  $game_party.leader_is_male?, .leader_is_female?, .leader_is_beast?
#     These script calls, in a conditional branch, will check to see if the
#   leader is of a certain 'type'.  For instance, it will return true for
#   '.leader_is_beast?' if the leader is in fact a beast type.
#
# 6) $game_party.member_regenerate(position)
#        If the member is a random actor, this will regenerate them, just as in
#    the $game_actors script call.  However, this is based on position of
#   party member rather than actual actor's id.
#
#===============================================================================
module RecShops
 
  ##############################################################################
  #                   CUSTOMIZATION  STARTS HERE
  ##############################################################################
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                     SECTION 1, Recruits
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  # This section allows you to create the possibilities of your random recruits.
  # It will allow you to change the random pool of names and classes of those
  # recruits which will be generated at runtime. 
  #-----------------------------------------------------------------------------
 
  RANDOM_RECRUIT_POOLS = {#<<<Don't delete this!
 
  # For now, you MUST have three elements in the 'Type' array.  I may expand on
  # this further someday.  Basically, this is just the text that will be displayed
  # in any seen which shows a recruits, (or actor's) type.  I set this up as not
  # only a way to retrieve the strings (or double quoted words in the array), but
  # to design a way to check for type in game.  For now, unless you want to change
  # what you call a male, female or beast, it would be best to skip this constant.
  "Type" => ["male", "female", "beast"],
 
 
  # In this array, add any class which your random recruits can be in.  You do
  # this by placing the class's database id in the array.
  "Human_Classes" => [1, 2, 3, 4, 5, 6, 7, 8],
 
  # This is the same as the human classes, but these are classes that beasts,
  # or (third type from above) can be.
  "Beast_Classes" => [9, 10, 11, 12],
 
  # The names arrays contain possible names for the generated recruits.  When a
  # random recruit is created, the system will pull their names from these
  # arrays, dependent upon which 'type' the random recruit is.
  "Female_Names" => ["Hariett", "Joan", "Breidy", "Hannah", "Sola", "Lelle",
                  "Bertrude", "Farrah", "Lindsey", "Chyann", "Ruby", "Scarlet",
                  "Daye", "April", "Ciera"],
               
  "Male_Names" => ["Charlie", "Vinnie", "Joe", "Rudy", "Langford", "Hobbs", "Curly",
                "Stephen", "Hans", "Ray", "Louis", "Grady", "Baxter", "Ornswell",
                "Thadeus", "John", "Parker"],
               
  "Beast_Names" => ["Spot", "Dukker", "Flomp", "Gilly", "Roju", "Heip", "Swazle",
                 "Gnasher", "Jet", "Trayne", "Harkence", "Guju", "Olm"],
 
  # The character arrays are the same as the names arrays, the system will
  # create the character by giving them these character and face sets.  Place
  # the filename of a character set in your Graphics\Characters folder in
  # the 1st position of the array, and the index of the character from that
  # file you wish to use in the 2nd position. 
  #
  #*****************************************************************************
  #                    QUICK NOTE ON RANDOM CHARACTERS
  #*****************************************************************************
  # I may, in the future implement separating the character set from the face
  # set.  But for now, you MUST have a matching faceset to the character set
  # you provide herein.
  #*****************************************************************************
  "Female_Characters" => {  0 => ["Actor1", 1],
                          1 => ["Actor1", 3],
                          2 => ["Actor1", 4],
                          3 => ["Actor1", 5],
                          4 => ["Actor2", 0],
                          5 => ["Actor2", 1],
                          6 => ["Actor2", 3],
                          7 => ["Actor2", 5],
                          8 => ["Actor2", 7],
                          9 => ["Actor3", 1],
                          10 => ["Actor3", 3],
                          11 => ["Actor3", 5],
                          12 => ["Actor3", 7]},
                         
  "Male_Characters" => { 0 => ["Actor1", 0],
                       1 => ["Actor1", 2],
                       2 => ["Actor1", 6],
                       3 => ["Actor1", 7],
                       4 => ["Actor2", 2],
                       5 => ["Actor2", 4],
                       6 => ["Actor2", 6],
                       7 => ["Actor3", 0],
                       8 => ["Actor3", 2],
                       9 => ["Actor3", 4],
                       10 => ["Actor3", 6]},
                       
  "Beast_Characters" => { 0 => ["Animal", 0],
                         1 => ["Animal", 1],
                         2 => ["Animal", 2],
                         3 => ["Animal", 3],
                         4 => ["Animal", 4],
                         5 => ["Animal", 5],
                         6 => ["Animal", 6],
                         7 => ["Animal", 7],
                         8 => ["Monster", 3]}
 
 
 
  }#<<<Don't delete this!
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                       SECTION 2, Random Recruits
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  # The following array holds the ids of actors who you want to set as 'random'
  # recruits.  Only place those actor_ids in the array which you want the
  # pc to generate when they first appear in a shop.
  ##############################################################################
  RANDOM_RECRUITS = [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                       SECTION 3, Pricing
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  # Pricing in this system is based on two factors, class and experience level.
  # Price of recruits are figured by multiplying their experience level by the
  # value of their class.
  #
  # The generic pricing value is a backup for if you forget to place the
  # class's id in the PRICE_PER_CLASS_LEVEL hash.  This means that if a price
  # for the class can't be found, the recruits price will be multiplied by the
  # value you set here.
  #-----------------------------------------------------------------------------
  GENERIC_PRICING = 300
  #-----------------------------------------------------------------------------
  # In the next hash, you will give a price to each class.  This means that for
  # every experience level the recruit is, their price will be multiplied by
  # the amount given.
  #
  # Use this formula:
  #
  #       class_id => price_per_level,
  #
  # EXAMPLE:
  #           
  #           4 => 900,
  #
  # In the example above we value a recruit whose class is class number 4 in the
  # database, at 900 gold.  This means that if you were to try and recruit an
  # actor with a level of 6 in this class, it would cost you 5400 gold.  At level
  # 2, it would cost 1800.
  #-----------------------------------------------------------------------------
 
  PRICE_PER_CLASS_LEVEL = {#<<<Don't delete this!
 
  1 => 300,
  2 => 300,
  3 => 300,
  4 => 300,
  5 => 500,
  6 => 500,
  7 => 500,
  8 => 500,
  9 => 400,
  10 => 400,
  11 => 400,
  12 => 400,
 
  }#<<<Don't delete this!
 
 
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                      SECTION 4, Shops
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  # The following hash is used to set up recruits.  A recruit is just an actor
  # from the database, but here you can set up the specific shops and the recruits
  # available to that shop.  You can call these shops from the game by placing
  # this script call inside a script command (3rd Tab of Events):
  #                    $scene = Scene_Recruit.new(shop_id)
  # The shop_id should be replaced with a key from the hash below.  That is, the
  # number to the left of the '=>'.
  #
  # In the hash, use this formula:
  #                 shop_id => {"shop_name" => string,
  #                             "seller_face" => filename, index,
  #                             "seller_name" => string,
  #                             "use_variable" => [boolean, value],
  #                             "use_random" => [value, boolean],
  #                             "recruits" => variable_value => [recruit_ids]},
  #
  # This inner hash should retain its keys.  The only part you need to adjust
  # will be the item right of the '=' sign.
  #
  # "shop_id":        Must be unique and in numerical order. (requires integer)
  # "shop_name":      Any name, encompassed with ("") double quotes, you wish to
  #                 name the shop. (requires string)
  # "seller_face":    This array allows you to determine which face file is used
  #                 for the given shop.  Just replace the filename part with
  #                 a file from your Graphics\Faces folder.  And the index part
  #                 with the index of which face on the file you wish to show.
  # "seller_name":  This requires a string, like in the shop_name, which will
  #                 be used as a display for the shopkeeper's name.
  # "use_variable":  This array starts with a boolean (true or false), which is
  #                 used to state whether the shop uses a variable in order to
  #                 make different actors recruitable at different times.  If
  #                 the boolean is true, you need to set the value following the
  #                 boolean to a game variable to be used. If you set the boolean
  #                 to false, then just place a '0' in the variable position.
  # "use_random":    This is a two position array which will be used when
  #                  generating random actors (recruits).  Replace the value,
  #                 with a number to indicate the highest possible level the
  #                 generated actor can be.  Then, replace the boolean with
  #                 whether or not you want to include the 'beast' type in the
  #                 generation.  When this is false, only males or females will
  #                 be created.
  # "recruits":     This hash will contain arrays of the recruits you want to
  #                 be available in the shop.  If you set the '"use_variable"' to
  #                 false, just use an array instead of a hash, use '0' as the
  #                 variable_value. 
  #
  # Because I understand this script may be a little perplexing to those who are
  # not quite scripters, I'll show a few examples here and try to explain them
  # step by step.
  #
  # EXAMPLE 1:
  #             12 => {"shop_name" => "Richard's Recruits",
  #                    "seller_face" => ["People1", 4],
  #                    "use_variable" => [false, 0],
  #                    "use_random" => [3, false],
  #                    "recruits" => {nil => [14, 10, 8, 7, 26, 4]}},
  #
  #  In Example 1, you see that the shop has an ID of 12.  This means, when you
  # call the scene, you will place '12' as the argument for the scene, like
  # this:
  #           $scene = Scene_Recruit.new(12)
  #
  # We called this recruit shop "Richard's Recruits", therefor that's the name
  # which will be displayed when you are in the Recruit Scene.
  #
  # We told the system to show the People1, index 4, for the seller's face.
  #
  # For "use_variable" we chose false, which basically tells us that this shop
  # will ALWAYS have the same actors for recruit, and does not depend upon an
  # in game variable's value to determine its recruit inventory.  We place the
  # zero '0' in the second position, because we chose false in the 1st.
  #
  # In the use_random key, we have another two position array.
  # We set the 1st  position of the array to '3' to signify, the level limit
  # on randomly created recruits. Then we set the second position to 'false',
  # stating that we don't want to generate 'beasts' in this shop.
  #
  # Finally, for the recruits hash, we just used a '0' for a hash key, signifying
  # that these recruit_ids will never change, and therefor we don't need different
  # recruits found when a variable holds a specific value.  Then, we merely filled
  # the array with ids of actors in the database which we will find for recruitment
  # in this recruit shop.   
  #
  # EXAMPLE 2:
  #              9 => {"shop_name" => "The Scrapyard",
  #                   "seller_face" => ["People3", 4]
  #                   "use_variable" => [true, 7],
  #                   "use_random" => [13, true],
  #                   "recruits" => {0 => [14, 6, 3, 18, 121],
  #                               1 => [5, 9, 23, 17, 6, 15, 4, 8],
  #                               2 => [64, 54, 12, 7, 3]}},
  #
  # In Example 2, we used the ID of '9'.  This means, we will use the script
  # call:     
  #           $scene = Scene_Recruit.new(9)
  #
  # We named the shop 'The Scrapyard'.
  #
  # We set the seller's face to People3, index 4.
  #
  # For "use_variable", we placed 'true' in the first position of the array. 
  # This means that we will base which recruits are available in this shop based
  # on the game variable we provided.  In this case, the 7.  So, which recruits
  # are available at this shop is dependent upon the value of variable 7.
  #
  # Next, in the use_random section, we start off by telling
  # the system, via the '13' in the 1st position of the array that when
  # generating random recruits for this shop, that we don't want any recruits
  # whose experience level is above 13. Finally, the 'true' tells us, this
  # shop has the ability to randomly generate beast-type recruits in the
  # third position.
  #
  # Finally, we set up the recruits hash with three different keys (0, 1, 2). 
  # These numbers represent the value of the in game variable (which is number
  # 7 according to this example).  That means that when variable 7 has a value
  # of 0, then those recruits listed after the '0 =>' will be found in the shop.
  # When the value is 1, then those in the array of the '1' hashkey will be
  # in the shop.  And the same applies for 2.  This is awesome, because it lets
  # us change available recruits based on the value of an in game variable. And
  # because, each shop has it's own unique variable, You can make a specific
  # recruit 'travel' from shop to shop.  Showing up in one shop at
  # one point, and at another some other time.  You can also make the same
  # recruit available at both shops at the same time. 
  #
  # &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  # &                AN IMPORTANT NOTE ON RANDOM RECRUITS
  # &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  # When an actor (recruit) is generated, he/she is flagged as such.  This means
  # that the actor will retain this generated status for as long as they are
  # available, unless they are 'unset'.  As a bonus, I placed the ability to
  # script call the '$game_actors[actor_id].unset_actor' method.  This will
  # make it so the given actor will be altered again upon visiting a random
  # shop with his/her id found in the recruits.
  #
  # You should realize that because they retain their 'set' status unless
  # manually unset, they will not be regenerated when they show up in a new
  # shop at a later time.
  # &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  #-----------------------------------------------------------------------------
 
  RECRUIT_SHOPS = {#<<<Don't delete this!
 
  0 => {"shop_name" => "Littletown Services",#<<<Don't forget the commas!
        "seller_face" => ["People3", 3],
        "seller_name" => "Ribby Joe",
        "use_variable" => [false, 0],
        "use_random" => [0, false],
        "recruits" => {0 => [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]}},#<<Don't
                                                              #forget to use the
                                                              #double '}}' to end
                                                              #the recruits!!
       
  1 => {"shop_name" => "Vik's Vagabonds",
        "seller_face" => ["People3", 4],
        "seller_name" => "Rogerson",
        "use_variable" => [true, 1],
        "use_random" => [0, false],
        "recruits" => {0 => [6, 9, 12, 13, 15],
                    1 => [6, 9, 12, 13, 14, 15, 16],
                    2 => [7, 8, 10, 11, 14, 15, 16]}},#Here again, double '}}'
                   
  2 => {"shop_name" => "BunchOCruits",
        "seller_face" => ["People1", 4],
        "seller_name" => "Marco",
        "use_variable" => [false, 0],
        "use_random" => [11, true],
        "recruits" => {0 => [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]}},
       
       
  }#<<<<Don't delete this!
 
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                 SECTION 5, Unrandom Types
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  #
  # Here you will declare, in the last hash, any actors which will be joining
  # the party WITHOUT coming from a shop.  For example, the ones that start in
  # your party.  Also, those you will be setting up for non-random shops should
  # be included in this hash.
  #
  # This is important, because it allows your unrecruited and
  # non-random actors to inherit the recruitable stat 'type', which you can then
  # use in conditional branches throughout the game.  Use this formula to set
  # it up:
  #
  #       actor_id => type
  #
  # By default, these types are 0 for male, 1 for female, 2 for beast.  You can
  #-----------------------------------------------------------------------------
  UNRANDOM_TYPES = {#<<<Don't delete this!
 
  1 => 0,
  2 => 1,
  3 => 0,
  4 => 1,
  5 => 0,
  6 => 0,
  7 => 1,
  8 => 0,
  9 => 0,
  10 => 0,
  11 => 1,
  12 => 0,
  13 => 1,
  14 => 1,
  15 => 1,
  16 => 0,
 
  }#<<<Don't delete this!
 
  #-----------------------------------------------------------------------------
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #                        SECTION 6, Extras
  #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #-----------------------------------------------------------------------------
  # In this section, you'll set up a number of constants which alter things like
  # color of text, windowskins, etc.  All of which are provided to make the
  # scene more customizable. 
  #-----------------------------------------------------------------------------
  SHOP_NAME_COLOR = 12  # Color of text in Shop's Name
 
  # SELLER TEXT DISPLAYS:
  # These arrays hold various possible quotes the seller of the shop will tell
  # you dependent upon what you are doing in the shop. 
 
  # This is the text shown as you enter the shop.
  SELLER_RANDOM_GREETING = ["Searching for a recruit?  You've come to the right place",
                            "Hello there, traveler.  How can I help you?",
                            "Here for a new party member?  Glad to be of service.",
                            "Looks like you could use some help.  Take a look."]
                           
  # This is the text shown while you are browsing.
  SELLER_RANDOM_VIEWING = ["Take your time.", "I'm sure you'll find what you need.",
                           "There's no better recruits anywhere."]
                           
  # This is the text shown when you purchase something.
  SELLER_RANDOM_SELLING = ["You've made a wise purchase.", "Thank you.",
                          "I'm sure this recruit will help you.",
                          "That's the one I had in mind for you."]
 
  # This is the text shown when you leave.
  SELLER_RANDOM_LEAVING = ["See you soon.", "Take it easy.", "Be careful out there.",
                         "Come again."]
                         
  # This is the text shown when you don't have enough gold to purchase a recruit
  SELLER_RANDOM_SHORTFUNDS = ["I would love to sell you this recruit.  But you are short on funds.",
                              "Maybe when you have the correct amount of funds.", "Are you joking?",
                              "Hmm...  Go and get more funds."]
                         
  # This is the text shown when you attempt to purchase recruit when party is full
  SELLER_RANDOM_PARTYFULL = ["You can't buy this recruit when you have a full party.",
                            "But your party is already full.",
                            "Come back when you have room for this recruit."]
                           
  # This is the text shown when you are in an empty shop and choose "Shop"
  SELLER_RANDOM_SHOPEMPTY = ["As you can see, I have nothing more to offer.",
                            "I'd like to help.  But I have no recruits.",
                            "Sorry.  There are no recruits available."]
                           
  SELLER_NAME_COLOR = 20 #Color of Seller's name
                         
  SHOP_COMMAND_SHOP = "Shop" # this is used for the command saying you want to buy
  SHOP_COMMAND_LEAVE = "Exit" # this is used for the command saying you want to leave
  SHOP_COMMAND_COLOR = 3 # this is the color of the shop commands
 
  # This is the windowskin you want to use for all the shop scenes.  Make sure
  # you place it within your Graphics\System folder
  SHOPSKIN = "RecShopSkin"
 
  SHOP_SE_SELECT = "Ice1" # Sound effect played when decision is made
  SHOP_SE_BACK = "Cancel" # Sound effect played when cancelling or leaving
  SHOP_SE_PURCHASE = "Saint9" # Sound effect played when purchase is made
 
  RECRUIT_NAME_COLOR = 10 #Color of text for recruit's name in preview window
  RECRUIT_CLASS_COLOR = 25 #Color of text for recruit's class
  RECRUIT_LEVEL_COLOR = 6 #Color of text for recruit's level
  RECRUIT_TYPE_COLOR = 15
  RECRUIT_PRICE_COLOR = 14 #Color of text for recruit's price
 
  RECRUIT_GOLD_ICON = 205 #Icon from Iconset used to display price of recruit
 
  PARAMETER_TAG_COLOR = 7 #Color of parameter tags (abbreviations)
  RECRUIT_PARAMETER_COLOR = 29 #Color of recruit's parameter values
 
  USE_SHOP_BGM = true #if 'true', the Background music you select below will play
                      #while you are browsing in the Recruit Shop Scene.
  SHOP_BGM = "Scene7" #The background music which will play if the above is true
 
 
end
################################################################################
#                       END OF CUSTOMIZATION:
#          Don't alter below unless you know what you are doing!
################################################################################

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                          Game Temp Class
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Game_Temp
 
  attr_accessor :recshop_id
 
  alias recshops_gt_initialize initialize unless $@
  def initialize
    recshops_gt_initialize
    @recshop_id = 0
  end

end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#                          Game Actor Class
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Game_Actor < Game_Battler
 
  include RecShops
 
  attr_accessor :is_random
  attr_accessor :is_set
  attr_accessor :type
  attr_accessor :price
  attr_accessor :taken
 
  alias rs_ga_setup setup unless $@
  def setup(actor_id)
    rs_ga_setup(actor_id)
    @type = nil
    @is_set = false
    get_is_random
    set_recruit_price
    nonrand = UNRANDOM_TYPES.keys
    unless @is_random
      if nonrand.include?(actor_id)
        @type = UNRANDOM_TYPES[actor_id]
      else
        @type = 0
        @is_set = true
      end
    end
  end
 
  def get_is_random
    if RANDOM_RECRUITS.include?(self.id)
      @is_random = true
    else
      @is_random = false
    end
  end
 
  # Method can be used in conditional branch
  def is_random?
    if @is_random
      return true
    else
      return false
    end
  end
 
  # Method can be used in conditional branch.
  def is_male?
    if @type == 0
      return true
    else
      return false
    end
  end
 
  # Method can be used in conditional branch.
  def is_female?
    if @type == 1
      return true
    else
      return false
    end
  end
 
  # Method can be used in conditional branch.
  def is_beast?
    if @type == 2
      return true
    else
      return false
    end
  end
 
  #Method generates a random recruit, accepts argument for beast type inclusion
  def produce_random_recruit(level, using_beasts = false)
    set_recruit_type(using_beasts) #passes whether or not to use beasts
    set_recruit_class(@type)               #passes type of recruit
    set_recruit_level(level)
    set_recruit_name(@type)
    set_recruit_character(@type)
    @is_set = true
  end
 
  #Method chooses an appropriate type
  def set_recruit_type(beast)
    if beast
      @type = rand(2)
    else
      @type = rand(1)  #either male or female
    end
  end
 
  #Method chooses appropriate class, accepts argument of recruit type
  def set_recruit_class(type)
    if type < 2                       #if type is human
      pos = RANDOM_RECRUIT_POOLS["Human_Classes"]             #get possible human classes
    elsif type == 2                   #if type is beast
      pos = RANDOM_RECRUIT_POOLS["Beast_Classes"]             #get possible beast classes
    end
    @class_id = pos[rand(pos.size - 1)]  #choose a class
    for i in 0..4                     # Remove equippable items
      change_equip(i, nil)
    end
  end
 
  #Method chooses appropriate name, accepts argument of recruit type
  def set_recruit_name(type)
    case type
    when 0
      pos = RANDOM_RECRUIT_POOLS["Male_Names"]
    when 1
      pos = RANDOM_RECRUIT_POOLS["Female_Names"]
    when 2
      pos = RANDOM_RECRUIT_POOLS["Beast_Names"]
    end
    @name = pos[rand(pos.size - 1)]
  end
 
  #Method chooses appropriate character and face set, accepts argument of type
  def set_recruit_character(type)
    case type
    when 0
      pos = RANDOM_RECRUIT_POOLS["Male_Characters"]
    when 1
      pos = RANDOM_RECRUIT_POOLS["Female_Characters"]
    when 2
      pos = RANDOM_RECRUIT_POOLS["Beast_Characters"]
    end
    set = pos[rand(pos.size - 1)]
    @character_name = set[0]
    @character_index = set[1]
    @face_name = set[0]
    @face_index = set[1]
  end
 
  #Method chooses an appropriate level
  def set_recruit_level(top_lv)
    lv = rand(top_lv)
    self.change_level(lv, false)
  end
   
 
  #Method can be called from script call
  def regenerate_random(top_level)
    unpos = UNRANDOM_TYPES.keys   #only if actor is a random
    unless unpos.include?(@id)
      if @type == 2
        produce_random_recruit(top_level)
      else
        produce_random_recruit(top_level, false)
      end
    end
  end
 
  #Method sets price of actors (recruits)
  def set_recruit_price
    if PRICE_PER_CLASS_LEVEL.include?(@class_id)
      @price = PRICE_PER_CLASS_LEVEL[@class_id]
      @price *= @level
    else
      @price = GENERIC_PRICING
      @price *= @level
    end
  end
 
  #Method makes a new actor 'taken'
  def make_taken
    @taken = true
  end
 
  #Method makes new actor untaken, enabling resale of actor
  def make_untaken
    @taken = false
  end
 
  #Method makes actor 'unset', allowing them to be regenerated by shops
  def unset_actor
    if RANDOM_RECRUITS.include?(self.id) && @is_set
      @is_set = false
    end
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                          GAME PARTY CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Game_Party < Game_Unit
 
  include RecShops
 
  # This is an OVERWRITTEN METHOD, this implements the 'taken' variable to
  # actors in the initial party.
  def setup_starting_members
    @actors = []
    for i in $data_system.party_members
      @actors.push(i)
      $game_actors[i].make_taken
    end
  end
 
  #This is an OVERWRITTEN METHOD, this causes added actors to have a 'true'
  # taken variable value.
  def add_actor(actor_id)
    if @actors.size < MAX_MEMBERS and not @actors.include?(actor_id)
      @actors.push(actor_id)
      $game_player.refresh
      $game_actors[actor_id].make_taken
    end
  end
 
  #Aliased method of removing actor from party
  alias recshops_gp_remove_actor remove_actor unless $@
  def remove_actor(actor_id)
    recshops_gp_remove_actor(actor_id)
    $game_actors[actor_id].make_untaken
  end
 
  #Method used to determine if party is full (returns a boolean)
  def party_is_full
    if @actors.size < MAX_MEMBERS
      return false
    else
      return true
    end
  end
 
  #Method can be called from conditional branch
  def has_males?(amount)
    mm = 0
    for actor in members
      if actor.type == 0   #if actor is a male
        mm += 1
      end
    end
    if mm >= amount    # if there is an adequate amount of males
      return true
    else
      return false
    end
  end
 
  #Method can be called from conditional branch
  def has_females?(amount)
    fm = 0
    for actor in members
      if actor.type == 1 # if actor is a female
        fm += 1
      end
    end
    if fm >= amount  # if there is an adequate amount of females
      return true
    else
      return false
    end
  end
 
  #Method can be called from conditional branch
  def has_beasts?(amount)
    bm = 0
    for actor in members
      if actor.type == 2  #if member is a beast
        bm += 1
      end
    end
    if bm >= amount  # if there is an adequate amount of beasts
      return true
    else
      return false
    end
  end
 
  #Method can be called from conditional branch
  def leader_is_male?
    if members[0].type == 0  #if leader is male
      return true
    else
      return false
    end
  end
 
  #Method can be called from conditional branch
  def leader_is_female?
    if members[0].type == 1 #if leader is female
      return true
    else
      return false
    end
  end
 
  #Method can be called from conditional branch
  def leader_is_beast?
    if members[0].type == 2 #if leader is beast
      return true
    else
      return false
    end
  end
 
  #Method can be called from script call
  def member_regenerate(position)
    impos = UNRANDOM_TYPES.keys
    unless impos.include?(members[position].id)
      if members[position].type == 2
        members[position].produce_random_recruit(true)
      else
        members[position].produce_random_recruit
      end
    end
  end

end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                           WINDOW BASE CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_Base < Window
 
  include RecShops
 
  def draw_recruit_price(recruit_id, x, y)
    price = $game_actors[recruit_id].price
        if $game_party.gold >= price
      enabled = true
    else
      enabled = false
    end
    draw_icon(RECRUIT_GOLD_ICON, x, y, enabled)
    self.contents.font.color = text_color(RECRUIT_PRICE_COLOR)
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x + 30, y, self.width, WLH, price.to_s)
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                           WINDOW GOLD CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_Gold < Window_Base
 
  include RecShops
 
  alias recshop_wg_initialize initialize unless $@
  def initialize(x, y)
    if $scene.is_a?(Scene_Recruit)
      super(x, y, 162, 80)
      self.windowskin = Cache.system(SHOPSKIN)
      refresh
    else
      recshop_wg_initialize(x, y)
    end
  end
 
  alias recshop_wg_refresh refresh unless $@
  def refresh
    if $scene.is_a?(Scene_Recruit)
      self.contents.clear
      draw_currency_value($game_party.gold, 4, 15, 120)
    else
      recshop_wg_refresh
    end
  end
 
end

     
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                         WINDOW RECRUIT SHOP NAME CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitShopName < Window_Base
 
  include RecShops
 
  def initialize(id)
    super(285, 0, 260, 80)
    @id = id
    self.windowskin = Cache.system(SHOPSKIN)
    refresh
  end
 
  def refresh
    self.contents.font.color = text_color(SHOP_NAME_COLOR)
    self.contents.font.bold = true
    self.contents.draw_text(-13, 10, self.width, WLH, RECRUIT_SHOPS[@id]["shop_name"], 1)
    self.contents.font.bold = false
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                         WINDOW RECRUIT SELLER CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitShopSeller < Window_Base
 
  include RecShops
 
  attr_accessor :text_value
 
  def initialize(id)
    super(285, 81, 260, 226)
    @id = id
    self.windowskin = Cache.system(SHOPSKIN)
    @face = RECRUIT_SHOPS[@id]["seller_face"][0]
    @facedex = RECRUIT_SHOPS[@id]["seller_face"][1]
    @seller_name = RECRUIT_SHOPS[@id]["seller_name"]
    @text_value = 0
    refresh
  end
 
  def refresh
    self.contents.clear
    draw_face(@face, @facedex, 30, 0, size = 96)
    self.contents.font.color = text_color(SELLER_NAME_COLOR)
    self.contents.draw_text(130, 40, self.width, WLH, @seller_name)
    update_seller_text
  end
 
  def update_seller_text
    self.contents.font.color = normal_color
    case @text_value
    when 0
      srg = SELLER_RANDOM_GREETING
      self.contents.draw_paragraph(0, 110, 220, self.height, srg[rand(srg.size - 1)])
    when 1
      srv = SELLER_RANDOM_VIEWING
      self.contents.draw_paragraph(0, 110, 220, self.height, srv[rand(srv.size - 1)])
    when 2
      srs = SELLER_RANDOM_SELLING
      self.contents.draw_paragraph(0, 110, 220, self.height, srs[rand(srs.size - 1)])
    when 3
      srl = SELLER_RANDOM_LEAVING
      self.contents.draw_paragraph(0, 110, 220, self.height, srl[rand(srl.size - 1)])
    when 4
      srsf = SELLER_RANDOM_SHORTFUNDS
      self.contents.draw_paragraph(0, 110, 220, self.height, srsf[rand(srsf.size - 1)])
    when 5
      srpf = SELLER_RANDOM_PARTYFULL
      self.contents.draw_paragraph(0, 110, 220, self.height, srpf[rand(srpf.size - 1)])
    when 6
      srse = SELLER_RANDOM_SHOPEMPTY
      self.contents.draw_paragraph(0, 110, 220, self.height, srse[rand(srse.size - 1)])
    end
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                        WINDOW RECRUIT COMMANDS CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitCommands < Window_Selectable
 
  include RecShops
 
  def initialize
    super(0, 0, 120, 80)
    self.windowskin = Cache.system(SHOPSKIN)
    @id = id
    @c1 = SHOP_COMMAND_SHOP
    @c2 = SHOP_COMMAND_LEAVE
    @commands = [@c1, @c2]
    @item_max = @commands.size
    refresh
    self.index = 0
  end
 
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_items(i)
    end
  end
 
  def draw_items(index)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.font.color = text_color(SHOP_COMMAND_COLOR)
    self.contents.draw_text(rect, @commands[index], 1)
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                     WINDOW RECRUIT CONFIRM PURCHASE CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitConfirmPurchase < Window_Selectable
 
  include RecShops
 
  def initialize(name)
    super(120, 180, 160, 90)
    self.windowskin = Cache.system(SHOPSKIN)
    @c1 = "Recruit " + name + "?"
    @c2 = "Cancel"
    @commands = [@c1, @c2]
    @item_max = @commands.size
    refresh
    self.index = 0
  end
 
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_items(i)
    end
  end
 
  def draw_items(index)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.font.color = text_color(SHOP_COMMAND_COLOR)
    self.contents.draw_text(rect, @commands[index], 1)
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                        WINDOW RECRUITS CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_Recruits < Window_Selectable
 
  include RecShops
 
  attr_accessor :shopvar
  attr_accessor :recruit_ids
  attr_accessor :price
 
  def initialize(x, y, width, height)
    super(x, y, width, height)
    self.windowskin = Cache.system(SHOPSKIN)
    @shop_id = $game_temp.recshop_id
    get_shop_variable
    get_recruit_ids
    get_random_recruits
    get_commands
    @item_max = @commands.size
    refresh
  end
 
  def get_shop_variable
    if RECRUIT_SHOPS[@shop_id]["use_variable"][0]
      var = RECRUIT_SHOPS[@shop_id]["use_variable"][1]
      @shopvar = $game_variables[var]
    else
      @shopvar = 0
    end
  end
 
  def get_recruit_ids
    @recruit_ids = RECRUIT_SHOPS[@shop_id]["recruits"][@shopvar]
    for i in @recruit_ids
      if $game_actors[i].taken
        @recruit_ids.delete(i)
      end
    end
  end
 
  def get_random_recruits
    top_lv = RECRUIT_SHOPS[@shop_id]["use_random"][0]
    beasts = RECRUIT_SHOPS[@shop_id]["use_random"][1]
    for i in @recruit_ids
      if $game_actors[i].is_random
        unless $game_actors[i].is_set
          $game_actors[i].produce_random_recruit(top_lv, beasts)
          $game_actors[i].set_recruit_price
        end
      end
    end
  end
 
  def get_commands
    @commands = []
    for i in @recruit_ids
      @commands.push($game_actors[i].name)
    end
  end
 
  def refresh
    self.contents.clear
    create_contents
    for i in 0...@item_max
      draw_items(i)
    end
  end
 
  def draw_items(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    get_recruit_price(index)
    if $game_party.gold >= @price
      enabled = true
    else
      enabled = false
    end
    self.contents.font.color = text_color(RECRUIT_NAME_COLOR)
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
    draw_recruit_price(@recruit_ids[index], rect.x + 160, rect.y)
  end
 
  def get_recruit_price(index)
    recruit = $game_actors[@recruit_ids[index]]
    @price = recruit.price
  end
 
  def reset_after_purchase
    get_shop_variable
    get_recruit_ids
    get_random_recruits
    get_commands
    @item_max = @commands.size
  end
 
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                       WINDOW RECRUIT PREVIEW CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitPreview < Window_Base
 
  include RecShops
 
  attr_accessor :shopvar
  attr_accessor :display_id
 
  def initialize(shop_id, shopvar, display_id)
    super(0, 307, 284, 110)
    self.windowskin = Cache.system(SHOPSKIN)
    @shop_id = shop_id
    @shopvar = shopvar
    @display_id = display_id
    refresh
  end
 
  def refresh
    self.contents.clear
    create_contents
    recruit_id = RECRUIT_SHOPS[@shop_id]["recruits"][@shopvar][@display_id]
    recruit = $game_actors[recruit_id]
    types = RANDOM_RECRUIT_POOLS["Type"]
    draw_actor_face(recruit, 0, 0, 96)
    draw_actor_graphic(recruit, 235, 44)
    self.contents.font.color = text_color(RECRUIT_LEVEL_COLOR)
    self.contents.draw_text(105, 0, self.width, WLH, "LV " + recruit.level.to_s)
    self.contents.font.color = text_color(RECRUIT_CLASS_COLOR)
    self.contents.draw_text(105, WLH, self.width, WLH, recruit.class.name)
    self.contents.font.color = text_color(RECRUIT_TYPE_COLOR)
    type_x = WLH * 2
    self.contents.draw_text(105, type_x, self.width, WLH, types[recruit.type])
  end
 
end

#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                        WINDOW RECRUIT PARAMETERS CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Window_RecruitParameters < Window_Base
 
  include RecShops
 
  attr_accessor :shopvar
  attr_accessor :display_id
 
  def initialize(shop_id, shopvar, display_id)
    super(285, 307, 260, 110)
    self.windowskin = Cache.system(SHOPSKIN)
    @shop_id = shop_id
    @shopvar = shopvar
    @display_id = display_id
    refresh
  end
 
  def refresh
    self.contents.clear
    create_contents
    recruit_id = RECRUIT_SHOPS[@shop_id]["recruits"][@shopvar][@display_id]
    recruit = $game_actors[recruit_id]
    self.contents.font.color = text_color(PARAMETER_TAG_COLOR)
    self.contents.draw_text(25, 20, self.width, WLH, Vocab::atk)
    self.contents.draw_text(25, 20 + WLH, self.width, WLH, Vocab::def)
    self.contents.draw_text(125, 20, self.width, WLH, Vocab::spi)
    self.contents.draw_text(125, 20 + WLH, self.width, WLH, Vocab::agi)
    self.contents.font.color = text_color(RECRUIT_PARAMETER_COLOR)
    self.contents.draw_text(65, 20, self.width, WLH, recruit.atk)
    self.contents.draw_text(65, 20 + WLH, self.width, WLH, recruit.def)
    self.contents.draw_text(165, 20, self.width, WLH, recruit.spi)
    self.contents.draw_text(165, 20 + WLH, self.width, WLH, recruit.agi)
  end
 
end


#0000000000000000000000000000000000000000000000000000000000000000000000000000000
################################################################################
#                           SCENE RECRUIT CLASS
################################################################################
#0000000000000000000000000000000000000000000000000000000000000000000000000000000
class Scene_Recruit < Scene_Base
 
  include RecShops
 
  def initialize(shop_id)
    @shop_id = shop_id
  end
 
  def start
    super
    if USE_SHOP_BGM
      RPG::BGM.new(SHOP_BGM).play
    end
    @confirming = false
    $game_temp.recshop_id = @shop_id
    @win_commands = Window_RecruitCommands.new
    @win_gold = Window_Gold.new(121, 0)
    @win_shopname = Window_RecruitShopName.new(@shop_id)
    @win_seller = Window_RecruitShopSeller.new(@shop_id)
    @win_recruits = Window_Recruits.new(0, 81, 284, 226)
    @shop_available = false
    unless @win_recruits.recruit_ids.empty?
      @win_preview = Window_RecruitPreview.new(@shop_id, @win_recruits.shopvar, @win_recruits.index)
      @win_parameters = Window_RecruitParameters.new(@shop_id, @win_recruits.shopvar, @win_recruits.index)
      get_current_recruit
      @shop_available = true
    end
    @win_commands.active = true
  end
 
  def update
    if @win_commands.active
      @win_commands.update
      if Input.trigger?(Input::C)
        case @win_commands.index
        when 0
          unless @win_recruits.recruit_ids.empty?
            RPG::SE.new(SHOP_SE_SELECT, 100, 80).play
            make_recruits_active
          else
            Sound.play_buzzer
            update_seller_text(6)
          end
        when 1
          RPG::SE.new(SHOP_SE_BACK, 100, 80).play
          update_seller_text(3)
          Graphics.wait(60)
          $scene = Scene_Map.new
        end
      elsif Input.trigger?(Input::B)
        RPG::SE.new(SHOP_SE_BACK, 100, 80).play
        update_seller_text(3)
        Graphics.wait(60)
        $scene = Scene_Map.new
      end
    elsif @win_recruits.active
      @win_recruits.update
      get_current_recruit
      alter_preview_display
      alter_parameter_display
      if Input.trigger?(Input::C)
        if buyable?
          RPG::SE.new(SHOP_SE_SELECT, 100, 80).play
          open_confirm_window
        else
          Sound.play_buzzer
          update_seller_text(4)
          Graphics.wait(140)
          update_seller_text(1)
        end
      elsif Input.trigger?(Input::B)
        RPG::SE.new(SHOP_SE_BACK, 100, 80).play
        make_commands_active
      end
    elsif @confirming
      @win_confirm.update
      if Input.trigger?(Input::C)
        case @win_confirm.index
        when 0
          if $game_party.party_is_full
            Sound.play_buzzer
            update_seller_text(5)
            Graphics.wait(140)
            make_recruits_active
          else
            RPG::SE.new(SHOP_SE_PURCHASE, 100, 80).play
            $game_party.add_actor(@current_recruit_id)
            $game_party.lose_gold($game_actors[@current_recruit_id].price)
            update_seller_text(2)
            @win_recruits.reset_after_purchase
            Graphics.wait(40)
            @win_recruits.refresh
            @win_gold.refresh
            make_recruits_active
          end
        when 1
          RPG::SE.new(SHOP_SE_BACK, 100, 80).play
          make_recruits_active
        end
      elsif Input.trigger?(Input::B)
        RPG::SE.new(SHOP_SE_BACK, 100, 80).play
        make_recruits_active
      end
    end
  end
 
  def make_recruits_active
    if @confirming
      update_seller_text(1)
      @win_confirm.dispose
      @confirming = false
      unless @win_recruits.recruit_ids.empty?
        @win_recruits.index = 0
        @win_recruits.active = true
      else
        @win_recruits.index = -1
        @win_commands.active = true
      end
    else
      unless @win_recruits.recruit_ids.empty?
        update_seller_text(1)
        @win_commands.active = false
        @win_recruits.index = 0
        @win_recruits.active = true
      end
    end
  end
 
  def update_seller_text(value)
    @win_seller.text_value = value
    @win_seller.refresh
  end
 
  def make_commands_active
    @win_commands.active = true
    update_seller_text(0)
    @win_recruits.active = false
  end
 
  def alter_preview_display
    @win_preview.display_id = @win_recruits.index
    @win_preview.refresh
  end
 
  def alter_parameter_display
    @win_parameters.display_id = @win_recruits.index
    @win_parameters.refresh
  end
 
  def buyable?
    if $game_party.gold >= $game_actors[@current_recruit_id].price
      return true
    else
      return false
    end
  end
 
  def open_confirm_window
    @confirming = true
    recruit = $game_actors[@current_recruit_id]
    @win_confirm = Window_RecruitConfirmPurchase.new(recruit.name)
    @win_recruits.active = false
    @win_confirm.active = true
  end
 
  def get_current_recruit
    recruits = RECRUIT_SHOPS[@shop_id]["recruits"][@win_recruits.shopvar]
    @current_recruit_id = recruits[@win_recruits.index]
  end
 
  def terminate
    if @win_recruits.recruit_ids.empty? && @shop_available
      @win_preview.dispose
      @win_parameters.dispose
    elsif @win_recruits.recruit_ids.size >= 1
      @win_preview.dispose
      @win_parameters.dispose
    end
    @win_seller.dispose
    @win_shopname.dispose
    @win_gold.dispose
    @win_recruits.dispose
    @win_commands.dispose
    RPG::BGM.fade(3 * 1000)
  end
 
end


Screeny:
Spoiler:




Demo:
________________________
 
 
 
makerowiec64 




Preferowany:
RPG Maker 95

Pomógł: 2 razy
Dołączył: 02 Wrz 2012
Posty: 181
Skąd: się tu wziąłem?
Wysłany: Wto 02 Kwi, 2013 17:57
Fajny skrypt!Sprzedać niewolnika :mrgreen: !
Ale serio,bardzo mi się podoba.Czego to ludzie nie wymyślą...
________________________
99 % świrów czyta mój podpis z ręką na myszce.
Nie odchylaj ręki - jest już za późno :haha:

Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene