Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

mam pytanie : jak zrobić wyszukiwanie aktywnych serwerów w 39dll?

Chodzi o to że jak wejdę w room_serwery to wyszukuje każdy aktywny serwer oraz ilu graczy i jaka mapa na nim jest.

Taki efekt jest w Dead Planet : Serwery.jpg

Z góry dziękuje za pomoc.

Opublikowano

Każdy serwer zapisuje swoje ip w bazie na stronce, a client te informacje wczytuje :). A jesli chodzi o liczbę online to już proste zapytanie do samego serwera, może też być przechowywana razem z ip.

Opublikowano

Tworzysz skrypt php dodający serwer do bazy. Wywołujesz go w grze jakimś dllem typu GMSock, a informacje o serwie podajesz w GET. np: twojastrona.pl/dodaj.php?nazwa=NazwaSerwera&ip=IP. Serwer został dodany do bazy. Drugi skrypt piszesz tak,aby przetwarzał wyniki i zwracał np. plik z taka zawartością:

Mojserwer

0.0.0.0

Drugiserwer

0.0.0.0

Ściągasz ten pliczek i GMem czytasz po 2 linijki z pliku i masz dostępne serwery w grze.

 

Trochę dziwne rozwiązanie, ale działa i dla początkujących starczy.

Opublikowano

Jeśli chcesz mieć aktualne serwery, to zapisujesz jeszcze date. I dajesz w alarmie serwera wywoływanie jakiejś strony co np 30 min. Jeśli przekroczy czas to wywalasz serw z listy.

Opublikowano

No datę tez można dodać. Jak ma hosting z Cron (w co wątpię) to sobie ustawi wywoływanie skryptu co jakiś czas. W sumie sprawdzanie starych serwerów można też dodać przy dodawaniu nowego lub pobieraniu listy.

Opublikowano

To wysyła info co 15 sec.

Ps: Ściąganie pliku i czytanie go do dziwny(żeby nie powiedzieć głupi) pomysł, lepiej dać skrypt php który wczytuje serwery, a następnie czytać to przez 39dll.

Opublikowano

z ether.dll ściągniesz plik xml wygenerowany ze skryptu php, potem łatwo przeiterujesz po tagach zawierających serwery, oraz możesz jeszcze dać tam dodatkowe info. i jest szybko i prosto i uniwersalnie, bo xmla możesz też na stronie www użyć, albo w rss

:)

Opublikowano
lepiej dać skrypt php który wczytuje serwery, a następnie czytać to przez 39dll.

 

ten sposób z teorii wygląda najlepiej... a mógłbyś dać przykład lub kod?

bo nie znam się na php, na razie jestem na etapie ogarniania HTMLa.

Z góry dzięki.

Opublikowano

Z teorii to najlepiej wygląda sposób podany przez YXE. Jak chcesz swoim to musisz znaleźć hosting oferujący MySQL a skrypty do tego to akurat są proste.

<?php

// dodaj.php
$gameid = 00000; //unikalny game_id twojej gry,zeby ci nikt nie spamowal

if ( isset( $_GET['game_id'] ) )
{
        if ( $_GET['game_id'] == $gameid )
        {
                $nazwa_serwera = $_GET['nazwa'];
                $ip = $_SERVER['REMOTE_ADDR'];

                $db = mysql_connect( 'serwer_bazy', 'nazwa_usera', 'haslo' );
                mysql_select_db( 'serwery', $db );

                $query = "INSERT INTO serwery (nazwa_serwera,ip,data) VALUES ('$nazwa_serwera','$ip',NOW())";
                mysql_query( $query, $db );

                mysql_close( $db );
        }
}

?>

<?php

//generuj ini
$db = mysql_connect( 'serwer_bazy', 'nazwa_usera', 'haslo' );
mysql_select_db( 'serwery', $db );

$query = "SELECT * FROM serwery";
$q = mysql_query( $query, $db );

if ( file_exists( 'serwery.ini' ) )
    {
        unlink( 'serwery.ini' );
    }

$plik = fopen( 'serwery.ini', 'w+' );

while ( $row = mysql_fetch_array( $q ) )
    {
        fwrite( $plik, '[' . $row['id'] . ']' );
        fwrite( $plik, 'nazwa_serwera=' . $row['nazwa_serwera'] );
        fwrite( $plik, 'ip=' . $row['ip'] );
        fwrite( $plik, 'data=' . $row['data'] );
    }

fclose( $plik );
mysql_close( $db );
?>

Pisałem z pamięci ;P

Opublikowano

edie. nie rozumiesz. plik to jest to, co zwraca strona. mówiąc, że ściągamy plik, mamy na myśli, że pobieramy go z sieci, nie zapisujemy z bufora na dysk, bo nie ma po co, ale na tym buforze wykonujemy operacje.

Opublikowano
Z teorii to najlepiej wygląda sposób podany przez YXE. Jak chcesz swoim to musisz znaleźć hosting oferujący MySQL a skrypty do tego to akurat są proste.

Mam taką stronkę, ale nie wiem gdzie tan drugi plik wrzucić, bo pierwszy to podstrona dodaj.php, dobrze zrozumiałem?

Dzięki wszystkim za starania.

Opublikowano

@Hunter:

Drugi nazwij jak chcesz. Wywołuj go przy pobieraniu listy serwerów,a potem pobieraj plik.

 

@ediepl:

Można po prostu użyć GMSQL i to by było najprostsze rozwiązanie bo operujemy na samej bazie danych.

Opublikowano
Drugi nazwij jak chcesz. Wywołuj go przy pobieraniu listy serwerów,a potem pobieraj plik.

eeee..... no właśnie a co z kodem w GM? co dać w serwie i gdzie? A w kliencie?

sorka, ale nie znam się za bardzo, więc pytam.

Opublikowano

edie: ja w etherze sciagam plik xml do bufora i od razu go parsuje i uzywam dane zapisane w tagach, przez co omijam to cale durne zapisywanie na dysk :)

Opublikowano
wykonywanie pliku

mógłbyś to ująć kodem? bo nie rozumię...

 

więc, ktoś mi pomoże?

Jak będe miał dostęp do kompa to skleje przykład.

Bardzo proszę, będe wdzięczny. :)

Przepraszam za doublepost, ale nikt nie odpisuje

 

Posty sklejone

12 godzin to trochę za mało, aby przymknąć na to oko. Tydzień już jest OK - Upomnienie - Uzjel

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...