לפני שמתחילים עם SetTimerEx רצוי וחשוב לדעת SetTimer.
וכשמשתמשים בSetTimer רצוי לדעת להשתמש בKillTimer.
SetTimer
בפונקציה הזאת אנחנו קוראים לפונקציה (public, לא stock).
הפונקציה
SetTimer(function[],interval,repeating);
פאראמטרים
function[] - פאראמטר string של הפונקציה שאנחנו רוצים לקשר אליה.
interval - פאראמטר int שאומר בעוד כמה זמן לקרוא לפונקציה. 1000 = שנייה.
repeating - פאראמטר int שבוחר אם לחזור על הפונקציה.
דוגמא
בקוד הזה, ייצרנו טיימר שמתחיל כאשר המוד רץ על השרת, ובכל דקה קורא לPrintCredits.
ככה שבכל דקה יופיע
"credits..
bla bla bla"
על חלון הקונסול.
SetTimerEx
בפונקציה הזאת אנחנו קוראים לפונקציה (public, לא stock)
עם פאראמטרים.
הפונקציה
SetTimerEx(function[],interval,repeating,format[],params);
פאראמטרים
function[] - פאראמטר string של הפונקציה שאנחנו רוצים לקשר אליה.
interval - פאראמטר int שאומר בעוד כמה זמן לקרוא לפונקציה. 1000 = שנייה.
repeating - פאראמטר int שבוחר אם לחזור על הפונקציה.
format[] - הגדרת הפורמט לפאראמטרים.
params - הפאראמטרים, מותר לשים אינסוף מכל סוג בדיוק כמו בפונקציה format().
דוגמא
הדוגמא הפעם תהיה שונה.
אני יסביר לאט לאט על הקוד כי הוא די מסובך בהתחלה, בדרך כלל...
אם לדוגמא אנחנו רוצים לתת קיק לשחקן בעוד 3 שניות מאז שהוא נכנס.
יש לנו את הפונקציה SetKick(playerid), אבל אנחנו לא יכולים להשתמש בSetTimer - מה יהיה עם playerid כאשר אנחנו משתמשים בSetTimer? כלום.
הוא ייחשב כ0.
לכן אנחנו צריכים להשתמש בSetTimerEx כדי לקשר לפונקציה עם פאראמטרים.
SetTimerEx("SetKick",3000,0,"d",playerid);
את הקוד הזה נשים בOnPlayerConnect.
למה SetKick? - כדי לקשר אל SetKick.
3000? - כדי לתת את הקיק בעוד 3 שניות (שוב, 1000 = שנייה).
0? - כדי לתת קיק פעם אחת, כמובן.
"d"? - כאן הגענו לחלק הקשה. בגלל שהפאראמטר הסופי והיחיד שלנו הוא playerid והוא מסוג int (מספר), אנחנו עושים "d". לפי הformat זה %d.
במידה ויש לנו SetKick(playerid,reason[]); יש לנו גם פאראמטר string.
SetTimerEx("SetKick",3000,0,"ds",playerid,reason);
d = playerid = %d
s = reason = %s
אם יש מספר (int) נשתמש בd או i.
אם יש טקסט (string) נשתמש בs.
אם יש מספר float נשתמש בf.
וכו'...
לפי המשתנים של הformat.
KillTimer
בפונקציה הזאת אנחנו מפסיקים טיימר שיש לו repeating 1, שחוזר על עצמו.
הפונקציה
SetTimer(function[],interval,repeating);
פאראמטרים
timerid = פאראמטר int, המספר הסידורי של הטיימר.
דוגמא
בקוד הזה, הפסקנו את הטיימר של הקרדיטים שייצרנו בהתחלה, אחרי 3 פעמים שהוא פעל.
ככה שבכל דקה יופיע
"credits..
bla bla bla"
על חלון הקונסול רק 3 פעמים.