1 | //| ~~~~~ How to set WoE times, by erKURITA: ~~~~~ |
---|
2 | //| |
---|
3 | //| Basically, there are 2 commands that affects the WoE times, |
---|
4 | //| OnClock<time>: and gettime(<type). |
---|
5 | //| |
---|
6 | //| OnClock<time> runs when the said time where <time> is has been reached. |
---|
7 | //| The format of time is hhmm, being h = hour, m = minute. |
---|
8 | //| OnClock2350: would run at 23:50 on Computer's time. |
---|
9 | //| |
---|
10 | //| gettime(<type) is a function which is used to make a check |
---|
11 | //| for a desired amount of information regarding time. The types are: |
---|
12 | //| 1 - Seconds (of a minute) |
---|
13 | //| 2 - Minutes (of an hour) |
---|
14 | //| 3 - Hour (of a day). Hour goes from 0 to 23. |
---|
15 | //| 4 - Week day (0 for Sunday, 6 is Saturday) |
---|
16 | //| 5 - Day of the month. |
---|
17 | //| 6 - Number of the month. |
---|
18 | //| 7 - Year. |
---|
19 | //| 8 - Day of the year. |
---|
20 | //| |
---|
21 | //| Days (explained later) : |
---|
22 | //| Monday = 1 |
---|
23 | //| Tuesday = 2 |
---|
24 | //| Wednesday = 3 |
---|
25 | //| Thursday = 4 |
---|
26 | //| Friday = 5 |
---|
27 | //| Saturday = 6 |
---|
28 | //| Sunday = 7 |
---|
29 | //| |
---|
30 | //| This way, we can check for a desired minute, hour, day, month, etc. |
---|
31 | //| |
---|
32 | //| Now the structure: |
---|
33 | //| |
---|
34 | //| OnClock2100: //start time for Tues(2), Thurs(4) |
---|
35 | //| OnClock2300: //end time for Tues(2), Thurs(4) |
---|
36 | //| OnClock1600: //start time for Sat(6) |
---|
37 | //| OnClock1800: //end time for Sat(6) |
---|
38 | //| |
---|
39 | //| These 4 labels will run one after the other. It's acomodated so, |
---|
40 | //| The Tuesday at 21:00 and 23:00 they will run, and go to the next |
---|
41 | //| part of the script: |
---|
42 | //| |
---|
43 | //| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start; |
---|
44 | //| if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start; |
---|
45 | //| if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start; |
---|
46 | //| |
---|
47 | //| This part will check for the times. Since both Starting and Ending times |
---|
48 | //| run through the same chain of commands, there are necesary checks to ensure |
---|
49 | //| it's the right time. Let's take the following example: |
---|
50 | //| |
---|
51 | //| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) |
---|
52 | //| |
---|
53 | //| The first gettime is checking for a type 4, the day of the week, and it's |
---|
54 | //| comparing it to the one desired, which is 2, that's Tuesday. If the comparation |
---|
55 | //| is true and both sides are equal, it will return 1. 1 means true, 0 means false |
---|
56 | //| in comparations and conditions. |
---|
57 | //| |
---|
58 | //| The second gettime is checking for a type 3, which is the hour, and it's |
---|
59 | //| comparing it to 21, and if the first part is greater or equal (>=) than the second, |
---|
60 | //| the comparation will return 1. |
---|
61 | //| |
---|
62 | //| The third and last gettime is checking again for the hour, but the time has to be less |
---|
63 | //| than the said time, in this case, 23. |
---|
64 | //| |
---|
65 | //| Now, look at the parentheses. Parentheses are very important when making comparations |
---|
66 | //| and conditions. Check the order of these. I'll place dummy characters for this example: |
---|
67 | //| |
---|
68 | //| if ((X && (Y && Z)) goto L_Start; |
---|
69 | //| |
---|
70 | //| It's saying, if Y and Z are true, the condition meets. Now let's replace that comparation |
---|
71 | //| with another dummy character. We're doing (Y && Z) = G: |
---|
72 | //| |
---|
73 | //| if (X && G) goto L_Start; |
---|
74 | //| |
---|
75 | //| It's saying, if X and G are true, the condition meets, thus it has to go to L_Start. |
---|
76 | //| |
---|
77 | //| Now, the last part of the script, regarding the end of WoE time: |
---|
78 | //| |
---|
79 | //| if((gettime(4)==2) && (gettime(3)==23)) goto L_End; |
---|
80 | //| if((gettime(4)==4) && (gettime(3)==23)) goto L_End; |
---|
81 | //| if((gettime(4)==6) && (gettime(3)==18)) goto L_End; |
---|
82 | //| end; |
---|
83 | //| |
---|
84 | //| This is the same as before, but it's checking for the day in the first gettime, and |
---|
85 | //| the hour on the second. If both conditions are true, the WoE will end. We're checking |
---|
86 | //| here for the end time, not the start. |
---|
87 | //| |
---|
88 | //| Another important thing is OnAgitInit: . This special label will be run as soon as the |
---|
89 | //| castle data is loaded from the char data. So it will check for the above start and end time |
---|
90 | //| to see if it's in WoE time, hence why the hours has to be checked. |
---|
91 | //| |
---|
92 | //| Now a example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm: |
---|
93 | //| |
---|
94 | //| OnClock1600: //| 16:00 = 4 pm |
---|
95 | //| OnClock2200: //| 22:00 = 10 pm |
---|
96 | //| |
---|
97 | //| OnAgitInit: //| there has to be ONLY ONE of these labels, so put the OnClock above this |
---|
98 | //| //| and the checks below. |
---|
99 | //| |
---|
100 | //| if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start; |
---|
101 | //| |
---|
102 | //| if ((gettime(4)==1) && (gettime(3)==22) goto L_End; |
---|
103 | //| end;//| VERY IMPORTANT TO PLACE AND END AFTER THE LAST END CHECK. You don't want to |
---|
104 | //| //| start the WoE w/o being on the right times/day |
---|
105 | //| |
---|
106 | //| I hope this has been clear enough. Remember to put the checks in a logical way, e.g: |
---|
107 | //| Monday checks first, then Thursday, etc. |
---|
108 | //| Any questions Pm me (erKURITA) or go to irc channel on irc.deltaanime.net in #athena |
---|
109 | //| channel. Do not PM on IRC w/o asking please. |
---|
110 | //| |
---|
111 | //| ~ erKURITA |
---|