Multis questions *o*

Signaler
Messages postés
16
Date d'inscription
jeudi 15 janvier 2009
Statut
Membre
Dernière intervention
12 mars 2013
-
Messages postés
19
Date d'inscription
mercredi 3 octobre 2012
Statut
Membre
Dernière intervention
11 juillet 2014
-
Bonjour,

J'ai plusieurs questions à poser, tous à propos du scripting de mIRC.
Je cherche principalement des identificateurs, alias, ou morceaux de codes qui permettrais au système que je cherche de fonctionner.


Tout d'abord, je vais expliquer la chose:

Je cherche un moyen simple, pour un robot, de détecter les auto-joins. C'est à dire des réseaux/canaux à rejoindre automatiquement à la connexion. Ces canaux/réseaux seront modifiable suivant les accès des personnes via le robot. J'ai trouvé plusieurs solutions, cependant je n'ai toujours pas trouvé de code pour les générer.

1ère idée: lister les canaux dans $network.ini ($network étant le nom du réseau)
dont les lignes seraient:
[Address]
irc=irc.truc.com
port=6667
[aj]
1=#truc
2=#machin

Cependant, je ne sais pas comment il est possible de pouvoir lister le nombre de ligne dans [aj] afin que le robot les mettent à la chaine.

2ème idée: semblable, avec quelques changements:
[Address]
irc=irc.truc.com
port=6667
[aj]
autoj=#truc,#machin

Ici mon problème est pour l'ajout : comment faire pour éditer la ligne sans supprimer ce qui existe déjà afin d'ajouter ou de retirer les autojoins si besoin.


3ème idée: jouer sur la configuration
Les propriétaires de salons auront la possibilité d'éditer le fichier de configuration de leurs salons. J'ai pensé que je pourrait lister les fichier (dans un dossier $network) puis les ajouter dans un /join
Cependant, je ne connais pas d'identificateur retournant le noms des fichier dans un dossier, ou retourner le nom du premier au dernier fichier sans que la remote tourne en boucle (il m'est arrivé que le fichier continue de chercher après le dernier fichier)


Voilà mes 3 idées, merci à ceux qui m'aident à trouver la meilleur des trois, et surtout, comment la faire.

2 réponses

Messages postés
14
Date d'inscription
dimanche 1 décembre 2013
Statut
Membre
Dernière intervention
1 octobre 2014

Salut,

Essaye ça:

;## Action à la connexion - Ajout automatique du serveur au fichier de configuration.
On *:CONNECT:{
set %fichier networks.ini
echo -sta * $read(%fichier,$network,join) - $token($read(%fichier,$network,irc),2-,61)
if ($token($read(%fichier,$network,irc),2-,61) == $null) { writeini %fichier $network irc $server | writeini %fichier $network port $port | writeini %fichier $network join 0 }
elseif ($token($read(%fichier,$network,join),2-,61) != 0) { $+(.timer,_join_,$network) 1 5 join $token($read(%fichier,$network,join),2-,61) }
}
;## CONFIGURATION DE L'AJOUT/RETRAIT DES SALONS EN PV
On *:TEXT:!*:*:{
if ($target == $me) {
if (%fichier == $null) { echo 04 -stae * ERREUR: FICHIER DE CONFIGURATION PERDU. | msg $nick 04ERREUR: FICHIER DE CONFIGURATION PERDU. | halt }
;Dans le PV du bot: !add $network #channel
elseif (!add == $1 && #?* iswm $3) {
if ($istok($token($read(%fichier,$$2,join),2-,61),$$3,44)) { msg $nick 04ERREUR: Salon déjà pris en compte. | halt }
if ($token($read(%fichier,$$2,join),2-,61) == 0) { writeini %fichier $$2 join $$3 }
else { writeini %fichier $$2 join $addtok($token($read(%fichier,$$2,join),2-,61),$$3,44) }
msg $nick Les salons sont donc: $token($read(%fichier,$$2,join),2-,61)
}
;Dans le PV du bot: !del $network #channel
elseif (!del == $1 && #?* iswm $3) {
if (!$istok($token($read(%fichier,$$2,join),2-,61),$$3,44)) { msg $nick 04ERREUR: Salon inconnu à la liste. | halt }
if ($deltok($token($read(%fichier,$$2,join),2-,61),$findtok($token($read(%fichier,$$2,join),2-,61),$$3,1,44),44) == $null) { writeini %fichier $$2 join 0 }
else { writeini %fichier $$2 join $deltok($token($read(%fichier,$$2,join),2-,61),$findtok($token($read(%fichier,$$2,join),2-,61),$$3,1,44),44) }
msg $nick Les salons sont donc: $token($read(%fichier,$$2,join),2-,61)
}
}
}

Tout les $network seront dans le même fichier de configuration ^^

Amicalement, ArseeniK
Messages postés
19
Date d'inscription
mercredi 3 octobre 2012
Statut
Membre
Dernière intervention
11 juillet 2014

Pour savoir le nombre de salons dans ta section AJ tu dois utiliser l'identifieur $ini
$ini(tonfichier.ini,AJ,0)
Ensuite tu n'as plus qu'à faire une boucle sur le nombre qui t'es retourné et utiliser $readini pour lire les items
$readini(tonfichier.ini,aj,$ini(tonfichier.ini,AJ,%a)

Pour ta seconde idée comme te le montre ArseeniK sans t'expliquer tu dois utiliser l'identifieur $addtok dans ton cas celà sera
$addtok($readini(tonfichier.ini,aj,autoj),$3,44)

Pour la 3ème solution tu dois utiliser l'identifieur $findfile
noop $findfile($network,*.ini,0,join $1-)
Cet identifieur va faire une boucle à ta place dans le dossier que tu désires

Les 3solutions sont utilisables maintenant il faut voir quelle solution te convient le mieux surtout
Oui avoir tes salons sur une seule ligne dans ta section Aj est plus jolie visuellement mais si on reprend ta 3ème solution on remarque qu'on peut plus aisément mettre des configurations distinctes par salon puisque tu auras salon1.ini salon2.ini salon3.ini etc etc
Tu auras juste à lire ce que tu recherches via
$readini($network $+ $chan $+ .ini,optionsX,lesmodespourlesalondeceserveur)

Donc en gros à toi de réfléchir et à choisir quelle méthode est la plus judicieuse selon tes propres connaissances et tes propres besoins.
(Evite quand même la première solution même si fréquemment utilisée)