Jump to content

BeWan

Members
  • Posts

    381
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by BeWan

  1. you should use search engine. i already answer that question.
  2. sure later i'll send it to you. busy at work right now no time to config all 3rd job classes //==============================================================================// //= Script Release : Job Changer + Max Leveler [ Version 1.5 ] //==================================By==========================================// //= ManiacSociety //==============================================================================// //= Idea Came From : ManiacSociety //= Helper : Emistry & Kenpachi //==============================================================================// //= D E S C R I P T I O N S //==============================================================================// // -- 1. Character can choose a Job which he like to be. // -- 2. This NPC only have 1 Time Usage. // If it is set to Account Based then that account can use 1 times. // If it is set to Character Based then all new character can use 1 times. // -- 3. Complete skills / Skill Points will be given if it is set to be. // -- 4. Base Level and Job Level will be given upon Job Change. //==============================================================================// //= V E R S I O N S //==============================================================================// // -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings // -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes. // -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations. // -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts. // -- [ 1.1 ] : Added New Job Change Option. // -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer. //==============================================================================// //= R U L E S //==============================================================================// // -- 1. Do not use for exchanging purpose. // -- 2. Do not claim it as yours. // -- 3. Do not change or remove the credits. // -- 4. Do not sell the script in order to get paid. // -- 5. Do not re-sharing upon modified without permission. //==============================================================================// //-- Update By Krane //==============================================================================// prontera,153,189,5 script Job Changer2 620,{ //OnPCLoginEvent: // -- Configuration Option set .npcname$,"[ ^0000FF Class Helper ^000000 ]"; set .InfoMenu,0; // Classes Informations Option [ 0 - Disable / 1 - Enable ] set .1stClassMenu,0; // First Job Class Option [ 0 - Disable / 1 - Enable ] set .2ndClassMenu,0; // Second Job Class Option [ 0 - Disable / 1 - Enable ] set .High1stClassMenu,0; // High 1st Class Option [ 0 - Disable / 1 - Enable ] set .Trans2ndClassMenu,0; // Transcendent Class Option [ 0 - Disable / 1 - Enable ] set .Trans3rdClassMenu,1; // Third Job Class Option [ 0 - Disable / 1 - Enable ] set .ExpandedClassMenu,0; // Expanded Class Option [ 0 - Disable / 1 - Enable ] set .BabyClassMenu,0; // Baby Job Class Option [ 0 - Disable / 1 - Enable ] set .Baby3rdClassMenu,0; // Baby Third Job Class Option [ 0 - Disable / 1 - Enable ] set .Allskills,1; // Complete Skills Option [ 0 - Disable / 1 - Enable ] // -- Usable for Only 1 Time set .Based,1; // [ 0 - Account Based / 1 - Character Based ] if( ClassHelper == 1 || #ClassHelper == 1 ) end; Main_Menu: mes .npcname$; mes "I am the Job Class Helper..."; mes "I am here to help you."; mes " ^FF0000________________________________^000000"; mes "Do you wish to become Stronger ?"; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?"; next; if( BaseLevel >= 200 ){ }else{ mes "Sorry you need to reach level 200"; close; } switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000", ( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000", ( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000", ( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000", ( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000", ( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000", ( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000", ( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000", ( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000", "^FF0000Sorry, i admire nobody....^000000")) { Case 1: goto Classes_info; Case 2: goto FirstJob_Classes; Case 3: goto SecondJob_Classes; Case 4: goto HighFirstJob_Classes; Case 5: goto TransSecondJob_Classes; Case 6: goto TransThirdJob_Classes; Case 7: goto ExpandedJob_Classes; Case 8: goto BabyJob_Classes; Case 9: goto BabyThirdJob_Classes; Case 10: close; } FirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Swordman^000000", "^76EE00Magician^000000", "^76EE00Archer^000000", "^76EE00Acolyte^000000", "^76EE00Merchant^000000", "^76EE00Thief^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,1,99,50,60,"All"; Case 2: callsub Job_Changing,2,99,50,60,"All"; Case 3: callsub Job_Changing,3,99,50,60,"All"; Case 4: callsub Job_Changing,4,99,50,60,"All"; Case 5: callsub Job_Changing,5,99,50,60,"All"; Case 6: callsub Job_Changing,6,99,50,60,"All"; Case 7: goto Main_Menu; } HighFirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00High Swordman^000000", "^76EE00High Magician^000000", "^76EE00High Archer^000000", "^76EE00High Acolyte^000000", "^76EE00High Merchant^000000", "^76EE00High Thief^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4002,99,50,60,"All"; Case 2: callsub Job_Changing,4003,99,50,60,"All"; Case 3: callsub Job_Changing,4004,99,50,60,"All"; Case 4: callsub Job_Changing,4005,99,50,60,"All"; Case 5: callsub Job_Changing,4006,99,50,60,"All"; Case 6: callsub Job_Changing,4007,99,50,60,"All"; Case 7: goto Main_Menu; } SecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Knight^000000", "^76EE00Priest^000000", "^76EE00Wizard^000000", "^76EE00Blacksmith^000000", "^76EE00Hunter^000000", "^76EE00Assassin^000000", "^76EE00Crusader^000000", "^76EE00Monk^000000", "^76EE00Sage^000000", "^76EE00Rogue^000000", "^76EE00Alchemist^000000", ( Sex == 0 )?"":"^76EE00Dancer^000000", ( Sex == 1 )?"":"^76EE00Bard^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,7,99,50,110,"All"; Case 2: callsub Job_Changing,8,99,50,110,"All"; Case 3: callsub Job_Changing,9,99,50,110,"All"; Case 4: callsub Job_Changing,10,99,50,110,"All"; Case 5: callsub Job_Changing,11,99,50,110,"All"; Case 6: callsub Job_Changing,12,99,50,110,"All"; Case 7: callsub Job_Changing,14,99,50,110,"All"; Case 8: callsub Job_Changing,15,99,50,110,"All"; Case 9: callsub Job_Changing,16,99,50,110,"All"; Case 10: callsub Job_Changing,17,99,50,110,"All"; Case 11: callsub Job_Changing,18,99,50,110,"All"; Case 12: callsub Job_Changing,20,99,50,110,"All"; Case 13: callsub Job_Changing,19,99,50,110,"All"; Case 14: goto Main_Menu; } TransSecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Lord Knight^000000", "^76EE00High Priest^000000", "^76EE00High Wizard^000000", "^76EE00Whitesmith^000000", "^76EE00Sniper^000000", "^76EE00Assassin Cross^000000", "^76EE00Paladin^000000", "^76EE00Champion^000000", "^76EE00Professor^000000", "^76EE00Stalker^000000", "^76EE00Creator^000000", ( Sex == 0 )?"":"^76EE00Gypsy^000000", ( Sex == 1 )?"":"^76EE00Clown^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4008,255,120,130,"All"; Case 2: callsub Job_Changing,4009,255,120,130,"All"; Case 3: callsub Job_Changing,4010,255,120,130,"All"; Case 4: callsub Job_Changing,4011,255,120,130,"All"; Case 5: callsub Job_Changing,4012,255,120,130,"All"; Case 6: callsub Job_Changing,4013,255,120,130,"All"; Case 7: callsub Job_Changing,4015,255,120,130,"All"; Case 8: callsub Job_Changing,4016,255,120,130,"All"; Case 9: callsub Job_Changing,4017,255,120,130,"All"; Case 10: callsub Job_Changing,4018,255,120,130,"All"; Case 11: callsub Job_Changing,4019,255,120,130,"All"; Case 12: callsub Job_Changing,4021,255,120,130,"All"; Case 13: callsub Job_Changing,4020,255,120,130,"All"; Case 14: goto Main_Menu; } TransThirdJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; if(countitem(512) >= 500){ }else{ mes "Sorry you need 500 Apple to change 3rd job class"; close; } switch(select("^76EE00Rune Knight^000000", "^76EE00Warlock^000000", "^76EE00Ranger^000000", "^76EE00Arch Bishop^000000", "^76EE00Mechanic^000000", "^76EE00Guillotine Cross^000000", "^76EE00Royal Guard^000000", "^76EE00Sorcerer^000000", ( Sex == 0 )?"":"^76EE00Wanderer^000000", ( Sex == 1 )?"":"^76EE00Minstrel^000000", "^76EE00Shura^000000", "^76EE00Genetic^000000", "^76EE00Shadow Chaser^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; if(Class == Job_Lord_Knight){ atcommand "#job " +strcharinfo(0)+ " 4060"; atcommand "#blvl " +strcharinfo(0)+ " 255"; atcommand "#jlvl " +strcharinfo(0)+ " 120"; atcommand "#skillall " +strcharinfo(0); delitem 512,500; close; }else{ mes "Sorry you are not lord knight class"; close; } Case 2: callsub Job_Changing,4061,99,70,200,"All"; Case 3: callsub Job_Changing,4062,99,70,200,"All"; Case 4: callsub Job_Changing,4063,99,70,200,"All"; Case 5: callsub Job_Changing,4064,99,70,200,"All"; Case 6: callsub Job_Changing,4065,99,70,200,"All"; Case 7: callsub Job_Changing,4073,99,70,200,"All"; Case 8: callsub Job_Changing,4074,99,70,200,"All"; Case 9: callsub Job_Changing,4076,99,70,200,"All"; Case 10: callsub Job_Changing,4075,70,70,200,"All"; Case 11: callsub Job_Changing,4077,70,70,200,"All"; Case 12: callsub Job_Changing,4078,70,70,200,"All"; Case 13: callsub Job_Changing,4079,70,70,200,"All"; Case 14: goto Main_Menu; } ExpandedJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Gunslinger^000000", "^76EE00Ninja^000000", "^76EE00Star Gladiator^000000", "^76EE00Soul Linker^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,24,255,120,600,"All"; Case 2: callsub Job_Changing,25,255,120,60,"All"; Case 3: callsub Job_Changing,4047,255,120,110,"All"; Case 4: callsub Job_Changing,4049,255,120,110,"All"; Case 5: goto Main_Menu; } BabyJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Baby Swordman^000000", "^76EE00Baby Magician^000000", "^76EE00Baby Archer^000000", "^76EE00Baby Acolyte^000000", "^76EE00Baby Merchant^000000", "^76EE00Baby Thief^000000", "^76EE00Baby Knight^000000", "^76EE00Baby Priest^000000", "^76EE00Baby Wizard^000000", "^76EE00Baby Blacksmith^000000", "^76EE00Baby Hunter^000000", "^76EE00Baby Assassin^000000", "^76EE00Baby Crusader^000000", "^76EE00Baby Monk^000000", "^76EE00Baby Sage^000000", "^76EE00Baby Rogue^000000", "^76EE00Baby Alchemist^000000", ( Sex == 0 )?"":"^76EE00Baby Dancer^000000", ( Sex == 1 )?"":"^76EE00Baby Bard^000000", "^76EE00Baby Baby^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4024,99,50,60,"All"; Case 2: callsub Job_Changing,4025,99,50,60,"All"; Case 3: callsub Job_Changing,4026,99,50,60,"All"; Case 4: callsub Job_Changing,4027,99,50,60,"All"; Case 5: callsub Job_Changing,4028,99,50,60,"All"; Case 6: callsub Job_Changing,4029,99,50,60,"All"; Case 7: callsub Job_Changing,4030,99,50,110,"All"; Case 8: callsub Job_Changing,4031,99,50,110,"All"; Case 9: callsub Job_Changing,4032,99,50,110,"All"; Case 10: callsub Job_Changing,4033,99,50,110,"All"; Case 11: callsub Job_Changing,4034,99,50,110,"All"; Case 12: callsub Job_Changing,4035,99,50,110,"All"; Case 13: callsub Job_Changing,4037,99,50,110,"All"; Case 14: callsub Job_Changing,4038,99,50,110,"All"; Case 15: callsub Job_Changing,4039,99,50,110,"All"; Case 16: callsub Job_Changing,4040,99,50,110,"All"; Case 17: callsub Job_Changing,4041,99,50,110,"All"; Case 18: callsub Job_Changing,4043,99,50,110,"All"; Case 19: callsub Job_Changing,4042,99,50,110,"All"; Case 20: callsub Job_Changing,4045,99,50,110,"All"; Case 21: goto Main_Menu; } BabyThirdJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Baby Rune Knight^000000", "^76EE00Baby Warlock^000000", "^76EE00Baby Ranger^000000", "^76EE00Baby Arch Bishop^000000", "^76EE00Baby Mechanic^000000", "^76EE00Baby Guillotine Cross^000000", "^76EE00Baby Royal Guard^000000", "^76EE00Baby Sorcerer^000000", ( Sex == 0 )?"":"^76EE00Baby Wanderer^000000", ( Sex == 1 )?"":"^76EE00Baby Minstrel^000000", "^76EE00Baby Shura^000000", "^76EE00Baby Genetic^000000", "^76EE00Baby Shadow Chaser^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4096,99,70,200,"All"; Case 2: callsub Job_Changing,4097,99,70,200,"All"; Case 3: callsub Job_Changing,4098,99,70,200,"All"; Case 4: callsub Job_Changing,4099,99,70,200,"All"; Case 5: callsub Job_Changing,4100,99,70,200,"All"; Case 6: callsub Job_Changing,4101,99,70,200,"All"; Case 7: callsub Job_Changing,4102,99,70,200,"All"; Case 8: callsub Job_Changing,4103,99,70,200,"All"; Case 9: callsub Job_Changing,4105,99,70,200,"All"; Case 10: callsub Job_Changing,4104,99,70,200,"All"; Case 11: callsub Job_Changing,4106,99,70,200,"All"; Case 12: callsub Job_Changing,4107,99,70,200,"All"; Case 13: callsub Job_Changing,4108,99,70,200,"All"; Case 14: goto Main_Menu; } Job_Changing: mes .npcname$; mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000."; if (compare(getarg(4),"All")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00; } if (compare(getarg(4),"Map")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00; } if (compare(getarg(4),"Area")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00; } if (compare(getarg(4),"Self")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00; } jobchange getarg(0); set BaseLevel,getarg(1); set JobLevel,getarg(2); ResetSkill; ResetStatus; set SkillPoint,getarg(3); if ( .Allskills == 1 ){ atcommand "@allskills"; set SkillPoint,0; } percentheal 100,100; if ( .Based == 0 ){ set #ClassHelper,1; } if ( .Based == 1 ){ set ClassHelper,1; } close; Classes_info: mes .npcname$; mes "=====[^76EE00 Swordman Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Archer Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Mage Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Thief Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Acolyte Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Merchant Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Super Novice ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Gunslinger ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Ninja ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Taekwon ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. "; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Star Gladiator ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Soul Linker ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability."; mes " ^FF0000________________________________^000000"; next; goto Main_Menu; } test the Rune Knight its working. just copy/paste this script if(Class == Job_Lord_Knight){ atcommand "#job " +strcharinfo(0)+ " 4060"; atcommand "#blvl " +strcharinfo(0)+ " 255"; atcommand "#jlvl " +strcharinfo(0)+ " 120"; atcommand "#skillall " +strcharinfo(0); delitem 512,500; close; }else{ mes "Sorry you are not lord knight class"; close; } and change this if(Class == Job_Lord_Knight){ to if(Class == Job_Paladin){ atcommand "#job " +strcharinfo(0)+ " 4073"; - class id
  3. if you want to add more item requirements countitem(512) >= 500 || countitem(513) >= 500 and so on.. //==============================================================================// //= Script Release : Job Changer + Max Leveler [ Version 1.5 ] //==================================By==========================================// //= ManiacSociety //==============================================================================// //= Idea Came From : ManiacSociety //= Helper : Emistry & Kenpachi //==============================================================================// //= D E S C R I P T I O N S //==============================================================================// // -- 1. Character can choose a Job which he like to be. // -- 2. This NPC only have 1 Time Usage. // If it is set to Account Based then that account can use 1 times. // If it is set to Character Based then all new character can use 1 times. // -- 3. Complete skills / Skill Points will be given if it is set to be. // -- 4. Base Level and Job Level will be given upon Job Change. //==============================================================================// //= V E R S I O N S //==============================================================================// // -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings // -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes. // -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations. // -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts. // -- [ 1.1 ] : Added New Job Change Option. // -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer. //==============================================================================// //= R U L E S //==============================================================================// // -- 1. Do not use for exchanging purpose. // -- 2. Do not claim it as yours. // -- 3. Do not change or remove the credits. // -- 4. Do not sell the script in order to get paid. // -- 5. Do not re-sharing upon modified without permission. //==============================================================================// -- Update By Krane //==============================================================================// prontera,153,189,5 script Job Changer2 620,{ //OnPCLoginEvent: // -- Configuration Option set .npcname$,"[ ^0000FF Class Helper ^000000 ]"; set .InfoMenu,0; // Classes Informations Option [ 0 - Disable / 1 - Enable ] set .1stClassMenu,0; // First Job Class Option [ 0 - Disable / 1 - Enable ] set .2ndClassMenu,0; // Second Job Class Option [ 0 - Disable / 1 - Enable ] set .High1stClassMenu,0; // High 1st Class Option [ 0 - Disable / 1 - Enable ] set .Trans2ndClassMenu,0; // Transcendent Class Option [ 0 - Disable / 1 - Enable ] set .Trans3rdClassMenu,1; // Third Job Class Option [ 0 - Disable / 1 - Enable ] set .ExpandedClassMenu,0; // Expanded Class Option [ 0 - Disable / 1 - Enable ] set .BabyClassMenu,0; // Baby Job Class Option [ 0 - Disable / 1 - Enable ] set .Baby3rdClassMenu,0; // Baby Third Job Class Option [ 0 - Disable / 1 - Enable ] set .Allskills,1; // Complete Skills Option [ 0 - Disable / 1 - Enable ] // -- Usable for Only 1 Time set .Based,1; // [ 0 - Account Based / 1 - Character Based ] if( ClassHelper == 1 || #ClassHelper == 1 ) end; Main_Menu: mes .npcname$; mes "I am the Job Class Helper..."; mes "I am here to help you."; mes " ^FF0000________________________________^000000"; mes "Do you wish to become Stronger ?"; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?"; next; if( BaseLevel >= 200 ){ }else{ mes "Sorry you need to reach level 200"; close; } switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000", ( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000", ( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000", ( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000", ( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000", ( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000", ( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000", ( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000", ( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000", "^FF0000Sorry, i admire nobody....^000000")) { Case 1: goto Classes_info; Case 2: goto FirstJob_Classes; Case 3: goto SecondJob_Classes; Case 4: goto HighFirstJob_Classes; Case 5: goto TransSecondJob_Classes; Case 6: goto TransThirdJob_Classes; Case 7: goto ExpandedJob_Classes; Case 8: goto BabyJob_Classes; Case 9: goto BabyThirdJob_Classes; Case 10: close; } FirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Swordman^000000", "^76EE00Magician^000000", "^76EE00Archer^000000", "^76EE00Acolyte^000000", "^76EE00Merchant^000000", "^76EE00Thief^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,1,99,50,60,"All"; Case 2: callsub Job_Changing,2,99,50,60,"All"; Case 3: callsub Job_Changing,3,99,50,60,"All"; Case 4: callsub Job_Changing,4,99,50,60,"All"; Case 5: callsub Job_Changing,5,99,50,60,"All"; Case 6: callsub Job_Changing,6,99,50,60,"All"; Case 7: goto Main_Menu; } HighFirstJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00High Swordman^000000", "^76EE00High Magician^000000", "^76EE00High Archer^000000", "^76EE00High Acolyte^000000", "^76EE00High Merchant^000000", "^76EE00High Thief^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4002,99,50,60,"All"; Case 2: callsub Job_Changing,4003,99,50,60,"All"; Case 3: callsub Job_Changing,4004,99,50,60,"All"; Case 4: callsub Job_Changing,4005,99,50,60,"All"; Case 5: callsub Job_Changing,4006,99,50,60,"All"; Case 6: callsub Job_Changing,4007,99,50,60,"All"; Case 7: goto Main_Menu; } SecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Knight^000000", "^76EE00Priest^000000", "^76EE00Wizard^000000", "^76EE00Blacksmith^000000", "^76EE00Hunter^000000", "^76EE00Assassin^000000", "^76EE00Crusader^000000", "^76EE00Monk^000000", "^76EE00Sage^000000", "^76EE00Rogue^000000", "^76EE00Alchemist^000000", ( Sex == 0 )?"":"^76EE00Dancer^000000", ( Sex == 1 )?"":"^76EE00Bard^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,7,99,50,110,"All"; Case 2: callsub Job_Changing,8,99,50,110,"All"; Case 3: callsub Job_Changing,9,99,50,110,"All"; Case 4: callsub Job_Changing,10,99,50,110,"All"; Case 5: callsub Job_Changing,11,99,50,110,"All"; Case 6: callsub Job_Changing,12,99,50,110,"All"; Case 7: callsub Job_Changing,14,99,50,110,"All"; Case 8: callsub Job_Changing,15,99,50,110,"All"; Case 9: callsub Job_Changing,16,99,50,110,"All"; Case 10: callsub Job_Changing,17,99,50,110,"All"; Case 11: callsub Job_Changing,18,99,50,110,"All"; Case 12: callsub Job_Changing,20,99,50,110,"All"; Case 13: callsub Job_Changing,19,99,50,110,"All"; Case 14: goto Main_Menu; } TransSecondJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Lord Knight^000000", "^76EE00High Priest^000000", "^76EE00High Wizard^000000", "^76EE00Whitesmith^000000", "^76EE00Sniper^000000", "^76EE00Assassin Cross^000000", "^76EE00Paladin^000000", "^76EE00Champion^000000", "^76EE00Professor^000000", "^76EE00Stalker^000000", "^76EE00Creator^000000", ( Sex == 0 )?"":"^76EE00Gypsy^000000", ( Sex == 1 )?"":"^76EE00Clown^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4008,255,120,130,"All"; Case 2: callsub Job_Changing,4009,255,120,130,"All"; Case 3: callsub Job_Changing,4010,255,120,130,"All"; Case 4: callsub Job_Changing,4011,255,120,130,"All"; Case 5: callsub Job_Changing,4012,255,120,130,"All"; Case 6: callsub Job_Changing,4013,255,120,130,"All"; Case 7: callsub Job_Changing,4015,255,120,130,"All"; Case 8: callsub Job_Changing,4016,255,120,130,"All"; Case 9: callsub Job_Changing,4017,255,120,130,"All"; Case 10: callsub Job_Changing,4018,255,120,130,"All"; Case 11: callsub Job_Changing,4019,255,120,130,"All"; Case 12: callsub Job_Changing,4021,255,120,130,"All"; Case 13: callsub Job_Changing,4020,255,120,130,"All"; Case 14: goto Main_Menu; } TransThirdJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; if(countitem(512) >= 500){ }else{ mes "Sorry you need 500 Apple to change 3rd job class"; close; } switch(select("^76EE00Rune Knight^000000", "^76EE00Warlock^000000", "^76EE00Ranger^000000", "^76EE00Arch Bishop^000000", "^76EE00Mechanic^000000", "^76EE00Guillotine Cross^000000", "^76EE00Royal Guard^000000", "^76EE00Sorcerer^000000", ( Sex == 0 )?"":"^76EE00Wanderer^000000", ( Sex == 1 )?"":"^76EE00Minstrel^000000", "^76EE00Shura^000000", "^76EE00Genetic^000000", "^76EE00Shadow Chaser^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4060,99,70,200,"All"; Case 2: callsub Job_Changing,4061,99,70,200,"All"; Case 3: callsub Job_Changing,4062,99,70,200,"All"; Case 4: callsub Job_Changing,4063,99,70,200,"All"; Case 5: callsub Job_Changing,4064,99,70,200,"All"; Case 6: callsub Job_Changing,4065,99,70,200,"All"; Case 7: callsub Job_Changing,4073,99,70,200,"All"; Case 8: callsub Job_Changing,4074,99,70,200,"All"; Case 9: callsub Job_Changing,4076,99,70,200,"All"; Case 10: callsub Job_Changing,4075,70,70,200,"All"; Case 11: callsub Job_Changing,4077,70,70,200,"All"; Case 12: callsub Job_Changing,4078,70,70,200,"All"; Case 13: callsub Job_Changing,4079,70,70,200,"All"; Case 14: goto Main_Menu; } ExpandedJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Gunslinger^000000", "^76EE00Ninja^000000", "^76EE00Star Gladiator^000000", "^76EE00Soul Linker^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,24,255,120,600,"All"; Case 2: callsub Job_Changing,25,255,120,60,"All"; Case 3: callsub Job_Changing,4047,255,120,110,"All"; Case 4: callsub Job_Changing,4049,255,120,110,"All"; Case 5: goto Main_Menu; } BabyJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Baby Swordman^000000", "^76EE00Baby Magician^000000", "^76EE00Baby Archer^000000", "^76EE00Baby Acolyte^000000", "^76EE00Baby Merchant^000000", "^76EE00Baby Thief^000000", "^76EE00Baby Knight^000000", "^76EE00Baby Priest^000000", "^76EE00Baby Wizard^000000", "^76EE00Baby Blacksmith^000000", "^76EE00Baby Hunter^000000", "^76EE00Baby Assassin^000000", "^76EE00Baby Crusader^000000", "^76EE00Baby Monk^000000", "^76EE00Baby Sage^000000", "^76EE00Baby Rogue^000000", "^76EE00Baby Alchemist^000000", ( Sex == 0 )?"":"^76EE00Baby Dancer^000000", ( Sex == 1 )?"":"^76EE00Baby Bard^000000", "^76EE00Baby Baby^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4024,99,50,60,"All"; Case 2: callsub Job_Changing,4025,99,50,60,"All"; Case 3: callsub Job_Changing,4026,99,50,60,"All"; Case 4: callsub Job_Changing,4027,99,50,60,"All"; Case 5: callsub Job_Changing,4028,99,50,60,"All"; Case 6: callsub Job_Changing,4029,99,50,60,"All"; Case 7: callsub Job_Changing,4030,99,50,110,"All"; Case 8: callsub Job_Changing,4031,99,50,110,"All"; Case 9: callsub Job_Changing,4032,99,50,110,"All"; Case 10: callsub Job_Changing,4033,99,50,110,"All"; Case 11: callsub Job_Changing,4034,99,50,110,"All"; Case 12: callsub Job_Changing,4035,99,50,110,"All"; Case 13: callsub Job_Changing,4037,99,50,110,"All"; Case 14: callsub Job_Changing,4038,99,50,110,"All"; Case 15: callsub Job_Changing,4039,99,50,110,"All"; Case 16: callsub Job_Changing,4040,99,50,110,"All"; Case 17: callsub Job_Changing,4041,99,50,110,"All"; Case 18: callsub Job_Changing,4043,99,50,110,"All"; Case 19: callsub Job_Changing,4042,99,50,110,"All"; Case 20: callsub Job_Changing,4045,99,50,110,"All"; Case 21: goto Main_Menu; } BabyThirdJob_Classes: mes .npcname$; mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes."; next; switch(select("^76EE00Baby Rune Knight^000000", "^76EE00Baby Warlock^000000", "^76EE00Baby Ranger^000000", "^76EE00Baby Arch Bishop^000000", "^76EE00Baby Mechanic^000000", "^76EE00Baby Guillotine Cross^000000", "^76EE00Baby Royal Guard^000000", "^76EE00Baby Sorcerer^000000", ( Sex == 0 )?"":"^76EE00Baby Wanderer^000000", ( Sex == 1 )?"":"^76EE00Baby Minstrel^000000", "^76EE00Baby Shura^000000", "^76EE00Baby Genetic^000000", "^76EE00Baby Shadow Chaser^000000", "^FF0000Back^000000")) { // --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>; Case 1: callsub Job_Changing,4096,99,70,200,"All"; Case 2: callsub Job_Changing,4097,99,70,200,"All"; Case 3: callsub Job_Changing,4098,99,70,200,"All"; Case 4: callsub Job_Changing,4099,99,70,200,"All"; Case 5: callsub Job_Changing,4100,99,70,200,"All"; Case 6: callsub Job_Changing,4101,99,70,200,"All"; Case 7: callsub Job_Changing,4102,99,70,200,"All"; Case 8: callsub Job_Changing,4103,99,70,200,"All"; Case 9: callsub Job_Changing,4105,99,70,200,"All"; Case 10: callsub Job_Changing,4104,99,70,200,"All"; Case 11: callsub Job_Changing,4106,99,70,200,"All"; Case 12: callsub Job_Changing,4107,99,70,200,"All"; Case 13: callsub Job_Changing,4108,99,70,200,"All"; Case 14: goto Main_Menu; } Job_Changing: mes .npcname$; mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000."; if (compare(getarg(4),"All")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00; } if (compare(getarg(4),"Map")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00; } if (compare(getarg(4),"Area")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00; } if (compare(getarg(4),"Self")){ announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00; } jobchange getarg(0); set BaseLevel,getarg(1); set JobLevel,getarg(2); ResetSkill; ResetStatus; set SkillPoint,getarg(3); if ( .Allskills == 1 ){ atcommand "@allskills"; set SkillPoint,0; } percentheal 100,100; if ( .Based == 0 ){ set #ClassHelper,1; } if ( .Based == 1 ){ set ClassHelper,1; } close; Classes_info: mes .npcname$; mes "=====[^76EE00 Swordman Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Archer Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Mage Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Thief Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Acolyte Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Merchant Classes ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Super Novice ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Gunslinger ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Ninja ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Taekwon ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. "; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Star Gladiator ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power."; mes " ^FF0000________________________________^000000"; next; mes .npcname$; mes "=====[^76EE00 Soul Linker ^000000]====="; mes " ^FF0000________________________________^000000"; mes "^4EEE94Description :^000000"; mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability."; mes " ^FF0000________________________________^000000"; next; goto Main_Menu; }
  4. @gidzdlcrz try this //===== eAthena Script ======================================= //= Poring Event //===== By: ================================================== //= Wild Karrd, alexx //===== Current Version: ===================================== //= 3.0 //===== Compatible With: ===================================== //= eAthena 12426 //===== Description: ========================================= //= Find correct poring Event //===== Additional Comments: ================================= //= 3.0 Bug fixed and totaly modified [alexx] //============================================================ - script poring_event_on -1,{ OnMinute00: enablenpc "Poring Catcher"; announce "It's time to catch Porings!",bc_all; set [email protected],0; set [email protected],-3; sleep ( 60 * 60000 ); // How long before hide again if ([email protected] == 0) { disablenpc "Poring Catcher"; announce "You're late. Catch Porings event is over...",bc_all,0xF49AC1; set [email protected],1; } end; } prontera,156,126,4 script Poring Catcher 909,{ OnTouch: mes "[^2E3192Poring Catcher^000000]"; mes "Hellooo, "+strcharinfo(0)+"! I like to catch porings very much. It's fun!"; next; menu "I wanna too!",L_check,"Tell me more?",L_info,"I'm leaving... Bye.",L_bye; close; Check1: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF081808^000000"; input [email protected]$; if ([email protected]$ == "081808") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check2: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF070786^000000"; input [email protected]$; if ([email protected]$ == "070786") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check3: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF081887^000000"; input [email protected]$; if ([email protected]$ == "070786") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check4: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF0102350^000000"; input [email protected]$; if ([email protected]$ == "102350") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check5: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FFsjrh^000000"; input [email protected]$; if ([email protected]$ == "sjrh") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check6: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FFtgd4^000000"; input [email protected]$; if ([email protected]$ == "tgd4") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check7: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF678e^000000"; input [email protected]$; if ([email protected]$ == "678e") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check8: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FFegf3^000000"; input [email protected]$; if ([email protected]$ == "egf3") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check9: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF76he^000000"; input [email protected]$; if ([email protected]$ == "76he") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; Check10: mes "Please Enter The Code Below To Prove That You Are Human:"; mes "^0000FF59ej^000000"; input [email protected]$; if ([email protected]$ == "59ej") goto Confirm; mes "It seems you input the wrong code, Please try again"; set @Wrong,1; close; L_check: mes "[^2E3192Poring Catcher^000000]"; mes "I'm sorry but before you enter, You must prove to me that you are human..."; next; set @rand,rand(1,10); if ( @rand == 1 ) goto Check1; if ( @rand == 2 ) goto Check2; if ( @rand == 3 ) goto Check3; if ( @rand == 4 ) goto Check4; if ( @rand == 5 ) goto Check5; if ( @rand == 6 ) goto Check6; if ( @rand == 7 ) goto Check7; if ( @rand == 8 ) goto Check8; if ( @rand == 9 ) goto Check9; if ( @rand == 10 ) goto Check10; end; Confirm: next; mes "[^2E3192Poring Catcher^000000]"; mes "Have fun!"; next; if ([email protected] == 1) { atcommand "@broadcast Hi I'm a Poring catcher Bugger, Report me to a GM please"; warp "SavePoint",0,0; } else { if ([email protected] == 0) { initnpctimer; donpcevent "Poringsummoner::OnSummon"; set [email protected],1; } warp "poring_w01",100,100; end; } OnTimer600000: stopnpctimer; disablenpc "Poring Catcher"; killmonster "poring_w01","All"; set [email protected],0; mapwarp "poring_w01","prontera",137,234; announce "You're late. Catch Porings event is over...",bc_all,0xF49AC1; warp "SavePoint",0,0; set [email protected],1; end; L_info: mes "[^2E3192Poring Catcher^000000]"; mes "There are 100 different porings at the field."; mes "But only one of them is real, you have to find him."; mes "You will be rewarded with the coin and some present if be lucky."; mes "Goood luuck!"; close; L_coin: callsub S_BonusReward; end; L_bug: atcommand "@broadcast Hi I'm a Poring catcher Bugger, Report me to a GM please"; atcommand "@broadcast Hi I'm a Poring catcher Bugger, Report me to a GM please"; close; L_bye: mes "[^2E3192Poring Catcher^000000]"; mes "Bye-bye!"; close; OnInit: disablenpc "Poring Catcher"; set [email protected],0; end; OnWarp: initnpctimer; enablenpc "Poring Catcher"; donpcevent "Poringsummoner::OnSummon"; end; N_Shop: mes "[^2E3192Poring Catcher^000000]"; mes "That do you want to exchenge your coins on?"; next; menu "Exchange on headgears",-,"Nothing",N_NVM; mes "[^2E3192Poring Catcher^000000]"; mes "Headgears? Here is all i have..."; next; menu "^000090Guild Recruiting Hat^000000 - 50PC",-, "^000090Party Hat^000000 - 50PC",N_Hat2, "^000090Boyfriend Hat^000000 - 50PC",N_Hat3, "^000090Friend Hat^000000 - 50PC",N_Hat4, "^000090Girlfriend Hat^000000 - 50PCs",N_Hat5, "^000090Note Headphones^000000 - 100PC",N_Hat6, "丸麇泐",N_NVM; mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 50 Poring Coins on Guild Recruiting Hat?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 50) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get yourGuild Recruiting Hat!"; delitem 7539,50; getitem 5336,1; logmes "Chatch the Poring: Guild Recruiting Hat"; close; N_Hat2: mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 50 Poring Coins on Party Hat?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 50) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get yourParty Hat!"; delitem 7539,50; getitem 5337,1; logmes "Chatch the Poring: Party Hat"; close; N_Hat3: mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 50 Poring Coins on Boyfriend Hat?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 50) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get yourBoyfriend Hat!"; delitem 7539,50; getitem 5338,1; logmes "Chatch the Poring: Boyfriend Hat"; close; N_Hat4: mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 50 Poring Coins on Friend Hat?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 50) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get yourFriend Hat!"; delitem 7539,50; getitem 5339,1; logmes "Chatch the Poring: Friend Hat"; close; N_Hat5: mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 50 Poring Coins on Girlfriend Hat?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 50) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get yourGirlfriend Hat!"; delitem 7539,50; getitem 5346,1; logmes "Chatch the Poring: Girlfriend Hat"; close; N_Hat6: mes "[^2E3192Poring Catcher^000000]"; mes "Do you wanna exchange 100 Poring Coins on Note Headphones?"; next; menu "Yes",-,"No",N_NVM; if (countitem(7539) < 100) goto N_NeedCoins; mes "[^2E3192Poring Catcher^000000]"; mes "Here, get your Note Headphones!"; delitem 7539,100; getitem 5151,1; logmes "Chatch the Poring: Note Headphones"; close; N_NeedCoins: mes "[^2E3192Poring Catcher^000000]"; mes "You demand additional coins. Go and get some."; close; N_NVM: mes "[^2E3192Poring Catcher^000000]"; mes "As you wish..."; close; } - script Poringsummoner -1,{ OnSummon: initnpctimer; OnTimer1000: mapannounce "poring_w01","5 ...",1; end; OnTimer2000: mapannounce "poring_w01","4 ...",1; end; OnTimer3000: mapannounce "poring_w01","3 ...",1; end; OnTimer4000: mapannounce "poring_w01","2 ...",1; end; OnTimer5000: mapannounce "poring_w01","1 ...",1; end; OnTimer6000: stopnpctimer; mapannounce "poring_w01","LET'S GO!",1; areamonster "poring_w01",84,119,121,90,"Poring",1002,1,"poringwin::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Pouring",1002,20,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Proing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poiring",1002,20,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"I am not Poring",1002,5,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Gniriop",1002,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poring",1113,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poring",1062,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poriiing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"PoriNg",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porong",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"P0ring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Por1ng",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porng",1002,1,"poringlose::OnMobKilled"; end; } - script poringwin -1,{ OnMobKilled: dispbottom "Congratulations. You've got me."; set [email protected],rand(10); if ([email protected] == 9) { getitem 25092,5; warp "SavePoint",0,0; } if ([email protected] >= 4 && [email protected] < 9) { getitem 25092,5; warp "SavePoint",0,0; } getitem 25092,5; killmonster "poring_w01","All"; warp "SavePoint",0,0; end; } - script poringlose -1,{ OnMobKilled: dispbottom "Wahaha, you are looser!"; warp "SavePoint",0,0; percentheal -100,-100; sleep 1000; end; } poring_w01 mapflag nopenalty poring_w01 mapflag noloot poring_w01 mapflag noskill poring_w01 mapflag nowarpto poring_w01 mapflag nowarp poring_w01 mapflag noteleport poring_w01 mapflag nomemo poring_w01 mapflag nosave SavePoint poring_w01 mapflag nobranch
  5. i did. just delete the star emperor and soul reaper in first classes
  6. mapannounce "prontera","El MVP ("+ getmonsterinfo(killedrid,MOB_NAME)+") ha sido asesinado por '"+ strcharinfo(0) +"' de la party '"+ strcharinfo(1) +"'.", bc_map; just edit the "prontera"
  7. here //===== rAthena Script ======================================= //= Job Master //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. [Euphy] //= 1.1 Fixed reset on Baby job change. //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. //= 1.3 Kagerou/Oboro added. //= 1.4 Rebellion added. //= 1.5 Added option to disable RebirthClass. [mazvi] //= 1.6 Added option to get job related equipment on change. [Braniff] //= 1.7 Readability changes. Also added BabyExpanded and BabySummoner classes. [Jey] //= 1.8 Added option to disable Baby Novice Only but Baby Class can be Enabled [mazvi] //= 1.9 Migrate/Integrate to Global Functions Platinum Skills. [mazvi] //============================================================ //=Update by Krane //= 2.0 Star Emperor added. //= 2.1 Soul Reaper added. //============================================================ prontera,153,193,6 script Job Master 123,{ function Get_Job_Equip; // Checks if the Player has the required level. // closes if not, returns if yes function Require_Level { if (BaseLevel < getarg(0) || JobLevel < getarg(1)) { [email protected] = getarg(0) - BaseLevel; [email protected] = getarg(1) - JobLevel; mes "Level requirement:"; mes ((getarg(0)>1)? "^bb0000"+getarg(0)+"^000000 (^bb0000Base^000000) / ":"")+"^00bb00"+ getarg(1)+"^000000 (^00bb00Job^000000)"; mes "You need " + (([email protected] > 0) ? "^bb0000"[email protected]+"^000000 more base levels " + (([email protected] > 0) ? "and " : "") : "") + (([email protected] > 0) ? "^00bb00"[email protected]+"^000000 more job levels " : "") + "to continue."; close; } return; } // Checks if the given eac is a baby class function Is_Baby { return ((getarg(0, eaclass())&EAJL_BABY)>0); } // Checks if the player can change to third class. // Note: This does not include the level checks. function Can_Change_Third { // To change to third class you either need to be: // * Second Class // * Transcendent Second Class // * Baby Second Class if( !.ThirdClass ) return false; // Third job change disabled if( !(eaclass()&EAJL_2) ) return false; // Not second Class if( eaclass()&EAJL_THIRD ) return false; // Already Third Class if( roclass(eaclass()|EAJL_THIRD) < 0 ) return false; // Job has no third Class if( (eaclass()&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE ) return false; // Exp. Super Novice equals 3rd Cls, but has it's own case if( Is_Baby() && (!.BabyClass || !.BabyThird) ) return false; // No Baby (Third) change allowed return true; } function Can_Rebirth { // To rebirth, you need to be: // * Second Class if( !.RebirthClass ) return false; // Rebirth disabled if( !(eaclass()&EAJL_2) ) return false; // Not second Class if( eaclass()&EAJL_UPPER ) return false; // Already Rebirthed if( roclass(eaclass()|EAJL_UPPER) < 0 ) return false; // Job has no transcended class if( Is_Baby() && !.BabyClass ) return false; // No Baby changes allowed return true; } // Checks if the given eac is a first class function Is_First_Cls { return (getarg(0) <= EAJ_TAEKWON); } function Check_Riding { // Note: Why we should always check for Riding: // Mounts are considered as another class, which // would make this NPC bigger just to handle with // those special cases. if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } return; } function Check_SkillPoints { if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } return; } // addJobOptions is essentially the same like // setarray [email protected][getarraysize([email protected])],opt1,opt2,...; // It's just easier to read, since we're using it very often function Job_Options { [email protected] = getargcount(); [email protected]_size = getarraysize(getarg(0)); for( [email protected] = 1; [email protected] < [email protected]; [email protected]++) { setarray getelementofarray(getarg(0), [email protected]_size++),getarg([email protected]); } } // Begin of the NPC mes .NPCName$; Check_Riding(); Check_SkillPoints(); // initialisation deletearray [email protected]_opt[0],getarraysize([email protected]_opt); [email protected] = eaclass(); [email protected]_possible = Can_Change_Third(); [email protected]_possible = Can_Rebirth(); [email protected]_eac = [email protected]&EAJ_BASEMASK; [email protected]_eac = [email protected]&EAJ_UPPERMASK; // Note: These are already set in pc.cpp // BaseClass = roclass([email protected]&EAJ_BASEMASK) which is the players First Class // BaseJob = roclass([email protected]&EAJ_UPPERMASK) which is the players Second Class //dispbottom "Debug: eac ("[email protected]+"), third ("[email protected]_possible+"), rebirth("[email protected]_possible+"), BaseClass ("+BaseClass+"), BaseJob ("+BaseJob+")"; // From here on the jobmaster checks the current class // and fills the the array `[email protected]_opt` with possible // job options for the player. if( [email protected]_possible ) { // Rebirth option (displayed on the top of the menu) Require_Level(.Req_Rebirth[0], .Req_Rebirth[1]); Job_Options([email protected]_opt, Job_Novice_High); } if( [email protected]_possible ) { // Third Job change (displayed below rebirth) Require_Level(.Req_Third[0], .Req_Third[1]); Job_Options([email protected]_opt, roclass([email protected]|EAJL_THIRD)); } if (.SecondExpanded && ([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE && // is Super Novice !(eaclass()&EAJL_THIRD) ) { // not already Expanded SN // (Baby) Super Novice to Expanded (Baby) Super Novice if( !Is_Baby([email protected]) || (.BabyClass && .BabyExpanded) ) { // .BabyClass & .BabyExpanded must be enabled if the is a baby Require_Level(.Req_Exp_SNOVI[0], .Req_Exp_SNOVI[1]); Job_Options([email protected]_opt,roclass([email protected]|EAJL_THIRD)); // Expanded SN is "third" cls } } if (.SecondExpanded && (([email protected]&(~EAJL_BABY)) == EAJ_NINJA || // is (Baby) Ninja ([email protected]&(~EAJL_BABY)) == EAJ_GUNSLINGER)) { // is (Baby) Gunslinger // (Baby) Ninja to (Baby) Kagerou / Oboro // (Baby) Gunslinger to (Baby) Rebellion if( !Is_Baby([email protected]) || (.BabyClass && .BabyExpanded) ) { // .BabyClass & .BabyExpanded must be enabled if the is a baby Require_Level(.Req_Exp_NJ_GS[0], .Req_Exp_NJ_GS[1]); // Kagerou, Oboro, Rebellion are considered as a 2-1 class Job_Options([email protected]_opt, roclass([email protected]|EAJL_2_1)); } } // Player is Job_Novice, Job_Novice_High or Job_Baby if ([email protected]_eac == EAJ_NOVICE && [email protected]_eac != EAJ_SUPER_NOVICE) { // MAPID_NOVICE, MAPID_SUPER_NOVICE, MAPID_NOVICE_HIGH, MAPID_BABY Require_Level(.Req_First[0], .Req_First[1]); switch(Class) { case Job_Novice: // First job change Job_Options([email protected]_opt,Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_Super_Novice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Star_Emperor, Job_Soul_Reaper); if( .BabyNovice ) Job_Options([email protected]_opt, Job_Baby); break; case Job_Novice_High: // Job change after rebirth if( .LastJob && lastJob ) Job_Options([email protected]_opt, roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); else Job_Options([email protected]_opt, Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High); break; case Job_Baby: if( !.BabyClass ) break; // First job change as a baby Job_Options([email protected]_opt, Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer,Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief); if( .BabyExpanded ) Job_Options([email protected]_opt, Job_Super_Baby, Job_Baby_Taekwon, Job_Baby_Gunslinger, Job_Baby_Ninja); if( .BabySummoner ) Job_Options([email protected]_opt, Job_Baby_Summoner); break; default: mes "An error has occurred."; close; } } else if( Is_First_Cls([email protected]) || // First Class Is_First_Cls([email protected]&(~EAJL_UPPER)) || // Trans. First Cls (.BabyClass && Is_First_Cls([email protected]&(~EAJL_BABY))) ) { // Baby First Cls // Player is First Class (not Novice) // most jobs should have two options here (2-1 and 2-2) [email protected] = roclass([email protected]|EAJL_2_1); // 2-1 [email protected] = roclass([email protected]|EAJL_2_2); // 2-2 // dispbottom "Debug: Classes: class1 ("[email protected]+"), class2 ("[email protected]+")"; if(.LastJob && lastJob && ([email protected]&EAJL_UPPER)) { // Player is rebirth Cls and linear class changes are enforced Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options([email protected]_opt, lastJob + Job_Novice_High); } else { // Class is not enforced, player can decide. if( [email protected] > 0 ) { // 2-1 Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options([email protected]_opt, [email protected]); } if( [email protected] > 0 ) { // 2-2 Require_Level(.Req_Second[0], .Req_Second[1]); Job_Options([email protected]_opt, [email protected]); } } } // Displaying the Job Menu defined by [email protected]_opt. // [email protected]_opt should not be changed below this line. function Job_Menu; Job_Menu([email protected]_opt); close; // Displays the job menu function Job_Menu { // getarg(0) is the [email protected]_opt array holding all available job changes. function Confirm_Change; while(true) { [email protected]_cnt = getarraysize(getarg(0)); if( [email protected]_cnt <= 0 ) { mes "No more jobs are available."; close; } [email protected] = 0; // Just a single job class given, no select needed if ([email protected]_cnt > 1) { // Multiple job classes given. Select one and save it to [email protected] // After that confirm [email protected] mes "Select a job."; [email protected]$ = ""; for ([email protected] = 0; [email protected] < [email protected]_cnt; [email protected]++) { if( getelementofarray(getarg(0), [email protected]) == Job_Novice_High) [email protected]$ = "^0055FFRebirth^000000"; else [email protected]$ = jobname(getelementofarray(getarg(0), [email protected])); [email protected]$ = [email protected]$ + " ~ " + [email protected]$ + ":"; } [email protected]$ = [email protected]$+" ~ ^777777Cancel^000000"; [email protected] = select([email protected]$) - 1; if( [email protected] < 0 || [email protected] >= [email protected]_cnt ) close; next; mes .NPCName$; } [email protected] = getelementofarray(getarg(0), [email protected]); if (([email protected] == Job_Super_Novice || [email protected] == Job_Super_Baby) && BaseLevel < .SNovice) { // Special Level Requirement because Super Novice and // Super Baby can both be selected in one of the first class // changes. That's why the Level Requirement is after and not before // the selection. mes "A base level of " + .SNovice + " is required to turn into a " + jobname([email protected]) + "."; return; } // Confirm the Class Confirm_Change([email protected], [email protected]_cnt > 1); next; mes .NPCName$; } return; } // Executes the actual jobchange and closes. function Job_Change { [email protected]_cls = getarg(0); next; mes .NPCName$; mes "You are now " + callfunc("F_InsertArticle", jobname([email protected]_cls)) + "!"; if ([email protected]_cls == Job_Novice_High && .LastJob) lastJob = Class; // Saves the lastJob for rebirth jobchange [email protected]_cls; if ([email protected]_cls == Job_Novice_High) resetlvl(1); else if ([email protected]_cls == Job_Baby) { resetstatus; resetskill; set SkillPoint,0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callfunc "F_GetPlatinumSkills"; if (.GetJobEquip) Get_Job_Equip(); close; // Always closes after the change } function Confirm_Change { // Player confirms he want to change into [email protected] [email protected] = getarg(0, -1); [email protected] = getarg(1, false); if( [email protected] < 0 ) { mes "Unknown Class Error."; close; } mes "Do you want to change into ^0055FF"+jobname([email protected])+"^000000 class?"; [email protected]_option$ = " ~ Change into ^0055FF"+jobname([email protected])+"^000000 class"; if( [email protected] == Job_Novice_High) [email protected]_option$ = " ~ ^0055FFRebirth^000000"; if (select([email protected]_option$+": ~ ^777777" + (([email protected]) ?"Go back" : "Cancel") + "^000000") == 1) { Job_Change([email protected]); } if ([email protected]) close; // "Cancel" pressed return; } // Function which gives a job related item to the player // the items are the rewards from the original job change quests function Get_Job_Equip { // Note: The item is dropping, when the player can't hold it. // But that's better than not giving the item at all. [email protected] = eaclass(); if( [email protected]&EAJL_THIRD ) { // Third Class Items getitem 2795,1; // Green Apple Ring for every 3rd Class switch(BaseJob) { // BaseJob of Third Cls // For Normal Third, Baby Third and Transcended Third Cls case Job_Knight: getitem 5746,1; break; // Rune Circlet [1] case Job_Wizard: getitem 5753,1; break; // Magic Stone Hat [1] case Job_Hunter: getitem 5748,1; break; // Sniper Goggle [1] case Job_Priest: getitem 5747,1; break; // Mitra [1] case Job_Blacksmith: getitem 5749,1; break; // Driver Band [1] case Job_Assassin: getitem 5755,1; break; // Silent Executor [1] case Job_Crusader: getitem 5757,1; break; // Dip Schmidt Helm [1] case Job_Sage: getitem 5756,1; break; // Wind Whisper [1] case Job_Bard: getitem 5751,1; break; // Maestro Song's Hat [1] case Job_Dancer: getitem 5758,1; break; // Dying Swan [1] case Job_Monk: getitem 5754,1; break; // Blazing Soul [1] case Job_Alchemist: getitem 5752,1; break; // Midas Whisper[1] case Job_Rogue: getitem 5750,1; // Shadow Handicraft [1] getitem 6121,1; // Makeover Brush getitem 6122,1; break; // Paint Brush } } else if ([email protected]&EAJL_2) { // Second Class (And not Third Class) switch(BaseJob) { // Second Class case Job_Knight: getitem 1163,1; break; // Claymore [0] case Job_Priest: getitem 1522,1; break; // Stunner [0] case Job_Wizard: getitem 1617,1; break; // Survivor's Rod [0] case Job_Blacksmith: getitem 1360,1; break; // Two-Handed-Axe [1] case Job_Hunter: getitem 1718,1; break; // Hunter Bow [0] case Job_Assassin: getitem 1254,1; break; // Jamadhar [0] case Job_Crusader: getitem 1410,1; break; // Lance [0] case Job_Monk: getitem 1807,1; break; // Fist [0] case Job_Sage: getitem 1550,1; break; // Book [3] case Job_Rogue: getitem 1222,1; break; // Damascus [1] case Job_Alchemist: getitem 1126,1; break; // Saber [2] case Job_Bard: getitem 1907,1; break; // Guitar [0] case Job_Dancer: getitem 1960,1; break; // Whip [1] case Job_Super_Novice: getitem 1208,1; break; // Main Gauche [4] case Job_Star_Gladiator: getitem 1550,1; break; // Book [3] case Job_Soul_Linker: getitem 1617,1; break; // Survivor's Rod [0] } } else { // Neither Second or Third Cls // => First Cls or not covered by the switch switch(BaseClass) { // First Class case Job_Swordman: getitem 1108,1; break; // Blade [4] case Job_Mage: getitem 1602,1; break; // Rod [4] case Job_Archer: getitem 1705,1; break; // Composite Bow [4] case Job_Acolyte: getitem 1505,1; break; // Mace [4] case Job_Merchant: getitem 1302,1; break; // Axe [4] case Job_Thief: getitem 1208,1; break; // Main Gauche [4] case Job_Gunslinger: getitem 13101,1; break; // Six Shooter [2] case Job_Ninja: getitem 13010,1; break; // Asura [2] } } return; } OnInit: // Initialisation, do not edit these .NPCName$ = "[Job Master]"; // Settings .ThirdClass = true; // Enable third classes? .RebirthClass = true; // Enable rebirth classes? .SecondExpanded = true; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? .BabyNovice = true; // Enable Baby novice classes? Disable it if you like player must have parent to get job baby. .BabyClass = true; // Enable Baby classes? .BabyThird = true; // Enable Baby third classes? .BabyExpanded = true; // Enable Baby Expanded classes: Ex. Baby Ninja, Baby Taekwon, etc. .BabySummoner = true; // Enable Baby Summoner? .LastJob = true; // Enforce linear class changes? .SkillPointCheck = true; // Force player to use up all skill points? .Platinum = true; // Get platinum skills automatically? .GetJobEquip = false; // Get job equipment (mostly weapons) on job change? // Level Requirements setarray .Req_First[0],1,10; // Minimum base level, job level to turn into 1st class setarray .Req_Second[0],1,40; // Minimum base level, job level to turn into 2nd class setarray .Req_Rebirth[0],99,50; // Minimum base level, job level to rebirth setarray .Req_Third[0],99,50; // Minimum base level, job level to change to third class setarray .Req_Exp_NJ_GS[0],99,70; // Minimum base level, job level to turn into Expanded Ninja and Gunslinger setarray .Req_Exp_SNOVI[0],99,99; // Minimum base level, job level to turn into Expanded Super Novice .SNovice = 45; // Minimum base level to turn into Super Novice // Setting adjustments by PACKETVER if( PACKETVER < 20161207 ) { if( .BabyExpanded ) debugmes "jobmaster: BabyExpanded is disabled due to outdated PACKETVER."; if( .BabySummoner ) debugmes "jobmaster: BabySummoner is disabled due to outdated PACKETVER."; .BabyExpanded = false; .BabySummoner = false; } end; }
  8. rename it try like this. ¿©_Devil_Wings you dont need to rename the other files. add _ on ¾ÆÀÌÅÛ and ¿© , 32
  9. can you make a screenshot of your files and path and post it here?
  10. ¾ÆÀÌÅÛ / item - for item drop and rag ¾Ç¼¼»ç¸® / ¿© / ³² - this is for item sprite that will show on character you need to check if sprite is working and if the name match with the other file path.
  11. Wickebine Tres card is for strip armor. and the single strip modification will work only in stalker with soul link. or if you want to disable strip in Wickebine Tres card you can change the description/effect of the card
  12. bodystyle will work only in 3rd job class. not sniper wearing 3rd job class suit but you can replace the original 3rd job sprite to bodystyle 2
  13. yeah if you just read the instruction in the first line
  14. WS_CARTTERMINATION,1,7,1000,1000,1000,1000
  15. that's why skill_damage_db is not working cuz you test it on mob but in skill you just declare it in pvp and woe player WS_CARTTERMINATION,1,6,15 - 1 = player only and 2+4 = 6 ( pvp and gvg type only ) if you want to work even in mob use this this is the guide if you want to work on mob and other type // AB_ADORAMUS,1,6,-40,-40,-40,-40 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.
  16. it will work if you use latest git. if you really want to test it if working or not put 1000 or 5000 you will see the difference.
  17. you can edit and control the skill damage in db / skill_damage_db.txt or db / import / skill_damage_db.txt and add this WS_CARTTERMINATION,1,6,15 - increase 15% skill damage in cart termi WS_CARTTERMINATION,1,6,-15 - nerf the skill damage by - 15% in cart termi
  18. apply this in skill.c ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ) { @idLaZ @Ryo Osaki and remove this part case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, skill_get_time(skill_id, skill_lv) ); break;
  19. if you want to remove the strip helm you can disable the strip helm skill or ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || tsc->data[SC_CP_HELM] ) ) {
  20. mine is working but its kinda hard to help you. cuz when you get help you ignore me didnt even say thank you or give a reputation lol.
  21. @Takuyakii just change this line mes "Go to comodo and find Seo Jo!"; mes "she will explain the details.";
  22. dice event. event will start every 2 hours as requested prize set already as requested 501,502,503,504,#event_points, //########################################################################## //By: ____ _ __ __ ____ _____ // | \ ___ __ __ _ | | \ \ / /_ _ _ / ___\ / ____| // | || | / _ \\ \ / /| || | \ \ / /| || \ | || | ___ | (___ // | || || __/ \ \/ / | || |__ \ \/\/ / | || \| || |___|\ \___ \ // __|____/__\___|__\__/__|_||____|_____\_/\_/__|_||_|\__|_\_____/_____) | //|_____________________________________________________________________/ // //########################################################################## // //== Dice Event // //########################################################################## //== Edited by King R //== Removed 30 Min Timer and added trigger NPC //== Able to set prize and amount via the NPC //== Added Mapflags //== Edited area warps //########################################################################## - script Dice#disable -1,{ end; OnInit: disablenpc "prtevent"; hideonnpc "Dice#evnt1"; end; OnMinute120: announce "Mr. Dice: The Dice event will be starting shortly.",0; sleep2 10000; announce "Mr. Dice: Those who want to play, please proceed to the glemior 235 327.",0; sleep2 10000; announce "Mr. Dice: After 1 Minute the Portal will close.",0; sleep2 10000; announce "Mr. Dice: Please go to the glemior 235 327 and enter the Warp Portal now if you want to join.",0; enablenpc "prtevent"; initnpctimer; end; OnTimer30000: announce "Mr. Dice: Last 30 seconds.",0; sleep2 5000; announce "Mr. Dice: If you want to join please enter the Warp Portal in glemior 235 327.",0; end; OnTimer50000: announce "Mr. Dice: Last 10 seconds.",0; end; OnTimer55000: announce "Mr. Dice: 5.",0; end; OnTimer56000: announce "Mr. Dice: 4.",0; end; OnTimer57000: announce "Mr. Dice: 3.",0; end; OnTimer58000: announce "Mr. Dice: 2.",0; end; OnTimer59000: announce "Mr. Dice: 1.",0; end; OnTimer60000: announce "Mr. Dice: Time's up.",0; end; OnTimer61000: announce "Mr. Dice: The next Dice event will start after 30 minutes.",0; end; OnTimer67000: disablenpc "prtevent"; donpcevent "Dice#evnt1::OnEnable"; stopnpctimer; end; } glemior,237,334,4 script Mrs. Dice 667,{ if (getgmlevel() == 99) goto Dice_Admin; mes "[Mrs. Dice]"; mes "Hello " + strcharinfo(0) + ", my husband Mr. Dice is currently out gambling."; mes "That buffoon is always losing our money... *sigh*"; close; Dice_Admin: mes "[Mrs. Dice]"; mes "Hello GM " + strcharinfo(0) + ", what do you want to do?"; menu "Check Prize",checkprize,"Set Prize",setprize,"No Thanks",enddice; startdice: next; mes "[Mrs. Dice]"; mes "Ok, I'll call him this instant."; close2; goto startdiceevent; checkprize: next; mes "[Mrs. Dice]"; mes "The current prize is ^008000"+ $get_item_amount +" "+ getitemname($get_item_id) +"^000000"; next; goto Dice_Admin; setprize: next; mes "[Mrs. Dice]"; mes "What should the prize for winning be? Please input the ID"; input $get_item_id; next; mes "[Mrs. Dice]"; mes "How many if this item should we give away?"; input $get_item_amount; next; mes "[Mrs. Dice]"; mes "So, the prize is ^008000"+ $get_item_amount +" "+ getitemname($get_item_id) +"^000000? Wonderful dear."; next; goto Dice_Admin; enddice: next; mes "[Mrs. Dice]"; mes "Ok darling, nice seeing you."; close; } //-------------------------------------------------- glemior,235,327,0 warp prtevent 2,2,quiz_01,204,90 //-------------------------------------------------- quiz_01,204,93,6 script Dice#evnt1 715,{ //-------------------------------------------------- mes "[Mr. Dice]"; mes "Please tell me your name."; next; input [email protected]$; if([email protected]$ != strcharinfo(0)) { mes "[Mr. Dice]"; mes "Are you sure thats your character name?"; close; } mes "[Mr. Dice]"; mes "Congrats. You've won."; close2; announce "Mr. Dice: We have a winner! well done "[email protected]$+".",0; getitem 501,5; getitem 502,5; getitem 503,5; getitem 504,5; #CASHPOINT += 1; warp "glemior",237,332; hideonnpc "Dice#evnt1"; end; OnEnable: mapannounce "quiz_01","Mr. Dice: We are about to start the Dice event.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: But before we start the event here's how to play the game...",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: I'm only gonna say this once so read carefully.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: I'm going to roll a number, 1 to 4. Then I'll do a count down from 5 to 0.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: All you have to do is go stand on the box of the number you want.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: For example, If I roll a number 4, All the players standing on numbers 1 to 3 will be warped back to town.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: We will do it until we only have 1 player left on the map.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: Oh yeah! Before I forget you MUST GO INSIDE THE BOX, because if you're caught standing on the stairs you'll be automatically disqualified.",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: Simple huh?.. Let's play...",0; sleep2 5000; goto L_Start; end; L_Start: if(getmapusers("quiz_01") == 1) goto L_Champ; if(getmapusers("quiz_01") == 0) goto L_None; if(getmapusers("quiz_01") > 1) { mapannounce "quiz_01","Mr. Dice: . . . . .",0; set [email protected], rand(1,4); sleep2 10000; mapannounce "quiz_01","Mr. Dice: I have rolled. Please pick a number and go stand there.... GO!",0; sleep2 10000; mapannounce "quiz_01","Mr. Dice: 5",0; sleep2 5000; mapannounce "quiz_01","Mr. Dice: 4",0; sleep2 4000; mapannounce "quiz_01","Mr. Dice: 3",0; sleep2 3000; mapannounce "quiz_01","Mr. Dice: 2",0; sleep2 2000; mapannounce "quiz_01","Mr. Dice: 1",0; sleep2 1000; mapannounce "quiz_01","Mr. Dice: Time's up.",0; donpcevent "evnt#1::OnEnable"; mapannounce "quiz_01","Mr. Dice: The winning number is "[email protected]+".",0; if(([email protected] != 1) && ([email protected] != 2) && ([email protected] != 3)) goto L_Lose1; if(([email protected] != 1) && ([email protected] != 2) && ([email protected] != 4)) goto L_Lose2; if(([email protected] != 1) && ([email protected] != 3) && ([email protected] != 4)) goto L_Lose3; if(([email protected] != 2) && ([email protected] != 3) && ([email protected] != 4)) goto L_Lose4; end; } L_Lose1: areawarp "quiz_01",183,81,191,59,"glemior",237,332; areawarp "quiz_01",195,81,203,59,"glemior",237,332; areawarp "quiz_01",207,81,215,59,"glemior",237,332; goto L_Start; end; L_Lose2: areawarp "quiz_01",183,81,191,59,"glemior",237,332; areawarp "quiz_01",195,81,203,59,"glemior",237,332; areawarp "quiz_01",219,81,227,59,"glemior",237,332;; goto L_Start; end; L_Lose3: areawarp "quiz_01",183,81,191,59,"glemior",237,332; areawarp "quiz_01",207,81,215,59,"glemior",237,332; areawarp "quiz_01",219,81,227,59,"glemior",237,332; goto L_Start; end; L_Lose4: areawarp "quiz_01",195,81,203,59,"glemior",237,332; areawarp "quiz_01",207,81,215,59,"glemior",237,332; areawarp "quiz_01",219,81,227,59,"glemior",237,332; goto L_Start; end; L_Champ: mapannounce "quiz_01","Mr. Dice: Come to me and tell me your name.",0; hideoffnpc "Dice#evnt1"; end; L_None: //disablenpc "Dice#evnt1"; hideonnpc "Dice#evnt1"; end; } - script evnt#1 -1,{ OnEnable: areawarp "quiz_01",182,94,228,88,"glemior",237,332; areawarp "quiz_01",185,87,188,82,"glemior",237,332; areawarp "quiz_01",197,87,200,82,"glemior",237,332; areawarp "quiz_01",209,87,212,82,"glemior",237,332; areawarp "quiz_01",221,87,224,82,"glemior",237,332; end; } // -- Mapflags quiz_01 mapflag nowarp quiz_01 mapflag nowarpto quiz_01 mapflag noteleport quiz_01 mapflag nosave quiz_01 mapflag nomemo quiz_01 mapflag nobranch poring event. event will start every 1 and half hour as requested prize set already as requested 501,502,503,504,#event_points, //= Poring Catcher - Auto Event Script //===== By: ================================================================================= //= Washi - www.EarthBound-RO.com //===== Compatible With: ==================================================================== //= Any eAthena Version //===== Description: ======================================================================== //= Single NPC that starts automatically starts every hour. //===== Additional Comments: ================================================================ //= This script is a combenation of the Dice Event by [Mahina] //= and the origonal Poring Catcher Event by [Wild Karrd] //=========================================================================================== //= OnMinute - Change this to the minute you would like this script to load. [ LINE 22 ] //= getitem - Change this to the Item ID of your prize. [ LINE 118 ] //=========================================================================================== - script poring#announcer -1,{ OnInit: disablenpc "poringevent"; hideonnpc "Poring Catcher#evnt2"; end; OnMinute90: // SET THE 30 TO THE MINUTE YOU WANT THE EVENT TO START EACH HOUR. announce "Poring Catcher : It's time to play some Poring Catcher!",0; killmonster "poring_w01","All"; sleep2 10000; announce "Poring Catcher : Please make your way to the centre of glemior.",0; sleep2 10000; announce "Poring Catcher : After one minute the portal will close.",0; sleep2 10000; announce "Poring Catcher : Enter the warp portal now if you want to join.",0; enablenpc "poringevent"; initnpctimer; end; OnTimer30000: announce "Poring Catcher : Last 30 seconds.",0; sleep2 5000; announce "Poring Catcher : Hurry to the centre of glemior if you want to join.",0; end; OnTimer50000: announce "Poring Catcher : Last 10 seconds.",0; end; OnTimer55000: announce "Poring Catcher : 5.",0; end; OnTimer56000: announce "Poring Catcher : 4.",0; end; OnTimer57000: announce "Poring Catcher : 3.",0; end; OnTimer58000: announce "Poring Catcher : 2.",0; end; OnTimer59000: announce "Poring Catcher : 1.",0; end; OnTimer60000: announce "Poring Catcher : Time's up. Portal Will Open again in one hour.",0; end; OnTimer67000: disablenpc "poringevent"; donpcevent "Poring Catcher#evnt2::OnEnable"; stopnpctimer; end; } //-------------------------------------------------- glemior,158,331,0 warp poringevent 2,2,poring_w01,106,129 //-------------------------------------------------- poring_w01,100,127,4 script Poring Catcher#evnt2 715,{ //-------------------------------------------------- mes "[Poring Catcher]"; if(PORING == 1) goto L_PORING; mes "Please tell me your name"; next; input [email protected]$; if([email protected]$ != strcharinfo(0)) { mes "[Poring Catcher]"; mes "Are you sure thats your character name?"; close; } mes "[Poring Catcher]"; mes "Congrats. You've won."; close2; announce "Poring Catcher : All laugh at, "[email protected]$+". - This player tried to cheat the system. Muhahahahaha!",0; warp "glemior",164,328; end; L_PORING: mes "Please tell me your name"; next; input [email protected]$; if([email protected]$ != strcharinfo(0)) { mes "[Poring Catcher]"; mes "Are you sure thats your character name?"; close; } mes "[Poring Catcher]"; mes "Congrats. You've won."; close2; announce "Poring Catcher : We have a winner, "[email protected]$+". - Event Award Won!",0; getitem 501,5; getitem 502,5; getitem 503,5; getitem 504,5; #CASHPOINT += 1; // set zeny,zeny+1000000; set PORING,0; warp "glemior",164,328; hideonnpc "Poring Catcher#evnt2"; end; OnEnable: mapannounce "poring_w01","Poring Catcher : I will be summoning 100 different Porings.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : Only one of these Porings is the correct Poring.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : The correct Poring is called [ Poring ], all the other Porings have different names.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : Take your time because if you kill the wrong Poring, your out of the game.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : The first player to kill the correct Poring wins.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : That's that.. Now let's play...",0; goto L_Start; end; L_Start: mapannounce "poring_w01","Poring Catcher : 5",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 4",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 3",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 2",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 1",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : Lets Do This!",0; areamonster "poring_w01",84,119,121,90,"Poring",1002,1,"poringwin::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Pouring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Proing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poiring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"I am not Poring",1002,5,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Gniriop",1002,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porring",1113,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porinng",1062,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poriiing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"PoriNgg",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porong",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"P0ring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Por1ng",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porng",1002,1,"poringlose::OnMobKilled"; end; } - script poringwin -1,{ OnMobKilled: dispbottom "Poring : Congratulations. You've got me."; set PORING,1; atcommand "@doommap"; killmonster "poring_w01","All"; mapannounce "poring_w01","Poring Catcher : Come to me and tell me your name.",0; hideoffnpc "Poring Catcher#evnt2"; end; } - script poringlose -1,{ OnMobKilled: dispbottom "Poring Catcher : Wahaha, your a loser! - I wasnt the correct Poring."; warp "glemior",164,328; end; } // -- Mapflags poring_w01 mapflag nowarp poring_w01 mapflag nowarpto poring_w01 mapflag noteleport poring_w01 mapflag nosave poring_w01 mapflag nomemo poring_w01 mapflag nobranch poring_w01 mapflag noloot poring_w01 mapflag noskill poring_w01 mapflag nopenalty Disguise event. event will start every 1 hour as requested prize set already as requested 501,502,503,504,#event_points, prontera,211,189,4 script Disguise Event 795,{ //--- Basic Script Configuration Options ---// set [email protected]$,"[^0000FFDisguise NPC^000000]"; //<- NPC Name. set [email protected],80; //<- GM Level needed to be considered a GM. //--- The Script ---// if (getgmlevel()>[email protected]){goto GM_Player;} if ([email protected]){end;} mes [email protected]$; mes "Welcome, how may i be of assistance."; menu "Information",iInfo,"Nothing, just passing through.",iNothing; iInfo: next; mes [email protected]$; mes "This event is actually quite simple"; mes "At the start of the event, I will disguise myself"; mes "into a monster randomly. You will then merely have to shout that monsters name outloud."; next; mes "If you get it correct, you get a prize. If not, then keep trying."; mes "Thatis all there is to know about this event."; close; iNothing: close; GM_Player: mes [email protected]$; mes "Please select an Option to modify."; menu "Turn ON/OFF Event",iEvent,"Event Settings",iSettings; iEvent: next; mes [email protected]$; if ([email protected]){mes "The Event is currently: [^0000FFON^000000]"; mes "Would you like to turn it OFF?";} if ([email protected]){mes "The Event is currently: [^FF0000OFF^000000]"; mes "Would you like to turn it ON?";} menu "Yes",iYes,"No",iNothing; iYes: if ([email protected]) {set [email protected],0; set [email protected],0; setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; deletepset 1; setnpcdisplay "Disguise Event",997; close;} set [email protected],1; set [email protected],1; setnpctimer 0; initnpctimer; set [email protected],[email protected]+1; announce "The Disguise Event will begin in 3 minutes.",bc_all; announce "The Event is being held in prontera 211 189.",bc_all; close; iSettings: next; mes [email protected]$; mes "Please select a setting to modify."; menu "Monster Display",iMonster,"Number of Rounds",iRounds,"Prize Settings",iPrize; iMonster: callfunc "Monster_Display"; iRounds: callfunc "Rounds"; iPrize: callfunc "Prize"; OnInit: defpattern 1,"([^:]+):.\\s*OMFGBBQLEETSAUCEGMOCEANRULESHAI!!.*", "iCorrect"; activatepset 1; set [email protected],0; set [email protected],0; set [email protected],0; set $Points,$Points; set [email protected],0; set $Rounds,$Rounds; set $Prize,$Prize; set $PrizeAmt,$PrizeAmt; set $Rule,$Rule; setarray [email protected][0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; setarray [email protected][0], 1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218, 1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001, 2002,2003,2004,2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035,2036, 2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054, 2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2075,2076,2077,2078,2079, 2080,2081,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098, 2099,2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116, 2117,2118; setarray [email protected][0],2119,2120,2121,2123,2124,2125,1496; end; OnClock0000: OnClock0100: OnClock0200: OnClock0300: OnClock0400: OnClock0500: OnClock0600: OnClock0700: OnClock0800: OnClock0900: OnClock1000: OnClock1100: set [email protected],[email protected]+1; set [email protected],1; set [email protected],1; set [email protected],1; announce "The Disguise Event will begin in 3 minutes.",bc_all; announce "The Event is being held in prontera 211 189.",bc_all; setnpctimer 0; initnpctimer; end; OnTimer10000: if ([email protected]){end;} if ([email protected]){end;} set [email protected],0; goto iDisguise; //donpcevent "DisguiseEvent::OnDisguise"; end; OnTimer30000: if ([email protected]){end;} set [email protected],0; setnpcdisplay "Disguise Event",795; npctalk "You took too long to guess what i was. Please wait 10 seconds while i disguise again."; specialeffect 730; set $MonsterName$,"OMFGBBQLEETSAUCEGMOCEANRULESHAI!!"; deletepset 1; stopnpctimer; setnpctimer 0; initnpctimer; end; OnTimer60000: if ([email protected]!=1){end;} if ([email protected]==1) {announce "The Disguise Event will begin in 2 minutes.",bc_all; announce "The Event is being held in prontera 211 189.",bc_all; end;} OnTimer120000: if ([email protected]!=1){end;} if ([email protected]==1) {announce "The Disguise Event will begin 1 minute.",bc_all; announce "The Event is being held in prontera 211 189.",bc_all; end;} OnTimer180000: if ([email protected]!=1){end;} if ([email protected]==1) {announce "The Disguise Event has begun!",bc_all; announce "The Event is being held in Main Town.",bc_all; set [email protected],0; stopnpctimer; setnpctimer 0; initnpctimer; goto iDisguise; //donpcevent "DisguiseEvent::OnDisguise"; end;} announce "Something went wrong with the Disguise Event.",bc_all | bc_blue; announce "Please notify a GM ASAP. Thank you.",bc_all | bc_blue; end; iDisguise: if ($Rule==1) {set [email protected],0; set [email protected],1000+rand(1,995); for(set [email protected],0; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+1) {if ([email protected][email protected][[email protected]] || [email protected][email protected][[email protected]]) {goto iDisguise;}} if ([email protected][email protected]){goto iDisguise;} set [email protected],[email protected]; set $MonsterName$,getmonsterinfo([email protected],0);} if ($Rule==2) {set [email protected],0; set [email protected],rand(49); set $MonsterName$,getmonsterinfo([email protected][[email protected]],0);} deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; if ($Rule==1){setnpcdisplay "Disguise Event",[email protected];} if ($Rule==2){setnpcdisplay "Disguise Event",[email protected][[email protected]];} set [email protected],1; setnpctimer 0; //Hint //npctalk ""[email protected]+", "+$MonsterName$+""; end; iCorrect: if ([email protected]){dispbottom "Someone has already won this round."; end;} set [email protected],1; set [email protected],[email protected]+1; deletepset 1; defpattern 1,"([^:]+):.*\\sOMFGBBQLEETSAUCEGMOCEANRULESHAI!!.*", "iFailCheater"; activatepset 1; //getitem $Prize,$PrizeAmt; getitem 501,5; getitem 502,5; getitem 503,5; getitem 504,5; #CASHPOINT += 1; announce ""+strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; if ([email protected]>=$Rounds) {setnpcdisplay "Disguise Event",795; set [email protected],0; set [email protected],0; set [email protected],0; setnpctimer 0; stopnpctimer; npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; end;} setnpcdisplay "Disguise Event",794; set [email protected],0; setnpctimer 0; end; iFailCheater: end; } //--- The Functions ---// function script Rounds { next; mes "Please Input the number of rounds you want the event to last."; mes "Current Number of Rounds: [^0000FF"+$Rounds+"^000000]"; input [email protected]; set $Rounds,[email protected]; next; mes "The number of rounds has been changed successfully."; mes "Number of Rounds: [^0000FF"+$Rounds+"^000000]"; mes "Come again."; close; } function script Prize { next; mes "Please Input the ItemID of the prize that will be given each round."; mes "Current Items is: [^0000FF"+getitemname($Prize)+"^000000] ItemID - ^0000FF"+$Prize+"^000000"; input [email protected]; if (getitemname([email protected])=="" || getitemname([email protected])=="null") {next; mes "That item does not exist. Please try again."; close;} set $Prize,[email protected]; next; mes "Please Input the Ammount that is to be given."; input [email protected]; if ([email protected]<=0 || [email protected]>=10000) {next; mes "That ammount is invalid. Using default ammount of 1.";} set $PrizeAmt,[email protected]; next; mes "The Prize has been changed successfully."; mes "Prize: [^0000FF"+getitemname($Prize)+"^000000]x(^0000FF"+$PrizeAmt+"^000000)"; close; } function script Monster_Display { setarray [email protected][0],0,1,2; setarray [email protected]$[0],"","Transform as all monsters.","Transform as MvP's only."; next; mes "Please select a Disguise Rule."; mes "Rule 1 - Transform as all monsters."; mes "Rule 2 - Transform as MvP's only."; menu "Rule 1:Rule 2",iRule; iRule: set $Rule,[email protected][@menu]; next; mes "The Disguise Rule, has been changed successfully."; mes "Current Rule: ^0000FF"+$Rule+"^000000 - ^0000FF"[email protected]$[@menu]+"^000000"; close; }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.