חייייייייייב עזרה :\

MaGeFa

New member
חייייייייייב עזרה :\

אני דיי חדש בקטע של ה Goto וזה מזההההה לא הולך לי כל פעם שזה מעפיל את הסקריפט זה עובר את הלולאה הראשונה ונתקע לי המירק
on *:text:!addnick*:?:{ set %loop1 1 while (%loop1 <= 12) { if ((%loop1 == 12) && ($2 != %12)) { goto add | set %loop1 1 } if ($nick == % $+ %loop1) { goto exists | set %loop1 1 } else { inc %loop1 } } :exists echo -a Nick $2 Exists halt :add set %loop12 1 while (%loop12 <= 12) { if (% $+ %loop12 == $null) { set % $+ %loop12 $2 } } halt }​
HELPPPPPPP
 

MaGeFa

New member
או כשזה ככה:

on *:text:!addnick*:?:{ set %loop1 1 while (%loop1 <= 12) { if ((%loop1 == 12) && ($2 != %12)) { goto add | set %loop1 1 } if ($nick == % $+ %loop1) { goto exists | set %loop1 1 } else { inc %loop1 } } } :exists echo -a Nick $2 Exists halt :add set %loop12 1 while (%loop12 <= 12) { if (% $+ %loop12 == $null) { set % $+ %loop12 $2 } } halt } } }​
אני מקבל את זה:
* /goto: ´add´ not found (line 4, demotry.mrc)​
 

MaGeFa

New member
עדיין לא עובד תסתכל:

on *:text:!addnick*:?:{ set %loop1 1 while (%loop1 <= 12) { if ($nick == % $+ %loop1) { set %loop1 1 | goto exists } else { inc %loop1 } elseif ((%loop1 == 12) && ($2 != %12)) { goto add | set %loop1 1 } :exists echo -a Nick $2 Exists halt :add set %loop12 1 while (%loop12 <= 12) { if (% $+ %loop12 == $null) { set % $+ %loop12 $2 } } halt } }​
עכשיו המצב יותר טוב מקודם.. בערך.. אקיצר נגיד אני עושה addnick nick12! לא משנה מה הוא יגיד לי Nick nick12 Exists
 

zzzzrubavek

New member
אין לי מושג מה הסקריפט שלך אמור

לעשות ואיך וזה לא ממש משנה. דבר ראשון תנסה לקרוא ב help של המירק על if-then-else כי זה הולך בסדר של if else if else ולא כמו שאתה עשית. דבר שני אל תשים יותר מ{ אחד באותה שורה.
 

MaGeFa

New member
אז ככה:

הסקריפט אמור לקבל כינוי add NICK! לחפש את הניק בערכים %1 עד %12 אם יש אותו הוא רושם Nick Exists אם הוא לא קיים בכל ה12 אז הוא מוסיף את הכינוי בערך שהוא ריק (נגיד ויש 3 ערכים עם שמות אז הוא מכניס את הניק ל %4)
 

havlaz

New member
זה לא בעיה..

set %i 1 while (%i <= 12) if (% [ $+ %i ] == $2) { Nick Exists } else { Nick Not Exists } inc %i }​
לא הבנתי תקטע של המקום הריק.. ואם יש 12 ערכים? אז הוא יעשה ב13?
 

MaGeFa

New member
זה לא ממש נכון אבל...

תראה כשרושמים addnick nick! זה אמור לבדוק אם nick מופיע ב אחד מ %1 - %12 אם הוא מופיע באחד מהם אז הוא לא עושה כלום.. אם הוא לא מופיע הוא מכניס את זה בערך הריק הראשון בין ה 12 kapish? ובא לך אולי לעזור לי קצת עם ה goto כי קראתי ולא ממש הבנתי.. Thnx
 

MaGeFa

New member
תיקון טעות:

לא עושה כלום - רושם nick exists אבל זה לא בעיה (just for the record)
 

havlaz

New member
אז תעשה במקום

nick exists את הפעולות שאתה רוצה שהוא יקיים.. ותוסיף ואתה יכול לעשות גם לולאה לבדיקה
if (%u [ $+ %i ] == $null) { set %u + %i $2 set %i 13 ´ (כדי לצאת מהלולאה) }​
ואף פעם לא טוב להשתמש ב %(num) אלה במקדם למספר..
 

MaGeFa

New member
תראה...

אני מנסה לעשות את הדרך הכי הגיונית אבל זה לא הולך:
on *:text:!addnick*:?:{ set %loop1 1 while (%loop1 <= 12) { if ($2 == % $+ %loop1) { set %loop1 13 | msg $nick Nick $2 Exists } if ($2 != % $+ %loop1) { inc %loop1 } if ((%loop1 == 12) && ($2 != %12)) { set %loop1 13 set %loop12 1 while (%loop12 <= 12) { if (% $+ %loop12 == $null) { set %loop12 13 | set % $+ %loop12 $2 } } } } }​
 

havlaz

New member
הקוד שלך...

מזה מבולגן ולא נכון אתה לא יכול בחיים לשים את ה INC של הלולאה ב IF ולא יתקע לך המירק.. ותקעת לולאה בתוך לולאה.. הנה משהו שאמור לעבוד:
on *:text:!addnick*:?: { set %i 1 unset %yes while (%i <= 12) { if ($2 == %u [ $+ %i ] ) { set %i 13 msg $nick Nick $2 Exists set %yes yes } inc %i } if (%yes == $null) { set %i 1 while (%i <= 12) { if (%u [ $+ %i ] == $null) { set %u $+ %i $2 set %i 13 } inc %i } } }​
 

MaGeFa

New member
אז ככה:

אני נותן לו ניק הוא מכניס אותו.. אני נותן ניק אחר זה מחליף את המשתנה הקודם בניק שהכניסה עכשיו אם הניק קיים זה לא עושה כלום :\
 

havlaz

New member
טעות שלי

שחכתי דבל []
on *:text:!addnick*:?: { set %i 1 unset %yes while (%i <= 12) { if ($1 == %u [ $+ [ %i ] ] ) { set %i 13 msg $nick Nick $2 Exists set %yes yes } inc %i } if (%yes == $null) { set %i 1 while (%i <= 12) { if (%u [ $+ [ %i ] ] == $null) { set %u $+ %i $1 set %i 13 } inc %i } } }​
 

^Nighthawk

New member
תשובה פשוטה

הפקודה שלך היא פקודה דיי חובבנית תפרט לי בדיוק איזה משתנים אתה רוצה ובדיוק מה אתה רוצה שהפקודה תעשה ומתי ואני אבנה לך אותה ודרך אגב נתת בהסבר פרטים לא מדוייקים תפרט קצת יותר
 
למעלה