Skocz do zawartości

MySql + GM


Apox

Rekomendowane odpowiedzi

Czy mógłby mi ktoś wyjaśnić łopatologicznie jak połączyć dziłanie MySql i GM? MySql mam dobrze opanowany (pisałem kiedyś grę w php), ale z GM walczę od niedawna. Moim celem jest gra RPG, która w przyszłości przekwalifikuje się na MMORPG (moje umiejętności odnośnie MMO są bliskie zeru więc na razie zostawiam to w spokoju). Potrzebuję bazy danych i nie wiem jak połączyć te dwie rzeczy (GM i MySql), jak łączyć się z serwerem, jak pytać o argumenty. Serwer MySql stanie na moim kompie.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli masz GM w wersji PRO (zarejestrowanej) możesz używać bibliotek, np GMSql (do bazy MySQL) lub 39dll (wtedy piszesz w php skrypt do odnoszenia sie do bazy danych [lepsze wyjscie bo nie trzymasz hasla do bazy w aplikacji] i odwołujesz się przez zapytania http)...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Należy pamiętać, że większość serwerów MySql może odbierać połączenia tylko z maszyny na której stoi (localhost) zatem z bezpośrednio z GM MySql będzie działał jedynie na własnym komputerze (chyba, że admin publicznego serwera skonfiguruje MySql inaczej, w co wątpię, bo robi się tak dla bezpieczeństwa).

Odnośnik do komentarza
Udostępnij na innych stronach

Pietrek:

Z tego jak to rozumiem to biblioteka daje możliwość odwoływania się z poziomu GM do http? W ten sposób łączę się ze skryptem w php na serwerze i ten odnosi się do MySql? Rozumiem też, że w ten sposób problemu gnyska nie ma (połączenie z MySql nie jest bezpośrednie tylko przez php)?

 

No i czy jest inne wyjście jeśli nie mam GM PRO?

 

gnysek:

O tym już gdzieś na forum czytałem.

Adminem serwera publicznego jestem ja, więc no preoblemo :P

Odnośnik do komentarza
Udostępnij na innych stronach

Pietrek:

Z tego jak to rozumiem to biblioteka daje możliwość odwoływania się z poziomu GM do http? W ten sposób łączę się ze skryptem w php na serwerze i ten odnosi się do MySql? Rozumiem też, że w ten sposób problemu gnyska nie ma (połączenie z MySql nie jest bezpośrednie tylko przez php)?

 

No i czy jest inne wyjście jeśli nie mam GM PRO?

 

gnysek:

O tym już gdzieś na forum czytałem.

Adminem serwera publicznego jestem ja, więc no preoblemo :P

1. Pieter a nie Pietrek :P

2. Tak, z php problem znika, zostaje tylko obmyślić system by nikt go nie nadużywał.

3. bez PRO nie da rady...

Odnośnik do komentarza
Udostępnij na innych stronach

Bez pro jest jedynie możliwe wysłanie zapytania GET otwierając jednocześnie przeglądarke co niezbyt ciekawie wyglądać będzie :]

 

execute_shell('http:/www.serwer.pl/skrypt.php?zmienna=argument')

 

problemem jednak będzie pobranie informacji z bazy.

Podsumowując, UPGRADE TO PRO NOW.

Odnośnik do komentarza
Udostępnij na innych stronach

Doradźcie. Zakładając, że: mam serwer w domu, zewnętrzne IP, stworzony client i server w GM, który wymienia dane przez 39dll, MySql na tym samym serwerze. Użyć gmsql i bezpośrednio łączyć z servera do MySql, czy tak jak wcześniej radziliście łączyć się z MySql przez php (wtedy użyć rm_http?)?

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za wszystkie odpowiedzi, ale mam kolejne pytanie. Wymyśliłem 2 sposoby na przesyłanie np. współrzędnych pomiędzy graczami. Pierwszy pomysł: współrzędne gracza A wysyłane są z clienta do servera, server pobiera dane pozostałych zalogowanych graczy przebywających w tym samym roomie z bazy danych i przesyła do nich współrzędne gracza A. Będzie to chyba skutkowało zbyt dużą ilością zapytań do bazy danych. Drugi sposób opiera się na potraktowaniu servera jak clienta, ale nie wiem czy to zadziała jeśli będzie kilka równorzędnych roomów: współrzędne gracza A wysyłane są z clienta do servera (tutaj serwer działa jak client), server tworzy (przesuwa) gracza A w swoich roomach na danych współrzędnych i zwraca do gracza A współrzędne wszystkich graczy stworzonych w danym roomie. Co sądzicie? Może poradzicie lepsze rozwiązanie?

Odnośnik do komentarza
Udostępnij na innych stronach

Zawsze mnie zastanawiało czemu nie można zrobić wysyłania danych p2p czyli wysyłamy swoje współrzędne na serwer. Serwer robi z tego plik i wysyła do kilku graczy a Ci gracze wysyłają reszcie to by znacznie odciążyło serwa przynajmniej tak mi się wydaje.

Odnośnik do komentarza
Udostępnij na innych stronach

Zawsze mnie zastanawiało czemu nie można zrobić wysyłania danych p2p czyli wysyłamy swoje współrzędne na serwer. Serwer robi z tego plik i wysyła do kilku graczy a Ci gracze wysyłają reszcie to by znacznie odciążyło serwa przynajmniej tak mi się wydaje.

ale tak działają serwery...

Odnośnik do komentarza
Udostępnij na innych stronach

Używam gmsql.dll, ale coś mi nie wychodzi i nie wiem dlaczego. Server działa na tym samym komputerze co baza MySql. Baza danych nazywa się "apox". W bazie istnieje tylko jedna tabela "gracze". W tabeli 3 pola: "id, int, auto_increment", "nick, char(20)" i "haslo, char(20)". Co robię źle?

 

GML
gmsql_init();

gmsql_connect('127.0.0.1:3306','root','******','apox');

gmsql_query("insert into `gracze` (id,nick,haslo) values ("","'+zmienna1+'","'+zmienna2+'")");

 

Edit: Nie wyskakuje żaden błąd, ale w tabeli brak jakiegokolwiek nowego rekordu.

Odnośnik do komentarza
Udostępnij na innych stronach

Nadal mi nie działa, ale zrobiłem taki test:

GML
nick_new = 'apox'

show_message ('1');

haslo_new = 12345

show_message ('2');

gmsql_init();

show_message ('3');

gmsql_connect('127.0.0.1:3306','root','***','apox');

show_message ('4');

gmsql_query("INSERT INTO gracze (id,nick,haslo) VALUES ('','"+nick_new+"','"+haslo_new+"')");

show_message ('wysłano');

 

Wiadomość 1 i 2 się pokazują, później gra się zatrzymuje (czasami wiesza), więc wychodzi na to, że dll nie może się zainicjować. Możliwe, że mam jakiś felerny dll lub skrypty, bo wziąłem je z jakiegoś artykułu. Możecie powiedzieć skąd wziąć pewne dll i skrypty?

 

Edit: Już znalazłem.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę...