Skocz do zawartości

Potwory w MMO.


Roki

Rekomendowane odpowiedzi

Mam sobie 39dll, całą gre prawie gotową, no i tu problem. Potwory. Mam 5 spritów, potwora co idzie w: góre, dół, lewo, prawo i jak deda. I potrzebuje skrypt respiacy potwora, no i na cały przebieg walki, i wysyłania pozycjii itd.

Kto mi pomoże? Jak można to prosze kod, no i napisane gdzie umieścić.

Potwór niech chodzi w kierunku random, co jakiś czas zmienia.

Odnośnik do komentarza
Udostępnij na innych stronach

I potrzebuje skrypt respiacy potwora, no i na cały przebieg walki, i wysyłania pozycjii itd. [...] Jak można to prosze kod, no i napisane gdzie umieścić.
A może frytki do tego? Nie prosisz przypadkiem za wiele? Toż to jest ćwierć MMORPG robienie całego systemu poruszania się i walki z potworami o.O
Odnośnik do komentarza
Udostępnij na innych stronach

Posłuchaj, zrobienie gry mmo rożni sie znacznie od stwozenia gry zwykłej bo poza tym co trzeba zrobic w normalnej grze tj. nie internetowej trzeba zrobic przesył danych z clienta do serva i z serva do clienta.

Jesli nawet nie wiesz jak wysłać dane i do czego słuzy funkcja sendmessage() i jak sie ją stosuje, i z kad wziasc do niej argument, zostan lepiej przy grach "nie" online.

 

Pozatym zależy teraz z kad wysylasz te dane, jesli z clienta powinno byc :

 

soc = tcpconnect(ip,port,1);

 

A jesli z serva :

 

soc = tcpaccept(stcp,true);

Odnośnik do komentarza
Udostępnij na innych stronach

Ale mam już serwer i klienta, tylko nie wiem dokładnie co jak się robi :P

Wszystko dobrze chodzi, czasami tylko wywala unknown variable x2,y2, ale jak sie da ignore to idzie. Tego Wolfa dałem całe do steepa, a na serwerze nic nie dodawałem. I teraz wywala to od wolfa :crying:

 

 

@EDIT: Co do klienta, mam tak:

servertcp = tcpconnect(global.server, global.port, 1);

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz wysyłac pozycje "wolfa" z twojego clienta do servera a nastepnie od servera do pozostałych graczy, tak aby oni widzieli co robi.

Mowie, masz swietny art yody na temat 39dll, z niego sie wszystkiego dowiesz.

 

 

@ Edit

 

@EDIT: Co do klienta, mam tak:

servertcp = tcpconnect(global.server, global.port, 1);

 

To dobrze, wiec sendmessage na kliencie bedzie wygladac tak :

sendmessage( servertcp );

Odnośnik do komentarza
Udostępnij na innych stronach

Zamieniłem na to servertcp, ale nie wiem czemu jest to samo :/

 

ERROR in

action number 1

of Step Event

for object objWolf:

 

Error in code at line 5:

sendmessage( servertcp );

 

at position 15: Unknown variable servertcp

 

 

@E: A w servie coś powinno być?

Odnośnik do komentarza
Udostępnij na innych stronach

No więc tu jest problem :/ Monster działa, ale serwer wywala ubg'a i przerywa gre :/

Mianowicie chodzi o "Out of bounds" :/

Na serwie dla każdej czynności jest:

global.commands[removeitem] = PCRemoveItem;

global.commands[setvariable] = PCSetVariable;

itd.

A zawartość tego to:

GML
setpos(0);

with(objPlayer)if(id != other.id and map == other.map) sendmessage(sock);

GML
var a;

argument0 = readstring();

argument1 = readint();

a = ds_list_find_index(variables, argument0);

if(a)

{

ds_list_replace(PrntPlayer.variables, a + 1, argument1);

} else {

ds_list_add(variables, argument0);

ds_list_add(variables, argument1);

}

 

A dla gracza:

GML
x = readshort();

y = readshort();

sprite = readbyte();

mode = readbyte();

image = readbyte();

 

I teraz co zrobić dla Wolf'a?

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