[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: 2592
Joined: 08 Jun 2010, 20:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 271 times
Been thanked: 106 times
Contact:

09 May 2019, 19: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!
RoyalServer 2
User avatar
Xeno985
Membru, skill +1
Membru, skill +1
Posts: 206
Joined: 05 Jul 2017, 22:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu
SteamID: 512916512916
Reputatie: Membru Club eXtreamCS (28 Jan - 28 Feb)
Fond eXtream: 0
Location: 127.0.0.1
Discord: nvF4B8A
Has thanked: 12 times
Been thanked: 4 times
Contact:

10 May 2019, 14: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.
👉 Panel Counter-Strike: Click. 👈
👉💎 Shop: Click. 💎👈
👉💻 Filme: Click. 💻👈
👉📧 Contact: Steam 📧👈
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2592
Joined: 08 Jun 2010, 20:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 271 times
Been thanked: 106 times
Contact:

10 May 2019, 18:22

Xeno985 wrote:
10 May 2019, 14: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 +1
Membru, skill +1
Posts: 206
Joined: 05 Jul 2017, 22:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu
SteamID: 512916512916
Reputatie: Membru Club eXtreamCS (28 Jan - 28 Feb)
Fond eXtream: 0
Location: 127.0.0.1
Discord: nvF4B8A
Has thanked: 12 times
Been thanked: 4 times
Contact:

13 May 2019, 21:39

fan_haulin wrote:
10 May 2019, 18:22
Xeno985 wrote:
10 May 2019, 14: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
👉 Panel Counter-Strike: Click. 👈
👉💎 Shop: Click. 💎👈
👉💻 Filme: Click. 💻👈
👉📧 Contact: Steam 📧👈
The Kalu
Fost administrator
Fost administrator
Posts: 13707
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

13 May 2019, 23:28

Xeno985 wrote:
13 May 2019, 21:39
fan_haulin wrote:
10 May 2019, 18:22
Xeno985 wrote:
10 May 2019, 14: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"
Image
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2592
Joined: 08 Jun 2010, 20:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 271 times
Been thanked: 106 times
Contact:

14 May 2019, 08:45

The Kalu wrote:
13 May 2019, 23:28
Xeno985 wrote:
13 May 2019, 21:39
fan_haulin wrote:
10 May 2019, 18: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.
The Kalu
Fost administrator
Fost administrator
Posts: 13707
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

14 May 2019, 08:53

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

14 May 2019, 17: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
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

14 May 2019, 18: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
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2592
Joined: 08 Jun 2010, 20:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 271 times
Been thanked: 106 times
Contact:

14 May 2019, 18:42

L E V I N wrote:
14 May 2019, 18: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
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

14 May 2019, 19:17

dacă tot vrei să simplifici, fă un global/config în care să definești protocolul dorit ip port etc...
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
fan_haulin
Fost moderator
Fost moderator
Posts: 2592
Joined: 08 Jun 2010, 20:35
Detinator Steam: Da
Reputatie: Fost Moderator
Has thanked: 271 times
Been thanked: 106 times
Contact:

14 May 2019, 20:37

L E V I N wrote:
14 May 2019, 19: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
  • Who is online

    Users browsing this forum: No registered users and 407 guests