עמוד ראשי מירק סקריפטינג מירק סקריפטינג [דיון] אוסף הסניפטים למירק

[דיון] אוסף הסניפטים למירק

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

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

מטרת הדיון הוא לשתף או לעלות רעיונות לסניפטים שימושיים למירק שיקלו וייקצרו לנו את העבודה.
הדיון בא בעקבות יונתן הידוע בכינויו ZxoR שזרק לא מזמן רעיון במירק על משהו שימושי, אז עשיתי אחד כזה:
הפקודה:
/incini <inifile> <section> <item> [value]


שימוש:
במידה ולא צויין value הערך יגדל באחד, אחרת הוא יגדל במספר הנקוב (ניתן להכניס ערך שלילי)

alias incini { writeini $1 $2 $3 $iif($4,$calc($4 + $readini($1,$2,$3)),$calc($readini($1,$2,$3) + 1)) }



הפקודה:
/decini <inifile> <section> <item> [value]


שימוש:
במידה ולא צויין value הערך יקטן באחד, אחרת הוא יקטן במספר הנקוב

alias decini { writeini $1 $2 $3 $iif($4,$calc($readini($1,$2,$3) - $4),$calc($readini($1,$2,$3) - 1)) }


זה הפורמט להציג כאן משהו משלכם.
במידה ויש לכם משהו משלכם ואתם לא יודעים לבנות אותו, תעלו את הרעיון גם, ודוגמה.

אני מקווה לשיתוף פעולה!!!!
נערך לאחרונה על ידי Zen- בתאריך 12 אוגוסט 2011, 11:45, נערך פעם אחת בסך הכל.

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 03 אוגוסט 2011, 12:21
פקודה:
//echo -a $rnum(a,b,c[,chr])


שימוש:
פקודה המאפשרת לקבל מספר מסויים של מספרים השונים אחד מהשני בתחום רצוי.
a = כמות המספרים
b = תחום תחתון
c = תחום עליון
[,chr] = ברירת מחדל יהיה רווח בין המספרים, במקרה וצויין תו הוא יהיה בין המספרים

לדוגמה:
//echo -a $rnum(5,1,10)


יתן: 1 7 3 6 4

לדוגמה:
//echo -a $rnum(4,1,10,^)


יתן: 2^9^7^5

alias rnum { unset %rnum | while ($numtok(%rnum,32) < $1) && ($calc($3 - $2 + 1) >= $1) { var %rnum = $addtok(%rnum,$r($2,$3),32) } | return $iif($4,$replace(%rnum,$chr(32),$4),%rnum) }

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

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 31 אוגוסט 2011, 10:23
בעזרת סניפט זה, ניתן יהיה לראות כל ID של כל מרכיב בתוך דיאלוג על הדיאלוג עצמו.

שימוש:
/showid dialog_name


alias showid {
  if (!$dialog($1)) { return }
  var %id = 1
  while ($did($1,%id).isid) { did -ra $1 %id $left($did($1,%id).text,-2) $+ %id | inc %id }
}


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

הצטרף: 12 אוגוסט 2011, 17:01
הודעות: 26
פורסם: 30 ספטמבר 2011, 23:25
קוד שמראה סטטיסטיקה קטנה עליך

דוגמא:

My Stats: I have op in 10/16 Channels and so the Power over 126/592 users on 2 Networks (21.3%) - (Regular: 1, Voiced: 5, Opped: 10.)



שימוש:

/stas


הקוד:

alias stas {
  var %y,%c,%z,%x = 0,%chn,%o,%r,%v,%cid = $activecid
  while %x < $scon(0) {
    inc %x
    %c = 0
    scon %x
    inc %chn $chan(0)
    while %c < $chan(0) {
      inc %c
      if $me isop $chan(%c) {
        inc %o
        inc %y $nick($chan(%c),0)
      }
      if $me isreg $chan(%c) {
        inc %r
      }
      if $me isvoice $chan(%c) {
        inc %v
      }
      inc %z $nick($chan(%c),0)
    }
  }
  %x = 0
  while %x < $scon(0) { inc %x | .scon %x | if $window(status window).cid == %cid { %cid = %x } }
  scon %cid
  if $1 == -e || $active == status window || $left($active,1) == @ {
    echo $color(info) -a You have 12op in03 %o $+ 14/04 $+ %chn $+  Channels and so the Power over %y $+ / $+ %z users on $scon(0) $&
      Network $+ $iif($scon(0) != 1,s) ( $+ $percent(%y,%z) $+ ) - (14Regular: %r $+ , 04Voiced: %v $+ , 12Opped: %o $+ .)

  }
  else { msg $active My Stats: I have 12op in03 %o $+ 14/04 $+ %chn $+  Channels and so the Power over %y $+ / $+ %z users on $scon(0) $&
      Network $+ $iif($scon(0) != 1,s) ( $+ $percent(%y,%z) $+ ) - (14Regular: %r $+ , 04Voiced: %v $+ , 12Opped: %o $+ .)
  }
}
alias percent { if $1 && $2 { return $round($calc($1 * 100 / $2),$iif($3,$3,1)) $+ % } }

הצטרף: 20 יוני 2011, 21:35
הודעות: 100
פורסם: 02 אוקטובר 2011, 19:09
שינוי section name בקבצי INI

יוצר: ZxoR

; /RENAMEINI <inifile> <current section name> <new section name>

alias renameini {
  if (!$3) { echo -sagec info * /renameini: insufficient parameters | return 0 }
  if (!$exists($1)) { echo -sagec info * /renameini: file $qt($1) not exists. | return 0 }
  if (!$ini($1,$2)) { echo -sagec info * /renameini: file $qt($1) section $qt($2) not exists. | return 0 }
  var %x = 1
  while ($ini($1,$2,%x)) {
    writeini -n $1 $3 $v1 $readini($1,$2,$v1)
    inc %x
  }
  remini -n $1 $2
  if (!$isid) echo -sagec info * /renameini: file $qt($1) section $qt($2) has been moved to $qt($3) $+ .
  return 1
}


הצטרף: 12 אוגוסט 2011, 17:01
הודעות: 26
פורסם: 29 אוקטובר 2011, 12:18
הודעה לכל הערוצים שאתם נימצאים בהם
שימוש: /gmsg (msg)

בשביל לא לישלוח לערוצים מסוימים את ההודעה תשתמשו ב:
/set %nchans #chan1 #chan2..



alias gmsg {
  var %i = 1, %chans
  while ($chan(%i)) {
    if (!$istok(%nchans,$v1,32)) %chans = $addtok(%chans,$chan(%i),44)
    inc %i
  }
  msg %chans 4[AMsg04] $1-
}

הצטרף: 12 אוגוסט 2011, 17:01
הודעות: 26
פורסם: 04 נובמבר 2011, 18:00
היפוך טקסט

דוגמא:

$reverse(Bar)


נקבל: raB

הקוד:

alias reverse {
  var %result = $regsubex($1-, /^(.{0, $+ $floor($calc($len($1-) / 2 - 1)) $+ }[^ ])( *)(.*)$/, $+($reverse(\3), \2, $reverse(\1)))
  return %result
}

הצטרף: 12 אוגוסט 2011, 17:01
הודעות: 26
פורסם: 04 נובמבר 2011, 18:13
שינוי מודים בערוץ

שימוש:
/mdn -/+[mode]


דוגמא:

/mdn +mi


קוד:

alias mdn {
  if ($len($remove($1,+,-)) > $modespl) {
    echo -ag The maximum number of parameters allowed per mode is $v2 $+ .
  }
  elseif ($regex($1,/^([+-]?[ $chanmodes ]+)+/)) {
    mode $active $1 $2
  }
}


חזור אל מירק סקריפטינג

cron