Jump to content
  • 0
Sign in to follow this  
`Azhul

Race to 99 Script

Question

Hello everyone, i found this Race to lvl99 script. it's all good and working. but the problem is when i restart the event it still give rewards to those lvl99 players that already won the event. i was hoping to add a function like you have to be a novice lvl1 to register for the event like there's an npc on training grounds (new_1-1) for registration and there's an npc on prontera for claiming the reward.also would like the job must be transclass level 99/70 to claim the reward, can someone help me? Race to 99.txt

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Update: setarray [email protected][0] and change the jobs there to Job_Whitesmith, Job_Creator, Job_Sniper, etc. (reference: doc/const.txt)


Then change the coordinate of the training grounds NPC.

P.S. Untested, I just wrote it from my phone. I wrote it in a simple manner, please learn from the changes I made.

///////////////////////////////////////////////////////
//  ___________               _____.__                
//  \__    ___/__.__.________/ ____\__| ____    ____  
//    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
//    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
//    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
//            \/       Scripts             \//_____/  
//
//=====================================================
// Name: Race to Max Level
//
// Description:
// This NPC allows for Game Masters to set a reward to
// be given to the first player of each 2nd class that
// reaches maximum level (base and class).
//=====================================================
///////////////////////////////////////////////////////
new_1-1,111,111,4	script	Race to 99#reg	58,{
 	mes "[Race to 99]";
  	mes "Would you like to join the race to 99 event?";
  	switch(select("Yes.","Leave him alone.")) {
      case 1:
        mes "[Race to 99]";
        mes "Okay, you're in!";
        set RaceParticipate,1;
        close;
        
      case 2:
        mes "[Race to 99]";
        mes "Okay, that sucks.";
        close;
    }
}


prontera,147,180,5	script	Race to Max Level	58,{
	set .@gm_level, 99; // GM level required to set the reward
	set .@maxbase, 99;
	set .@maxjob, 50;
	set .@defaultreward, 510;
	setarray .@rewardablejobs[0], Job_Knight, Job_Alchemist, Job_Assassin, Job_Bard, Job_Blacksmith, Job_Crusader, Job_Dancer, Job_Hunter, Job_Monk, Job_Priest, Job_Rogue, Job_Sage, Job_Wizard;
	
	Begin:
	clear;
  	if (RaceReward == 1) {
    	mes "[ ^0099ccRace to Max Level^000000 ]";
      	mes "You have already received your reward.";
      	close;
    }
 	
  	if (RaceParticipate != 1) {
     	mes "[ ^0099ccRace to Max Level^000000 ]";
      	mes "You're not a participant of this event.";
      	close;
    }
	mes "[ ^0099ccRace to Max Level^000000 ]";
	mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?");
	switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) {
		case 1:
			goto SetReward;
		case 2:
			goto RestartRace;
		case 3:
			goto GetReward;
		case 4:
			goto ExplainRace;
		case 5:
			goto ShowRewarded;
		default:
			end;
	}
	
	SetReward:
		clear;
		mes "[ ^0099ccRace to Max Level^000000 ]";
		if ($reward == 0)
			set $reward, .@defaultreward;
		mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ").";
		mes "Do you want to change it?";
		if (select("Yes:No") == 1) {
			clear;
			mes "[ ^0099ccRace to Max Level^000000 ]";
			mes "Please enter the new reward item ID.";
			input .@rewardid;			
			clear;
			mes "[ ^0099ccRace to Max Level^000000 ]";
			mes "Set " + getitemname(.@rewardid) + " as the reward?";
			if(select("Yes:No") == 1) {
				set $reward, .@rewardid;
			}
		}
		goto Begin;
	
	RestartRace:
		clear;
		mes "[ ^0099ccRace to Max Level^000000 ]";
		mes "Are you sure you want to restart the race?";
		if (select("Yes:No") == 1) {
			for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
				set $rewarded$[.@rewardablejobs[.@i]], "";
			}
			announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all;
		}
		goto Begin;
	
	GetReward:
		mes "Let's see... " + strcharinfo(0) + ", huh?";
  		if (Upper != 1) {
        	mes "You're not a rebirth class. You're not qualified";
          	close;
        }
		
		set .@competitioner, 0;
		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
			if (Class == .@rewardablejobs[.@i]) {
				set .@competitioner, 1;
				if (BaseLevel < .@maxbase || JobLevel < .@maxjob) {
					mes "I'm sorry, but you still need to level a bit more.";
				} else if ($rewarded$[Class] == strcharinfo(0)) {
					mes "You have already claimed your reward.";
				} else if ($rewarded$[Class] != "") {
					mes "Too late!";
					mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + ".";
				} else goto GiveReward;
			}
		}
		if (.@competitioner == 0)
			mes "You need to change your job.";
		close;
	
	GiveReward:
		set $rewarded$[Class], strcharinfo(0);
  		set RaceReward, 1;
		clear;
		mes "[ ^0099ccRace to Max Level^000000 ]";
		mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!";
		getitem $reward, 1;
		announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all;
		close;
	
	ExplainRace:
		clear;
		mes "[ ^0099ccRace to Max Level^000000 ]";
		mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item.";
		next;
		goto Begin;
		
	ShowRewarded:
		clear;
		mes "[ ^0099ccRace to Max Level^000000 ]";
		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
			mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? $rewarded$[.@rewardablejobs[.@i]] : "^ff0000Nobody^000000");
		}
		next;
		goto Begin;
}



 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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