Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ADDON PARTIEL | MANAGEUR DE SERVERS COUNTER-STRIKE


Information sur la source

Description

Le voici le voilà le code est un peu en vrac je l'ai pas beaucoup ranger ..
c'est un projet que j'avais entrepris et pas fini car je bloquais sur le tri d'information d'un socket tcp
(encadré dans le code)

pour ce qui est de l'utilise il suffit de taper
/gs
et voilà
les choses qui ne marchent pas sont : le systeme de ban/kick list des joueurs et les infomations du server pour ce qui est du changement de map ou d'execution de commande rcon c'est bon :)!
 

Source

  • alias gs { dialog -m gs gs }
  • dialog gs {
  • title "Gestion Servers Counter-Strike"
  • size -1 -1 233 129
  • option dbu
  • box "Servers Ips:", 1, 1 1 112 70
  • combo 2, 5 20 60 50, size
  • button "Add", 3, 67 20 37 12
  • button "Del", 4, 67 35 37 12
  • button "Edit", 5, 67 50 37 12
  • text "Syntaxe : <IP>:<PORT>", 6, 5 10 62 8
  • box "Propriétés Rcon :", 7, 1 71 112 46
  • edit "rcon?", 8, 4 90 60 10
  • button "set", 9, 65 90 37 10
  • text "Rcon : -", 10, 57 78 40 10
  • check "montrer/cacher", 11, 4 103 60 10
  • button "Fermer", 12, 1 119 231 10
  • tab "Rcon Cmds", 13, 117 1 114 115
  • edit "", 14, 123 32 104 10, tab 13
  • text "Ne pas mettre Rcon devant la commande", 15, 123 22 104 10, tab 13
  • button "Executer", 16, 123 43 104 8, tab 13
  • button "Go", 17, 178 55 37 10, tab 13
  • button "kick", 18, 182 78 37 8, tab 13
  • button "ban", 19, 174 90 16 20, tab 13
  • edit "", 20, 123 55 50 10, tab 13
  • button "Liste maps", 21, 123 65 50 7, tab 13
  • box "Steam ids", 22, 119 73 111 41, tab 13
  • list 23, 122 81 50 29, tab 13 size vsbar
  • edit "", 24, 192 90 15 10, tab 13
  • text "min", 25, 208 91 15 8, tab 13
  • text "0 pour un ban a vie", 26, 193 99 33 13, tab 13
  • tab "Info Server", 27
  • button "Rafraîchir", 28, 152 105 40 10, tab 27
  • text "Nom : ?", 29, 122 26 105 16, tab 27
  • text "Status : ?", 30, 122 44 40 8, tab 27
  • text "Moteur : ?", 31, 122 56 50 8, tab 27
  • text "Jeu : ?", 32, 169 56 50 8, tab 27
  • text "Joueurs : ?", 33, 169 66 40 8, tab 27
  • text "Map : ?", 34, 122 66 46 8, tab 27
  • text "D change Map : ?", 35, 122 76 50 8, tab 27
  • text "Anti cheat : ?", 36, 122 86 40 8, tab 27
  • text "Clé : ?", 37, 169 86 32 8, tab 27
  • text "Server : ?", 38, 122 96 38 8, tab 27
  • text "Os : ?", 39, 169 96 37 8, tab 27
  • box "Informations", 40, 119 17 112 87, tab 27
  • tab "Aide - Cr", 41
  • text "Si vous avez besoin d'aide, les Channels suivants sont a votre disposition :", 42, 123 21 103 15, tab 41
  • text "#karael #karael.pv #mix.cs.fr", 43, 123 39 28 23, tab 41
  • text "Essayer de me contacter sinon tout simplement comme ceci : /msg karael votre probleme correctement et clairement rediger", 44, 123 70 100 29, tab 41
  • text "Cree par Karael", 45, 123 106 45 8, tab 41
  • text "Ping : ?", 46, 74 6 35 8
  • }
  • on *:dialog:gs:*:*:{
  • if ($devent == init) {
  • if (!%gsrconv) { set %gsrconv c }
  • if (%gsrconv == c) { did -ra gs 11 Mot de passe Visible }
  • if (%gsrconv == m) { did -ra gs 11 Mot de passe Cacher }
  • if (%gsserverliste) { r.gsserverliste }
  • r.gsrcon
  • }
  • if ($devent == sclick) {
  • if ($did == 2) { set %gsserverip $did(gs,2) | unset %incgsping | r.gsrcon | r.gsrc }
  • if ($did == 3) {
  • if ($did(gs,2) isin %serverliste) { set %gser Ip déjà utilisée. | dialog -m gs.er gs.er }
  • elseif ($did(gs,2) !isin %serverliste) && ($did(gs,2)) && ((%2poin isin $did(gs,2)) && (%poin isin $did(gs,2))) { set %gsserveradd $did(gs,2) | set %gsserverliste %gsserverliste %gsserveradd | r.gsserverliste | unset %gsserveradd }
  • else { set %gser Syntaxe incorrecte veulliez utiliser : $rand(10,999) $+ . $+ $rand(10,999) $+ . $+ $rand(10,999) $+ . $+ $rand(10,999) $+ : $+ $rand(2000,3000) | dialog -m gs.er gs.er }
  • }
  • if ($did == 4) { set %gsserverliste $remove(%gsserverliste,%gsserverip) | r.gsserverliste | unset %gsrcon [ $+ [ %gsserverip ] ] | unset %gsserverip }
  • if ($did == 5) { echo Bouton Edit : A faire! }
  • if ($did == 9) && (%gsserverip) && ($did(gs,8)) { set %gsrcon [ $+ [ %gsserverip ] ] $did(gs,8) | r.gsrc | r.gsrcon }
  • if ($did == 12) { /dialog -x gs gs | unset %gsserverip | unset %incgsping }
  • if ($did == 28) { s.gt }
  • if ($did == 16) { if ($did(gs,14)) && (%gsserverip) { set %gssend $did(gs,14) | s.gsrcmd } }
  • if ($did == 21) { dialog -m gsmap gsmap }
  • if ($did == 17) && ($did(gs,20)) { set %gssend changelevel [ [ $did(gs,20) ] ] | s.gsrcmd }
  • if ($did == 11) {
  • if (%gsrconv == m) { set %gsrconv c | r.gsrcon }
  • elseif (%gsrconv == c) { set %gsrconv m | r.gsrcon }
  • }
  • }
  • }
  • dialog gsmap {
  • title "Liste des maps"
  • size -1 -1 119 74
  • option dbu
  • combo 1, 6 9 60 56, size
  • text "Liste des Maps", 2, 6 1 59 8
  • button "Add Map", 3, 71 11 37 8
  • button "Del Map", 4, 71 21 37 8
  • button "Ok", 5, 1 65 117 9
  • }
  • on *:dialog:gsmap:*:*:{
  • if ($devent == init) { r.gsmap }
  • if ($devent == sclick) {
  • if ($did == 1) { /did -ra gs 20 $did(gsmap,1) }
  • if ($did == 3) && ($did(gsmap,1)) { set %gsmapliste %gsmapliste $did(gsmap,1) | r.gsmap }
  • if ($did == 4) && ($did(gsmap,1)) { set %gsmapliste $remove(%gsmapliste,$did(gsmap,1)) | r.gsmap }
  • if ($did == 5) { /dialog -x gsmap gsmap }
  • }
  • }
  • alias r.gsmap {
  • set %r.gsm $numtok(%gsmapliste,32)
  • did -r gsmap 1
  • while (%r.gsm) {
  • did -a gsmap 1 $gettok(%gsmapliste,%r.gsm,32)
  • dec %r.gsm
  • }
  • unset %r.gsm
  • }
  • alias s.gsrcmd {
  • sockclose chall
  • sockclose execut
  • set %gsrcmdc %gsserverip $+ cmd
  • set %gsrcmdip $gettok(%gsserverip,1,58)
  • set %gsrcmdport $gettok(%gsserverip,2,58)
  • sockudp -k chall %gsrcmdip %gsrcmdport ÿÿÿÿchallenge rcon
  • }
  • on *:udpread:chall:{
  • sockread -fn %var
  • set %challenge $gettok(%var ,3,32)
  • sockclose $sockname
  • sockudp -k execut %gsrcmdip %gsrcmdport ÿÿÿÿrcon %challenge %gsrcon [ $+ [ %gsserverip ] ] %gssend
  • }
  • on *:udpread:execut:{
  • sockread -fn %rconvar
  • echo -a %rconvar
  • }
  • alias r.gsrcon {
  • if (%gsrcon [ $+ [ %gsserverip ] ]) && (%gsrconv == m) { did -ra gs 8 %gsrcon [ $+ [ %gsserverip ] ] }
  • elseif (%gsrcon [ $+ [ %gsserverip ] ]) && (%gsrconv == c) { did -ra gs 8 ****** }
  • else { did -ra gs 8 Rcon? }
  • }
  • alias r.gsrc { set %gsrc $iif(%gsrcon [ $+ [ %gsserverip ] ] != $null, Ok, Non) | did -ra gs 10 Rcon : %gsrc }
  • alias r.gsserverliste {
  • set %r.gs $numtok(%gsserverliste,32)
  • did -r gs 2
  • while (%r.gs) { did -a gs 2 $gettok(%gsserverliste,%r.gs,32)
  • dec %r.gs }
  • unset %r.gs
  • }
  • dialog gs.er {
  • title "Erreur"
  • size -1 -1 100 40
  • option dbu
  • text "", 1, 1 3 100 17, center
  • button "Fermer", 2, 31 25 30 10
  • }
  • On *:dialog:gs.er:init:*:/did -ra gs.er 1 %gser
  • On *:dialog:gs.er:sclick:2:/dialog -x gs.er gs.er
  • alias s.gt {
  • set %gtsockip 80.248.220.21:27025
  • sockclose %gtsockip
  • sockopen %gtsockip gametiger.com 80
  • }
  • on *:sockopen:%gtsockip:{
  • sockwrite -n %gtsockip GET /search?address=80.248.220.21%3A27025&game=all HTTP/1.1
  • sockwrite -n %gtsockip Host: gametiger.com
  • sockwrite -n %gtsockip Connection: close
  • sockwrite -n %gtsockip $crlf
  • }
  • on *:sockread:%gtsockip:{
  • if ($sockerr) {
  • }
  • #############
  • else {
  • sockread -fn %gtsock
  • set %gtsocks %gtsock
  • set %gtnom <table><tr class="dark"><td colspan=2><center><font color=ffffff><b>Server&nbsp;Details</td></tr><tr><td bgcolor=ccccdd><b>Server&nbsp;Name</td><td><font color=666666><b></b></td></tr>
  • set %gtstatus <tr><td bgcolor=ccccdd><b>Status</td><td><img src=/images/up.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
  • set %gtmoteur <tr><td bgcolor=ccccdd><b>Engine</td><td>&nbsp;</td></tr>
  • set %gtgame <tr><td bgcolor=ccccdd><b>Game</td><td>&nbsp;</td></tr>
  • set %gtmap <tr><td bgcolor=ccccdd><b>Map</td><td>&nbsp;</td></tr>
  • set %gtlastmap <tr><td bgcolor=ccccdd><b>Last&nbsp;Map&nbsp;Change</td><td>&nbsp;ago</td></tr>
  • set %gttypeofserver <tr><td bgcolor=ccccdd><b>Type&nbsp;of&nbsp;Server</td><td></td></tr>
  • set %gtos <tr><td bgcolor=ccccdd><b>OS</td><td></td></tr>
  • set %gtpassword <tr><td bgcolor=ccccdd><b>Password&nbsp;required</td><td></td></tr>
  • set %gtactive <tr><td bgcolor=ccccdd><b>Active/Max&nbsp;Players&nbsp;&nbsp;</td><td><img src=/images/down.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
  • if (%gtnom isin %tgsocks) { /echo -a 29 Nom : $remove(%tgsocks,%gtnom) }
  • if (%gtstatus isin %tgsocks) { /echo -a 30 Status : $remove(%tgsocks,%gtstatus) }
  • if (%gtmoteur isin %tgsocks) { /echo -a 31 Moteur : $remove(%tgsocks,%gtmoteur) }
  • if (%gtgame isin %tgsocks) { /echo -a 32 Jeu : $remove(%tgsocks,%gtgame) }
  • if (%gtmap isin %tgsocks) { /echo -a 34 map : $remove(%tgsocks,%gtmap) }
  • if (%gtlastmap isin %tgsocks) { /echo -a 35 D change Map : $remove(%tgsocks,%gtlastmap) }
  • if (%gttypeofserver isin %tgsocks) { /echo -a 38 Server : $remove(%tgsocks,%gttypeofserver) }
  • if (%gtos isin %tgsocks) { /echo -a 39 Os : $remove(%tgsocks,%gtos) }
  • if (%gtpassword isin %tgsocks) { /echo -a 37 Proteger : $remove(%tgsocks,%gtpassword) }
  • if (%gtactive isin %tgsocks) { /echo -a 33 Joueurs : $remove(%gtsocks,%gtactive) }
  • }
  • ##############################################
  • }
alias gs { dialog -m gs gs }
dialog gs {
  title "Gestion Servers Counter-Strike"
  size -1 -1 233 129
  option dbu
  box "Servers Ips:", 1, 1 1 112 70
  combo 2, 5 20 60 50, size
  button "Add", 3, 67 20 37 12
  button "Del", 4, 67 35 37 12
  button "Edit", 5, 67 50 37 12
  text "Syntaxe : <IP>:<PORT>", 6, 5 10 62 8
  box "Propriétés Rcon :", 7, 1 71 112 46
  edit "rcon?", 8, 4 90 60 10
  button "set", 9, 65 90 37 10
  text "Rcon : -", 10, 57 78 40 10
  check "montrer/cacher", 11, 4 103 60 10
  button "Fermer", 12, 1 119 231 10
  tab "Rcon Cmds", 13, 117 1 114 115
  edit "", 14, 123 32 104 10, tab 13
  text "Ne pas mettre Rcon devant la commande", 15, 123 22 104 10, tab 13
  button "Executer", 16, 123 43 104 8, tab 13
  button "Go", 17, 178 55 37 10, tab 13
  button "kick", 18, 182 78 37 8, tab 13
  button "ban", 19, 174 90 16 20, tab 13
  edit "", 20, 123 55 50 10, tab 13
  button "Liste maps", 21, 123 65 50 7, tab 13
  box "Steam ids", 22, 119 73 111 41, tab 13
  list 23, 122 81 50 29, tab 13 size vsbar
  edit "", 24, 192 90 15 10, tab 13
  text "min", 25, 208 91 15 8, tab 13
  text "0 pour un ban a vie", 26, 193 99 33 13, tab 13
  tab "Info Server", 27
  button "Rafraîchir", 28, 152 105 40 10, tab 27
  text "Nom : ?", 29, 122 26 105 16, tab 27
  text "Status : ?", 30, 122 44 40 8, tab 27
  text "Moteur : ?", 31, 122 56 50 8, tab 27
  text "Jeu : ?", 32, 169 56 50 8, tab 27
  text "Joueurs : ?", 33, 169 66 40 8, tab 27
  text "Map : ?", 34, 122 66 46 8, tab 27
  text "D change Map : ?", 35, 122 76 50 8, tab 27
  text "Anti cheat : ?", 36, 122 86 40 8, tab 27
  text "Clé : ?", 37, 169 86 32 8, tab 27
  text "Server : ?", 38, 122 96 38 8, tab 27
  text "Os : ?", 39, 169 96 37 8, tab 27
  box "Informations", 40, 119 17 112 87, tab 27
  tab "Aide - Cr", 41
  text "Si vous avez besoin d'aide, les Channels suivants sont a votre disposition :", 42, 123 21 103 15, tab 41
  text "#karael #karael.pv #mix.cs.fr", 43, 123 39 28 23, tab 41
  text "Essayer de me contacter sinon tout simplement comme ceci : /msg karael votre probleme correctement et clairement rediger", 44, 123 70 100 29, tab 41
  text "Cree par Karael", 45, 123 106 45 8, tab 41
  text "Ping : ?", 46, 74 6 35 8
}
on *:dialog:gs:*:*:{ 
  if ($devent == init) {
    if (!%gsrconv) { set %gsrconv c }
    if (%gsrconv == c) { did -ra gs 11 Mot de passe Visible }
    if (%gsrconv == m) { did -ra gs 11 Mot de passe Cacher }
    if (%gsserverliste) { r.gsserverliste }
    r.gsrcon
  }
  if ($devent == sclick) {
    if ($did == 2) { set %gsserverip $did(gs,2) | unset %incgsping | r.gsrcon | r.gsrc }
    if ($did == 3) { 
      if ($did(gs,2) isin %serverliste) { set %gser Ip déjà utilisée. | dialog -m gs.er gs.er }   
      elseif ($did(gs,2) !isin %serverliste) && ($did(gs,2)) && ((%2poin isin $did(gs,2)) && (%poin isin $did(gs,2))) { set %gsserveradd $did(gs,2) | set %gsserverliste %gsserverliste %gsserveradd | r.gsserverliste | unset %gsserveradd }
      else { set %gser Syntaxe incorrecte veulliez utiliser : $rand(10,999) $+ . $+ $rand(10,999) $+ . $+ $rand(10,999) $+ . $+ $rand(10,999) $+ : $+ $rand(2000,3000) | dialog -m gs.er gs.er }
    }
    if ($did == 4) { set %gsserverliste $remove(%gsserverliste,%gsserverip) | r.gsserverliste | unset %gsrcon [ $+ [ %gsserverip ] ] | unset %gsserverip }
    if ($did == 5) { echo Bouton Edit : A faire! }
    if ($did == 9) && (%gsserverip) && ($did(gs,8)) { set %gsrcon [ $+ [ %gsserverip ] ] $did(gs,8) | r.gsrc | r.gsrcon }

    if ($did == 12) { /dialog -x gs gs | unset %gsserverip | unset %incgsping }
    if ($did == 28) { s.gt }
    if ($did == 16) { if ($did(gs,14)) && (%gsserverip) { set %gssend $did(gs,14) | s.gsrcmd } }

    if ($did == 21) { dialog -m gsmap gsmap }
    if ($did == 17) && ($did(gs,20)) { set %gssend changelevel [ [ $did(gs,20) ] ] | s.gsrcmd }
    if ($did == 11) {
      if (%gsrconv == m) { set %gsrconv c | r.gsrcon }
      elseif (%gsrconv == c) { set %gsrconv m | r.gsrcon }
    }
  }
}
dialog gsmap {
  title "Liste des maps"
  size -1 -1 119 74
  option dbu
  combo 1, 6 9 60 56, size
  text "Liste des Maps", 2, 6 1 59 8
  button "Add Map", 3, 71 11 37 8
  button "Del Map", 4, 71 21 37 8
  button "Ok", 5, 1 65 117 9
}
on *:dialog:gsmap:*:*:{ 
  if ($devent == init) { r.gsmap }
  if ($devent == sclick) { 
    if ($did == 1) { /did -ra gs 20 $did(gsmap,1) } 
    if ($did == 3) && ($did(gsmap,1)) { set %gsmapliste %gsmapliste $did(gsmap,1) | r.gsmap }
    if ($did == 4) && ($did(gsmap,1)) { set %gsmapliste $remove(%gsmapliste,$did(gsmap,1)) | r.gsmap }
    if ($did == 5) { /dialog -x gsmap gsmap }
  }
}
alias r.gsmap {
  set %r.gsm $numtok(%gsmapliste,32)
  did -r gsmap 1 
  while (%r.gsm) {
    did -a gsmap 1 $gettok(%gsmapliste,%r.gsm,32) 
    dec %r.gsm 
  } 
  unset %r.gsm 
}
alias s.gsrcmd {
  sockclose chall
  sockclose execut
  set %gsrcmdc %gsserverip $+ cmd 
  set %gsrcmdip $gettok(%gsserverip,1,58)
  set %gsrcmdport $gettok(%gsserverip,2,58)
  sockudp -k chall %gsrcmdip %gsrcmdport ÿÿÿÿchallenge rcon
}
on *:udpread:chall:{
  sockread -fn %var
  set %challenge $gettok(%var ,3,32)
  sockclose $sockname
  sockudp -k execut %gsrcmdip %gsrcmdport ÿÿÿÿrcon %challenge %gsrcon [ $+ [ %gsserverip ] ] %gssend
}
on *:udpread:execut:{ 
  sockread -fn %rconvar
  echo -a %rconvar
}

alias r.gsrcon {
  if (%gsrcon [ $+ [ %gsserverip ] ]) && (%gsrconv == m) { did -ra gs 8 %gsrcon [ $+ [ %gsserverip ] ] }
  elseif (%gsrcon [ $+ [ %gsserverip ] ]) && (%gsrconv == c) { did -ra gs 8 ****** }
  else { did -ra gs 8 Rcon? }
}
alias r.gsrc { set %gsrc $iif(%gsrcon [ $+ [ %gsserverip ] ] != $null, Ok, Non) | did -ra gs 10 Rcon : %gsrc }
alias r.gsserverliste {
  set %r.gs $numtok(%gsserverliste,32)
  did -r gs 2 
  while (%r.gs) { did -a gs 2 $gettok(%gsserverliste,%r.gs,32) 
  dec %r.gs } 
  unset %r.gs 
}
dialog gs.er {
  title "Erreur" 
  size -1 -1 100 40 
  option dbu 
  text "", 1, 1 3 100 17, center 
  button "Fermer", 2, 31 25 30 10
}
On *:dialog:gs.er:init:*:/did -ra gs.er 1 %gser
On *:dialog:gs.er:sclick:2:/dialog -x gs.er gs.er
alias s.gt {
  set %gtsockip 80.248.220.21:27025
  sockclose %gtsockip
  sockopen %gtsockip gametiger.com 80
}
on *:sockopen:%gtsockip:{
  sockwrite -n %gtsockip GET /search?address=80.248.220.21%3A27025&game=all HTTP/1.1
  sockwrite -n %gtsockip Host: gametiger.com
  sockwrite -n %gtsockip Connection: close
  sockwrite -n %gtsockip $crlf
}
on *:sockread:%gtsockip:{
  if ($sockerr) {
  }
#############
  else {
    sockread -fn %gtsock
    set %gtsocks %gtsock
    set %gtnom <table><tr class="dark"><td colspan=2><center><font color=ffffff><b>Server&nbsp;Details</td></tr><tr><td bgcolor=ccccdd><b>Server&nbsp;Name</td><td><font color=666666><b></b></td></tr>
    set %gtstatus <tr><td bgcolor=ccccdd><b>Status</td><td><img src=/images/up.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
    set %gtmoteur <tr><td bgcolor=ccccdd><b>Engine</td><td>&nbsp;</td></tr>
    set %gtgame <tr><td bgcolor=ccccdd><b>Game</td><td>&nbsp;</td></tr>
    set %gtmap <tr><td bgcolor=ccccdd><b>Map</td><td>&nbsp;</td></tr>
    set %gtlastmap <tr><td bgcolor=ccccdd><b>Last&nbsp;Map&nbsp;Change</td><td>&nbsp;ago</td></tr>
    set %gttypeofserver <tr><td bgcolor=ccccdd><b>Type&nbsp;of&nbsp;Server</td><td></td></tr>
    set %gtos <tr><td bgcolor=ccccdd><b>OS</td><td></td></tr>
    set %gtpassword <tr><td bgcolor=ccccdd><b>Password&nbsp;required</td><td></td></tr>
    set %gtactive <tr><td bgcolor=ccccdd><b>Active/Max&nbsp;Players&nbsp;&nbsp;</td><td><img src=/images/down.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
    if (%gtnom isin %tgsocks) { /echo -a 29 Nom : $remove(%tgsocks,%gtnom) }
    if (%gtstatus isin %tgsocks) { /echo -a 30 Status : $remove(%tgsocks,%gtstatus) }
    if (%gtmoteur isin %tgsocks) { /echo -a 31 Moteur : $remove(%tgsocks,%gtmoteur) }
    if (%gtgame isin %tgsocks) { /echo -a 32 Jeu : $remove(%tgsocks,%gtgame) }
    if (%gtmap isin %tgsocks) { /echo -a 34 map : $remove(%tgsocks,%gtmap) }
    if (%gtlastmap isin %tgsocks) { /echo -a 35 D change Map : $remove(%tgsocks,%gtlastmap) }
    if (%gttypeofserver isin %tgsocks) { /echo -a 38 Server : $remove(%tgsocks,%gttypeofserver) }
    if (%gtos isin %tgsocks) { /echo -a 39 Os : $remove(%tgsocks,%gtos) }
    if (%gtpassword isin %tgsocks) { /echo -a 37 Proteger : $remove(%tgsocks,%gtpassword) }
    if (%gtactive isin %tgsocks) { /echo -a 33 Joueurs : $remove(%gtsocks,%gtactive) }
  }
##############################################
}

Conclusion

Il y a de grande chance pour que je le termine voir meme le perfectionne cette année.
Si l'envie vous prend de m'aider n'hésitez pas! (contact mp)

je l'ai mis en expert puisqu'il gere les sockets udp.
 

Commentaires et avis

signaler à un administrateur
Commentaire de ISoKa le 28/08/2007 04:46:06

Bonjour,

Si j'ai bien suivi ce code n'est qu'une ebauche de code. de plus le seul point le rendant interessant est pas fait. pourquoi le classer le expert ? des codes avec des sockets y en a d'autres sur ce site et qui sont portant pas en expert meme si c'est un socket udp. de plus le niveau expert à mon sens requiert certaines choses comme l'elegance du code, son achevement, etc... choses qui apparement te manke dans ce code. pour ce qui est du code :
-evite tes if en cascade c'est pas joli ni optimal.
-les "/" ne servent à rien
malheureusement je voi pas trop quoi d'autre à dire vu que seule la partie dialogue a étée traitée apperement completement donc bon on manque un peu de substance pour dire kelke chose. à la limite j'aurai preske vu ca dans le forum pour t'aider à le finir.
je suis dsl que mon post puisse paraitre dur mais bon je ne voi que ca à dire...

signaler à un administrateur
Commentaire de uaip le 28/08/2007 05:47:46

perso, je trouve ca pas trop mal codé :)
ya juste quelques / qui trainent (inutiles).
ensuite, dans "dialog -x pouet pouet" (exemple), le 2em pouet ne sert a rien, il sert juste pour le flag -m donc "dialog -x pouet" suffit.
et la source est-elle entierement de toi ?
car a des moments, tu geres bien l'event dialog avec les $devent et a d'autres tu mets ca :
On *:dialog:gs.er:init:*:/did -ra gs.er 1 %gser
On *:dialog:gs.er:sclick:2:/dialog -x gs.er gs.er
alors que ca suffit :
on *:dialog:gs.er:*:*:{
  if ($devent == init) { did -ra gs.er 1 %gser }
  if ($devent == sclick) && ($did == 2) { dialog -x gs.er }
}
sinon, jai pas testé, mais le code passe bien, même si jaurai remplacé quelques if / else par $iif().
:)

signaler à un administrateur
Commentaire de kaeral le 28/08/2007 11:23:20

Isoka : J'ai mis ce code en expert car je compte le finir :) donc normalment d'ici peut il devrait etre susceptible d'etre en niveau 3.

UAIP : j'ai coder ca il y a 9-10 mois et je fais les verification de routine pour l'optimisation qu'a la fin. Sinon oui tout est de moi.
(je vais deja optimiser les 2-3 trucs que tu as vu)

signaler à un administrateur
Commentaire de uaip le 28/08/2007 12:11:15

tkt, je ne critiquais pas, c'était juste une question.
sinon je ne peux pas trop critiquer, puisque je reste mauais en sockets ^^
donc voila, bonne continuation

ps : IsoKa, ton post n'est pas dur (selon moi), mais encourageant.

signaler à un administrateur
Commentaire de ISoKa le 28/08/2007 15:34:04

j'y pense, fait attention à des trucs genre:
#  while (%r.gs) { did -a gs 2 $gettok(%gsserverliste,%r.gs,32)
# dec %r.gs }
# unset %r.gs
pk tu unset ton %r.gs vu ke tu while sur le fait qu'il existe, dc si tu sors c qu'il existe plus.
idem pour
#  while (%r.gsm) {
# did -a gsmap 1 $gettok(%gsmapliste,%r.gsm,32)
# dec %r.gsm
# }
# unset %r.gsm
ensuite pour :
#  else {
# sockread -fn %gtsock
# set %gtsocks %gtsock
# set %gtnom <table><tr class="dark"><td colspan=2><center><font color=ffffff><b>Server&nbsp;Details</td></tr><tr><td bgcolor=ccccdd><b>Server&nbsp;Name</td><td><font color=666666><b></b></td></tr>
# set %gtstatus <tr><td bgcolor=ccccdd><b>Status</td><td><img src=/images/up.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
# set %gtmoteur <tr><td bgcolor=ccccdd><b>Engine</td><td>&nbsp;</td></tr>
# set %gtgame <tr><td bgcolor=ccccdd><b>Game</td><td>&nbsp;</td></tr>
# set %gtmap <tr><td bgcolor=ccccdd><b>Map</td><td>&nbsp;</td></tr>
# set %gtlastmap <tr><td bgcolor=ccccdd><b>Last&nbsp;Map&nbsp;Change</td><td>&nbsp;ago</td></tr>
# set %gttypeofserver <tr><td bgcolor=ccccdd><b>Type&nbsp;of&nbsp;Server</td><td></td></tr>
# set %gtos <tr><td bgcolor=ccccdd><b>OS</td><td></td></tr>
# set %gtpassword <tr><td bgcolor=ccccdd><b>Password&nbsp;required</td><td></td></tr>
# set %gtactive <tr><td bgcolor=ccccdd><b>Active/Max&nbsp;Players&nbsp;&nbsp;</td><td><img src=/images/down.gif border=0 width=15 height=15 align=left valign=bottom></td></tr>
# if (%gtnom isin %tgsocks) { /echo -a 29 Nom : $remove(%tgsocks,%gtnom) }
# if (%gtstatus isin %tgsocks) { /echo -a 30 Status : $remove(%tgsocks,%gtstatus) }
# if (%gtmoteur isin %tgsocks) { /echo -a 31 Moteur : $remove(%tgsocks,%gtmoteur) }
# if (%gtgame isin %tgsocks) { /echo -a 32 Jeu : $remove(%tgsocks,%gtgame) }
# if (%gtmap isin %tgsocks) { /echo -a 34 map : $remove(%tgsocks,%gtmap) }
# if (%gtlastmap isin %tgsocks) { /echo -a 35 D change Map : $remove(%tgsocks,%gtlastmap) }
# if (%gttypeofserver isin %tgsocks) { /echo -a 38 Server : $remove(%tgsocks,%gttypeofserver) }
# if (%gtos isin %tgsocks) { /echo -a 39 Os : $remove(%tgsocks,%gtos) }
# if (%gtpassword isin %tgsocks) { /echo -a 37 Proteger : $remove(%tgsocks,%gtpassword) }
# if (%gtactive isin %tgsocks) { /echo -a 33 Joueurs : $remove(%gtsocks,%gtactive) }
# }
pk tu set à chaque fois ces variables ? ca serai mieu de les set une bonne fois lors du load, ou alors les passer en var ou mm encore mieu directement ne pas mettre ni set ni var et les poser direct dans ton test vu que tu ne te ser qu'une fois de chacune.

signaler à un administrateur
Commentaire de wims le 28/08/2007 16:08:52

Il set surement ces variables parce que s'il veux debug son code ou même tout simplement le coder, il a p-e besoin de voir ces variables

Il faut pas juger son code puisqu'il le post en tant que "bout de code", même s'il est certe coder bizarement ;/

Et Isoka, ta remarque sur les whiles est fausse, cet exemple le prouve :

//Set %5 5 | while (%5) { echo -a $(%5,0) : %5 ! | dec %5 } | echo -a > %5

On est bien sortis de la while et pourtant %5 existe, elle vaut 0.
Même si c'est très mal codé, (cet exemple est exactement ce qu'il fait dans son code), le unset peu parfois etre utile
Il est clair que passé par une variable local est bcp mieux, mais il arrive des cas (j'en connais) notamment lorsque tu essaye de faire de la récursivité, ou tu ne peux pas pas utilisé de variable local.

signaler à un administrateur
Commentaire de kaeral le 28/08/2007 17:09:41

pour les whiles ca marche tres bien comme c'est je n'ai pas eu de probleme. elles ne me servent qu'a rafraichir les box
comme la dit wims je les aient set pour essayer de regler le probleme sinon jaurais var tout simplement.
ps: uaip javais comprsi que ce n'était qu'une question

signaler à un administrateur
Commentaire de ISoKa le 28/08/2007 17:46:18

pour les while sorry j'savai pas mm si je trouve ca un peu zarb kom truc.

pour les set, oui bien sur pour le debug mais set tt ca sur chak sockread j'trouve quand mm ca un peu violent... meme d'ailleur si on le fait en var j'trouve ca un peu lourd de faire ca sur chak sockread alors qu'il suffirai de se les figer une bonne fois pour tte.

ensuite sur le fait de pas juger le code à partir du moment qu'il poste ca comme une source et expert de surcroit pour moi il s'expose par définition aux jugements. ca srai diff si kom je disai il avait été kestion de poser ca sur le forum. fin bon tt ca c'est un avis perso que je partage entierement avec moi mm ^^

signaler à un administrateur
Commentaire de wims le 28/08/2007 23:26:57

Oui, il est vrai que poster sa source tel quel n'a pas vraiment d'interet, les sources que l'on poste ici, doit etre finis et facile d'utilisation pour un débutant.

Pour ce genre de code, si vous voulez un avis ou prévenir que vous allez finir qqch, posté sur le forum.

Et je suis d'accord, même finis, ta source ne vaut pas le niveau expert ;)

signaler à un administrateur
Commentaire de kaeral le 29/08/2007 00:17:18

Wims kill karael*
okey ca c'est fait :D

signaler à un administrateur
Commentaire de wims le 29/08/2007 01:20:40

Non pas du tout, la source est une bonne idée, ya beaucoup de gens que ça interesse un truc comme ça, mais c'est pas une raison pour mettre ça en expert, il y a des personnes ici qui font mieux et qui post limite en débutant, ou confirmé, et ta source n'exploite pas de truc super compliqué ;)

J'ai juste dis ce que je pensais sur le fait de posté des sources non finis directement ici :)

signaler à un administrateur
Commentaire de xstyled le 29/08/2007 05:23:05

Tient donc, je connais ce personnage ;p.
Tu es aussi sur que sa que tu as fait ce projet tout seul ? si il me semble bien tu as chercher partout pour le réaliser donc 'tout de toi' je n'y crois pas. Puis ensuite c'est vrai que 'expert' est un peu poussé. ce n'est pas parce que le socket est employé qu'il faut en dépendre en faisant aller les grands moyens ;p.
Sinon source plutot sympa qui est déja réalisé sous scriptsurge. Bonne continuation pour la finition.

signaler à un administrateur
Commentaire de kaeral le 29/08/2007 12:23:30

et oui tout de moi les aides que j'ai reçu sont le pret d'un server par les Lp5 et des conseil pour le tri d'information de la socket tcp par Adri3n tant que j'y suis dnas les credits merci aussi a l'aide au développement rcon de steam ... xD
J'ai en effet du me trompé sur le niveau de cette source ^^' une leçon pour ma prochaine.

signaler à un administrateur
Commentaire de S333 le 30/08/2007 00:33:09

Si tu utilises Udp pour le challenge, et pour les requêtes rcon... fais le aussi pour avoir les infos du serveur.

Refais ta source finis là, et n'utilises pas un site pour récupérer les infos... ça serait bête qu'ils changent un petit rien du design et que plus rien ne marche :)

Bonne chance :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

petite addon cs [ par nynja ] Voila, je cherche une addon qui permet de se connecter a un serveur cs a partir de irc, toute les addons que j'ai trouver sont trop complexe trop de c Serveur CS + IRC [ par SaTaNaS40 ] je veux juste quelque-chose de très simple du genre : !serveur Serveur Hostname 0/12 players etc etc .. En fait quand l'utilisateur tape !serveur cel Afficher liste serveur de jeux [ par SaTaNaS40 ] En fait je souhaiterai juste afficher une liste de serveurs de jeux CS plus precisement lorsque un utilisateur ecrit !serveur sur un chan IRC . Quelle Cherche scripteur :) [ par ChAnG-Fu ] Bonjour a tous!C'est ChAnG-Fu, je pense pas que vous vous souvenez de moi :)Je suis actuelement helper sur un serveur irc (irc.netmassif.org) francoph Couleur d'ecriture [ par diament_fox ] Bonjour , voila j'ai un leger probleme avec la remotte de couleur d'ecriture ci -&gt; http://www.ircfr.com/codes/ADDON-COULEUR-SALON-PRIVEE-AMSG-AME_3 Script action cs [ par n3Top ] Bonjour à tous, j'aimerai connaitre le nom et si possible le lien du script utilisé sur le channel eswc.fr pendant celle-ci.Le script décrivait toutes Un nouveau serveur... [ par Mage_magique ] Je voulais m'excuser par avance si ce post est mal placé...si vous voulez delirer sans aucun risque venez nous rejoindre sur panthere.exolia.net port Ouverture serveur IRC [ par Demonalis ] Bonsoir tout le monde, J'ai ouvert un serveur IRC je recherche du monde pour pouvoir lui faire prendre un peu de vie, et je recherche aussi du monde c Création d'un nouveau serveur [ par DINEXIS ] Bonjour à tous ,La pub n'étant pas interdite (il me semble !) sur le forum, je me permets de poster l'adresse du serveur irc que je viens d ouvrir .  Operserv [ par Demonalis ] Bonsoir tout le monde,J'ai récemment installé un serveur IRC.C'est un Ircoderz2 pour ceux qui connaissent.Mon problème est le suivant, je désire insta


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.