Jump to content

Recommended Posts

Gambit Evolution

 

Current Version: 1.02

 

 

Introduction:
Please read through this thread and check out the video to make sure this is what you are looking for. This script is intended to allow you to create an Evolution system similar to that found in Pokémon games. This script is NOT plug-and-play (*the animations are not). It requires you to setup at least one common event.

So, this was one of my original scripts that I had written for myself. After I decided that I might as well release it, I began rewriting parts of it and adding more evolution-related features. It then became a series of separate scripts which I eventually decided to just combine into a single script. When I was initially creating this script, I strongly preferred the use of common events over just scripting since it allowed me to easily change various aspects of the evolution at will. This script was designed to only provide the tools needed to create an evolution system through common events. Now that I'm releasing the script, however, it may seem more complicated than necessary to setup, but, in my opinion, this gives the system a lot of flexibility.

Before attempting to use script, please check out the video to see an example of how it can be setup. The Common Event Setup Screenshots below depict the common events used in the video. These are just an example for you if you need help understanding the logic. Please read through the Documentation in this thread and the Instructions and Setup within the header of the script. All necessary information is there along with other helpful guidance such as what methods are available to you (there are more than just the ones I used in my video) and what each method does, the values of the Evolution Progress variable throughout my evolution setup, and the process of setting up evolution stones.

Please note that setting up the Evolution cancellation, animations, and stones is optional. Each feature can be added separately or not-at-all.


Description:
This script creates an evolution system which can replace certain actors with other actors. Evolution is triggered by leveling up and reaching a minimum level or through the use of an item (evolution stone). This is a process similar to that found in Pokémon games. It allows for a large amount of customization, supports animations, and allows the option to cancel undesired evolutions during the animation sequence.


Features:

  • Allows an actor to evolve into another actor by level up or evolution stone
  • If evolution is via level up, and multiple actors reach their respective evolution levels, all evolutions will queue and display appropriately.
  • Audio support: evolution animation background music, evolution success audio, evolution canceled audio, actor cries (or sound effects that are specific to each evolving actor)
  • Allows animations in the evolution sequence
    • Supports opacity, zoom, tone, and visibility modifications to actor pictures
    • Allows use of Database Animations on actor pictures
  • Ability to carryover skills, level, experience toward next level, and equipment from previous evolution stage and, as a result, skip any missed lower-level skills of the new stage's class
  • After evolution, the newly-added stage2 actor will be in the same spot in the player's party as the previous stage1 actor
  • Option to decide whether actor health (along with mp) and states should be be treated as they are in Pokemon games or if health and mp should be fully restored and all states should be removed after evolving. After evolution in Pokemon, states are maintained and health is only increased by the increase in the HP stat upon evolving. The stage2 Pokemon is not fully healed.
  • Can cancel an evolution during the animation by pressing the B button
  • Evolution stones (consumable items) can be used to allow certain actors to evolve.
    • Supports as many stone types as desired
    • Stones will be unselectable if they are not applicable to any current party member
    • Each type of stone can only be used on actors that are eligible for evolution with that respective stone type
    • Same actor can evolve by both level and stone to either the same evolution stage or a different one based on the method of evolution
  • Can display evolution text in a style similar to that found in Pokemon games (unskippable during animation, autocontinues after animation, etc.)
  • Creates new message control characters to display the names of the actors involved in the evolution

 

 

Required Scripts:
Other scripts are only required if using either of these features: (1) using both option to cancel evolution AND evolution animations and/or (2) including the ability to evolve through the use of evolution stones
(1) If using animations with cancel option: Custom Page Conditions by Tsukihime
(2) If using evolution stones: Effect Manager by Tsukihime


Video:

 

Documentation:



GAMBIT EVOLUTION DOCUMENTATION - v1.00

Please check here for the latest version of the script, documentation, examples, video, and other information: http://www.rpgmakervxace.net/topic/15600-gambit-evolution/

Examples for setting up the necessary evolution common event and optional cancellation and animation common events are also located at the above link.

--------------------------------------------------------------------

TABLE OF CONTENTS:
EVOLUTION MAIN METHODS - contains methods necessary for evolution

EVOLUTION PICTURES AND ANIMATION METHODS - contains methods used for evolution animations

 
EVOLUTION MESSAGES - contains explanation of message text changes when PokeText is set to true and details the new control characters to use in evolution messages

EVOLUTION STONES - contains information for setting up evolution stones (items)

--------------------------------------------------------------------

EVOLUTION MAIN METHODS

evol_switch(number)
This is a simple way of flipping the switch that determines whether or not evolution is occurring. A number must be specified. If 1 is used, the switch will be turned on. If any other number is used, the switch will be turned off.

evol_variable(number)
This is a simple way of checking the value of the evolution progress variable for use as a script call in conditional branches or it can be used to change the evolution progress variable. If a number is specified, the variable will be set to the specified number. If a number is not specified, the value of the variable will be returned. Do not specify a number if using this method in conditional branches; instead, just use
evol_variable.

Evolution Progress Variable Tracking - this list explains and tracks the value of the evolution progress variable throughout the evolution process (based on the example common events located at the link listed above)
----------------------------------
Variable == 0: when no evolution is occurring. 0 becomes 1

Variable == 1: at the start of an evolution; is 1 throughout animation; evolution can only be canceled while variable == 1. 1 becomes -1 if evolution is canceled or 2 if evolution animations complete successfully

Variable == -1: when an evolution is canceled. -1 becomes 0 when evolution cancellation completes

Variable == 2: when animations complete successfully (without being canceled); is 2 during evolution successful stage. 2 becomes 3 when evolution successful animations complete

Variable == 3: when evolution successful animations complete. 3 becomes 0 when evolution completes
----------------------------------

evolve_cry
This will play the cry of either the stage1 or stage2 actor if their actor id is included in the ActorsWithCries array. If the actor id is included, the cry of the stage1 actor will be played if the evolution progress variable is set to any number other than 3. If it is set to 3, then this method will play the stage2 actor's cry. File should be located in Audio/SE and the file name should match the actor's name.

evol_update_list
The script keeps track of all actors eligible for evolution upon level up. This means that if multiple actors can evolve since they leveled up simultaneously, they will evolve one after the other when this script is used properly. This method updates the tracking of evolved actors and should be used after the evolution has succeeded or has been canceled but before checking if the evolution are done.

evol_update_party
This method will remove the stage1 actor from the party and add the stage2 actor to the party.

evol_new_skills
This method will display the new skill(s) gained from evolving (if any). This method should be called after evol_update_party.

evolve_done?
This method will return true if no more evolutions are pending. If any more actors are up for evolution, it will return false. This check is only needed if multiple actors leveled up simultaneously making more than one eligible for evolution.

evolve_setup_again
This method will prepare the next evolution for another actor who is eligible for evolution.

--------------------------------------------------------------------

EVOLUTION PICTURES AND ANIMATION METHODS

evol_pic1
Displays evolution picture of stage1 actor. File should be located in Graphics/Pictures and the file name should match the actor's name

evol_pic2
Displays evolution picture of stage2 actor. File should be located in Graphics/Pictures and the file name should match the actor's name

----------------------------------

The following methods exist for both stage1 and stage2 pictures. Only the ones that affect stage1 pictures are listed. To change the stage2 picture instead, just use evol_pic2_ as the prefix instead of evol_pic_.

evol_pic_visible
If the stage1 actor picture is visible, it will be changed to not visible. If it is not visible, it will be changed to visible.

evol_pic_zoom(zoom)
Immediately changes the zoom of the stage1 picture to the specified argument. Using evol_pic_zoom without an argument will result in the picture being restored to it's normal size. (1.5 = 150% of normal size, 0.25 = 25% of normal size)

evol_pic_zoomin(zoom)
Animates magnification of the stage1 picture. This differs from evol_pic_zoom because it gradually zooms in and is not instantaneous. Using evol_pic_zoomin without an argument will result in a 125% zoom, or enlarging the image to 125% of normal size. (1.5 = 150% of normal size)

evol_pic_zoomout(zoom)
Animates demagnification of the stage1 picture. This differs from evol_pic_zoom because it gradually zooms out and is not instantaneous. Using evol_pic_zoomout without an argument will result in a 50% zoom, or shrinking the image to 50% of normal size. (0.25 = 25% of normal size)

evol_pic_zoom_anim(zoom)
Animates either magnification or demagnification of the stage1 picture. This method is essentially a combination of evol_pic_zoomin and evol_pic_zoomout. If the specified zoom is larger than the current zoom, the zoomin animation will be used; if it is smaller, the zoomout animation will be used. Using evol_pic_zoom_anim without an argument will result in a 100% zoom, or returning the image to its normal size. (0.25 = 25% of normal size)

evol_pic_opacity(change, opacity)
This method can be used in several ways to change the stage1 picture's opacity. Using evol_pic_opacity without any arguments will result in the picture's opacity being instantly set to 0 if it is currently 255 or 255 if it is currently set to 0. If 0 is used for change, then the picture will be set to whatever number specified for opacity instantly. If change is set to a number other than 0 and opacity is set as -1, then the opacity will slowly transition from either 255 to 0 or 0 to 255 (depending on the current opacity) in increments of the number specified for change per frame.

evol_pic_tone(red, green, blue, gray)
This method will set the stage1 picture's tone to the numbers specified. Note that the gray argument can be ignored to stick with the default setting. Using evol_pic_tone without arguments will result in the picture being set to a white tone. If it is already set at a white tone, then the picture will be restored to its original tone.

evol_pic_anim(animation_id)
This method will play the specified animation on the stage1 picture. An animation id must be specified.

----------------------------------

Special methods that affect both pictures:

evol_pics_zoom(zoom1, zoom2, speed)
This method will change the zoom of both the stage1 and stage2 pictures simultaneously. Both pictures' current zoom levels must not match the new ones for the method to function properly. This method also only functions if the pictures are undergoing opposite zooms; that is, one picture is zooming in while the other is zooming out. Using evol_pics_zoom without any arguments will result in both pictures returning to 100% zoom, or returning to their normal sizes, at a 0.01 speed. (zoom: 0.25 = 25% of normal size, speed: 0.01 is the typical speed used by other zoom animations)

evol_pics_opacity(change)
This method will animate the changing of the opacities of both pictures. This will only work for changing the opacity of one picture from 255 to 0 and the other from 0 to 255 at the same time. The value specified for change will be the change in opacity each frame. A change must be specified.

evol_pic_zoom_and_pics_opacity(zoom1, change)
This method is very particular as it will animate the fading out of one picture, fading in of the other picture, and zooming out/in of the stage1 picture all simultaneously. It will only change the zoom of the stage1 picture specifically while changing the opacities of both pictures in opposite directions in increments of the argument change. It will only function when one of the pictures' opacities is 255 while the other is 0. It will determine whether to zoom in or out of the stage1 picture by comparing the current zoom with the argument zoom1. Both zoom1 and change must be specified.

evol_clear_anims
This will hide the stage2 picture if it is visible and stop the animations of both stage pictures if any animations are currently occurring. It will then restore the stage1 picture to its original settings (zoom, tone, opacity, etc.). Use this method when a player cancels an evolution, if such an option is allowed in your game.

evol_pics_clear
This will dispose of both stage pictures. Use this when the evolution animations are done to remove the pictures from the screen.



--------------------------------------------------------------------
 
EVOLUTION MESSAGES
 
When Poketext is set to true, during an evolution:
 
Any text displayed while the Evolution Progress variable is 1 will be unskippable and will remain on the screen until the value of the variable changes to something other than 1. At that point, the message will automatically continue without player input.
 
Any text displayed while the Evolution Progress variable is -1 will be unskippable for the amount of time specified, in seconds, for CancelTextWait. After this amount of time, the message will wait for player input before continuing. This should be used for the text displayed when the evolution is canceled. CancelTextWait would ideally be set to the length of your evolution cancel audio clip.
 
Any text displayed while the Evolution Progress variable is 2 will be unskippable until the value of the variable changes to something other than 2. At that point, the message will wait for player input before continuing.
 
----------------------------------
 
Evolution Message Control Characters:
 
\E[1] => displays the name of the stage1 actor
\E[2] => displays the name of the stage2 actor
 
--------------------------------------------------------------------

EVOLUTION STONES

First, get the Effect Manager script by Tsukihime. Then set AllowStones to true in the setup portion of the script.

In the Evolution list in the setup portion of the script, create the evolutions that use stones as their triggers by adding :stone => item_id to the entries. Here are some examples of valid entries. Note that an actor can evolve by level-up, stone, or both. Again, the number specified for the stone is the item id of the stone.

{ :stage1 => 5, :stage2 => 8, :stone => 5 }
{ :stage1 => 5, :stage2 => 3, :level => 2, :stone => 17 }
{ :stage1 => 5, :stage2 => 3, :stone => 17, :level => 2 }

Setting up the stone items:
1. Create a new item.
2. Set the name, icon, description, and price as desired. Other options can stay at default settings.
3. Add this line to the note box: <eff: evolution_stone>

That's it, your stone is ready for use. Please note that any stone item that you create should be used in at least one evolution; otherwise, it will not be treated as a stone. Instead, the game will treat it as any other item.




Common Event Setup Screenshots:


Main Evolution common event.
R9Fjgqo.jpg


Evolution Cancellation common event. This allows for the player to press the B button at any time during the animations to cancel the evolution and stick with the stage1 actor.
1tT4BvB.jpg


Evolution Animations common event. This animates the evolution and allows the main Evolution common event to proceed after completing the animations.
JhpynfS.jpg




Credits:

  • Gambit
  • Tsukihime (and any other necessary credits) when using optional scripts

 

Changelog:

v 1.02 - October 17, 2013

  • Fixed bug resulting from previous update

v 1.01 - July 15, 2013

  • Fixed issue preventing player from saving the game

v 1.00 - May 27, 2013

  • Initial release

 

Script:

Script: Gambit Evolution Script v1.02.txt

Demo: Click Here

 

Outdated scripts:

 

 

Edited by Gambit.

Share this post


Link to post
Share on other sites

I'm pretty sure this would already be possible with the current script. Try setting the stage2 of the first evolution to the stage1 of the second evolution and the stage1 of the first evolution to the stage2 of the second evolution. Sounds confusing, but it's simple. Like this:

Evolution = [
  { :stage1 => 1, :stage2 => 2, :stone => 5 },
  { :stage1 => 2, :stage2 => 1, :stone => 6 }
]
Edited by Gambit.

Share this post


Link to post
Share on other sites

Thanks for the note. That's pretty game-breaking. I'm not even sure why I had attempted to add data to the save files. The script has been updated.

 

v 1.01 - July 15, 2013

  • Fixed issue preventing player from saving the game

Share this post


Link to post
Share on other sites

First let me ..this is a amazing script :) thank you , secondly i keep getting a error on line 775 when trying to use a stone to evolve  it says its a undefined method 'stones' for nil class. my setup is like this:

 

Evolution = [  

{ :stage1 => 2, :stage2 => 3, :stone => 70 },

 ]

 

 

my stone is item id 70 so can anyone please tell me what i  am doing wrong ?
any and all help in this matter would be greatly appreciated 

 

**EDIT**

also if i try to evolve using the level option i get a error on line 781 it says its a undefined method 'stones=' for nil class

 

here are screen shots of the two errors 

 

post-20718-0-70834300-1381952665_thumb.png

 

post-20718-0-42145800-1381952704_thumb.png

Edited by cazziuz

Share this post


Link to post
Share on other sites

Script updated:

v 1.02 - October 17, 2013

  • Fixed bug resulting from previous update

 

First let me ..this is a amazing script :) thank you , secondly i keep getting a error on line 775 when trying to use a stone to evolve  it says its a undefined method 'stones' for nil class. my setup is like this:

 

Evolution = [  

{ :stage1 => 2, :stage2 => 3, :stone => 70 },

 ]

 

 

my stone is item id 70 so can anyone please tell me what i  am doing wrong ?
any and all help in this matter would be greatly appreciated 

 

**EDIT**

also if i try to evolve using the level option i get a error on line 781 it says its a undefined method 'stones=' for nil class

 

here are screen shots of the two errors 

 

attachicon.gifstoneevolveerror.png

 

attachicon.gifevolvebylevelerror.png

 

Thank you for the post. This was an issue introduced to the script by the previous update. It should be resolved in the latest update.

 

 

Seems legit. I like it! Great work on this script my friend! :)

 

Thank you!

Edited by Gambit.

Share this post


Link to post
Share on other sites

ok , apparently i am a tard , cause i cant for the life of me get this script to work all the way , i can get it to the faded out screen at the start of the evolution where it says characters name is evolving but it wont go any further its like the game freezes but nothing is frozen (i have tried it in a new fresh project and it still wont work right)...please i beg of you , is there any way possible for you to post a small demo of how you have this set up ? i have been fighting with this script since you updated it and i am about to go insane because of it ,lol so please if it  is at all possible to post a demo , I would be eternally grateful and my wife would  thank you since she would not have to listen to me threaten a program anymore ,lol thank you for your time and hopefully for the small demo .

 

-Cazziuz

Share this post


Link to post
Share on other sites

ok , apparently i am a tard , cause i cant for the life of me get this script to work all the way , i can get it to the faded out screen at the start of the evolution where it says characters name is evolving but it wont go any further its like the game freezes but nothing is frozen (i have tried it in a new fresh project and it still wont work right)...please i beg of you , is there any way possible for you to post a small demo of how you have this set up ? i have been fighting with this script since you updated it and i am about to go insane because of it ,lol so please if it  is at all possible to post a demo , I would be eternally grateful and my wife would  thank you since she would not have to listen to me threaten a program anymore ,lol thank you for your time and hopefully for the small demo .

 

-Cazziuz

 

I haven't been able to thoroughly test it out, but here's a simple demo. Natalie evolves into Ernest at level 2+ (talk to NPC on left to level up). Ernest evolves into Eric if you use an Evolution Stone (the dog on the right will give you the stone after you have Ernest). Let me know if it helps!

 

Demo: Gambit Evolution Demo.zip

Share this post


Link to post
Share on other sites

Thank you thank you thank you and thank you , i have no ideal hat is different about it now, i looked it over and all my settings seem to be the same as in your demo , but now it works? ? thank you seriously , me not being able to get this to work would have been a game breaker for my game ,lol t hank you thank you , i even managed to get my stone working , and after looking over the settings you had in demo , i think i may have had my evolution event listed as 1 when it was actually 2 ,lol i feel really dumb , but again thank you 

 

-Cazziuz

Share this post


Link to post
Share on other sites

Great script, but I found a problem when using clone actors. When a clone of an actor and the original actor both exsist and the actor is set to evolve with an item selecting 'item' from the menu causes an error

 

GamEvolution:752:in `stone_restriction?' :  undefined method `include?' for nil:NilClass  (NoMethodError)

Share this post


Link to post
Share on other sites

Can i make the script to not have an evolution animation? i want them to evolve on the map, like a resplador on the actor to cover the sprite change.

Share this post


Link to post
Share on other sites

Can i make the script to not have an evolution animation? i want them to evolve on the map, like a resplador on the actor to cover the sprite change.

 

I want something different more or less the character transforms as part of a scripted battle rather than anything else and after the battle he reverts back. The equipment changes between the transformations as well.

Share this post


Link to post
Share on other sites

Nice Script! btw I am making a digimon game and was thinking for making an evolution via eventing but this is just so Sweet! I have one question though, can this script be use to evolve certain monsters that required Parameters to be met?

 

eg. it will evolve Totodile if he is at lvl 16 and has an attack of 30 or higher?

 

 

 

Hope to hear from you soon!

Share this post


Link to post
Share on other sites

Sorry for the late reply all!

 

Great script, but I found a problem when using clone actors. When a clone of an actor and the original actor both exsist and the actor is set to evolve with an item selecting 'item' from the menu causes an error

 

GamEvolution:752:in `stone_restriction?' :  undefined method `include?' for nil:NilClass  (NoMethodError)

Unfortunately, the script does not support actor clones.

 

Can i make the script to not have an evolution animation? i want them to evolve on the map, like a resplador on the actor to cover the sprite change.

If you don't use the animation common event, it should just evolve on the map. You can omit most of the commands I used. Just check out the documentation in the first post.

 

 

Can i make the script to not have an evolution animation? i want them to evolve on the map, like a resplador on the actor to cover the sprite change.

 

I want something different more or less the character transforms as part of a scripted battle rather than anything else and after the battle he reverts back. The equipment changes between the transformations as well.

 

This is probably not the script you're looking for then. I remember seeing another script that is sort of similar to what you're saying. I can't find the exact one, but this one might help.

 

Nice Script! btw I am making a digimon game and was thinking for making an evolution via eventing but this is just so Sweet! I have one question though, can this script be use to evolve certain monsters that required Parameters to be met?

 

eg. it will evolve Totodile if he is at lvl 16 and has an attack of 30 or higher?

 

 

 

Hope to hear from you soon!

Thanks! Unfortunately that is currently not one of the evolution options. It's limited to level and item evolutions right now. I might get some more time later this month to make some changes to the script. Let me know if you're still around!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted