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,162,194,5 script WoE Setter 806,{ |
---|
28 | mes "[Woe Setter]"; |
---|
29 | if(getgmlevel()<99) 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()) 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 | |
---|
156 | // starting time check |
---|
157 | set $@num,0; |
---|
158 | L_StartLoop: |
---|
159 | if($sday[$@num] == 0 && $eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) goto L_StartLoopEnd; |
---|
160 | if(gettime(4)==$sday[$@num] && gettime(3)>=$woetime[$@num] && (gettime(3)<$woetime2[$@num] || $sday[$@num]!=$eday[$@num])) goto L_Start; |
---|
161 | set $@num,$@num+1; |
---|
162 | goto L_StartLoop; |
---|
163 | |
---|
164 | // end time checks |
---|
165 | L_StartLoopEnd: |
---|
166 | set $@num,0; |
---|
167 | L_EndLoop: |
---|
168 | if($eday[$@num] == 0 && $woetime[$@num] == 0 && $woetime2[$@num] == 0) end; |
---|
169 | if((gettime(4)==$eday[$@num]) && (gettime(3)==$woetime2[$@num])) goto L_End; |
---|
170 | set $@num,$@num+1; |
---|
171 | goto L_EndLoop; |
---|
172 | end; |
---|
173 | |
---|
174 | // Stop WoE |
---|
175 | L_End: |
---|
176 | if(!agitcheck()) end; |
---|
177 | Announce "The War Of Emperium is over!",8; |
---|
178 | AgitEnd; |
---|
179 | end; |
---|
180 | |
---|
181 | // Start WoE |
---|
182 | L_Start: |
---|
183 | if(agitcheck()) end; |
---|
184 | Announce "The War Of Emperium has begun!",8; |
---|
185 | AgitStart; |
---|
186 | end; |
---|
187 | } |
---|