Gestion d'access

Soyez le premier à donner votre avis sur cette source.

Vue 4 483 fois - Téléchargée 124 fois

Description

Voila un petit code bien pratique, destiné à être intégré au ZenScripT mais je me suis dit qu'il pourrait servir à d'autres ;)

Il sert à se mettre ou enlever son grade via chanserv en une seule commande pour un ou tous les chans ou vous vous trouvez :

Utile quand vous vous connectez avec un pseudo non enregistré et que vous devez vous remettre vos access sur les 10 chans ou vous êtes ^^

(Voir en bas de la page pour le fonctionnement) :)

Source / Exemple :


;###############################
;#####  Gestion d'access     #####
;#####  Par ChrisTooCool     #####
;#####  Pour le ZenScripT   #####
;###############################

on 1:LOAD: {
  /mkdir ini
  /writeini Access.ini Parametres Temps 5
  /writeini Access.ini Parametres CommandeAccess1 !+
  /writeini Access.ini Parametres CommandeAccess2 !-
  /writeini Access.ini Parametres CommandeAccess3 !++
  /writeini Access.ini Parametres CommandeAccess4 !--
  /writeini Access.ini Parametres Visible $false
}

menu * {
  ZenOutils
  .-
  .Gestion Access:/access
  .-
}

alias Access dialog -m GestionAccess GestionAccess

dialog GestionAccess {
  title "Gestion de mes Acces  ~ ZenScripT ~"
  size -1 -1 319 203
  option dbu
  tab "Access", 12, 0 -3 319 206
  box "Salons Configurés", 39, 123 15 88 85, tab 12
  box "", 35, 253 60 49 22, tab 12
  box "Visibilité :", 26, 134 111 72 83, tab 12
  box "Dans le Salon ou vous tapez la commande", 16, 9 111 122 40, tab 12
  box "Dans tous les Salons d'un coup", 21, 9 154 122 40, tab 12
  box "Commandes", 15, 4 101 207 99, tab 12
  box "Acces", 3, 214 15 103 71, tab 12
  box "Ajouter Un Salon", 2, 4 15 116 85, tab 12
  combo 1, 14 54 94 57, tab 12 size edit vsbar drop
  radio "Owner", 4, 218 28 30 10, tab 12
  radio "Protect", 5, 218 38 31 10, tab 12
  radio "Op", 6, 218 48 25 10, tab 12
  radio "Voice", 8, 218 68 29 10, tab 12
  radio "Halfop", 9, 218 58 31 10, tab 12
  radio "Owner + Op", 7, 249 38 50 10, tab 12
  radio "Protect + Op", 10, 249 48 50 10, tab 12
  radio "Owner + Protect + Op", 11, 249 28 67 10, tab 12
  edit "", 17, 12 122 35 12, tab 12 autohs
  text "Pour vous mettre votre acces", 18, 48 124 77 8, tab 12 center
  edit "", 19, 12 135 35 12, tab 12 autohs
  text "Pour vous retirer votre acces", 20, 48 137 77 8, tab 12 center
  edit "", 22, 12 165 35 12, tab 12 autohs
  text "Pour vous mettre vos acces", 23, 48 167 77 8, tab 12 center
  text "Pour vous retirer vos acces", 24, 48 180 77 8, tab 12 center
  edit "", 25, 12 178 35 12, tab 12 autohs
  button "Ok", 30, 245 114 37 12, tab 12 ok
  button "Ajouter ce Salon =>", 31, 21 68 80 12, tab 12
  button "Retirer le Salon Selectionné", 32, 127 84 79 12, tab 12
  list 33, 127 24 80 58, tab 12 size
  radio "Aucun", 34, 264 68 30 10, tab 12
  text "Choisissez un Salon dans la liste des Salons ouverts ou entrez en un (ex #emule-fr-zenzone)", 36, 14 28 94 22, tab 12 center
  button "Ajouter les Salons Ouverts =>", 37, 21 83 80 12, tab 12
  check "Visibles", 27, 146 142 50 10, tab 12
  check "Invisibles", 28, 146 152 50 10, tab 12
  text "Les commandes seront :", 41, 143 122 51 14, tab 12 center
  text "Par les autres utilisateurs.", 29, 143 172 51 16, tab 12 center
  tab "A Propos", 13
  box "", 14, 4 15 307 72, tab 13
  text "Addon Gestion d'Acess pour le ZenScripT par ChrisTooCool", 38, 87 33 142 9, tab 13
  link "ZenScripT@eMule-ZenZoNe.com", 40, 131 60 86 8, tab 13
  text "Contact : ", 42, 100 60 25 8, tab 13
  link "www.eMule-ZenZoNe.com", 43, 138 70 85 8, tab 13
  text "Le ZenScripT : ", 44, 100 70 36 8, tab 13
}

dialog GestionAccessErreur {
  title "Erreur !"
  size -1 -1 76 30
  option dbu
  text " Ce Salon a déjà été ajouté.", 1, 2 2 72 10
  button "Ok", 2, 17 15 37 12, ok
}

on 1:dialog:GestionAccess:edit:17,19,22,25: {
  if ( $did == 17 ) /writeini $scriptdir $+ /ini/Access.ini Parametres CommandeAccess1 $did(GestionAccess,17)
  if ( $did == 19 ) /writeini Access.ini Parametres CommandeAccess2 $did(GestionAccess,19)
  if ( $did == 22 ) /writeini Access.ini Parametres CommandeAccess3 $did(GestionAccess,22)
  if ( $did == 25 ) /writeini Access.ini Parametres CommandeAccess4 $did(GestionAccess,25)
}

on 1:dialog:GestionAccess:sclick:40:/run mailto:ZenScripT@eMule-ZenZoNe.com
on 1:dialog:GestionAccess:sclick:43:/run http://www.eMule-ZenZoNe.com

on 1:dialog:GestionAccess:sclick:31: {
  /set %i 1
  while ( $did(GestionAccess,33,%i).text != $null ) {
    if ( $did(GestionAccess,33,%i).text == $did(GestionAccess,1).text ) {
      /dialog -m GestionAccessErreur GestionAccessErreur
      /halt
    }
    else /inc %i
  }
  /did -o GestionAccess 33 %i $did(GestionAccess,1).text
  /writeini Access.ini Salons $did(GestionAccess,1).text ?
}

on 1:dialog:GestionAccess:sclick:37: {

  /var %j 1
  while ( $did(GestionAccess,33,%j).text != $null ) {
    /set %chanlist %chanlist $did(GestionAccess,33,%j).text 
    /inc %j
  }
  /var %i 1
  while ( %i <= $chan(0) ) {
    if ( $chan(%i) !isin %chanlist ) {
      /did -o GestionAccess 33 %j $chan(%i)
      /writeini Access.ini Salons $chan(%i) ?
      /inc %i
      /inc %j
    }
    else { /inc %i }
  }
  /unset %chanlist
}

on 1:dialog:GestionAccess:sclick:32: {
  /remini Access.ini Salons $did(GestionAccess,33,$did(GestionAccess,33).sel).text
  /did -d GestionAccess 33 $did(GestionAccess,33).sel
}

on 1:dialog:GestionAccess:sclick:*: {
  if ( $did == 33 ) {
    /did -u GestionAccess 4,5,6,9,8,11,7,10,34
    /AccesSalon $readini(Access.ini,Salons,$did(GestionAccess,33,$did(GestionAccess,33).sel).text)
  }
  elseif ($did(GestionAccess,33).sel != $null ) {
    if ( $did == 4 ) /SaveAccess q
    elseif ( $did == 5 ) /SaveAccess a
    elseif ( $did == 6 ) /SaveAccess o
    elseif ( $did == 9 ) /SaveAccess h
    elseif ( $did == 8 ) /SaveAccess v
    elseif ( $did == 11 ) /SaveAccess qao
    elseif ( $did == 7 ) /SaveAccess qo
    elseif ( $did == 10 ) /SaveAccess ao
    elseif ( $did == 34 ) /SaveAccess ?
  }
  elseif ( $did == 27 ) { /writeini Access.ini Parametres Visible $true | /did -eu GestionAccess 28 | /did -b GestionAccess 27 }
  elseif ( $did == 28 ) { /writeini Access.ini Parametres Visible $false | /did -eu GestionAccess 27 | /did -b GestionAccess 28 }
}

on 1:dialog:GestionAccess:init:0: {
  /var %i 1
  while ( %i <= $chan(0) ) {
    /did -o GestionAccess 1 %i $chan(%i)
    /inc %i
  }
  /var %j 1
  while ( %j <= $ini(Access.ini,Salons,0) ) {
    /did -o GestionAccess 33 %j $ini(Access.ini,Salons,%j)
    /inc %j
  }
  /did -a GestionAccess 17 $readini(Access.ini,Parametres,CommandeAccess1)
  /did -a GestionAccess 19 $readini(Access.ini,Parametres,CommandeAccess2)
  /did -a GestionAccess 22 $readini(Access.ini,Parametres,CommandeAccess3)
  /did -a GestionAccess 25 $readini(Access.ini,Parametres,CommandeAccess4)
  if ( $readini(Access.ini,Parametres,Visible) == $true ) { /did -bc GestionAccess 27 }
  else { /did -bc GestionAccess 28 }
}

alias AccesSalon {
  if ( $1 == q ) /did -c GestionAccess 4
  elseif ( $1 == a ) /did -c GestionAccess 5
  elseif ( $1 == o ) /did -c GestionAccess 6
  elseif ( $1 == h ) /did -c GestionAccess 9
  elseif ( $1 == v ) /did -c GestionAccess 8
  elseif ( $1 == qao ) /did -c GestionAccess 11
  elseif ( $1 == qo ) /did -c GestionAccess 7
  elseif ( $1 == ao ) /did -c GestionAccess 10
  else /did -c GestionAccess 34
}

alias SaveAccess /writeini Access.ini Salons $did(GestionAccess,33,$did(GestionAccess,33).sel).text $1

alias UnAccess {
  /var %access $readini(Access.ini,Salons,$1)
  if ( %access != $null ) {
    if ( %access == q ) { /cs owner $1 }
    if ( %access == a ) { /cs protect $1 $me }
    if ( %access == o ) { /cs op $1 $me }
    if ( %access == h ) { /cs halfop $1 $me }
    if ( %access == v ) { /cs voice $1 $me }
    if ( %access == qao ) { /cs owner $1 | /cs protect $1 $me | /cs op $1 $me }
    if ( %access == qo ) { /cs owner $1 | /cs op $1 $me }
    if ( %access == ao ) { /cs protect $1 $me | /cs op $1 $me }
  }
}

alias MoinsUnAccess {
  /var %access $readini(Access.ini,Salons,$1)
  if ( %access != $null ) {
    if ( %access == q ) { /cs deowner $1 }
    if ( %access == a ) { /cs deprotect $1 $me }
    if ( %access == o ) { /cs deop $1 $me }
    if ( %access == h ) { /cs dehalfop $1 $me }
    if ( %access == v ) { /cs devoice $1 $me }
    if ( %access == qao ) { /cs deowner $1 | /cs deprotect $1 $me | /cs deop $1 $me }
    if ( %access == qo ) { /cs deowner $1 | /cs deop $1 $me }
    if ( %access == ao ) { /cs deprotect $1 $me | /cs deop $1 $me }
  }
}

alias AllAccess {
  /var %i 1
  while ( %i <= $chan(0) ) {
    /UnAccess $chan(%i)
    /inc %i
  }
}

alias MoinsAllAccess {
  /var %i 1
  while ( %i <= $chan(0) ) {
    /MoinsUnAccess $chan(%i)
    /inc %i
  }
}

on 1:INPUT:#: {
  /var %Com1 = $readini(Access.ini,Parametres,CommandeAccess1)
  /var %Com2 = $readini(Access.ini,Parametres,CommandeAccess2)
  /var %Com3 = $readini(Access.ini,Parametres,CommandeAccess3)
  /var %Com4 = $readini(Access.ini,Parametres,CommandeAccess4)
  /var %Visible = $readini(Access.ini,Parametres,Visible)
  if ( $1- == %Com1 ) { /UnAccess $active | if ( !%Visible ) /halt }
  if ( $1- == %Com2 ) { /MoinsUnAccess $active | if ( !%Visible ) /halt }
  if ( $1- == %Com3 ) { /AllAccess | if ( !%Visible ) /halt }
  if ( $1- == %Com4 ) { /MoinsAllAccess | if ( !%Visible ) /halt }
}

Conclusion :


Dans le menu config du script (clic droit, ZenOutils/Gestion Access), pour chaque chan choisissez votre grade (op , halfop , voice ...)
Ensuite par une commande que vous definissez vous pourrez mettre ou enlever votre grade toujours par la même commande quelquesoit votre grade en fonction du chan ou vous tapez la commande.
Ex:
!+ => vous mettra votre "grade" sur le canal ou vous tapez la commande. (op halfop voice ...)
!- => vous otera votre "grade" sur le canal ou vous tapez la commande.

C'est là que c'est interessant :
!++ => Vous mettra votre "grade" sur tous les chans ou vous êtes.
!++ => Vous otera votre "grade" sur tous les chans ou vous êtes.
C'est à dire si vous avez bien réglé en tapant !++ dans n'importe quelle fenetre mirc, vous serez oppé sur #monchan1 , voicé sur #monchan2 , owner + protect sur #monchan3 ... via chanserv.

Soyez indulgents, je ne suis pas un grand scripteur, je bidouille ^^ , si vous avez des remarques n'hésitez pas ;)

enjoy, @Bientot ;)
Chris

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

tidds
Messages postés
248
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
9 janvier 2006
-
Désolé je n'ai pas le temps de regarder ta source entièrement, je le ferait ce soir ou demain. :]

Quelques trucs :

- les / sont inutiles.
- while ( $did(GestionAccess,33,%j).text != $null ) { revient à faire while (!$did(GestionAccess,33,%j).text) {

Bonne continuation
tidds
Messages postés
248
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
9 janvier 2006
-
(tu peux même enlever le .text ^^)
COOLMAN002
Messages postés
976
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2012
1 -
Ça fonctionne pas chez moi.........
enfin, le dialog si mais le reste.....

ça doit être parce que j'suis fatigué, enfin j'espere.
ChrisTooCool
Messages postés
3
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004
-
Ok maintenant il fonctionne, je ne sais pas pourquoi la variable $scriptdir pose des problèmes ...

Enfin maintenant c'est réglé, ça marche nickel, enjoy ;) dsl ^^

Merci tidds, c'est vrai que je n'ai pas une synyaxe très carrée, c'est aussi pour ça que je post ici, pour qu'on me fasses des remarques constructives ;)

@Bientot
ChrisTooCool
Messages postés
3
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
3 novembre 2004
-
Normalement ya plus de bugs, je suis absent une semaine je nettoierai la syntaxe et repondrai aux questions, suggestions, s'il y en a en revenant, ça empeche pas que le script fonctionne sans problèmes, perso j'suis sur un serveur IRC ou les splits sont reguliers, pour dire que c'est a moi le 1er qu'il sert ce script ;)

Vala allez @Bientot ;)

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.