///////////////////////////////////////////////////////
// ___________ _____.__
// \__ ___/__.__.________/ ____\__| ____ ____
// | | < | |\_ __ \ __\| |/ \ / ___\
// | | \___ | | | \/| | | | | \/ /_/ >
// |____| / ____| |__| |__| |__|___| /\___ /
// \/ 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).
//=====================================================
///////////////////////////////////////////////////////
prontera,152,180,5 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, 70;
set .@defaultreward, 510;
setarray .@rewardablejobs[0], Job_Sniper, Job_Creator, Job_Assassin_Cross, Job_Clown, Job_Whitesmith, Job_Paladin, Job_Gypsy, Job_Champion, Job_High_Priest, Job_High_Wizard, Job_Stalker, Job_Professor, Job_Lord_Knight;
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" : ":") + ":Claim Reward!:How to claim?: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;
}
Question
iFox
/////////////////////////////////////////////////////// // ___________ _____.__ // \__ ___/__.__.________/ ____\__| ____ ____ // | | < | |\_ __ \ __\| |/ \ / ___\ // | | \___ | | | \/| | | | | \/ /_/ > // |____| / ____| |__| |__| |__|___| /\___ / // \/ 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). //===================================================== /////////////////////////////////////////////////////// prontera,152,180,5 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, 70; set .@defaultreward, 510; setarray .@rewardablejobs[0], Job_Sniper, Job_Creator, Job_Assassin_Cross, Job_Clown, Job_Whitesmith, Job_Paladin, Job_Gypsy, Job_Champion, Job_High_Priest, Job_High_Wizard, Job_Stalker, Job_Professor, Job_Lord_Knight; 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" : ":") + ":Claim Reward!:How to claim?: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; }

Edited by Emistrycodebox
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.