//===== eAthena Script ======================================= 
//= War of Emperium - Time Setter
//===== By: ================================================== 
//= Fredzilla
//===== Current Version: ===================================== 
//= 1.5a
//===== Compatible With: ===================================== 
//= eAthena 1.0 Final TXT
//===== 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.gat,162,194,5	script	WoE Setter	806,{
	mes "[Woe Setter]";
	if(getgmlevel(99)<1) 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(0)==1) 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(0)==0) end;
	Announce "The War Of Emperium is over!",8;
	AgitEnd;
	end;

// Start WoE
L_Start:
	if(agitcheck(0)==1) end;
	Announce "The War Of Emperium has begun!",8;
	AgitStart;
	end;
}
