WoE_Setter.txt 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. //===== eAthena Script =======================================
  2. //= War of Emperium - Time Setter
  3. //===== By: ==================================================
  4. //= Fredzilla
  5. //===== Current Version: =====================================
  6. //= 1.5a
  7. //===== Compatible With: =====================================
  8. //= eAthena 1.0 Final TXT
  9. //===== Description: =========================================
  10. //= Lets a GM set WoE times from inside the game
  11. //===== Additional Comments: =================================
  12. //= Loops used = 4 (I like loops ^_^)
  13. //= Only GM's of lvl 99 can use it
  14. //= If anyone else tries to use it they will just get a list of WoE times
  15. //= It give you the option, as a GM, to Add a new time, Reset all times,
  16. //= or just view the current set times
  17. //= If a WoE is in Progress no time reset is possible
  18. //= A maximum of 200 WoE times can be set, if that is even possible ;)
  19. //= Added in v1.5
  20. //= Change day setting to a menu call, more GUI this way
  21. //= You can choose for the WoE to last between days
  22. //= IE, Sat 23 till Sun 01, is now possible
  23. //= Not even the normal WoE script can do this (by dafault)
  24. //= Removed the need for disabling the normal agit_event
  25. //= 1.5a Applied Playtester's fix. [Vicious]
  26. //============================================================
  27. prontera.gat,162,194,5 script WoE Setter 806,{
  28. mes "[Woe Setter]";
  29. if(getgmlevel(99)<1) goto L_NotGM;
  30. mes "Welcome, I can set WoE times for you";
  31. mes "Simply follow the intruction given in each section after this, and it should be set and ready to use";
  32. next;
  33. mes "[Woe Setter]";
  34. mes "Now the fun starts";
  35. mes "Please select what you want to do";
  36. next;
  37. menu "Add a WoE time",L_Add,"Reset All WoE times",L_Reset,"View Current WoE times",-;
  38. mes "[Woe Setter]";
  39. mes "Ok currently you have WoE times set for:-";
  40. set @num,0;
  41. L_LoopList:
  42. if($sday[@num] == 0 && $eday[@num] == 0 && $woetime[@num] == 0 && $woetime2[@num] == 0) goto L_LoopListEnd;
  43. if($sday[@num]==0) set $@tempday$,"Sunday";
  44. if($sday[@num]==1) set $@tempday$,"Monday";
  45. if($sday[@num]==2) set $@tempday$,"Tuesday";
  46. if($sday[@num]==3) set $@tempday$,"Wednesday";
  47. if($sday[@num]==4) set $@tempday$,"Thursday";
  48. if($sday[@num]==5) set $@tempday$,"Friday";
  49. if($sday[@num]==6) set $@tempday$,"Saturday";
  50. if($eday[@num]==0) set $@tempday2$,"Sunday";
  51. if($eday[@num]==1) set $@tempday2$,"Monday";
  52. if($eday[@num]==2) set $@tempday2$,"Tuesday";
  53. if($eday[@num]==3) set $@tempday2$,"Wednesday";
  54. if($eday[@num]==4) set $@tempday2$,"Thursday";
  55. if($eday[@num]==5) set $@tempday2$,"Friday";
  56. if($eday[@num]==6) set $@tempday2$,"Saturday";
  57. if($eday[@num]==$sday[@num]) mes $@tempday$+" from "+$woetime[@num]+":00 till "+$woetime2[@num]+":00";
  58. if($eday[@num]!=$sday[@num]) mes "From "+$@tempday$+" "+$woetime[@num]+":00 till "+$@tempday2$+" "+$woetime2[@num]+":00";
  59. set @num,@num+1;
  60. goto L_LoopList;
  61. L_LoopListEnd:
  62. close;
  63. L_Add:
  64. set @num,0;
  65. L_AddLoop:
  66. if($sday[@num] == 0 && $eday[@num] == 0 && $woetime[@num] == 0 && $woetime2[@num] == 0) goto L_AddLoopEnd;
  67. set @num,@num+1;
  68. goto L_AddLoop;
  69. L_AddLoopEnd:
  70. mes "[Woe Setter]";
  71. mes "What day do you want the WoE to start ^FF0000start^000000 in?";
  72. next;
  73. menu "Sunday",-,"Monday",-,"Tuesday",-,"Wednesday",-,"Thursday",-,"Friday",-,"Saturday",-;
  74. if(@menu==1) set $sday[@num],0;
  75. if(@menu==2) set $sday[@num],1;
  76. if(@menu==3) set $sday[@num],2;
  77. if(@menu==4) set $sday[@num],3;
  78. if(@menu==5) set $sday[@num],4;
  79. if(@menu==6) set $sday[@num],5;
  80. if(@menu==7) set $sday[@num],6;
  81. mes "[Woe Setter]";
  82. mes "Ok, now please enter the hour you wish the WoE to ^FF0000start^000000 at";
  83. mes "This is using a 24 hour clock";
  84. mes "00 = Midnight";
  85. mes "12 = Mid-day";
  86. mes "23 = 11pm";
  87. next;
  88. input @input;
  89. if (@input < 0 || @input > 24) goto L_BadNumber;
  90. set $woetime[@num],@input;
  91. mes "[Woe Setter]";
  92. mes "What day do you want the WoE to start ^FF0000finish^000000 in?";
  93. next;
  94. menu "Same as start",-,"Sunday",-,"Monday",-,"Tuesday",-,"Wednesday",-,"Thursday",-,"Friday",-,"Saturday",-;
  95. if(@menu==1) set $eday[@num],$sday[@num];
  96. if(@menu==2) set $eday[@num],0;
  97. if(@menu==3) set $eday[@num],1;
  98. if(@menu==4) set $eday[@num],2;
  99. if(@menu==5) set $eday[@num],3;
  100. if(@menu==6) set $eday[@num],4;
  101. if(@menu==7) set $eday[@num],5;
  102. if(@menu==8) set $eday[@num],6;
  103. mes "[Woe Setter]";
  104. mes "Ok, now please enter the hour you wish the WoE to ^FF0000finish^000000 at";
  105. mes "This also uses the 24 hour clock";
  106. mes "00 = Midnight";
  107. mes "12 = Mid-day";
  108. mes "23 = 11pm";
  109. next;
  110. input @input;
  111. if (@input < 0 || @input > 24) goto L_BadNumber;
  112. set $woetime2[@num],@input;
  113. mes "[Woe Setter]";
  114. mes "You WoE time has now been set";
  115. mes "To confirm this, ask me to show you the ^FF0000'View Current WoE times'^000000";
  116. close;
  117. L_Reset:
  118. mes "[Woe Setter]";
  119. mes "You are about to reset all the set WoE times you have created";
  120. mes "Are you sure?";
  121. next;
  122. menu "No, what was I thinking",L_No,"Yes I really want to do it",-;
  123. if(agitcheck(0)==1) goto L_WoEOn;
  124. deletearray $sday[0],200;
  125. deletearray $eday[0],200;
  126. deletearray $woetime[0],200;
  127. deletearray $woetime2[0],200;
  128. mes "[Woe Setter]";
  129. mes "They are all gone now, please remember to set new ones";
  130. close;
  131. L_WoEOn:
  132. mes "[Woe Setter]";
  133. mes "Sorry since there is a WoE in progress you cannot reset the WoE times";
  134. close;
  135. L_No:
  136. mes "[Woe Setter]";
  137. mes "Oh, good, come back whenever";
  138. close;
  139. L_NotGM:
  140. mes "The current WoE times are :-";
  141. set @num,0;
  142. goto L_LoopList;
  143. end;
  144. L_BadNumber:
  145. mes "[Woe Setter]";
  146. mes "Sorry that was an invalid number, please try again";
  147. close;
  148. }
  149. - script Agit_Event2 -1,{
  150. end;
  151. OnInit:
  152. disablenpc "Agit_Event";
  153. OnMinute00:
  154. OnAgitInit:
  155. // starting time check
  156. set $@num,0;
  157. L_StartLoop:
  158. if($sday[$@num] == 0 && $eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) goto L_StartLoopEnd;
  159. if(gettime(4)==$sday[$@num] && gettime(3)>=$woetime[$@num] && (gettime(3)<$woetime2[$@num] || $sday[$@num]!=$eday[$@num])) goto L_Start;
  160. set $@num,$@num+1;
  161. goto L_StartLoop;
  162. // end time checks
  163. L_StartLoopEnd:
  164. set $@num,0;
  165. L_EndLoop:
  166. if($eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) end;
  167. if((gettime(4)==$eday[$@num]) && (gettime(3)==$woetime2[$@num])) goto L_End;
  168. set $@num,$@num+1;
  169. goto L_EndLoop;
  170. end;
  171. // Stop WoE
  172. L_End:
  173. if(agitcheck(0)==0) end;
  174. Announce "The War Of Emperium is over!",8;
  175. AgitEnd;
  176. end;
  177. // Start WoE
  178. L_Start:
  179. if(agitcheck(0)==1) end;
  180. Announce "The War Of Emperium has begun!",8;
  181. AgitStart;
  182. end;
  183. }