//===== rAthena Script =======================================
//= War of Emperium - Time Setter
//===== By: ==================================================
//= Fredzilla
//===== Current Version: =====================================
//= 1.5
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Lets a GM set WoE times from inside the game
//===== Additional Comments: =================================
//= Loops used = 4 (I like loops ^_^)
//= Only GM's of lvl 99 can use it
//= If anyone else tries to use it they will just get a list of WoE times
//= It give you the option, as a GM, to Add a new time, Reset all times,
//= or just view the current set times
//= If a WoE is in Progress no time reset is possible
//= A maximum of 200 WoE times can be set, if that is even possible ;)
//= Added in v1.5
//= Change day setting to a menu call, more GUI this way
//= You can choose for the WoE to last between days
//= IE, Sat 23 till Sun 01, is now possible
//= Not even the normal WoE script can do this (by dafault)
//= Removed the need for disabling the normal agit_event
//= 1.5a Applied Playtester's fix. [Vicious]
//============================================================
prontera,162,194,5 script WoE Setter 806,{
mes "[Woe Setter]";
if(getgmlevel()<99) goto L_NotGM;
mes "Welcome, I can set WoE times for you";
mes "Simply follow the intruction given in each section after this, and it should be set and ready to use";
next;
mes "[Woe Setter]";
mes "Now the fun starts";
mes "Please select what you want to do";
next;
menu "Add a WoE time",L_Add,"Reset All WoE times",L_Reset,"View Current WoE times",-;
mes "[Woe Setter]";
mes "Ok currently you have WoE times set for:-";
set @num,0;
L_LoopList:
if($sday[@num] == 0 && $eday[@num] == 0 && $woetime[@num] == 0 && $woetime2[@num] == 0) goto L_LoopListEnd;
if($sday[@num]==0) set $@tempday$,"Sunday";
if($sday[@num]==1) set $@tempday$,"Monday";
if($sday[@num]==2) set $@tempday$,"Tuesday";
if($sday[@num]==3) set $@tempday$,"Wednesday";
if($sday[@num]==4) set $@tempday$,"Thursday";
if($sday[@num]==5) set $@tempday$,"Friday";
if($sday[@num]==6) set $@tempday$,"Saturday";
if($eday[@num]==0) set $@tempday2$,"Sunday";
if($eday[@num]==1) set $@tempday2$,"Monday";
if($eday[@num]==2) set $@tempday2$,"Tuesday";
if($eday[@num]==3) set $@tempday2$,"Wednesday";
if($eday[@num]==4) set $@tempday2$,"Thursday";
if($eday[@num]==5) set $@tempday2$,"Friday";
if($eday[@num]==6) set $@tempday2$,"Saturday";
if($eday[@num]==$sday[@num]) mes $@tempday$+" from "+$woetime[@num]+":00 till "+$woetime2[@num]+":00";
if($eday[@num]!=$sday[@num]) mes "From "+$@tempday$+" "+$woetime[@num]+":00 till "+$@tempday2$+" "+$woetime2[@num]+":00";
set @num,@num+1;
goto L_LoopList;
L_LoopListEnd:
close;
L_Add:
set @num,0;
L_AddLoop:
if($sday[@num] == 0 && $eday[@num] == 0 && $woetime[@num] == 0 && $woetime2[@num] == 0) goto L_AddLoopEnd;
set @num,@num+1;
goto L_AddLoop;
L_AddLoopEnd:
mes "[Woe Setter]";
mes "What day do you want the WoE to start ^FF0000start^000000 in?";
next;
menu "Sunday",-,"Monday",-,"Tuesday",-,"Wednesday",-,"Thursday",-,"Friday",-,"Saturday",-;
if(@menu==1) set $sday[@num],0;
if(@menu==2) set $sday[@num],1;
if(@menu==3) set $sday[@num],2;
if(@menu==4) set $sday[@num],3;
if(@menu==5) set $sday[@num],4;
if(@menu==6) set $sday[@num],5;
if(@menu==7) set $sday[@num],6;
mes "[Woe Setter]";
mes "Ok, now please enter the hour you wish the WoE to ^FF0000start^000000 at";
mes "This is using a 24 hour clock";
mes "00 = Midnight";
mes "12 = Mid-day";
mes "23 = 11pm";
next;
input @input;
if (@input < 0 || @input > 24) goto L_BadNumber;
set $woetime[@num],@input;
mes "[Woe Setter]";
mes "What day do you want the WoE to start ^FF0000finish^000000 in?";
next;
menu "Same as start",-,"Sunday",-,"Monday",-,"Tuesday",-,"Wednesday",-,"Thursday",-,"Friday",-,"Saturday",-;
if(@menu==1) set $eday[@num],$sday[@num];
if(@menu==2) set $eday[@num],0;
if(@menu==3) set $eday[@num],1;
if(@menu==4) set $eday[@num],2;
if(@menu==5) set $eday[@num],3;
if(@menu==6) set $eday[@num],4;
if(@menu==7) set $eday[@num],5;
if(@menu==8) set $eday[@num],6;
mes "[Woe Setter]";
mes "Ok, now please enter the hour you wish the WoE to ^FF0000finish^000000 at";
mes "This also uses the 24 hour clock";
mes "00 = Midnight";
mes "12 = Mid-day";
mes "23 = 11pm";
next;
input @input;
if (@input < 0 || @input > 24) goto L_BadNumber;
set $woetime2[@num],@input;
mes "[Woe Setter]";
mes "You WoE time has now been set";
mes "To confirm this, ask me to show you the ^FF0000'View Current WoE times'^000000";
close;
L_Reset:
mes "[Woe Setter]";
mes "You are about to reset all the set WoE times you have created";
mes "Are you sure?";
next;
menu "No, what was I thinking",L_No,"Yes I really want to do it",-;
if(agitcheck()) goto L_WoEOn;
deletearray $sday[0],200;
deletearray $eday[0],200;
deletearray $woetime[0],200;
deletearray $woetime2[0],200;
mes "[Woe Setter]";
mes "They are all gone now, please remember to set new ones";
close;
L_WoEOn:
mes "[Woe Setter]";
mes "Sorry since there is a WoE in progress you cannot reset the WoE times";
close;
L_No:
mes "[Woe Setter]";
mes "Oh, good, come back whenever";
close;
L_NotGM:
mes "The current WoE times are :-";
set @num,0;
goto L_LoopList;
end;
L_BadNumber:
mes "[Woe Setter]";
mes "Sorry that was an invalid number, please try again";
close;
}
- script Agit_Event2 -1,{
end;
OnInit:
disablenpc "Agit_Event";
OnMinute00:
OnAgitInit:
// starting time check
set $@num,0;
L_StartLoop:
if($sday[$@num] == 0 && $eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) goto L_StartLoopEnd;
if(gettime(4)==$sday[$@num] && gettime(3)>=$woetime[$@num] && (gettime(3)<$woetime2[$@num] || $sday[$@num]!=$eday[$@num])) goto L_Start;
set $@num,$@num+1;
goto L_StartLoop;
// end time checks
L_StartLoopEnd:
set $@num,0;
L_EndLoop:
if($eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) end;
if((gettime(4)==$eday[$@num]) && (gettime(3)==$woetime2[$@num])) goto L_End;
set $@num,$@num+1;
goto L_EndLoop;
end;
// Stop WoE
L_End:
if(!agitcheck()) end;
Announce "The War Of Emperium is over!",8;
AgitEnd;
end;
// Start WoE
L_Start:
if(agitcheck()) end;
Announce "The War Of Emperium has begun!",8;
AgitStart;
end;
}