עמוד ראשי מירק סקריפטינג מדריכים [מדריך] - איבנטים (...:* on)

[מדריך] - איבנטים (...:* on)

mIRC Guides - בפורום זה יפורסמו מדריכים לשפת המירק, הסברת פקודות ואפשרויות במירק וגם הסברים לשימוש בתוכניות חיצוניות לטובת המירק. לפרסום מדריכים יש לפרסמם תחילה בפורום "פרסום קודים ומדריכים" ולאחר מכאן הם יועברו לפורום זה.

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 05 אוגוסט 2011, 18:30
שלום לכולם.

זהו מדריך על חלק מהאיבנטים שקיימים במירק.

* מה זה איבנט Event?
- בתרגום ישיר זה "אירוע". כל דבר שקורה במירק זה אירוע (כניסת משתמש לערוץ, כתיבת הודעה, קבלת באן, וכו'...), לכל אירוע יש פקודה מתאימה המגיבה לאותו אירוע ומאפשרת לנו לבצע פעולה כלשהי בהתאמה.

בואו נראה את המבנה הכללי (לא בכל המקרים זה ככה) של on event:

on prefix:event:*:#/?/*:{ command }

מה זה אומר?
prefix - (תחילית) קובע את המצב שבו תתבצע התגובה לארוע (הסבר מפורט בדרך)
event - שם הארוע, כמו: join, text, ban, kick, action וכו'...
* - לא בכל האיבנטים יש וצריך את זה, אבל באלו שכן זה האזור שמשווה את הטקסט שכתוב בסקריפט לטקסט שנכתב במירק.
במידה ומשאירים *, הסקריפט יתבצע על כל טקסט
#/?/* - כאן אנחנו צריכים לבחור מתי הסקריפט צריך להגיב.
^ כאשר נבחר ב # - הסקריפט יגיב רק על מה שיקרה בערוץ.
אם נשאיר רק סולמית הסקריפט יגיב לכל הערוצים שבהן אנו נמצאים.
אם נרשום #channel הסקריפט יגיב רק בערוץ שנרשם. (שימו לב: ניתן לרשום כמה ערוצים עם פסיק בתור הפרדה:
on *:join:#channel1,#channel2,....:{ }

^ כאשר נבחר ב ? - הסקריפט יתבצע רק על מה שיקרה בשיחה פרטית
^ כאשר נבחר ב * - הסקריפט יגיב בשני המקרים (כולל בתוכו את: # ו- ?)
command - הסקריפט שנכתוב לאירוע

נעבור על ה Prefix

אני אדבר פה קצת גם על רמות משתמשים (level) זהו נושא בפני עצמו, לכן מי שלא יודע אולי לא ממש יבין כמה דברים.
+ - נגיד שמנו רמה 10 למישהו
10:Zen-!~kravetzro@Zen-.users.quakenet.org

ואנחנו נרשום את הסקריפט הבא:
on +5:text::moo:#:{ msg # moo yourself }

הסקריפט אמור לראות כאשר מישהו כותב moo בערוץ, זה אמור להחזיר לו moo yourself
אבל זה לא יחזיר לו כי הרמה שנקבע למישהו היא 10 (לדוגמה) והסקריפט מגביל לרמה של 5.
* - כל אחד יכול להפעיל את האיבנט בלי קשר לרמה שלו.
! - הסקריפט יופעל על כל אחד אבל לא על עצמך.
@ - הסקריפט יופעל רק כאשר יש לי אופ בערוץ
& - ימנע מהסקריפט לעבוד אם הסקריפט הקודם השתמש בפקודה halt/ או haltdef/
$ - מתייחס לאזור ההשוואה (*), כאשר נכתוב את הסימן הזה ($) אזור ההשוואה יפעל כ regex.
= - במידה ונרשום אחרי הסקריפט הבא:
on 2:text::moo:#:{ msg # moo yourself }

ואת זה:
on 5:text::moo:#:=

אז הסקריפט השני ימנע מכל מי שהרמה שלו גבוה מ 5 להפעיל את הסקריפט הראשון (שאומר שכל מי שהרמה שלו 2 או יותר יפעיל אותו).
! - במידה ונרשום אחרי הסקריפט הבא:
on 2:text::moo:#:{ msg # moo yourself }

ואת זה:
on 5:text::moo:#:!

מה שיקרה זה שכל מי שהרמה שלו 2 או יותר יפעיל את הסקריפט חוץ ממי שהרמה שלו היא 5.

נעבור לאיבנטים עצמם

שימו לב שכל מה שהסברתי קודם מתייחס לכל האיבנטים, כלומר אני לא אכתוב כל אפשרות לכל איבנט, אלא אפשרות אחת אבל שתדעו שניתן לשנות לפי מה שהסברתי.
ה prefix יהיה 1 בכל האיבנטים מהסיבה שכל עוד לא שיניתם את הרמה של מישהו הברירת המחדל היא רמה 1.

on action
on 1:ACTION:ok:#:/msg $chan $nick said ok on $chan

פעולה זאת תתבצע כאשר: מישהו יכתוב me ok/
nick$ - יחזיר את הכינוי של מי שכתב
chan$ או # את הערוץ

on ban/unban
on 1:ban:#:/msg $chan $nick banned $bnick address: $banmask

פעולה זאת תתבצע כאשר: מישהו ייתן באן למישהו אחר
nick$ - מי שנתן את הבאן
bnick$ - מקבל הבאן
banmask$ - הכתובת (שקיבלה באן) של אותו אחד שקיבל את הבאן

ניתן ב perfix להשוות רמות, כלומר:
on >=2:BAN...

ניתן להשתמש באלו: <,>,<=,=>,<>,=

on connect/disconnect
on 1:connect:/echo -a connected to $server

פעולה זאת תתבצע כאשר: נתחבר לשרת (או נתנתק)
server$ - השרת אליו התחברנו

on CONNECTFAIL
on 1:CONNECTFAIL:/echo -a faild to connect $server $1-

פעולה זאת תתבצע כאשר: לא נצליח להתחבר לשרת
-$1 - ייתן לנו את הסיבה

on op/deop
on 1:op:#:/msg # $nick gave $opnick op

פעולה זאת תתבצע כאשר: מישהו יתן אופ לאחר
nick$ - מי שנתן אופ (או הוריד)
opnick$ - מי שקיבל אופ (או הורידו לו)

on voice/devoice
on 1:op:#:/msg # $nick gave $vnick voice

פעולה זאת תתבצע כאשר: מישהו יתן וייס לאחר
nick$ - מי שנתן וייס
vnick$ - מי שקיבל וייס

on exit
on 1:exit:/echo exiting mirc

פעולה זאת תתבצע כאשר: תסגרו את המירק

on input
on 1:input:*:{ msg $active $chr(3) $+ 12 $1- | halt }

פעולה זאת תתבצע כאשר: תכתבו טקסט בערוץ או בפרטי
active$ - החלון שאתם עומדים עליו, יכול להיות ערוץ או חלון שיחה פרטית.
chr(3) $+ 12 - זה בעצם צובע את הטקסט בכחול
-$1 - הטקסט שכתבת
halt - עוצר, מונע מהמירק לשלוח את מה ששלחתם. כאשר אתם משתמשים ב on input הסקריפט הזה יבצע את מה שאתם רוצים, במקרה הזה ישלח לערוץ את מה שכתבתם בצבע כחול, ואחרי זה המירק חוזר לעבודתו וישלח את מה ששלחת רגיל כמו שהוא היה אמור לעשות. הפקודה הזאת בעצם מונעת מהמירק להמשיך לטפל בטקסט ששלחתם, ומה שיתבצע זה רק הטקסט בכחול.
| - הקו מפריד בין פקודות שונות באותה שורה, על אותו משקל היה אפשר לרדת שורה ולא להשתמש בקו.

on invite
on 1:invite:#:/join $chan

פעולה זאת תתבצע כאשר: יעשו לכם invite לכל ערוץ
כאשר תקבלו invite תכנסו לערוץ שהוזמנתם אוטומטית

on join/part
on 1:join:#:/msg $chan welcome $nick

פעולה זאת תתבצע כאשר: יכנסו לערוץ או יצאו (פועל גם עליכם)
כאשר מישהו יכנס לערוץ תשלחו הודעה בערוץ welcome $nick

on kick
on 1:kick:#:/msg $chan $nick just kicked $knick

פעולה זאת תתבצע כאשר: מישהו יקבל קיק (פועל גם עליכם)
knick$ - הכינוי שקיבל kick

on load/unload/start
on 1:load:/echo -a script loaded

פעולה זאת תתבצע כאשר: תטענו קובץ מסויים
כאשר תטענו קובץ מסויים למירק ייכתב script loaded
start - אותו דבר רק עומת ה load שהוא חד פעמי, ה start יפעל כל פעם בהפעלת המירק.

on mode
on 1:mode:#:/msg # $nick changed $chan mode to $1-

פעולה זאת תתבצע כאשר: מישהו ישנה איזשהו מוד בערוץ
-$1 - המוד ששונה

on nick
on 1:nick:/msg # $nick changed his nick to $newnick

פעולה זאת תתבצע כאשר: מישהו ישנה את הכינוי שלו בערוץ
nick$ - כינוי הישן
newnick$ - כינוי חדש

on notice
on 1:notice:*:?:/echo -a $nick sent me a notice: $1-

פעולה זאת תתבצע כאשר: מישהו ישלח notice לכם אישית (ניתן לשנות את זה, לערוץ או גם וגם)

on open/close
on 1:open:*:?:/msg $nick i will be with you in a moment

פעולה זאת תתבצע כאשר: יפתח חלון חדש, לדוגמה אם מישהו ישלח לכם הודעה פרטית
לדוגמה כאשר מישהו ישלח לכם הודעה פרטית זה ישלח לך הודעה
close - כאשר החלון ייסגר

on ping/pong
on 1:ping:/echo -a $nick just pinged me

פעולה זאת תתבצע כאשר: מישהו יעשה עליכם PING, כלומר ירצה לדעת את הפינג שלכם
pong - כאשר אתם תעשו פינג על מישהו ותקבלו תשובה (-$1)

on quit
on 1:quit:/echo -a $nick left irc: $1-

פעולה זאת תתבצע כאשר: מישהו יצא מהמירק (מישהו שנמצא באותו ערוץ כמוכם)
-$1 - יחזיר את הודעת היציאה שלו.

on text
on 1:text:hello*:#:/msg # hello $nick

פעולה זאת תתבצע כאשר: מישהו יכתוב משהו בערוץ (# - ניתן לשינוי)
כאשר מישהו יכתוב בערוץ הודעה שתתחיל ב hello אתם תשלחו הודעה לערוץ hello $nick.
שימו לב: במקום *hello ניתן לרשום :
* - כל טקסט שיכתבו
& - כל מילה שתכתב (מילה בודדה)
hello - hello רק אם נכתב בערוץ
hello* - הטקסט חייבת להתחיל מהמילה וההמשך לא חשוב
*hello - ההתחלה לא חשובה, אך הסוף חייב להסתיים במילה
*hello*  - מספיק שיש את המילה בשורה שנכתבה ללא קשר למיקום


on topic
on 1:topic:#:/msg # $nick change the topic to: $1-

פעולה זאת תתבצע כאשר: מישהו ישנה את הטופיק
-$1 - הטופיק החדש


זהו, עד לכאן המדריך !!! מקווה שהמדריך יעזור לחדשים שבינינו.

במידה ויש שגיאות נא לדווח, ואני אתקן !!

הצטרף: 12 ינואר 2011, 12:40
הודעות: 15
פורסם: 07 אוגוסט 2011, 12:33
תודה רומן יעזור למתחילים :X
תמונה

הצטרף: 01 יולי 2010, 07:43
הודעות: 370
פורסם: 12 אוגוסט 2011, 11:05
תודה רבה על המדריך, הועבר לפורום מדריכים.
שימו לב: בוטי המשחק שאני בונה לא מתאימים לQuakenet אלא אם כן צויין אחרת.
<+vendetta-> סיאג לחוכמה שתיקה
<+vendetta--> בא לי מוח
<Ninja`> דפקתי נקנקיה

הצטרף: 07 נובמבר 2011, 11:26
הודעות: 12
פורסם: 07 נובמבר 2011, 12:56
מדריך טוב.
רק שכחת את הפרפיקס me
ומה שרשמת על תחילית ^
Zen- כתב:
^ כאשר נבחר ב # - הסקריפט יגיב רק על מה שיקרה בערוץ.

תקן אותי אם אני טועה אבל זה לא תחילית שצריכה לאפשר שימוש בhaltdef?


חזור אל מדריכים

cron