Message info serveur jeu dynamique

Résolu
demm0tte Messages postés 11 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 30 septembre 2007 - 7 juin 2007 à 15:43
zeprex Messages postés 6 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 27 novembre 2008 - 15 janv. 2008 à 23:16
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

S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
7 juin 2007 à 21:11
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 :
3
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
8 juin 2007 à 18:47
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 :
3
demm0tte Messages postés 11 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 30 septembre 2007
7 juin 2007 à 22:57
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)
0
demm0tte Messages postés 11 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 30 septembre 2007
7 juin 2007 à 23:24
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
 }
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
demm0tte Messages postés 11 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 30 septembre 2007
8 juin 2007 à 12:35
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...
0
demm0tte Messages postés 11 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 30 septembre 2007
8 juin 2007 à 19:38
ok c'est cool merci beaucoup :)

mais connaissez vous un site (forum ?) qui apprenne comment bien coder en irc ? ^.^
0
ktarthur Messages postés 1 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 14 juillet 2007
14 juil. 2007 à 21:05
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 ??
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
19 juil. 2007 à 19:24
- 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 :
0
zeprex Messages postés 6 Date d'inscription jeudi 25 mai 2006 Statut Membre Dernière intervention 27 novembre 2008
15 janv. 2008 à 23:16
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 )
0
Rejoignez-nous