תפריט ראשי

תוצאות 1 עד 17 מ 17
  1. #1
    הצטרף בתאריך
    19.10.2006
    הודעות
    3,768
    אין לכם כח להכנס לסטים ולבדוק כמה אנשים יש בשרת ומי?
    אז פה התשובה!

    פשוט שימו את הסקריפט הבא במירק (REMOTE):

    [PHP]; HL server query snippet by Saturn
    ;
    ; usage:
    ; /hlinfo <ip> <port>
    ; /hlplay <ip> <port>

    ; the alias that opens a new socket if you want to get general information about a running CS-server
    alias hlinfo {
    if ($chr(58) isin $1) var %hlinfo.iport $replace($1,$chr(58),$chr(32))
    else var %hlinfo.iport $1-2
    ; using a dynamic socket name so we can use multiple instances at once
    var %sock = $+(hlinfo-,$ticks)
    ; actually open the socket
    sockudp -k %sock %hlinfo.iport $str($chr(255),4) $+ TSource Engine Query
    ; closing the socket after 60seconds if there is no response (else it will be closed by another event (see below))
    .timer $+ %sock 1 60 sockclose %sock
    }

    ; this event will get all data sent back from the server
    on *:UDPREAD:hlinfo-*:{
    ; save it in a binary variable
    sockread -f &reply

    ; set some local variables that we will use below
    var %offset, %name, %map, %game, %num, %max, %ip, %dir

    ; following the protocol, this "m" shows us that we queried a Half-Life 1 server
    if ($chr($bvar(&reply,5)) == m) {
    ; Half-Life 1 info reply

    %offset = 6

    ; save the ip
    %ip = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%ip) + 1)

    ; the same
    %name = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%name) + 1)

    ; the current map
    %map = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%map) + 1)

    ; the game directory
    %dir = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%dir) + 1)

    ; the name of the game
    %game = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%game) + 1)

    ; current and maximum players
    %num = $bvar(&reply,%offset)
    %max = $bvar(&reply,$calc(%offset + 1))
    }

    ; else we get data for a CS:Source game
    else {
    ; Source info reply
    ; we do the same as above
    %offset = 7

    %name = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%name) + 1)

    %map = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%map) + 1)

    %dir = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%dir) + 1)

    %game = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%game) + 1)

    %num = $bvar(&reply,$calc(%offset + 2))
    %max = $bvar(&reply,$calc(%offset + 3))
    }

    ; now we echo all stored details to the active window
    echo -a Info for $sock($sockname).saddr $+ : $+ $sock($sockname).sport
    echo -a Name: %name
    echo -a Map: %map
    echo -a Game: %game
    echo -a Players: %num $+ / $+ %max

    ; and turn off the timer closing the socket
    .timer $+ $sockname off
    ; as we can close it now manually
    sockclose $sockname
    }


    ; this is the alias that will be called from hlplay to open the socket
    alias hlchal {
    ; $1 = ip, $2 = port, $3- = what to call when received
    ; use dynamic socket name as above
    var %sock = $+(hlchal-,$ticks)
    ; open the socket
    sockudp -k %sock $1-2 $str($chr(255),4) $+ W
    ; mark it with the ip and port (and the query we want to call when we've received something from the server)
    sockmark %sock $3- $1-2
    ; and make a new timer to close it after 60 seconds
    .timer $+ %sock 1 60 sockclose %sock
    }

    ; read everything that comes back from the hlchal-* query
    on *:UDPREAD:hlchal-*:{
    ; and save it in the binary variable called &reply
    sockread -f &reply
    ; actually call the alias saved in the sockmark (hlplay_query)
    $sock($sockname).mark $bvar(&reply,6,4)
    ; and turn the timer off because we can close it manually
    .timer $+ $sockname off
    sockclose $sockname
    }

    ; the alias we can call to make everything easier
    ; it will call other aliases to open sockets etc.
    alias hlplay {
    if ($chr(58) isin $1) var %hlplay.iport $replace($1,$chr(58),$chr(32))
    else var %hlplay.iport $1-2
    hlchal %hlplay.iport hlplay_query
    }

    ; the alias that opens the _real_ socket to receive data (everything before was just to challenge the server (read the website mentioned above))
    alias hlplay_query {
    ; set a binary variable
    bset &query 1 255 255 255 255 85 $3-
    ; use dynamic socket names again
    var %sock = $+(hlplay-,$ticks)
    ; open the socket
    sockudp -k %sock $1-2 &query
    ; and turn on the timer closing the socket after 60seconds
    .timer $+ %sock 1 60 sockclose %sock
    }

    ; this event will receive all data from the server as response to our query
    on *:UDPREAD:hlplay-*:{
    ; we save it in &reply
    sockread -f &reply

    ; set some local variables we will use later
    var %i = 1, %num = $bvar(&reply,6), %offset = 7
    var %count = 0, %name, %kills

    ; and echo the number of players
    echo -a Players on $sock($sockname).saddr $+ : $+ $sock($sockname).sport

    ; now we can loop through all player and save some details about them
    while (%i <= %num) {
    inc %offset

    ; the name
    %name = $bvar(&reply,%offset,128).text
    inc %offset $calc($len(%name) + 1)

    ; the kills
    %kills = $bvar(&reply,%offset).long
    if ($isbit(%kills,32)) dec %kills $calc(2^32)
    inc %offset 8

    ; and if there was a player
    if (%name != $null) {
    ; increase the variable that shows us the number of the player
    inc %count
    ; and echo it to the active window with the kills saved above
    echo -a %count $+ . %name - %kills
    }

    ; increase %i so we go on with the next player
    inc %i
    }

    ; if there are no players online, echo it aswell
    if (%count == 0) echo -a No players found!

    ; turn off the timer
    .timer $+ $sockname off
    ; and close the socket manually
    sockclose $sockname
    }
    [/PHP]

    וכדי לקבל מידע על השרת עשו:
    קוד:
    /hlinfo <IP>
    לדוגמא:
    קוד:
    /hlinfo 255.255.255.255:27015
    /hlinfo 255.255.255.255 27015
    (בשתי הצורות זה יעבוד, בתנאי שהשרת קיים ומגיב)
    [נ.ב.: הפקודה קולטת גם מידע על HLTV ועל מספר האנשים שבתוכו]

    וכדי לקבל את רשימת השחקנים בשרת עשו:
    קוד:
    /hlplay <IP>
    לדוגמא:
    קוד:
    /hlplay 255.255.255.255:27015
    /hlplay 255.255.255.255 27015
    תהנו.
    ננג.
    ಠ_ಠ NaNg ಠ_ಠ

    "תן לאדם דג והוא יהיה שבע יום, תלמד אותו לדוג והוא יהיה שבע כל החיים"
    "תן לאדם אש ותחמם אותו במשך הלילה, תצית אדם באש ותחמם אותו במשך שארית חייו"
    שתף ב-Google+

  2. #2
    הצטרף בתאריך
    13.10.2006
    עיר
    חיפה
    הודעות
    8,122
    עכשיו הבנתי איך אתם יודעים את הכמות כל הזמן :Q
    תודה!
    שתף ב-Google+

  3. #3
    הצטרף בתאריך
    25.07.2007
    הודעות
    1,556
    hhhhhhhhhh care
    שתף ב-Google+

  4. #4
    הצטרף בתאריך
    20.02.2007
    עיר
    חיפה
    הודעות
    3,157
    תודה :]
    שתף ב-Google+

  5. #5
    הצטרף בתאריך
    03.04.2007
    הודעות
    1,218
    שתף ב-Google+

  6. #6
    הצטרף בתאריך
    25.06.2007
    הודעות
    351
    THNKS
    שתף ב-Google+

  7. #7
    הצטרף בתאריך
    04.07.2007
    הודעות
    1,042
    wai magnivv..
    שתף ב-Google+

  8. #8
    הצטרף בתאריך
    27.03.2007
    הודעות
    2,424
    nice thx
    שתף ב-Google+

  9. #9
    הצטרף בתאריך
    27.02.2007
    הודעות
    641
    תודה גבר.
    "לעולם אל תתווכח עם אידיוט,
    הוא רק יגרור אותך לרמה שלו ויגבור בעזרת הנסיון"
    שתף ב-Google+

  10. #10
    הצטרף בתאריך
    14.06.2007
    הודעות
    1,187
    thx
    שתף ב-Google+

  11. #11
    הצטרף בתאריך
    03.07.2007
    עיר
    פתח תקוה
    הודעות
    293
    חח חבר שלי שנה מחפש את זה
    תודה גבר גבר
    שתף ב-Google+

  12. #12
    הצטרף בתאריך
    15.07.2007
    הודעות
    503
    TY
    שתף ב-Google+

  13. #13
    הצטרף בתאריך
    20.08.2007
    עיר
    נתניה
    הודעות
    80
    thanks you ?
    שתף ב-Google+

  14. #14
    הצטרף בתאריך
    02.05.2007
    הודעות
    1,553
    10q
    שתף ב-Google+

  15. #15
    הצטרף בתאריך
    23.02.2007
    הודעות
    2,631
    תודה
    שתף ב-Google+

  16. #16
    הצטרף בתאריך
    23.06.2007
    הודעות
    720
    יש ומכיר תודה בכול מקרה.
    שתף ב-Google+

  17. #17
    הצטרף בתאריך
    26.06.2007
    הודעות
    1,072
    tnx
    שתף ב-Google+

הרשמה