Zion Sphinx — File Browser

ZionSphinxv3.0 / ZionSphinxv3.0 / zion_gui.mrc

zion_gui.mrc — 28.06 KB — Download this file

; --------< Zion >----------------------------------------------------
; Name....: Popups + Shortcuts
; File....: zion_gui.mrc
; Ver.....: 3.0
; Author..: sprion
; Email...: sprion@lyniq.com
; Date....: 23 Jun 2007
; URL.....: http://zion.lyniq.com
; Info....: Provides extra popups and shortcuts. (REQUIRED BY ZION)
; Changes.: Minor updates.
;---------------------------------------------------------------------
; translatable
; ALL GUI plugin must conform
; ---- BEGIN ----

; needed for all GUI plugins to unload itself on other GUI plugin load
on *:signal:zion_gui_load:if ($1- = $script) return | else unload -rs $+(",$script,")

; script unload signal
on *:signal:zion_unload:.timer 1 1 .unload -rs $+(",$script,")

; updateables
on *:signal:zion_update_start:{
  .signal -n zion_update_addfile $+(",$z.images(girl.bmp),")
}

on *:unload:unset %zion.g.* | .timerzion.g.* off | zion.gui.kill | dll -u $dll(x-gui.dll)
on *:load:{
  ; individualised codes..
  if (!$isfile($+(",$scriptdir,x-gui.dll,"))) { z.note $z.head(plugin) $ $z.lang(err,error) $z.lang(err,filenotfound) 'x-gui.dll' | .unload -rs $+(",$script,") | return }
  if ($window($zion.s.chat)) { zion.gui.create }
  ; end

  ; need to tell other GUI plugin this is loaded
  .signal -n zion_gui_load $script
  z.note $z.head(Plugin) $ $nopath($script) $z.lang(sys,loaded)
}

; when LIST is created event.
; attaches itself when gamelist window is made
on *:signal:zion_winmade:zion.gui.create

; all GUIs should return an Ident.
alias zion.gui.id return ZIONGUI.3

; this alias is needed so Zion knows a GUI plugin is available for use (z.gui.note)
alias z.gui.note .timerzgui -oh 1 50 zion.gui.note $1-

; MENU attached to ZION
alias zion.gui.menu {
  return
}
; ---- END ----
; ---- PLUGIN CONFORMING ends ----


; PLUGIN individualized codes begin..

alias dll_xgui {
  var %z = $+(",$scriptdir,x-gui.dll,")
  if ($isid) return $dll(%z, $$1 ,$$2-)
  else return $dll(%z, $$1 ,$$2-)
}

alias x-gui {
  var %xgui = $dll($+(",$scriptdir,x-gui.dll,"),$1,$2-)
  if ($left(%xgui,5) == ERROR) {
    echo -s 4x-GUI: %xgui
  }
}
alias zion.gui.create {
  zion.gui.kill
  var %c_text = $rgb(0,0,55)
  var %c_second = $rgb(255,224,129)
  var %c_pnote = $rgb(255,200,255)
  var %c_gamelistcent = 45
  var %c_width = $window($zion.s.chat).dw
  var %c_height = $window($zion.s.chat).dh
  dll_xgui Mark $zion.s.chat
  dll_xgui Create $zion.s.chat > richedit 2 $calc(%c_width - 150) $calc(%c_height - 50) 150 50 autovs
  dll_xgui Set $zion.s.chat > hidden 2
  dll_xgui Create $zion.s.chat > richedit 3 $calc(%c_width - 150) 0 150 50 autovs
  dll_xgui Set $zion.s.chat > hidden 3
  dll_xgui Set $zion.s.chat > color 2 %c_second %c_text
  dll_xgui Set $zion.s.chat > style 2 windowedge
  dll_xgui Set $zion.s.chat > style 2 border
  dll_xgui Richedit $zion.s.chat > SetMargins 2 5
  dll_xgui Set $zion.s.chat > color 3 %c_pnote %c_text
  dll_xgui Set $zion.s.chat > style 3 windowedge
  dll_xgui Set $zion.s.chat > style 3 border
  dll_xgui Richedit $zion.s.chat > SetMargins 3 5
}
alias zion.gui.addbutton {
  scid $z.getcid
  var %c_text = $rgb(0,0,55)
  ;  var %c_second = $rgb(190,190,251)
  var %c_second = $rgb(190,208,252)


  if ((%zion.g.buttons) && ($istok(%zion.g.buttons,$left($gettok($1-,1,36),-1),44))) return
  var %n 4
  while ($left($dll_xgui(Get,$zion.s.chat > text %n),5) != ERROR) {
    inc %n
  }
  dll_xgui Create $zion.s.chat > richedit %n $calc((%n - 4) * 120) 0 120 18 center
  .timerzion.g.update. $+ %n -m 1 50 dll_xgui Richedit $zion.s.chat > Echo %n $gettok($1-,1,36)

  dll_xgui Set $zion.s.chat > color %n %c_second %c_text
  dll_xgui Set $zion.s.chat > style %n windowedge
  dll_xgui Set $zion.s.chat > style %n border
  dll_xgui Richedit $zion.s.chat > SetMargins %n 5

  %zion.g.buttons = $addtok(%zion.g.buttons,$gettok($1-,1,36),44)
  %zion.g.ids = $addtok(%zion.g.ids,%n,44)

  var %at = $calc($numtok(%zion.g.buttons,44) + 1)
  %zion.g.cmds = $instok(%zion.g.cmds,$gettok($1-,2,36),%at,44)
  %zion.g.opp = $instok(%zion.g.opp,$iif($gettok($1-,3,36),$gettok($1-,3,36),-),%at,44)
}

alias -l remit {
  scid $z.getcid
  var %n = $findtok(%zion.g.buttons,$1-,1,44)
  if (%n) {
    dll_xgui Delete $zion.s.chat > $gettok(%zion.g.ids,%n,44)
    %zion.g.ids = $deltok(%zion.g.ids,%n,44)
    %zion.g.buttons = $deltok(%zion.g.buttons,%n,44)
    %zion.g.cmds = $deltok(%zion.g.cmds,%n,44)
    %zion.g.opp = $deltok(%zion.g.opp,%n,44)
  }
  if ($isid) return %n
}
alias zion.gui.rembutton {
  if ($1 = -f) { remit $2- | return }
  if (!$timer(zion.g.rem.1)) { if ($remit($1-)) .timerzion.g.rem.1 -om 1 10 return }
  else {
    var %v 2
    while ($timer(zion.g.rem. $+ %v)) {
      inc %v
    }
    .timerzion.g.rem. $+ %v -om 1 $calc(10* %v) remit $1-
  }
}
alias zion.gui.kill {
  dll_xgui Mark $zion.s.chat
  dll_xgui Delete $zion.s.chat > 2
  dll_xgui Delete $zion.s.chat > 3

  var %n = $numtok(%zion.g.ids,44)
  while (%n > 0) {
    dll_xgui Delete $zion.s.chat > $gettok(%zion.g.ids,%n,44)
    dec %n
  }

  ;closing the notes if any..
  ;.timer -i 1 4 zion.gui.closenotes
  zion.gui.closenotes

  unset %zion.g.*
  .timerzion.g.* off
}
alias zion.gui.closenotes if ($window(@zion.gnote)) window -c @zion.gnote
alias zion.gui.gnote {
  ; less important messages add a - infront
  ;not active? remember to do it!
  if (!$appactive) {
    z.h.setvar gui_doOnAppActive zion.gui.gnote $1-
    return
  }
  var %win @zion.gnote
  if (($z.h.getvar(gui_PreviousHeader) = Changes) && ($window(%win))) {
    z.h.setvar gui_doOnNoteClose zion.gui.gnote $1-
    return
  }
  else z.h.unsetvar gui_doOnNoteClose
  var %c_text $rgb(0,0,55), %c_second $rgb(255,224,129), %c_border 0
  if ($1 = -b) {
    %c_second = $2
    tokenize 32 $3-
  }

  var %active = $active
  var %trans 80,%speed 1,%fadein 1

  ; determine lines
  var %newline = $replace($gettok($1-,2,36),\n,$chr(14)), %n = $numtok(%newline,14),%c 1
  while (%c <= %n) {
    var %t = $gettok(%newline,%c,14)
    if ($width(%t,Tahoma,11) > 139) {
      %newline = $deltok(%newline,%c,14)
      var %x = 1
      while ($burcwrap(%t, Tahoma, 11, 139, 1, %x)) {
        %newline = $instok(%newline,$ifmatch,$calc(%c + (%x - 1)),14)
        inc %x
      }
    }
    inc %c
    %n = $numtok(%newline,14)
  }
  var %win_x = $window(-1).w - 150,%win_y = $calc(($window(-1).h -20) - (%n *15))
  window -c %win
  window -Bphdo $+ $iif(%fadein,n) +dL %win %win_x %win_y 150 $calc(20 + (%n *15))
  setlayer $iif(%fadein,0,$calc(%trans *2.55)) %win
  if (%fadein) { window -a %win | z.loseactive }
  drawfill -r %win %c_second %c_border 4 4
  var %ti = $gettok($1-,1,36), %ti2 = $remove($+(,%ti),:)
  z.drawbox $iif($len(%ti) = 1,-e) %win %c_second %c_second 6 6 0 12 %ti2
  drawtext -r %win %c_text Tahoma 11 $calc($window(%win).w -54) 2 $+($chr(91),$asctime(hh:nntt),$chr(93))
  %c = 1
  ;  while ($wrap($gettok($1-,2,36), Tahoma, 11, 146, %c)) {
  while ($gettok(%newline,%c,14)) {
    drawtext -pbr %win %c_text %c_second Tahoma 11 12 $calc(2 + (%c *15)) $ifmatch
    inc %c
  }
  drawrect -r %win %c_border %c_border 0 0 150 $calc(20 + (%n *15))
  if (%fadein) {
    var %f = 1
    while %f <= %trans {
      setlayer $calc(%f *2.55) %win
      inc %f %speed
    }
  }
  else z.loseactive
  var %timeout = 3
  if ($gettok($1-,3,36)) %timeout = $ifmatch
  .timerzion.g.gnote 1 %timeout zion.gui.fadeout %win %trans %speed
  z.h.setvar gui_PreviousHeader $strip(%ti2)
}
alias zion.gui.fadeout {
  var %a $iif($2,$2,80),%z 1
  while %a >= %z {
    setlayer $calc(%a *2.55) $1
    dec %a $3
  }
  window -c $1
  if ($z.h.getvar(gui_doOnNoteClose)) .timer -o 1 0 $ifmatch
}
menu @zion.gnote {
  sclick:zion.gui.fadeout @zion.gnote 80 1 | .timerzion.g.gnote off
}
alias zion.gui.note {
  ; less important messages add a - infront
  var %timeout 3,%less,%pause
  if ($1 = -) { tokenize 32 $2- | %less = 1 }
  if ((!$z.started) || (($active != $z.win) && ($active != $zion.s.chat)) || (!$appactive)) {
    if (%less) return
    if ($appactive) {
      zion.gui.gnote $1-
      return
    }
    ;    %timeout = 999999
    %pause = 1
  }
  ; determine lines
  var %newline = $replace($gettok($1-,2,36),\n,$chr(14)), %n = $numtok(%newline,14),%c 1
  %n = $numtok(%newline,14)
  while (%c <= %n) {
    var %t = $gettok(%newline,%c,14)
    if ($width(%t,Tahoma,11) > 146) {
      %newline = $deltok(%newline,%c,14)
      var %x = 1
      while ($wrap(%t, Tahoma, 11, 146, %x)) {
        %newline = $instok(%newline,$ifmatch,$calc(%c + (%x - 1)),14)
        inc %x
      }

    }
    inc %c
    %n = $numtok(%newline,14)
  }
  dll_xgui Mark $zion.s.chat
  .timerzion.g.note 1 %timeout dll_xgui Set $zion.s.chat > hidden 2
  if (%pause) .timerzion.g.note -p
  dll_xgui Richedit $zion.s.chat > Clear 2
  dll_xgui Set $zion.s.chat > pos 2 $calc($window($zion.s.chat).dw - 150) $calc(($window($zion.s.chat).dh - 20) - ($calc(%n) * 15)) 150 $calc(20 + ($calc(%n) * 15))
  dll_xgui Richedit $zion.s.chat > Echo 2 $+(,$gettok($1-,1,36),) $str($chr(160),5) $+($chr(91),$asctime(hh:nntt),$chr(93))
  %c = 1
  ;  while ($wrap($gettok($1-,2,36), Tahoma, 11, 140, %c)) {
  while ($gettok(%newline,%c,14)) {
    %n = $ifmatch
    dll_xgui Richedit $zion.s.chat > Echo 2 %n
    inc %c
  }
  dll_xgui Set $zion.s.chat > visible 2
}
alias zion.gui.pnote {
  var %n = $wrap($gettok($1-,2,36),Tahoma,11,140,0), %c 1
  dll_xgui Mark $zion.s.chat
  dll_xgui Richedit $zion.s.chat > Clear 3
  dll_xgui Set $zion.s.chat > pos 3 $calc($window($zion.s.chat).dw - 150) $calc(($window($zion.s.chat).dh - 20) - ($calc(%n) * 15)) 150 $calc(20 + ($calc(%n) * 15))
  dll_xgui Richedit $zion.s.chat > Echo 3 $+(,$gettok($1-,1,36),) $str($chr(160),5)
  while ($wrap($gettok($1-,2,36), Tahoma, 11, 140, %c)) {
    %n = $ifmatch
    dll_xgui Richedit $zion.s.chat > Echo 3 %n
    inc %c
  }
  dll_xgui Set $zion.s.chat > visible 3
}
alias zion.gui.hidepnote dll_xgui Set $zion.s.chat > hidden 3
alias zion.gui.exec $1-
alias zion.gui.checknote if ($timer(zion.g.note)) .timerzion.g.temp 1 3 .timerzion.g.note -e

; -----
; events
; -----
/*
on *:EXIT:{
  zion.gui.kill
  dll -u x-gui.dll
}
*/
on *:active:@Z.gamelist:zion.gui.checknote
on *:active:%zion.s.chat:zion.gui.checknote
on *:active:%zion.s.zchat:zion.gui.checknote
on *:APPACTIVE:{
  if ($appactive) {
    zion.gui.checknote
    if ($z.h.getvar(gui_doOnAppActive)) { $ifmatch | z.h.unsetvar gui_doOnAppActive }
  }
}
ON *:SIGNAL:xGUI:{
  if (($1 = $zion.s.chat) && ($2 = rclick) && ($3 = 3)) {
    zion.gui.hidepnote
  }
  if (($1 = $zion.s.chat) && ($2 = rclick)) {
    var %n = $findtok(%zion.g.ids,$3,1,44)
    if (%n) {
      zion.gui.exec $gettok(%zion.g.cmds,%n,44)
      zion.gui.rembutton $gettok(%zion.g.buttons,%n,44)
      return
    }
    elseif $3 = 3 zion.gui.hidepnote
  }
  if (($1 = $zion.s.chat) && ($2 = hover)) {
    if ($3 < 4) return
    var %n = $findtok(%zion.g.ids,$3,1,44)
    if (!%n) return
    dll_xgui Richedit $zion.s.chat > Clear $3
    var %o = $gettok(%zion.g.opp,%n,44)
    %o = $iif(%o != -,%o,negate)
    if (%o) dll_xgui Richedit $zion.s.chat > Echo $3 ( $+ $z.lang(sys,rightclickto) $+(%o,$chr(41))
    else dll_xgui Delete $zion.s.chat > $3
  }
  if (($1 = $zion.s.chat) && ($2 = leave)) {
    if ($3 < 4) return
    var %n = $findtok(%zion.g.ids,$3,1,44)
    if (!%n) return
    dll_xgui Richedit $zion.s.chat > Clear $3
    if ($gettok(%zion.g.buttons,%n,44)) dll_xgui Richedit $zion.s.chat > Echo $3 $gettok(%zion.g.buttons,%n,44)
    else dll_xgui Delete $zion.s.chat > $3
  }
}

alias z.rgb {
  var %t = $numtok($1,44),%n 1,%new
  while (%t >= %n) {
    var %temp = $calc($gettok($1,%n,44) + $2)
    if (%temp > 255) %temp = 255
    elseif (%temp < 0) %temp = 0
    inc %n
    %new = $instok(%new,%temp,%n,32)
  }
  tokenize 32 %new
  return $rgb($1,$2,$3)

}
alias z.drawbox {
  if (-*e iswm $1) { var %z = 1 | tokenize 32 $2- }
  var %w = $6,%h = $7
  var %textcol = $rgb(10,10,10),%frontcol = $z.rgb($rgb($2),-30),%shadowcol = $z.rgb($rgb($3),-230),%coloursfromtop = %frontcol %shadowcol $z.rgb($rgb($2),-80) $z.rgb($rgb($3),-10),%x $4,%y $5,%c = $numtok(%coloursfromtop,32),%f %c
  if ($8) %w = $calc($width($8-,Tahoma,9,0,1) + 11)
  while (%c > 0) {
    drawrect -dfr $+ $iif(%z,e) $1 $gettok(%coloursfromtop,%c,32) 10 $calc(%x -(%f - %c)) $calc(%y -(%f - %c)) %w %h 5 5
    dec %c
  }
  if ($8) drawtext -bpr $1 %textcol %frontcol Tahoma 9 $calc(%x +3) $calc(%y - %f +2) $8-
}

alias burcwrap {
  if ($0 = 5) {
    tokenize 44 $+($1,$chr(44),$2,$chr(44),$3,$chr(44),$4,$chr(44),1,$chr(44),$$5)
  }
  var %r $wrap($1,$2,$3,$4,$5,$6)
  if ($istok(1.0,$($ $+ $0,2),46) == $true) {
    return %r
  }
  var %regex = /(\d{1,2}(?:,\d{1,2})?)/g, %b = 1, %str
  while (%b < $6) {
    %str = %str $+ $wrap($1,$2,$3,$4,$5,%b)
    inc %b
  }
  var %cc = $regex(%str,%regex)
  %cc = $regml($regml(0))
  if (%r) return $iif(2 \\ $count(%str,) ,) $+ $iif(2 \\ $count(%str,),) $+ $&
    $iif(2 \\ $count(%str,),) $+ $iif(%cc,%cc) $+ %r
  else return 0
}

ON *:SIGNAL:zion_chanopen:if (!$window($z.win)) zion.gui.kill
ON *:SIGNAL:zion_cmd:if (!$window($z.win)) zion.gui.kill

; DotAAngel's popup

on *:TEXT:*:#Zincadmin: {
  if ( $nick == ZincBot ) {
    set %testt has been waiting for a helper
    if ( %testt isin $1- ) {
      if ( $idle < $calc(( $11 + ( $11 - 2 ) * 2 ) * 60 ) ) {
        if ($appactive) {
          var %test = 12Notice - 1Request for Help: $  \n0 $strip($1) has been waiting in #ZincHelp for assistance for $11 minutes. $ 8
          z.gui.adminnote %test
        }
      }
    }
  }
}
on *:KICK:%zion.s.chat:{
  if ( $nick == ZincBot && $knick == $me ) {
    var %temp = $z.rnr.get($strip($left($3,$calc($len($3)-1))))
    z.gui.rnr %temp
  }
}
menu @zion.adminnote {
  sclick: window -c @zion.adminnote
}
alias z.gui.adminnote {
  var %win @zion.adminnote
  var %c_text $rgb(255,255,255), %c_second $rgb(120,120,120), %c_border 0
  if ($1 = -b) {
    %c_second = $2
    tokenize 32 $3-
  }
  var %active = $active
  var %trans 80,%speed 1,%fadein 1
  var %newline = $replace($gettok($1-,2,36),\n,$chr(14)), %n = $numtok(%newline,14),%c 1
  var %win_x = $calc(( $window(-1).w / 2) - 340) ,%win_y = $calc((($window(-1).h / 2) -20) - (%n *18))
  window -c %win
  window -Bphdoub $+ $iif(%fadein,n) +defL %win %win_x %win_y 500 $calc(20 + (%n *20))
  setlayer $iif(%fadein,0,$calc(%trans *2.55)) %win
  if (%fadein) { window -a %win | z.loseactive }
  drawfill -r %win %c_second %c_border 0 0
  var %ti = $gettok($1-,1,36), %ti2 = $remove($+(,%ti),:)
  z.rulebox $iif($len(%ti) = 1,-e) %win $rgb(255,255,255) %c_second 180 7 0 14 %ti2
  var %temptime = $+($chr(91),$+($asctime(hh:nntt)),$chr(93))
  drawtext -r %win $rgb(0,255,0) Tahoma 11 $calc($window(%win).w -54) 4 %temptime
  %c = 1
  ;  while ($wrap($gettok($1-,2,36), Tahoma, 14, 146, %c)) {
  while ($gettok(%newline,%c,14)) {
    drawtext -pbr %win %c_text %c_second Tahoma 12 20 $calc(2 + (%c *18)) $ifmatch
    inc %c
  }
  drawrect -r %win %c_border %c_border 0 0 500 $calc(20 + (%n *20))
  drawrect -r %win %c_border %c_border 1 1 498 $calc(18 + (%n *20))
  drawrect -r %win %c_border %c_border 2 2 496 $calc(16 + (%n *20))
  if (%fadein) {
    var %f = 1
    while %f <= %trans {
      setlayer $calc(%f *5.55) %win
      inc %f %speed
    }
  }
  else z.loseactive
  var %timeout = 3
  if ($gettok($1-,3,36)) %timeout = $ifmatch
  .timerzion.g.gnote 1 %timeout zion.gui.fadeout %win %trans %speed
  z.h.setvar gui_PreviousHeader $strip(%ti2)
}
alias z.gui.rnr {
  if (!$appactive) {
    return
  }
  var %win @zion.rnr
  var %c_text $rgb(255,255,255), %c_second $rgb(120,120,120), %c_border 0
  if ($1 = -b) {
    %c_second = $2
    tokenize 32 $3-
  }
  var %active = $active
  var %trans 80,%speed 1,%fadein 1
  var %newline = $replace($gettok($1-,2,36),\n,$chr(14)), %n = $numtok(%newline,14),%c 1
  var %win_x = $calc(( $window(-1).w / 2) - 350) ,%win_y = $calc((($window(-1).h / 2) -20) - (%n *18))
  window -c %win
  window -Bphdoub $+ $iif(%fadein,n) +defL %win %win_x %win_y 700 $calc(20 + (%n *20))
  setlayer $iif(%fadein,0,$calc(%trans *2.55)) %win
  if (%fadein) { window -a %win | z.loseactive }
  drawfill -r %win %c_second %c_border 0 0
  var %ti = $gettok($1-,1,36), %ti2 = $remove($+(,%ti),:)
  z.rulebox $iif($len(%ti) = 1,-e) %win $rgb(255,255,255) %c_second 220 7 0 14 %ti2
  var %temptime = $+($chr(91),$+($asctime(hh:nntt)),$chr(93))
  drawtext -r %win $rgb(0,255,0) Tahoma 11 $calc($window(%win).w -54) 4 %temptime
  %c = 1
  ;  while ($wrap($gettok($1-,2,36), Tahoma, 14, 146, %c)) {
  while ($gettok(%newline,%c,14)) {
    drawtext -pbr %win %c_text %c_second Tahoma 12 20 $calc(2 + (%c *18)) $ifmatch
    inc %c
  }
  drawrect -r %win %c_border %c_border 0 0 700 $calc(20 + (%n *20))
  drawrect -r %win %c_border %c_border 1 1 698 $calc(18 + (%n *20))
  drawrect -r %win %c_border %c_border 2 2 696 $calc(16 + (%n *20))
  if (%fadein) {
    var %f = 1
    while %f <= %trans {
      setlayer $calc(%f *5.55) %win
      inc %f %speed
    }
  }
  else z.loseactive
  var %timeout = 3
  if ($gettok($1-,3,36)) %timeout = $ifmatch
  .timerzion.g.gnote 1 %timeout zion.gui.fadeout %win %trans %speed
  z.h.setvar gui_PreviousHeader $strip(%ti2)
}
menu @zion.rnr {
  sclick:{
    if ( ($mouse.x > 332) && ($mouse.x < 490) && ($mouse.y > $calc( $window(@zion.rnr).h - 25 )) && ($mouse.y < $calc( $window(@zion.rnr).h - 13 ))) {
      /run http://rules.zincplay.com
      /window -c @zion.rnr
    }
  }
}

alias z.rnr.get {
  if ($1 = A1.1 ) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.1) of the Zion Rules and Regulations\n \n 0This rule states that you are not to type more than 60 words in a single sentence in any of the Zinc\nChannels. Offenders of this rule will be banned for 5 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A1.2) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.2) of the Zion Rules and Regulations\n \n 0This rule states that you are not to type any single word which is more than 40 characters in length in\nany of the Zinc Channels. Offenders of this rule will be banned for 5 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A1.3) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.3) of the Zion Rules and Regulations\n \n 0This rule states that you are not to excessively use capitals in your sentences. Any line containing more \nthan 50% in capitals would be considered excessive use.\nOffenders of this rule will be banned for 5 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A1.4) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.4) of the Zion Rules and Regulations\n \n 0This rule states that you are not to type more than 4 lines in 3 seconds in any of the Zinc Channels. \nOffenders of this rule will be banned for 5 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A1.5) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.5) of the Zion Rules and Regulations\n \n 0This rule states that you are not to repeat yourself more than 2 times in 10 seconds. \nOffenders of this rule will be banned for 10 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A1.6) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (1.6) of the Zion Rules and Regulations\n \n 0This rule states that you are not to use timers or keep repeating yourself in any of the Zinc Channels.\nOffenders of this rule will be banned for 20 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A2) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (2) of the Zion Rules and Regulations\n \n 0This rule states that you are not to type or spam your game's IP in the Zinc Channels.\nOffenders of this rule will be banned for 30 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A3) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (3) of the Zion Rules and Regulations\n \n 0This rule states that you are not to promote any channels, products or services in the Zinc Channels. \nOffenders of this rule will be banned for 20 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A4) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (4) of the Zion Rules and Regulations\n \n 0This rule states that you are not to send any messages containing words or phrases that are deemed to be profane or coarse.\nOffenders of this rule will be banned for 10 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = A5) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section A (5) of the Zion Rules and Regulations\n \n 0This rule states that you are not to send any messages containing words, phrases or quotes that are\ndeemed racially or politically offensive to name a few.\nOffenders of this rule will be banned for 30 minutes from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = B1) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section B (1) of the Zion Rules and Regulations\n \n 0You are suspected to have been infected by a virus. To protect other Zion users, you were banned\nfor 10 minutes from the Zinc Channels. Kindly disinfect your computer before rejoining the channels.\nYou may proceed to proceed to #ZincHelp for assistance.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = B2) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section B (2) of the Zion Rules and Regulations\n \n 0This rule states that you are not be involved in any activity that may be deemed to be of \nmalicious intent to the operations of Zinc, the physical safety of other Users \nand the integrity of Zion. This is a serious offence and thus you have been permanently banned.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = B3) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section B (3) of the Zion Rules and Regulations\n \n 0For more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = B4) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section B (4) of the Zion Rules and Regulations\n \n 0This rule states that you are not to imitate or impersonate any Zion VIP, Helper or ADMIN.\nOffenders of this rule will banned for 24 hours from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = C1) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section C (1) of the Zion Rules and Regulations\n \n 0This rule states that you are not to intentionally bypass the automated rule enforcing system to \nbreach any of the rules. Offenders of this rule will be banned for 1 hour from the Zinc Channels.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = C2) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section C (2) of the Zion Rules and Regulations\n \n 0This rule states that you are not to attempt to bypass bans and enter the Zinc Channels during your ban \nduration. Offenders of this rule will be banned for 24 to 48 hours depending on the severity of the incident.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = C3) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section C (3) of the Zion Rules and Regulations\n \n 0This rule states that any user repeatedly violating any of the rules in spite of multiple warnings will be \nbanned from the Zinc Channels for a 48 hour duration.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = D1) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section D (1) of the Zion Rules and Regulations\n \n 0You have ignored an Admin Warning. This warning was most likely issued if you were causing a\ndisturbance in Zinc Channels. The ban duration associated with this warning is 2 hours.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = D2.1) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section D (2.1) of the Zion Rules and Regulations\n \n 0This rule states that any user who leaves an admin game, intentionally or unintentionally \ncan be banned for up to 4 hours at the discretion of the admin in the game.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = D2.2) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section D (2.2) of the Zion Rules and Regulations\n \n 0This rule states that any user with a ZAC status of DIRTY in an ADMIN game can be banned\nfor up to 4 hours at the discretion of the admin in the game.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
  elseif ($1 = D2.3) {
    return 4Alert - 1Breach of Rules and Regulations: $ 8You were banned from the Zinc Channels for Breaching Section D (2.3) of the Zion Rules and Regulations\n \n 0This rule states that any user who joins an admin game and disengages from game play for \nmore than 10 minutes can be banned for up to 4 hours at the discretion of the admin in the game.\nFor more info on rules and regulations, please visit 4http://rules.zincplay.com $ 50
  }
}
alias z.rulebox {
  if (-*e iswm $1) { var %z = 1 | tokenize 32 $2- }
  var %w = $6,%h = $7
  var %textcol = $rgb(10,10,10),%frontcol = $z.rgb($rgb($2),-30),%shadowcol = $z.rgb($rgb($3),-230),%coloursfromtop = %frontcol %shadowcol $z.rgb($rgb($2),-80) $z.rgb($rgb($3),-10),%x $4,%y $5,%c = $numtok(%coloursfromtop,32),%f %c
  if ($8) %w = $calc($width($8-,Tahoma,11,0,1) + 11)
  while (%c > 0) {
    drawrect -dfr $+ $iif(%z,e) $1 $gettok(%coloursfromtop,%c,32) 10 $calc(%x -(%f - %c)) $calc(%y -(%f - %c)) %w %h 5 5
    dec %c
  }
  if ($8) drawtext -bpr $1 %textcol %frontcol Tahoma 11 $calc(%x +3) $calc(%y - %f +2) $8-
}