Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- prontera,100,200,3 script WoE Supply 78,{
- function sf {
- function s;
- .@a = getarg(2);
- .@len = getarg(3);
- return (
- sprintf( getarg(0),
- s(.@a, .@len, getarg(1)), s(.@a++, .@len, getarg(1)),
- s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)),
- s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)),
- s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1)),
- s(.@a++, .@len, getarg(1)), s(.@a++, .@len, getarg(1))
- )
- +(( .@a+1 < .@len )?":Next":":")
- +(( .@a-11 > 0 )?":Back":":")
- +":Cancel"
- );
- function s {
- if( getarg(0) >= getarg(1) ) return "";
- else {
- .@name$ = getguildname(getelementofarray(getarg(2),getarg(0)));
- return .@name$=="null"?"":.@name$;
- }
- };
- };
- function nex { return((getarg(0)+10)<getarg(1)?getarg(0)+10:getarg(1)-(getarg(1)%10)); };
- function bac { return((getarg(0)-10)>=0?getarg(0)-10:0); };
- if( getgmlevel()>=80 ) {
- mes .Npc_Name$;
- mes "Hello Mr. GM what would you like to do?";
- next;
- switch( select("Add/Remove Guilds:Clear Guild Data:Player Menu:Cancel") ) {
- case 1:
- mes .Npc_Name$;
- mes "Would you like to add or remove a guild?";
- .@a_len = getarraysize($App_Guilds);
- .@format$ = "%s:%s:%s:%s:%s:%s:%s:%s:%s:%s";
- next;
- if( select("Remove:Add") == 1 ) {
- while( .@a != 9999 ) {
- select( sf( .@format$, $App_Guilds, .@a, .@a_len ) );
- switch( @menu ) {
- case 11: .@a = nex( .@a, .@a_len ); break;
- case 12: .@a = bac( .@a ); break;
- case 13: end;
- default:
- .@select = .@a+@menu-1;
- mes .Npc_Name$;
- mes "You've selected ^0000FF["+getguildname($App_Guilds[.@select])+"]^000000 guild. Would you like to remove them from the accepted guilds?";
- next;
- if( select("Yes:No") == 1 ) {
- deletearray($App_Guilds[.@select],1);
- mes .Npc_Name$;
- mes "The guild has been removed!";
- }
- close;
- }
- }
- } else {
- mes .Npc_Name$;
- mes "Please input guild name or masters name.";
- next;
- input(.@input$);
- .@len = query_sql( "Select `guild_id` from `guild` where `name` like '%"+escape_sql(.@input$)+"%' or `master` like '%"+escape_sql(.@input$)+"%';",.@guild_id );
- while( .@a != 9999 ) {
- select( sf( .@format$, .@guild_id, .@a, .@len ) );
- switch( @menu ) {
- case 11: .@a = nex( .@a, .@len ); break;
- case 12: .@a = bac( .@a ); break;
- case 13: end;
- default:
- .@select = .@a+@menu-1;
- .@a_len = getarraysize($App_Guilds);
- for(.@b=0;.@b<.@a_len;.@b++)
- if( $App_Guilds[.@b]==.@guild_id[.@select] ) {
- mes .Npc_Name$;
- mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. I'm sorry but that guild has already been added to the accepted list.";
- close;
- }
- mes .Npc_Name$;
- mes "You've selected ^0000FF["+getguildname(.@guild_id[.@select])+"]^000000 guild. Would you like to add them to the accepted guilds?";
- next;
- if( select("Yes:No") == 1 ) {
- .@a_len = getarraysize($App_Guilds);
- if( .@a_len>=128 ) {
- mes .Npc_Name$;
- mes "I'm sorry but the accepted list is full please make some room and try again...";
- } else {
- mes .Npc_Name$;
- mes "The guild was successfully added!";
- $App_Guilds[.@a_len] = .@guild_id[.@select];
- }
- }
- close;
- }
- }
- }
- case 2:
- mes .Npc_Name$;
- mes "Are you sure you want to clear the guild data?!";
- next;
- if( select("Yes!:No!")==1 ) {
- mes .Npc_Name$;
- mes "This is you last chance. Are you surly sure as sure can be?";
- next;
- if( select("Surly!:No, wait... Where am I?!!")==1 )
- deletearray($App_Guilds);
- }
- if( @menu==1 ) {
- mes .Npc_Name$;
- mes "The deed is done...";
- } else {
- mes .Npc_Name$;
- mes "Wow that was a close one... Have a nice day!";
- }
- close;
- case 3: break;
- case 4:
- mes .Npc_Name$;
- mes "Alright, have a nice day!";
- close;
- }
- }
- mes .Npc_Name$;
- mes "I'm here to give you supplies for WoE!";
- next;
- mes .Npc_Name$;
- .@len = getarraysize($App_Guilds);
- for( .@i=0; .@i <= .@len; .@i++ ) {
- if( getcharid(2) == $App_Guilds[.@i] )
- set .@Guild_Check, .@Guild_Check+1;
- }
- if( .@Guild_Check < 1 ) {
- mes "Your guild has not yet been approved, please contact the GMs";
- close;
- }
- if( !getcharid(2) ) {
- mes "Sorry only members of a guild may use this npc.";
- close;
- }
- if( BaseLevel < 99 || Class > 4022 ) {
- mes "Sorry this is for Lvl 99 Trans Class only";
- close;
- }
- if( gettimetick(2) < #delay ) {
- mes "Sorry, you can only claim this once every WoE";
- close;
- }
- switch( Class ) {
- case 4009: //High Priest
- getitem 19052,1; //HP Pack
- break;
- case 4010: //High Wizard
- mes "Please choose your role";
- mes "Support : Ganbantien";
- mes "Offensive : SG/MS/LOV (Includes Crystal Fragments)";
- next;
- if( select("Support High Wizard:Offensive High Wizard")==1 )
- getitem 19047,1; //Support HWIZ Pack
- else
- getitem 19046,1; //Offensive HWIZ Pack
- break;
- case 4011: //Whitesmith
- getitem 19051,1; //Whitesmith Pack
- break;
- case 4012: //Sniper
- getitem 19054,1; //Sniper Pack
- break;
- case 4013: //Sinx
- getitem 19055,1; //Sinx Pack
- break;
- case 4016: //Champion
- getitem 19053,1; //Champion Pack
- break;
- case 4017: //Professor
- getitem 19048,1; //Prof Pack
- break;
- case 4018: //Stalker
- mes "Please choose your type.";
- mes "Flame : Flame Stone";
- mes "Ice : Ice Stone";
- mes "Wind : Wind Stone";
- mes "Shadow : Shadow Orb";
- next;
- switch( select("Flame:Ice:Wind:Shadow") ) {
- case 1: getitem 19056,1; break;
- case 2: getitem 19057,1; break;
- case 3: getitem 19058,1; break;
- case 4: getitem 19059,1;
- }
- break;
- case 4019: //Creator
- mes "Please choose your role.";
- mes "Support : Slim Potion Pitcher";
- mes "Offensive : Acid Demonstration";
- next;
- if( select("Support Creator:Offensive Creator")==1 )
- getitem 19050,1;
- else
- getitem 19049,1;
- break;
- case 25: //Ninja
- mes "Please choose your type.";
- mes "Flame : Flame Stone";
- mes "Ice : Ice Stone";
- mes "Wind : Wind Stone";
- mes "Shadow : Shadow Orb";
- next;
- switch( select("Flame:Ice:Wind:Shadow") ) {
- case 1: getitem 19056,1; break;
- case 2: getitem 19057,1; break;
- case 3: getitem 19058,1; break;
- case 4: getitem 19059,1;
- }
- break;
- //Add more cases for all classes
- default:
- if( !callsub( L_GLSub, .Npc_Name$ ) )
- mes "Sorry this is only for the classes which require items for using skills.";
- close;
- }
- set #delay, gettimetick(2)+10800;
- callsub( L_GLSub, .Npc_Name$ );
- mes "There you are, goodluck!";
- close;
- L_GLSub:
- if( getguildmasterid(getcharid(2)) == getcharid(0) ) {
- mes getarg(0);
- mes "Would you like to claim your guild leader package too?";
- next;
- if( select("Yes:No")==1 )
- switch( gettime(4) ) {
- case 0: getitem 19056,1; break; //Sunday
- case 1: getitem 19056,1; break; //Monday
- case 2: getitem 19056,1; break; //Tuesday
- case 3: getitem 19056,1; break; //Wednesday
- case 4: getitem 19056,1; break; //Thursday
- case 5: getitem 19056,1; break; //Friday
- case 6: getitem 19056,1; //Saturday
- }
- return 1;
- }
- return 0;
- OnInit:
- set .Npc_Name$, "[^0000FF WoE Supply ^000000]";
- end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement