123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- //| ~~~~~ 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
|