Aide - Recherche - Membres - Calendrier
Version complète : Notices Spécifiques De Flashvsi
CCS Forums > VSIXc Chat > Scripts et Add-Ons pour VSIXc
C•Dryk™
Notices Spécifiques de FlashVSI.

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

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.
C•Dryk™
Les notices spécifiques de FlashVSI ont été mises à jour aujourd'hui pour corriger un problème avec la gestions des fuseaux horaires et de l'heure d'été. Le code modifié se trouve dans le message précédent. Attention: ceci est uniquement réservé aux personnes n'utilisant PAS FlashVSI ou FlashVSI Bot, et permet la compatibilité pour d'autres scripts avec les notices spécifiques de FlashVSI (comme la notice TIME.REPLY par exemple).
C•Dryk™
Les notices spécifiques de FlashVSI ont été mises à jour aujourd'hui, pour corriger un problème lié à une difference de gestion de la commande $gmt entre les versions de mIRC avant 6.1 et les versions 6.1 ou +.
C•Dryk™
Les notices spécifiques de FlashVSI ont été mises à jour aujourd'hui, pour corriger un problème lié à une difference de gestion de la commande $ctime entre les versions de mIRC avant 6.1 et les versions 6.1 ou +.
Ceci une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.