[PHP library] Game Server Query

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

Post Reply
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

09 May 2019, 18:37

Salutare! Stiu ca prin comunitatea asta sunt multi care au avut o versiunea a script-ului meu (phpGameTracker) sau au detinut alte site-uri de genul. Script-ul meu ca si multe altele folosea libraria GameQ 3, o librarie open-source.

Ideea este ca din pacate librarie este slab intretinuta, chiar daca in jurul ei s-a format o mica comunitate. Ea este foarte greu de modificat (dpdv extindere - inheritance) si rezultatele intoarse de aceasta nu au o consistenta. Am petrecut ceva ore incercat sa gandesc o varianta mai buna a acesteia, iar astazi am lansat prima versiune pe github. Codul este open-source de asemenea, deci nu este reclama fiindca e ceva moca si nici macar nu e site-ul meu.

Am sa va las cateva link-uri mai jos. Daca este cineva interesat sa o instaleze si sa o testeze, l-as ruga sa vina si cu feedback. In perioada urmatoare o sa import si alte jocuri din GameQ.

Nota: In cazul in care o testati, iar aplicatia nu returneaza un status pozitiv pentru server, incercati sa adaugati si al 4-lea parametru: query_port.

Format standard adresa server: <IP>:<CLIENT_PORT> - client-port este complet diferit de query port!

Link-uri:
- https://packagist.org/packages/gasjki/game-server-query
- https://github.com/Gasjki/GameServerQuery

P.S.: Documentatia este destul de slaba, dar sunt aici pentru informatii suplimentare!
User avatar
Xeno985
Membru, skill 0
Membru, skill 0
Posts: 99
Joined: 05 Jul 2017, 21:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu.
SteamID: 512916512916
Fond eXtream: 0
Location: Ploiesti
Has thanked: 3 times
Been thanked: 1 time
Contact:

10 May 2019, 13:19

Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Click | Afiseaza codul
Bau
Index gaming: Click.
Panel Counter-Strike: Click.
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

10 May 2019, 17:22

Xeno985 wrote:
10 May 2019, 13:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
User avatar
Xeno985
Membru, skill 0
Membru, skill 0
Posts: 99
Joined: 05 Jul 2017, 21:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu.
SteamID: 512916512916
Fond eXtream: 0
Location: Ploiesti
Has thanked: 3 times
Been thanked: 1 time
Contact:

13 May 2019, 20:39

fan_haulin wrote:
10 May 2019, 17:22
Xeno985 wrote:
10 May 2019, 13:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png
Click | Afiseaza codul
Bau
Index gaming: Click.
Panel Counter-Strike: Click.
User avatar
The Kalu
Membru eXtream
Membru eXtream
Posts: 11778
Joined: 09 Oct 2010, 11:39
Detinator Steam: Da
Reputatie: Fost membru Club eXtreamCS (6 luni)
Restrictie moderator permanent
Restrictie schimbare nume
Nume anterior: Terra
Membrul anului 2017
Has thanked: 78 times
Been thanked: 245 times

13 May 2019, 22:28

Xeno985 wrote:
13 May 2019, 20:39
fan_haulin wrote:
10 May 2019, 17:22
Xeno985 wrote:
10 May 2019, 13:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png
include "./src/GameServerQuery/GameServerQuery.php"
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

14 May 2019, 07:45

The Kalu wrote:
13 May 2019, 22:28
Xeno985 wrote:
13 May 2019, 20:39
fan_haulin wrote:
10 May 2019, 17:22


Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png
include "./src/GameServerQuery/GameServerQuery.php"

Nu este vorba de path-ul folosit aici. Ideea e ca libraria aceasta, fata de GameQ depinde de composer pentru a se face autoload. Pot adauga si un autoloader in caz de ceva. Am sa revin cu edit in postul asta in jurul pranzului.

EDIT: Acum am vazut ca nici macar n-ai citit documentatia despre cum se foloseste libraria si ai scris o versiune a ta. Vezi wiki
EDIT: Autoload-ul va fii totusi adaug in librarie in cursul zilei.
User avatar
The Kalu
Membru eXtream
Membru eXtream
Posts: 11778
Joined: 09 Oct 2010, 11:39
Detinator Steam: Da
Reputatie: Fost membru Club eXtreamCS (6 luni)
Restrictie moderator permanent
Restrictie schimbare nume
Nume anterior: Terra
Membrul anului 2017
Has thanked: 78 times
Been thanked: 245 times

14 May 2019, 07:53

Nici eu nu am observat documentatia, credeam ca se include libraria direct si nu ii lua calea catre fisier cum trebuie.
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

14 May 2019, 16:33

Cum sa rulezi script-ul fara composer?

index.php (pe care l-am adaugat in folder-ul root)
Cod sursa | Afiseaza codul
<?php
use GameServerQuery\GameServerQuery;
use GameServerQuery\Protocols\Games\Source\CounterStrikeGlobalOffensive;

require_once 'src/GameServerQuery/autoloader.php';

try {
    $gameServerQuery = new GameServerQuery();

    // Add custom server.
    $gameServerQuery->addServer([
        'protocol'   => CounterStrikeGlobalOffensive::class,
        'ip_address' => '89.40.105.241',
        'port'       => 27015,
    ]);

    // Get result
    $result = $gameServerQuery->execute();

    var_dump($result);
} catch (Exception $exception) {
    var_dump($exception->getMessage());
}

autoloader.php (cred ca nu e o idee stralucita sa il adaug inca librarie) - pentru testare l-am adaugat in /folder/src/GameServerQuery
Cod sursa | Afiseaza codul
<?php

spl_autoload_register(function ($class) {
    $prefix   = 'GameServerQuery\\';
    $base_dir = __DIR__ . DIRECTORY_SEPARATOR;
    $len      = strlen($prefix);
    if (strncmp($prefix, $class, $len) !== 0) {
        // no, move to the next registered autoloader
        return;
    }

    $relative_class = substr($class, $len);
    $file           = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
    if (file_exists($file)) {
        require $file;
    }
});

Codul sursa din autoloader poate sta acolo in continuare sau te poti juca cu $base_dir (e fix cel de la GameQ, l-am updatat putin pentru asta pentru a iti usura viata).
User avatar
L E V I N
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2155
Joined: 24 Aug 2011, 11:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Has thanked: 33 times
Been thanked: 348 times
Contact:

14 May 2019, 17:34

voiam să postez de la început faza cu autoload, da am zis că sunt eu nebun sau prost, faptul că nu-mi mergea:))
înainte să postezi un proiect, mai și testează-l..să fie funcțional într-o proporție cel puțin la fel de bună pe cât merge cel original
iar despre documentație...nu ai făcut nimic special în așa fel încât să ceri altă versiune de php sau alte chestii pe care nu le cere baza
Nu fac nimic contra cost! Faceți cerere bine detaliată aici, pe forum. Nu-mi mai dați add pe Steam doar pentru a mă avea în lista de prieteni.
Am cont și activez doar aici! Aveți grijă la cei ce încearcă să mă copieze..Puteți lua legătura cu mine dacă aveți o problemă/nelămurire în acest caz.
* Inactiv momentan.
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

14 May 2019, 17:42

L E V I N wrote:
14 May 2019, 17:34
voiam să postez de la început faza cu autoload, da am zis că sunt eu nebun sau prost, faptul că nu-mi mergea:))
înainte să postezi un proiect, mai și testează-l..să fie funcțional într-o proporție cel puțin la fel de bună pe cât merge cel original
iar despre documentație...nu ai făcut nimic special în așa fel încât să ceri altă versiune de php sau alte chestii pe care nu le cere baza
Proiectul a fost testat inainte de a-l publica. Numai ca eu am zis ca e mult mai bine si util sa il integrez numai cu Composer, dat fiind ca tot e la moda ca toata lumea sa foloseasca framework-uri si sa fie artizani (se stiu baietii cu Laravel :D)

Exact cum am scris si mai sus, nu am vrut sa reinventez roata, iar singurele beneficii aduse au fost refactorizarea codului si rescrierea lui (partiala) astfel incat sa poti adauga filtre mult mai usor (cel mai comun lucru) sau sa iti creezi propria versiune a oricarei clase.

In prezent, pe versiunea actuala a GameQ, singura librarie ce poate fi modificata / extinsa este cea de Query. Atat! Au fost cazuri in doua proiecte precedente cand pentru a scapa de aceasta limitare a trebuit sa renunt la integrarea script-ului cu composer si sa copiez efectiv intreaga librarie in codul meu si sa fac modificarile necesare. :D

Edit: Cat despre versiunea de PHP, cred ca a fost mai mult un exces de zel, dar am luat decizia fiindca PHP 5.6 a atins EOL.
User avatar
L E V I N
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2155
Joined: 24 Aug 2011, 11:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Has thanked: 33 times
Been thanked: 348 times
Contact:

14 May 2019, 18:17

dacă tot vrei să simplifici, fă un global/config în care să definești protocolul dorit ip port etc...
Nu fac nimic contra cost! Faceți cerere bine detaliată aici, pe forum. Nu-mi mai dați add pe Steam doar pentru a mă avea în lista de prieteni.
Am cont și activez doar aici! Aveți grijă la cei ce încearcă să mă copieze..Puteți lua legătura cu mine dacă aveți o problemă/nelămurire în acest caz.
* Inactiv momentan.
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2625
Joined: 08 Jun 2010, 19:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 275 times
Been thanked: 102 times
Contact:

14 May 2019, 19:37

L E V I N wrote:
14 May 2019, 18:17
dacă tot vrei să simplifici, fă un global/config în care să definești protocolul dorit ip port etc...
Am lamurit lucrurile in privat. A fost o neintelegere. :D
Post Reply

Return to “Discutii generale”

  • Information