Comment intégrer les notices spécifiques de FlashVSI à votre Bot / Script.
Attention: Ce code ne vous concèrnes pas si vous utilisez déjà la connexion FlashVSI ! Il permet seulement de rendre compatible un autre bot, script, ou connexion, avec les notices spécifiques de FlashVSI.
Les notices spécifiques permettent de réaliser de opérations similaires aux ctcp TIME, PING et VERSION. Les requêtes utilisent simplement les messages par "notices" au lieu des messages par "ctcp", et permettent aux scripts basés sur ce système d'échanger des requêtes de demande d'heure, de test de délais ou de version. Vous pouvez facilement implémenter la gestion de ces notices spécifiques dans vos scripts non basés sur FlashVSI pour créer une compatibilité, comme dans l'exemple suivant:
CODE
;;; Notices Spécifiques FlashVSI par CCS-TEAM
;;; Version mise à jour du 04/2008
#vsixnotices on
alias notice {
$iif(!$show,.) $+ NOTICE $1-
if ($upper($2) === VSIX.PING.REQUEST) {
set -u15 % [ $+ vsix.ping. [ $+ [ $$1 ] ] ] $iif($chr(35) isin $active,$active,$comchan($$1,1)) $ticks
echo $color(notice) -ae * Demande d'un test de délais à $$1 ...
haltdef
}
if ($upper($2) === VSIX.TIME.REQUEST) {
echo $color(notice) -ae * Demande d'heure locale à $$1 ...
haltdef
}
if ($upper($2) === VSIX.VER.REQUEST) {
echo $color(notice) -ae * Demande de la version de $$1 ...
haltdef
}
}
On ^*:NOTICE:*:?:{
if ($server != VSIXc) halt
if (($1 === VSIX.TIME.REQUEST) || ($1 == TIME)) {
;ajout de la compatibilité avec ChristianEthics et Soulfly
if (%stopvrequest) halt | .set -u2 %stoptrequest $true
;patch pour les versions de mIRC avant 6.1 car $daylight était calculé par erreur dans $ctime
var %corrected_ctime $ctime | if ($version < 6.1) %corrected_ctime = $calc($ctime - $daylight)
;
if ($1 === VSIX.TIME.REQUEST) .notice $nick VSIX.TIME.REPLY %corrected_ctime $timezone $daylight
else .notice $nick Local Time: $fulldate
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande votre heure locale ...
haltdef
}
if ($1 === VSIX.TIME.REPLY) {
if (%stopvreply) || ($2 !isnum) halt | .set -u2 %stoptreply $true
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
;patch pour les versions de mIRC avant 6.1 car $daylight était calculé par erreur dans $ctime
var %corrected_ctime $2 | if ($version < 6.1) %corrected_ctime = $calc($2 + $daylight)
;
var %finaltime = $calc(%corrected_ctime - $3) , %gmt = $gettok($calc($calc($3 / 3600) * -1),1,46) $+ $iif(*.5* iswm $calc($3 / 3600),:30) $+ $iif(*.75* iswm $calc($3 / 3600),:45)
if ($4) %finaltime = $calc(%finaltime + $4)
;patch pour les versions de mIRC avant 6.1 car $daylight n'était pas calculé dans $gmt
if ($version < 6.1) %finaltime = $calc(%finaltime - $daylight)
echo $color(notice) -e %ccs.chan * $nick , heure locale : $gmt(%finaltime,HH:nn:ss) $chr(40) $+ GMT: $iif($3,$iif(- !isin %gmt,+ $+ %gmt,%gmt),inconnu) $+ $chr(41)
haltdef
}
if ($1 === VSIX.VER.REQUEST) {
if (%stopvrequest) halt | .set -u2 %stopvrequest $true
;vous pouvez remplacer $fullname par le nom et/ou la version de votre script
.notice $nick VSIX.VER.REPLY $fullname
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande votre version ...
haltdef
}
if ($1 === VSIX.VER.REPLY) {
if (%stopvreply) halt | .set -u2 %stopvreply $true
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , VERSION: $strip($2-)
haltdef
}
if ($1 === VSIX.PING.REQUEST) {
if (%stoprequest) halt | .set -u2 %stoprequest $true
.notice $nick VSIX.PING.REPLY $2
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande un test de délais ...
haltdef
}
if ($1 === VSIX.PING.REPLY) {
if (%stopreply) || (!%vsix.ping. [ $+ [ $nick ] ]) halt | .set -u2 %stopreply $true
var %r = $gettok(%vsix.ping. [ $+ [ $nick ] ],1,32)
var %t = $gettok(%vsix.ping. [ $+ [ $nick ] ],2,32)
if ($comchan($nick,0) > 0) && (%r) && (%t) {
echo $color(notice) -e %r * $nick , Ping-Pong: $calc(($ticks - %t) / 1000) seconde(s)
}
haltdef
}
}
#vsixnotices end
menu menubar,status,channel {
-
Notices spécifiques
.Notice &TIME: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice TIME) VSIX.TIME.REQUEST
.Notice &PING: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice PING) VSIX.PING.REQUEST $ctime
.Notice &Version: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice Version) VSIX.VER.REQUEST
.-
.Fonction $upper($group(#vsixnotices))
.. $+ $iif($group(#vsixnotices) == on,$style(1)) $+ ON: .enable #vsixnotices
.. $+ $iif($group(#vsixnotices) != on,$style(1)) $+ OFF: .disable #vsixnotices
}
menu nicklist {
-
Notices spécifiques
.Notice &TIME: .NOTICE $$1 VSIX.TIME.REQUEST
.Notice &PING: .NOTICE $$1 VSIX.PING.REQUEST $ctime
.Notice &Version: .NOTICE $$1 VSIX.VER.REQUEST
.-
.Fonction $upper($group(#vsixnotices))
.. $+ $iif($group(#vsixnotices) == on,$style(1)) $+ ON: .enable #vsixnotices
.. $+ $iif($group(#vsixnotices) != on,$style(1)) $+ OFF: .disable #vsixnotices
}
;;; Fin du code des notices spécifiques FlashVSI
;;; Version mise à jour du 04/2008
#vsixnotices on
alias notice {
$iif(!$show,.) $+ NOTICE $1-
if ($upper($2) === VSIX.PING.REQUEST) {
set -u15 % [ $+ vsix.ping. [ $+ [ $$1 ] ] ] $iif($chr(35) isin $active,$active,$comchan($$1,1)) $ticks
echo $color(notice) -ae * Demande d'un test de délais à $$1 ...
haltdef
}
if ($upper($2) === VSIX.TIME.REQUEST) {
echo $color(notice) -ae * Demande d'heure locale à $$1 ...
haltdef
}
if ($upper($2) === VSIX.VER.REQUEST) {
echo $color(notice) -ae * Demande de la version de $$1 ...
haltdef
}
}
On ^*:NOTICE:*:?:{
if ($server != VSIXc) halt
if (($1 === VSIX.TIME.REQUEST) || ($1 == TIME)) {
;ajout de la compatibilité avec ChristianEthics et Soulfly
if (%stopvrequest) halt | .set -u2 %stoptrequest $true
;patch pour les versions de mIRC avant 6.1 car $daylight était calculé par erreur dans $ctime
var %corrected_ctime $ctime | if ($version < 6.1) %corrected_ctime = $calc($ctime - $daylight)
;
if ($1 === VSIX.TIME.REQUEST) .notice $nick VSIX.TIME.REPLY %corrected_ctime $timezone $daylight
else .notice $nick Local Time: $fulldate
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande votre heure locale ...
haltdef
}
if ($1 === VSIX.TIME.REPLY) {
if (%stopvreply) || ($2 !isnum) halt | .set -u2 %stoptreply $true
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
;patch pour les versions de mIRC avant 6.1 car $daylight était calculé par erreur dans $ctime
var %corrected_ctime $2 | if ($version < 6.1) %corrected_ctime = $calc($2 + $daylight)
;
var %finaltime = $calc(%corrected_ctime - $3) , %gmt = $gettok($calc($calc($3 / 3600) * -1),1,46) $+ $iif(*.5* iswm $calc($3 / 3600),:30) $+ $iif(*.75* iswm $calc($3 / 3600),:45)
if ($4) %finaltime = $calc(%finaltime + $4)
;patch pour les versions de mIRC avant 6.1 car $daylight n'était pas calculé dans $gmt
if ($version < 6.1) %finaltime = $calc(%finaltime - $daylight)
echo $color(notice) -e %ccs.chan * $nick , heure locale : $gmt(%finaltime,HH:nn:ss) $chr(40) $+ GMT: $iif($3,$iif(- !isin %gmt,+ $+ %gmt,%gmt),inconnu) $+ $chr(41)
haltdef
}
if ($1 === VSIX.VER.REQUEST) {
if (%stopvrequest) halt | .set -u2 %stopvrequest $true
;vous pouvez remplacer $fullname par le nom et/ou la version de votre script
.notice $nick VSIX.VER.REPLY $fullname
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande votre version ...
haltdef
}
if ($1 === VSIX.VER.REPLY) {
if (%stopvreply) halt | .set -u2 %stopvreply $true
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , VERSION: $strip($2-)
haltdef
}
if ($1 === VSIX.PING.REQUEST) {
if (%stoprequest) halt | .set -u2 %stoprequest $true
.notice $nick VSIX.PING.REPLY $2
if ($chr(35) isin $active) && ($nick ison $active) var %ccs.chan = $active
else var %ccs.chan = $comchan($nick,1)
echo $color(notice) -e %ccs.chan * $nick , demande un test de délais ...
haltdef
}
if ($1 === VSIX.PING.REPLY) {
if (%stopreply) || (!%vsix.ping. [ $+ [ $nick ] ]) halt | .set -u2 %stopreply $true
var %r = $gettok(%vsix.ping. [ $+ [ $nick ] ],1,32)
var %t = $gettok(%vsix.ping. [ $+ [ $nick ] ],2,32)
if ($comchan($nick,0) > 0) && (%r) && (%t) {
echo $color(notice) -e %r * $nick , Ping-Pong: $calc(($ticks - %t) / 1000) seconde(s)
}
haltdef
}
}
#vsixnotices end
menu menubar,status,channel {
-
Notices spécifiques
.Notice &TIME: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice TIME) VSIX.TIME.REQUEST
.Notice &PING: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice PING) VSIX.PING.REQUEST $ctime
.Notice &Version: .NOTICE $$input(Entrez le pseudo d'un utilisateur:,129,Notice Version) VSIX.VER.REQUEST
.-
.Fonction $upper($group(#vsixnotices))
.. $+ $iif($group(#vsixnotices) == on,$style(1)) $+ ON: .enable #vsixnotices
.. $+ $iif($group(#vsixnotices) != on,$style(1)) $+ OFF: .disable #vsixnotices
}
menu nicklist {
-
Notices spécifiques
.Notice &TIME: .NOTICE $$1 VSIX.TIME.REQUEST
.Notice &PING: .NOTICE $$1 VSIX.PING.REQUEST $ctime
.Notice &Version: .NOTICE $$1 VSIX.VER.REQUEST
.-
.Fonction $upper($group(#vsixnotices))
.. $+ $iif($group(#vsixnotices) == on,$style(1)) $+ ON: .enable #vsixnotices
.. $+ $iif($group(#vsixnotices) != on,$style(1)) $+ OFF: .disable #vsixnotices
}
;;; Fin du code des notices spécifiques FlashVSI
Notez que ce script est utilisable en l'état, et devrait permettre à votre script / bot / connexion d'être compatible avec les notices spécifiques de FlashVSI, et des autres clients ayant déjà adopté cette option de substitution des ctcps, non autorisées sur VSIXc.