Sorry! Let me explain better. I am creating a Guild Package and am using this script.
My WoE run two days of the week and I would like two hours before WoE the npc deliver the items as soon as the leader requests once each WoE.
https://pastebin.com/tLHkb0rf
prontera,100,200,3 script WoE Supply 78,{
function sf {
function s;
[email protected] = getarg(2);
[email protected] = getarg(3);
return (
sprintf( getarg(0),
s(
[email protected],
[email protected], getarg(1)), s(
[email protected]++,
[email protected], getarg(1)),
s(
[email protected]++,
[email protected], getarg(1)), s(
[email protected]++,
[email protected], getarg(1)),
s(
[email protected]++,
[email protected], getarg(1)), s(
[email protected]++,
[email protected], getarg(1)),
s(
[email protected]++,
[email protected], getarg(1)), s(
[email protected]++,
[email protected], getarg(1)),
s(
[email protected]++,
[email protected], getarg(1)), s(
[email protected]++,
[email protected], getarg(1))
)
+((
[email protected]+1 <
[email protected] )?":Next":":")
+((
[email protected] > 0 )?":Back":":")
+":Cancel"
);
function s {
if( getarg(0) >= getarg(1) ) return "";
else {
[email protected]$ = getguildname(getelementofarray(getarg(2),getarg(0)));
return
[email protected]$=="null"?"":
[email protected]$;
}
};
};
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?";
[email protected]_len = getarraysize($App_Guilds);
[email protected]$ = "%s:%s:%s:%s:%s:%s:%s:%s:%s:%s";
next;
if( select("Remove:Add") == 1 ) {
while(
[email protected] != 9999 ) {
select( sf(
[email protected]$, $App_Guilds,
[email protected],
[email protected]_len ) );
switch( @menu ) {
case 11:
[email protected] = nex(
[email protected],
[email protected]_len ); break;
case 12:
[email protected] = bac(
[email protected] ); break;
case 13: end;
default:
[email protected] =
[email protected][email protected];
mes .Npc_Name$;
mes "You've selected ^0000FF["+getguildname($App_Guilds[
[email protected]])+"]^000000 guild. Would you like to remove them from the accepted guilds?";
next;
if( select("Yes:No") == 1 ) {
deletearray($App_Guilds[
[email protected]],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(
[email protected]$);
[email protected] = query_sql( "Select `guild_id` from `guild` where `name` like '%"+escape_sql(
[email protected]$)+"%' or `master` like '%"+escape_sql(
[email protected]$)+"%';",
[email protected]_id );
while(
[email protected] != 9999 ) {
select( sf(
[email protected]$,
[email protected]_id,
[email protected],
[email protected] ) );
switch( @menu ) {
case 11:
[email protected] = nex(
[email protected],
[email protected] ); break;
case 12:
[email protected] = bac(
[email protected] ); break;
case 13: end;
default:
[email protected] =
[email protected][email protected];
[email protected]_len = getarraysize($App_Guilds);
for(
[email protected]=0;
[email protected]<
[email protected]_len;
[email protected]++)
if( $App_Guilds[
[email protected]]
[email protected]_id[
[email protected]] ) {
mes .Npc_Name$;
mes "You've selected ^0000FF["+getguildname(
[email protected]_id[
[email protected]])+"]^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(
[email protected]_id[
[email protected]])+"]^000000 guild. Would you like to add them to the accepted guilds?";
next;
if( select("Yes:No") == 1 ) {
[email protected]_len = getarraysize($App_Guilds);
if(
[email protected]_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[
[email protected]_len] =
[email protected]_id[
[email protected]];
}
}
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$;
[email protected] = getarraysize($App_Guilds);
for(
[email protected]=0;
[email protected] <=
[email protected];
[email protected]++ ) {
if( getcharid(2) == $App_Guilds[
[email protected]] )
set
[email protected]_Check,
[email protected]_Check+1;
}
if(
[email protected]_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;
}