Jump to content
  • 0

Good day. I humbly ask for help to fixed the issue. The script made by Sir tyrfing. The script itself is working.


Question

Posted (edited)
///////////////////////////////////////////////////////
//  ___________               _____.__                
//  \__    ___/__.__.________/ ____\__| ____    ____  
//    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
//    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
//    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
//            \/       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;
}

 

errorr.png

Edited by Emistry
codebox

1 answer to this question

Recommended Posts

  • 0
Posted

shouldn't call the  clear() script command if there are no active mes() message.

find all those clear() and remove it if there isn't any mes(...) executed before it.

 

  • Love 1

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...