Message info serveur jeu dynamique

Résolu
Signaler
Messages postés
11
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
30 septembre 2007
-
Messages postés
6
Date d'inscription
jeudi 25 mai 2006
Statut
Membre
Dernière intervention
27 novembre 2008
-
bonjour a tous.
je suis un nouveau en scripting irc (j'ai fais des scripts a la con)...bref
je voulais savoir s'il était possible de récupérer les infos d'un serveur cs1.6 pour les afficher dans le chan :
par exemple : quelqu'un ecris !serveur eh hop : ip du serveur, le ping, le nombre de joueurs...ect

pour info, j'ai fais ceci : (le probleme, c'est que ce n'est pas dynamique, et je ne peux pas afficher toutes les infos....:s)

on *:text:*:#mon_chan:{
  if (serveur isin $1-) { msg #mon_chan �3;Serveur ??? on a dit serveur ? | msg #mon_chan Nom du serveur : ma super description | msg #mon_chan Ip du serveur : ip }
}
(c'est naze^^)

bref, si vous pouviez m'orienter, ce serait sympas :)

9 réponses

Messages postés
266
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

on 1:udpread:iserv*:{
  var %scan.time2 $ticks
  bset &Svr.Details 1 0
  sockread -fn &Svr.Details
  var %svrdetails 255 255 255 255 109
  if ( $bvar(&Svr.Details,1,5) = %svrdetails ) {
    var %i 6
    if ($bvar(&Svr.Details,6).text isnum) {
      while ( $bvar(&Svr.Details ,%i) != 0 ) {
        var %svr.ip = %svr.ip $+ $bvar(&Svr.Details ,%i).text
        inc %i
      }
    }
    else {
      while ( $bvar(&Svr.Details ,%i) != 0 ) {
        inc %i
      }
    }
    if ( 127.0.0.1 isin %svr.ip ) { %svr.ip = $+($sock($sockname).saddr,:,$sock($sockname).sport) }
    inc %i
    while ( $bvar(&Svr.Details ,%i) != 0 ) {
      if ( $bvar(&Svr.Details ,%i) = 32 ) { var %espace 1 | goto namespace }      if ( %espace >1 ) { var %espace 0 | var %svr.name %svr.name $bvar(&Svr.Details ,%i).text }
      else { var %svr.name = %svr.name $+ $bvar(&Svr.Details ,%i).text }
      :namespace
      inc %i
    }
    inc %i
    while ( $bvar(&Svr.Details ,%i) != 0 ) {
      var %svr.map = %svr.map $+ $bvar(&Svr.Details ,%i).text
      inc %i
    }
    inc %i
    while ( $bvar(&Svr.Details ,%i) != 0 ) {
      Var %svr.dir = %svr.dir $+ $bvar(&Svr.Details ,%i).text
      inc %i
    }
    inc %i
    while ( $bvar(&Svr.Details ,%i) != 0 ) {
      if ( $bvar(&Svr.Details ,%i) = 32 ) { var %espace 1 | goto gamespace }      if ( %espace >1 ) { var %espace 0 | var %svr.game %svr.game $bvar(&Svr.Details ,%i).text }
      else { var %svr.game = %svr.game $+ $bvar(&Svr.Details ,%i).text }
      :gamespace
      inc %i
    }
    inc %i
    var %svr.players = $bvar(&Svr.Details ,%i) $+ $chr(47) $+ $bvar(&Svr.Details , $calc(%i +1) )
    echo -a �3;4 %svr.players
    inc %i 2
    if ( $bvar(&Svr.Details ,%i) >= 47 ) {
      var %svr.game2 = STEAM - %svr.game
      var %svr.game = %svr.game2
    }
    else { var %svr.game  WON - %svr.game }
    inc %i 3    if ($bvar(&Svr.Details ,%i) 1) var %svr.password 1
    var %svr.vac = $iif($bvar(&Svr.Details ,$calc($bvar(&Svr.Details,0)-1)),oui,non)
    var %svr.ping $calc(%scan.time2 - %scan.time1)
    sockclose $sockname
    echo -a [------- SCAN SERVER -------]
    echo -a IP : %svr.ip
    echo -a Server : %svr.name
    echo -a Joueurs : %svr.players
    echo -a Map : %svr.map
    echo -a VAC : %svr.vac
    echo -a Password : $iif(%svr.password = 1,oui,non)
    echo -a Jeu : %svr.game
    echo -a Ping : %svr.ping
  }
}
alias iserv {
  set %scan.time1 $ticks
  sockudp -k iserv IP PORT ÿÿÿÿTSource Engine Query
}


Voilà... Je te laisse modifier pour que cela colle à ton code.
En bleu ce qui t'intéresse.
En rouge ce qu'il faut modifier

--------------------------------
Signature des parents :
Messages postés
266
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

Ton bot est sur plusieurs channel ? Parce que s'il n'est pas, change le "echo" par msg #chan
Sinon... je modifierais un peu le code.

--------------------------------
Signature des parents :
Messages postés
11
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
30 septembre 2007

ok, ca marche niquel !!!

mais débutant en scipt irc, je vouslais savoir, comment tu fais pour savoir ce qu'il faut faire pour récup les valeurs du serv, perso, tu m'aurais pas écris ca, jamais j'aurais su que ces commandes existaient ....
bref, je voudrais en savoir plus ;)

merci encore (k)
Messages postés
11
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
30 septembre 2007

re...
dsl de faire ***** mon monde, mais je n'arrives pas a modifier un détail :
je voudrais modifier ton alias en un évènement text....
mais ca ne marches pas, je comprends pas pourquoi ...:s
ton bout de code modifié :
on *:text:*:#mon_chan:{
 if (!serveur isin $1-) {
 set %scan.time1 $ticks
 sockudp -k !serveur(aussi testé avec iserv) ip port ÿÿÿÿTSource Engine Query
 }
}
Messages postés
11
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
30 septembre 2007

re, bon... je continu mon monologue....
en fait, pour l'évènement text, il faut le mettre avant tout le script qui récupère les valeurs du serveur...
par contre nouveau probleme : comment faire autre chose qu'un "echo" a la fin, en effet, je n'arrives pas a le faire afficher en msg, notice, ect...
Messages postés
11
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
30 septembre 2007

ok c'est cool merci beaucoup :)

mais connaissez vous un site (forum ?) qui apprenne comment bien coder en irc ? ^.^
Messages postés
1
Date d'inscription
samedi 14 juillet 2007
Statut
Membre
Dernière intervention
14 juillet 2007

bonjour,

voila je suis un gros noob au niveau des scripts pour mirc et je voulais utiliser votre script pour recuperer sur le chan les infos de mon serveur dod source mais je sais pas trop comment faire !!!!

Est ce que quelqu'un pourrais m'aider ??
Messages postés
266
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

- DOD/CS SOURCE -

on 1:udpread:iserv*:{
  var %scan.time2 $ticks
  bset &Svr.Details 1 0
  sockread -fn &Svr.Details
  if ( $bvar(&Svr.Details,1,5) = 255 255 255 255 73 ) {
    var %i = 7
    while ( $bvar(&Svr.Details ,%i) != 0 ) {
      if ( $bvar(&Svr.Details ,%i) = 32 ) { var %espace 1 | goto namespace2 }      if ( %espace >1 ) { var %espace 0 | var %svr.name %svr.name $bvar(&Svr.Details ,%i).text }
      else { var %svr.name = %svr.name $+ $bvar(&Svr.Details ,%i).text }
      :namespace2
      inc %i
    }
    inc %i
    var %svr.map = $bvar(&Svr.Details,%i, $bfind(&Svr.Details,%i,0)).text
    var %i = $calc( $bfind(&Svr.Details,%i,0) +1)
    var %svr.dir = $bvar(&Svr.Details,%i, $bfind(&Svr.Details,%i,0)).text
    var %i = $calc( $bfind(&Svr.Details,%i,0) +1)
    var %svr.game = $bvar(&Svr.Details,%i, $bfind(&Svr.Details,%i,0)).text
    var %i = $calc( $bfind(&Svr.Details,%i,0) +1)
    var %svr.id = $bvar(&Svr.Details,%i, $bfind(&Svr.Details,%i,0)).text
    var %i = %i + 2
    echo -a $bvar(&Svr.Details,$calc(%i - 10),$calc(%i + 30))
    var %svr.players = $bvar(&Svr.Details,%i) $+ / $+ $bvar(&Svr.Details,$calc(%i +1))
    inc %i 5
    var %svr.password = $iif($bvar(&Svr.Details,%i),oui,non)
    inc %i
    var %svr.vac = $iif($bvar(&Svr.Details,%i),oui,non)
    var %svr.ip = $+($sock($sockname).saddr,:,$sock($sockname).sport)

    var %svr.ping $calc(%scan.time2 - %scan.time1)
    sockclose $sockname
    echo -a [------- SCAN SERVER -------]
    echo -a IP : %svr.ip
    echo -a Server : %svr.name
    echo -a Joueurs : %svr.players
    echo -a Map : %svr.map
    echo -a Password : %svr.password et Vac : %svr.vac
    echo -a Jeu : %svr.game - %svr.dir
    echo -a Ping : %svr.ping
  }
}
alias iserv {
  set %scan.time1 $ticks
  sockudp -k iserv ip port ÿÿÿÿTSource Engine Query
}

Comme pour le post précédent.
------------------------------------
Signature des parents :
Messages postés
6
Date d'inscription
jeudi 25 mai 2006
Statut
Membre
Dernière intervention
27 novembre 2008

Bonjour,
Si ce n'est pas trop demander serait il possible de faire le meme pour ET ( Ennemy Territory ou wolfenstein svp? je n'arrive pas a adapter mon sockudp pour ET ;s )