Mode du chan un peu spécial

Contenu du snippet

baaa look la remote :) bon c po de mwa ms il com mm cool

Source / Exemple :


dialog channel {
  title "Options du salon"
  size -1 -1 190 175
  option dbu
  box "Topic (sujet du salon)", 1, 2 10 186 35
  button "&Annuler", 2, 149 128 38 22, cancel
  edit "", 3, 5 19 180 10, autohs
  icon 4, 5 31 180 11,  temptopic.bmp, 0, top
  box "Bannis (indésirables sur ce salon)", 5, 2 45 131 80
  combo 6, 5 54 125 55, size extsel hsbar
  box "Chatteurs", 7, 134 45 53 80
  list 8, 137 54 47 55, size
  button "&Kicker", 27, 161 111 23 12, disable
  button "&Supprimer", 10, 5 111 60 12, disable
  button "&Modifier", 11, 70 111 60 12, disable
  check "&Topic réservé aux ops", 12, 5 133 45 10
  box "Modes", 13, 2 125 145 48
  check "&Pas de message externe", 14, 5 142 70 10
  check "Entrée sur &Invitation", 15, 5 151 60 10
  check "&Modéré", 16, 80 160 30 10
  check "&Verrouillé :", 17, 5 160 35 10
  edit "", 18, 40 160 34 10, autohs
  check "&Limité à", 19, 80 133 29 10
  edit "", 20, 109 132 15 10, autohs center
  text "users", 21, 127 134 15 8
  check "    &Privé", 22, 80 142 29 10
  check "&Secret", 23, 110 142 30 10, left
  check "Sans aucune &Couleur", 24, 80 151 65 10
  button "&Valider", 25, 149 151 38 22
  text "", 26, 2 2 185 8
  button "&Bannir", 9, 137 111 23 12, disable
}

;#################### ALIAS ####################

alias channel {
  If ( $exists(temptopic.bmp) == $false ) { window -ph +d @pp 0 0 400 22 | drawsave @pp "temptopic.bmp" | close -@ @pp }
  dialog -mo channel channel
}
alias topicwin {
  if ($dialog(channel)) {
    window -ph +d @pp 0 0 400 22
    drawfill @pp $color(back) $color(back) 0 1
    drawtext -pb @pp $color(normal) $color(back) Arial 11 5 3 $iif($did(channel,3),$did(channel,3),)
    drawsave @pp "temptopic.bmp"
    close -@ @pp
    did -g channel 4 "temptopic.bmp"
  }
}
alias channelref {
  if ($dialog(channel)) {
    did -r channel 6,8
    var %nick = 0
    while ( %nick <= $nick($active,0)) {
      inc %nick
      If ( $nick($active,%nick) isop $active ) { did -i channel 8 %nick @ $+ $nick($active,%nick) | continue }
      If ( $nick($active,%nick) ishop $active ) { did -i channel 8 %nick % $+ $nick($active,%nick) | continue }
      If ( $nick($active,%nick) isvo $active ) { did -i channel 8 %nick + $+ $nick($active,%nick) | continue }
      did -i channel 8 %nick $nick($active,%nick)
    }
    var %ibl = 1
    while ( %ibl <= $ibl($active,0)) { did -i channel 6 %ibl $ibl($active,%ibl) (de $gettok($ibl($active,%ibl).by,1,33) le $asctime($int($calc($ibl($active,%ibl).ctime)),dd/mm/yy à HH:nn) $+ ) | inc %ibl }
    did -d channel 8 $did(8).lines
  }
}

;#################### ON ACTIVE ####################

On *:ACTIVE:*:{ if ($dialog(channel)) { dialog -x channel | dialog -mo channel channel } }

;#################### ON DIALOG ####################

On *:dialog:channel:init:0:{ 
  did -ra channel 26 $active : $nick($active,0) personnes ( $+ $nick($active,0,o) ops - $nick($active,0,v,o) voices - $nick($active,0,r,vo) réguliers $+ ) Mode ( $+ $chan($active).mode $+ )
  If ( t isincs $gettok($chan($active).mode,1,32)) { did -c channel 12 }
  If ( n isincs $gettok($chan($active).mode,1,32)) { did -c channel 14 }
  If ( i isincs $gettok($chan($active).mode,1,32)) { did -c channel 15 }
  If ( m isincs $gettok($chan($active).mode,1,32)) { did -c channel 16 }
  If ( k isincs $gettok($chan($active).mode,1,32)) { did -c channel 17 | did -ra channel 18 $chan($active).key }
  If ( l isincs $gettok($chan($active).mode,1,32)) { did -c channel 19 | did -ra channel 20 $chan($active).limit }
  If ( p isincs $gettok($chan($active).mode,1,32)) { did -c channel 22 }
  If ( s isincs $gettok($chan($active).mode,1,32)) { did -c channel 23 }
  If ( c isincs $gettok($chan($active).mode,1,32)) { did -c channel 24 }
  did -ra channel 3 $chan($active).topic
  topicwin
  channelref 
}
On *:dialog:channel:edit:3:{ topicwin }
On *:dialog:channel:sclick:6:{ 
  if ( $did(6,0).sel != 0 ) { did -e channel 10,11 }
  Else { did -b channel 10,11 }
}
On *:dialog:channel:sclick:8:{ did -e channel 9,27 }
On *:dialog:channel:sclick:9:{
  if ( $left($did(8,$did(8).sel).text,1) == @ ) || ( $left($did(8,$did(8).sel).text,1) == + ) || ( $left($did(8,$did(8).sel).text,1) == %) { var %address = $address($right($did(8,$did(8).sel).text,-1),3) }
  Else { var %address = $address($did(8,$did(8).sel).text,3) }
  mode $active +b %address
  did -i channel 6 $calc($did(6).lines + 1) %address (par $me le $asctime(dd/mm/yy) $asctime(HH:nn) $+ )
}
On *:dialog:channel:sclick:10:{ while ( $did(6,0) != 0 ) { mode $active -b $did(6,$did(6).sel).text | did -d channel 6 $did(6).sel } | did -b channel 10,11 }
On *:dialog:channel:sclick:11:{ set %banmod $gettok($did(6,$did(6).sel).text,1,32) | dialog -mo banmod banmod }
On *:dialog:channel:sclick:25:{
  if ( $me isop $active ) { 
    mode $active + $+ $iif($did(12).state == 1,t) $+ $iif($did(14).state == 1,n) $+ $iif($did(15).state == 1,i) $+ $iif($did(22).state == 1,p) $+ $iif($did(23).state == 1,s) $+ $iif($did(24).state == 1,c) $+ $iif($did(16).state == 1,m)
    mode $active - $+ $iif($did(12).state == 0,t) $+ $iif($did(14).state == 0,n) $+ $iif($did(15).state == 0,i) $+ $iif($did(22).state == 0,p) $+ $iif($did(23).state == 0,s) $+ $iif($did(24).state == 0,c) $+ $iif($did(16).state == 0,m)
    mode $active + $+ $iif($did(12).state == 1,t) $+ $iif($did(14).state == 1,n) $+ $iif($did(15).state == 1,i) $+ $iif($did(22).state == 1,p) $+ $iif($did(23).state == 1,s) $+ $iif($did(24).state == 1,c) $+ $iif($did(16).state == 1,m)
    mode $active - $+ $iif($did(12).state == 0,t) $+ $iif($did(14).state == 0,n) $+ $iif($did(15).state == 0,i) $+ $iif($did(22).state == 0,p) $+ $iif($did(23).state == 0,s) $+ $iif($did(24).state == 0,c) $+ $iif($did(16).state == 0,m)
    if ( $did(19).state == 1 ) && ( $did(20).text isnum ) && ( $did(20).text != $null ) { mode $active +l $did(20).text }
    if ( $did(19).state != 1 ) { mode $active -l $chan($active).limit }
    if ( $did(17).state == 1 ) && ( $did(18).text != $null ) { mode $active +k $did(18).text }
    if ( $did(17).state != 1 ) { mode $active -k $chan($active).key }
    If ( $did(3).text != $chan($active).topic ) { topic $active $did(3).text }
  }
  dialog -x channel
}
On *:dialog:channel:sclick:27:{ kick $active $did(8,$did(8).sel).text Boom ! }

;#################### DIALOG BANMOD ####################

dialog banmod {
  title "Modification d'un ban"
  size -1 -1 110 47
  option dbu
  text "Modifier l'adresse du ban :", 26, 2 3 105 8, center
  edit "", 27, 2 13 105 10, autohs center
  edit "", 29, 18 34 20 10, autohs center, disabled
  text "minute(s)", 30, 40 35 25 8, disabled
  button "&Valider", 31, 70 35 37 10
  button "&Annuler", 32, 70 25 37 10, cancel
  check "Retirer le ban dans :", 33, 2 24 60 10
}

;#################### ON DIALOG ####################

On *:dialog:banmod:init:0:{
  If ( %banmod == $null ) { dialog -x banmod }
  Else { did -ra banmod 27 %banmod }
}
On *:dialog:banmod:sclick:33:{
  If ( $did(33).state == 1 ) { did -e banmod 29,30 }
  Else { did -b banmod 29,30 }
}
On *:dialog:banmod:sclick:31:{
  if ( $did(27).text != %banmod ) || ( $did(33).state == 1 ) { 
    /mode $active -b %banmod
    If ( $did(33).state != 1 ) { mode $active +b $did(27).text }
    Else { ban -u $+ $calc($did(29).text * 60) $active $did(27).text } 
    unset %banmod
    did -b channel 10,11
  }
  dialog -x banmod
}

Conclusion :


ba vala fo cliké sr le chan apré :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.