|
@@ -1,111 +1,104 @@
|
|
-//| ~~~~~ How to set WoE times, by erKURITA: ~~~~~
|
|
|
|
-//|
|
|
|
|
-//| Basically, there are 2 commands that affects the WoE times,
|
|
|
|
-//| OnClock<time>: and gettime(<type).
|
|
|
|
-//|
|
|
|
|
-//| OnClock<time> runs when the said time where <time> is has been reached.
|
|
|
|
-//| The format of time is hhmm, being h = hour, m = minute.
|
|
|
|
-//| OnClock2350: would run at 23:50 on Computer's time.
|
|
|
|
-//|
|
|
|
|
-//| gettime(<type) is a function which is used to make a check
|
|
|
|
-//| for a desired amount of information regarding time. The types are:
|
|
|
|
-//| 1 - Seconds (of a minute)
|
|
|
|
-//| 2 - Minutes (of an hour)
|
|
|
|
-//| 3 - Hour (of a day). Hour goes from 0 to 23.
|
|
|
|
-//| 4 - Week day (0 for Sunday, 6 is Saturday)
|
|
|
|
-//| 5 - Day of the month.
|
|
|
|
-//| 6 - Number of the month.
|
|
|
|
-//| 7 - Year.
|
|
|
|
-//| 8 - Day of the year.
|
|
|
|
-//|
|
|
|
|
-//| Days (explained later) :
|
|
|
|
-//| Monday = 1
|
|
|
|
-//| Tuesday = 2
|
|
|
|
-//| Wednesday = 3
|
|
|
|
-//| Thursday = 4
|
|
|
|
-//| Friday = 5
|
|
|
|
-//| Saturday = 6
|
|
|
|
-//| Sunday = 0
|
|
|
|
-//|
|
|
|
|
-//| This way, we can check for a desired minute, hour, day, month, etc.
|
|
|
|
-//|
|
|
|
|
-//| Now the structure:
|
|
|
|
-//|
|
|
|
|
-//| OnClock2100: //start time for Tues(2), Thurs(4)
|
|
|
|
-//| OnClock2300: //end time for Tues(2), Thurs(4)
|
|
|
|
-//| OnClock1600: //start time for Sat(6)
|
|
|
|
-//| OnClock1800: //end time for Sat(6)
|
|
|
|
-//|
|
|
|
|
-//| These 4 labels will run one after the other. It's acomodated so,
|
|
|
|
-//| The Tuesday at 21:00 and 23:00 they will run, and go to the next
|
|
|
|
-//| part of the script:
|
|
|
|
-//|
|
|
|
|
-//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
|
|
|
|
-//| if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
|
|
|
|
-//| if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start;
|
|
|
|
-//|
|
|
|
|
-//| This part will check for the times. Since both Starting and Ending times
|
|
|
|
-//| run through the same chain of commands, there are necesary checks to ensure
|
|
|
|
-//| it's the right time. Let's take the following example:
|
|
|
|
-//|
|
|
|
|
-//| if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23))
|
|
|
|
-//|
|
|
|
|
-//| The first gettime is checking for a type 4, the day of the week, and it's
|
|
|
|
-//| comparing it to the one desired, which is 2, that's Tuesday. If the comparation
|
|
|
|
-//| is true and both sides are equal, it will return 1. 1 means true, 0 means false
|
|
|
|
-//| in comparations and conditions.
|
|
|
|
-//|
|
|
|
|
-//| The second gettime is checking for a type 3, which is the hour, and it's
|
|
|
|
-//| comparing it to 21, and if the first part is greater or equal (>=) than the second,
|
|
|
|
-//| the comparation will return 1.
|
|
|
|
-//|
|
|
|
|
-//| The third and last gettime is checking again for the hour, but the time has to be less
|
|
|
|
-//| than the said time, in this case, 23.
|
|
|
|
-//|
|
|
|
|
-//| Now, look at the parentheses. Parentheses are very important when making comparations
|
|
|
|
-//| and conditions. Check the order of these. I'll place dummy characters for this example:
|
|
|
|
-//|
|
|
|
|
-//| if ((X && (Y && Z)) goto L_Start;
|
|
|
|
-//|
|
|
|
|
-//| It's saying, if Y and Z are true, the condition meets. Now let's replace that comparation
|
|
|
|
-//| with another dummy character. We're doing (Y && Z) = G:
|
|
|
|
-//|
|
|
|
|
-//| if (X && G) goto L_Start;
|
|
|
|
-//|
|
|
|
|
-//| It's saying, if X and G are true, the condition meets, thus it has to go to L_Start.
|
|
|
|
-//|
|
|
|
|
-//| Now, the last part of the script, regarding the end of WoE time:
|
|
|
|
-//|
|
|
|
|
-//| if((gettime(4)==2) && (gettime(3)==23)) goto L_End;
|
|
|
|
-//| if((gettime(4)==4) && (gettime(3)==23)) goto L_End;
|
|
|
|
-//| if((gettime(4)==6) && (gettime(3)==18)) goto L_End;
|
|
|
|
-//| end;
|
|
|
|
-//|
|
|
|
|
-//| This is the same as before, but it's checking for the day in the first gettime, and
|
|
|
|
-//| the hour on the second. If both conditions are true, the WoE will end. We're checking
|
|
|
|
-//| here for the end time, not the start.
|
|
|
|
-//|
|
|
|
|
-//| Another important thing is OnAgitInit: . This special label will be run as soon as the
|
|
|
|
-//| castle data is loaded from the char data. So it will check for the above start and end time
|
|
|
|
-//| to see if it's in WoE time, hence why the hours has to be checked.
|
|
|
|
-//|
|
|
|
|
-//| Now a example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm:
|
|
|
|
-//|
|
|
|
|
-//| OnClock1600: //| 16:00 = 4 pm
|
|
|
|
-//| OnClock2200: //| 22:00 = 10 pm
|
|
|
|
-//|
|
|
|
|
-//| OnAgitInit: //| there has to be ONLY ONE of these labels, so put the OnClock above this
|
|
|
|
-//| //| and the checks below.
|
|
|
|
-//|
|
|
|
|
-//| if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start;
|
|
|
|
-//|
|
|
|
|
-//| if ((gettime(4)==1) && (gettime(3)==22) goto L_End;
|
|
|
|
-//| end;//| VERY IMPORTANT TO PLACE AND END AFTER THE LAST END CHECK. You don't want to
|
|
|
|
-//| //| start the WoE w/o being on the right times/day
|
|
|
|
-//|
|
|
|
|
-//| I hope this has been clear enough. Remember to put the checks in a logical way, e.g:
|
|
|
|
-//| Monday checks first, then Thursday, etc.
|
|
|
|
-//| Any questions Pm me (erKURITA) or go to irc channel on irc.deltaanime.net in #athena
|
|
|
|
-//| channel. Do not PM on IRC w/o asking please.
|
|
|
|
-//|
|
|
|
|
-//| ~ erKURITA
|
|
|
|
|
|
+//===== Athena Doc ========================================
|
|
|
|
+//= WoE Time Explanation
|
|
|
|
+//===== By ================================================
|
|
|
|
+//= erKURITA
|
|
|
|
+//===== Version ===========================================
|
|
|
|
+//= 1.1
|
|
|
|
+//=========================================================
|
|
|
|
+//= 1.1 - Edited and reformatted. [Euphy]
|
|
|
|
+//===== Description =======================================
|
|
|
|
+//= Details on the behavior of the default WoE controller.
|
|
|
|
+//=========================================================
|
|
|
|
+
|
|
|
|
+There are 2 main commands that determine WoE times:
|
|
|
|
+OnClock<time>: and gettime(<type>).
|
|
|
|
+
|
|
|
|
+OnClock<time> triggers when <time> is reached.
|
|
|
|
+The format is HHMM, with H = hour, M = minute.
|
|
|
|
+OnClock2350: would run at 23:50, server time.
|
|
|
|
+
|
|
|
|
+gettime(<type>) is a function that checks for certain
|
|
|
|
+information regarding time. The types are:
|
|
|
|
+
|
|
|
|
+ 1 - Seconds (of a minute)
|
|
|
|
+ 2 - Minutes (of an hour)
|
|
|
|
+ 3 - Hour (of a day), ranging from 0 to 23
|
|
|
|
+ 4 - Weekday, ranging from 0 (Sunday) to 6 (Saturday)
|
|
|
|
+ 5 - Day of the month
|
|
|
|
+ 6 - Number of the month
|
|
|
|
+ 7 - Year
|
|
|
|
+ 8 - Day of the year
|
|
|
|
+
|
|
|
|
+This way, we can check for a desired minute, hour, day, month, etc.
|
|
|
|
+
|
|
|
|
+-------------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+Now the structure:
|
|
|
|
+
|
|
|
|
+ OnClock2100: // Start time for Tues(2), Thurs(4)
|
|
|
|
+ OnClock2300: // End time for Tues(2), Thurs(4)
|
|
|
|
+ OnClock1600: // Start time for Sat(6)
|
|
|
|
+ OnClock1800: // End time for Sat(6)
|
|
|
|
+
|
|
|
|
+These 4 labels will run one after the other, reaching the next check:
|
|
|
|
+
|
|
|
|
+ if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
|
|
|
|
+ if((gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23)) goto L_Start;
|
|
|
|
+ if((gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) goto L_Start;
|
|
|
|
+
|
|
|
|
+This part will check for the times. Since both Start and End times run
|
|
|
|
+through the same chain of commands, these are important checks to ensure
|
|
|
|
+it's the right time. Let's take the following example:
|
|
|
|
+
|
|
|
|
+ if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23))
|
|
|
|
+
|
|
|
|
+The first gettime() is checking for a type 4, the day of the week, and it's
|
|
|
|
+comparing it to the one desired, which is 2 (Tuesday). The function will
|
|
|
|
+return either 1 (true) or 0 (false).
|
|
|
|
+
|
|
|
|
+The second gettime is checking for a type 3, the hour, and it's comparing
|
|
|
|
+it to 21. If the first part is greater or equal (>=) than the second,
|
|
|
|
+the comparation will return 1.
|
|
|
|
+
|
|
|
|
+The third and last gettime is checking again for the hour, but the time has to be less
|
|
|
|
+than the said time (in this case, 23).
|
|
|
|
+
|
|
|
|
+Now, look at the parentheses. Parentheses are very important when making comparations
|
|
|
|
+and conditions. Check the order of these. I'll place dummy characters for this example:
|
|
|
|
+
|
|
|
|
+ if ((X && (Y && Z)) goto L_Start;
|
|
|
|
+
|
|
|
|
+It's saying, if Y and Z are true, the condition is met. Now let's use another set
|
|
|
|
+of dummy characters. We're checking if (Y && Z) = G:
|
|
|
|
+
|
|
|
|
+ if (X && G) goto L_Start;
|
|
|
|
+
|
|
|
|
+It's saying that if X and G are true, the condition is met, thus proceeding to L_Start.
|
|
|
|
+
|
|
|
|
+Now, the last part of the script, regarding the end of WoE time:
|
|
|
|
+
|
|
|
|
+ if((gettime(4)==2) && (gettime(3)==23)) goto L_End;
|
|
|
|
+ if((gettime(4)==4) && (gettime(3)==23)) goto L_End;
|
|
|
|
+ if((gettime(4)==6) && (gettime(3)==18)) goto L_End;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+This is the same as before, but it's checking for the day in the first gettime() and
|
|
|
|
+the hour on the second. If both conditions are true, WoE will end. We're checking
|
|
|
|
+here for the end time, not the start.
|
|
|
|
+
|
|
|
|
+Another important thing is "OnAgitInit:". This special label will be run as soon as the
|
|
|
|
+castle data is loaded from the char data. It will check for the above start and end times
|
|
|
|
+to see if it's in WoE time, hence why the hours have to be checked.
|
|
|
|
+
|
|
|
|
+-------------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+Now a example of how to set the WoE so it starts on Monday, at 4 pm and ends up at 10 pm:
|
|
|
|
+
|
|
|
|
+ OnClock1600: // 16:00 = 4 pm
|
|
|
|
+ OnClock2200: // 22:00 = 10 pm
|
|
|
|
+
|
|
|
|
+ OnAgitInit: // This can only be written once: put OnClock above and the checks below.
|
|
|
|
+
|
|
|
|
+ if ((gettime(4)==1) && (gettime(3)>=16 && gettime(3)<22)) goto L_Start;
|
|
|
|
+ if ((gettime(4)==1) && (gettime(3)==22) goto L_End;
|
|
|
|
+ end; // Don't forget this!
|