- Joined
- Oct 25, 2015
- Messages
- 449
- Reaction score
- 268
- First Language
- English
WeaponClassChange.js v1.0
Jeremy Cannady
Introduction
Changes your class when you equip a different weapon. Your exp is saved so when you reequip you go back to your old level. The class must be-able to equip the weapon.
Download
http://pastebin.com/uah4Ek1i
Screenshots
This does not apply to all scripts, specially to those which don't have any visual effect.
How to Use
Give instructions on how to install and use the script. Also, make sure that you include the instructions in the script header(together with the version number and your name) so that the user can consult it when needed).
Demo
Don't have a demo at the moment.
Script
Make sure that you place your script using the code feature, do not use quotes. Again, if spoiler tag is available in the future then use the spoiler tag together with the code tag.
Credit and Thanks
- Jeremy Cannady
ArcherBanish ---> http://forums.rpgmakerweb.com/index.php?/topic/47747-custom-class-change-v100/?hl=classchange
I used his code for forgetting and learning new skills
Yoji Ojima
I used the plugin TitleCommand Position to learn how to operate the parameters
Author's Notes
This is optional
Jeremy Cannady
Introduction
Changes your class when you equip a different weapon. Your exp is saved so when you reequip you go back to your old level. The class must be-able to equip the weapon.
Download
http://pastebin.com/uah4Ek1i
Screenshots
This does not apply to all scripts, specially to those which don't have any visual effect.
How to Use
Give instructions on how to install and use the script. Also, make sure that you include the instructions in the script header(together with the version number and your name) so that the user can consult it when needed).
Demo
Don't have a demo at the moment.
Script
Make sure that you place your script using the code feature, do not use quotes. Again, if spoiler tag is available in the future then use the spoiler tag together with the code tag.
//=============================================================================// WeaponClassChange.js//=============================================================================/*: * @plugindesc Changes class when actor equips a different weapon type. * @author Jeremy Cannady * * @param Weapon Types * @desc List the weapon types. * @default 1,2,3,4,5,6,7,8,9,10 * * @param Classes * @desc List the classes. * @default 1,2,3,4,5,6,7,8,9,10 * * @param Unequipped Class * @desc The is the class you want to be when you dont have a weapon equipped. * @default 1 * Example one: * Weapon Type : 1,2,3,4,5,6,7,8,9,10 * | | | | | | | | | | * Class: 1,2,3,4,5,6,7,8,9,10 * When you equip weapon type one your class changes to class #1 in your database. * When you equip weapon type 5 your class changes to class #5 in your database. * * Example two: * Weapon Type: 1,2,3,4,5,6,7,8,9,10 * | | | | | | | | | | * Class: 1,2,8,4,5,6,7,8,9,10 * When you equip weapon type three or eight your class changes to class #8 in your database. * * @help The parameter order determines the class change.Classes 1,2,3,4,5,6,7,8,9,10 *For example when you equip weapon type 1 then your class changes to class 1.Classes 2,2,3,4,5,6,7,8,9,10 *In this example when you equip weapon type 1 then your class changes to class 2. *Please see script text for a simple graphic. * * **/(function() {//Retrieve the parametersvar parameters = PluginManager.parameters('WeaponClassChange');var weaponType = parameters['Weapon Types']; var classes = parameters['Classes'];var defaultClass = Number(parameters['Unequipped Class']);//Store the parameters into an string array and get rid of the commasvar weaponTypeArray = weaponType.split(',');var classesArray = classes.split(',');//Convert the parameters into number arrayfor(var i=0; i<weaponTypeArray.length; i++) { weaponTypeArray = parseInt(weaponTypeArray, 10); } for(var i=0; i<classesArray.length; i++) { classesArray = parseInt(classesArray, 10); } //Lets make a copy of Game_Actor.prototype.setup so we can add to itvar Game_Actor_setup = Game_Actor.prototype.setup;Game_Actor.prototype.setup = function(actorId) {Game_Actor_setup.call(this,actorId);this._classExp = [];var length = $dataClasses.lengthfor(var i = 0; i<length;i++){//Sets the default value for each class starting exp to 0this._classExp.push(0); };}//This function compares which weapon type you have equipped and gives you the class that corresponds to it.Game_Actor.prototype.getNewClassId = function(){var wtypeId = this.weapons()[0] ? this.weapons()[0].wtypeId : 0;//Takes the position of the weapon parameter and makes newClassId equal to the the parameter that is in the same position as the weapon type.var newClassId = classesArray[weaponTypeArray.indexOf(wtypeId)];//If the actor has unequipped a weapon then make the newClassId into the 'Unequipped Class' in the parameters.if($gameActors.actor(this.actor().id).hasNoWeapons()){newClassId = defaultClass;};//When we call this function then return what our class should be based upon which wepaon we have equippedreturn newClassId;}; //Make a copy of changeEquip so we can edit itvar copyOfChangeEquip = Game_Actor.prototype.changeEquip;//Overide Game_Actor.prototype.changeEquipGame_Actor.prototype.changeEquip = function(slotId, item) {//When we change our equipment then do what we used to do in the origial Game_Actor.prototype.changeEquipcopyOfChangeEquip.call(this,slotId,item);//but also do thisthis.changeToNewClass(this.actor().id);};Game_Actor.prototype.changeToNewClass = function(currentActor){//When we call the function changeToNewClass then do these things.//Current Actor IDvar actor = $gameActors.actor(currentActor);//Current Class Idvar currentClassId = actor.currentClass().id;var newClassId = actor.getNewClassId();//Current Expvar currentExp = actor.currentExp();//Put the curent exp back in to the arrayactor._classExp[currentClassId] = currentExp;//Change the classactor.changeClass(newClassId, false);//Change the exp to the correct valuevar newExp = actor._classExp[newClassId];actor.changeExp(newExp,false)//Forget old skillsactor._skills.forEach(function(skill){ var index = actor._skills.indexOf(skill); if (index >= 0) { actor._skills.splice(index, 1);};}, actor);//Learn new skillsactor.currentClass().learnings.forEach(function(learning) { if (learning.level <= actor._level) { actor.learnSkill(learning.skillId); } }, actor);}; })();/*:CreditsArcherBanish ---> http://forums.rpgmakerweb.com/index.php?/topic/47747-custom-class-change-v100/?hl=classchange//I used his code for forgetting and learning new skillsYoji Ojima//I used the plugin TitleCommand Position to learn how to operate the parameters*/
Credit and Thanks
- Jeremy Cannady
ArcherBanish ---> http://forums.rpgmakerweb.com/index.php?/topic/47747-custom-class-change-v100/?hl=classchange
I used his code for forgetting and learning new skills
Yoji Ojima
I used the plugin TitleCommand Position to learn how to operate the parameters
Author's Notes
This is optional
Last edited by a moderator: