-
Postów
1 087 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Hunter
-
tcplisten() powinien zwrocic albo błąd albo socket. zaraz przetestuje u siebie czy to jest w ogóle możliwe. Pozatym nawet jeśli łączy to nie sądze abyś mógł przesłać coś bo do wysyłania pakietów musisz mieć id socketa z tcpaccept. Tak mi sie wydaje.
-
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
chodzi ci o ten kod : GML self._id = SetItemID(); self._rodzaj = 1; global.itemID[self._id] = self._id; var _x,_y,_rodz; _x = mouse_x; _y = mouse_y; _rodz = 1; clearbuffer(); writebyte(13); writeshort(_x); writeshort(_y); writeshort(_id); writeshort(_rodz); with(obj_client) { sendmessage(tcp); } w_eq = 0; w_inv = 0; To jest całe Create Itemu na kliencie. Nic tam wiecej nie ma. -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
u każdego, wydaje mi się ze ten mój kod rozsyła pakiet do klientow tyle razy ile graczy w grze ;/ -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
No dobra, myślę dalej, mozliwosci wykluczone wiec błąd musi być głębiej. A jeszcze takie pytanko jest mozliwe określenie jakie pakiety (a w nich jakie zmienne, tablice) idą do jakiego gracza. Nie chodzi tu o wielkość wiadomosci tylko o konkretne wartosci i nazwy zmiennych. -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
tylko ze wszystko inne chodzi bez problemu, wiadomosci, pokazywanie graczy, potworów i innych pierdułek. ;/ -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
a moze to byc wina tego samego ip ? -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
Ni ma analizowałem zanim napisałem, ale właśnie zauważyłem pewną zbierzność. Gdy mam np. 3 userów w grze tworzy sie juz nie 2 ale 3 lub 6 przedmiotów. -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
Oczywiście ;] -
[39dll] Przedmiot wysyłany kilkakrotnie ;/
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
Pierwszy w Create, drugi to step. Chodz nie wiem czy Nie powinienem z create przenieść do jakiegos buttona. -
Witam, mam mały problemik, zapewne banalny, ale że nie działa to dowodzi tylko o mojej prostocie. No więc do rzeczy, mam problem z robieniem Sklepu. Gdy player kupi jakiś przedmiot tworze go na serwie, a następnie wysyłam: GML self._id = SetItemID(); self._rodzaj = 1; global.itemID[self._id] = self._id; var _x,_y,_rodz; _x = mouse_x; _y = mouse_y; _rodz = 1; clearbuffer(); writebyte(13); writeshort(_x); writeshort(_y); writeshort(_id); writeshort(_rodz); with(obj_client) { sendmessage(tcp); } w_eq = 0; w_inv = 0; I odbieram : GML case 13: var _x,_y,_rodz,_id; _x = readshort(); _y = readshort(); _id = readshort(); _rodz = readshort(); ___i = instance_create(_x,_y,Item); ___i.rodzaj = _rodz; ___i.ID = _id; break; Problem w tym że u playera tworzą sie 2 i więcej przedmioty. Oczywiscie instancje na serwie tworze w evencie ktory wykonuje się raz. Myśle że winą jest tu GML with(obj_client) { sendmessage(tcp); } I wysyła dane po kilka razy do klienta, ale nie wiem jak sobie z tym poradzic. Prosze o pomoc.
-
Przesyłanie ID itemów nie działa (?)
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
Nie pokazuje mi sie show_message('przyjelem'); ale dane ItemID są takie same przy przesłaniu i odbieraniu danych. Sprawdziłem show_message. -
Przesyłanie ID itemów nie działa (?)
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
No jeśli do jutra nie dowiem się co jest nie tak, bede musiał, ale nie sadze zebym miałto jakoś znacznie inaczej napisać niż tak jak jest w obecnej formie -
Przesyłanie ID itemów nie działa (?)
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
i włączona i wyłączona ta opcja nic nie dała ;/, pomysły mi się kończą ;/ -
Przesyłanie ID itemów nie działa (?)
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
Mam 3 obiekty: 1 od inventory, 1 od plecaka i 1 od itemów wiec nie wiem czy to sie ma do robienia kupy obiektów ktorzy niektorzy robia na ten system. Hm zmieniłem nazwe zmiennej, mimo to niedziała, chyba cos zwaliłem z tym systemem przsyłu ID przedmiotów. No więc opisze dokładnie problem: Serwer tworzy Item przypisując mu unikalny ID i wysyła go do pozostałych graczy gdzie obiekt zostaje tworzony i dostaje ID przedmiotu z serwera. Nastepnie probojąc go założyć przesyłany zostaje ID zakładanego przedmiotu do serwera a ten sprawdza go z kazdym obiektem Item czy mają to samo ID. Tyle że najwyraźniej nie mają bo nie wyświetla wiadomości. (sprawdziłem, dane przy wysyle ID z serwa i dane wysyłanego od clienta są TAKIE SAME) Tzn.? -
Przesyłanie ID itemów nie działa (?)
Hunter odpowiedział(a) na Hunter temat w Pytania początkujących
tak to jest błąd ale nie dotyczy mojego problemu ;/ Sprawdziłem wysyłanie zmiennej ID odpowiedzialnej za id itema, i serwer i client wysyła to samo ID wiec jest dobrze. -
Witam, mam dziwny(no moze dla niektorych nie) problem z przesyłaniem danych itemów od Klienta do serwera. Dokładnie chodzi o to że nie przypisuje użytkownikowi ID założonego itemu przez co gracz ubiera go tylko u siebie a na serwie pozostaje ze tak powiem widoczny dla wszystkich mimo ze powinien być w czyimś plecaku. SERWER [OBJ_ITEM] [CREATE] GML _id = -1; rodzaj = -1; w_eq = 0; w_inv = 0; Przyjmowanie danych(podejzewam iż tu jest błąd ale nie jestem pewny) GML case 7: var _itemId,__playerID; _itemId = readshort(); __playerID = readshort(); with (oItem) { if (_id == _itemID) { w_eq = true; w_inv = false; show_message('przyjelem'); with (obj_client) { for (i=0;i<20;i+=1) { if (global.players == __playerID ) { for (j=0;j<90;j+=1) { if ( ItemSlotOnBp == -1) { ItemSlotOnBp[j]=1; } } } } } break; Tworzenie itemów przez serwer i nadawanie mu ID: GML var _x,_y,_rodz,item; _x = argument[0]; _y = argument[1]; _rodz = argument[2]; items = instance_create(mouse_x,mouse_y,oItem); items._id = SetItemID(); items._rodzaj = _rodz; global.itemID[items._id] = items._id; with ( items ) { clearbuffer(); writebyte(13); writeshort(_x); writeshort(_y); writeshort(_id); writeshort(_rodz); with(obj_client) { sendmessage(tcp); } } plus skrypt SetItemID(): GML for (i=0;i<400;i+=1) { if (global.itemID == -1) { return i; } } CLIENT: Podnoszenie itemów i wysyłanie ich: GML var ID; ID = argument[0]; for (j=0;j<global.ilosc_y;j+=1) { for (i=0;i<global.ilosc_x;i+=1) { if ( global.BpSlot[i,j] == -1 ) { self.x = view_xview[0]+422+32*i; self.y = view_yview[0]+240+32*j; self.w_eq = true self.position_x = 422+32*i; self.position_y = 240+32*j; self.depth = -10001; self._draw = false; //show_message('I: '+string(i)); //show_message('J:'+string(j)); global.BpSlot[i,j] = ID; //show_message(string(ID)); clearbuffer(); writebyte(7); writeshort(ID); writeshort(global.myid); sendmessage(global.clienttcp); break; } } if !(i==global.ilosc_x) { break; } else { continue; } } Odbieranie stworzonego itema : GML case 13: var _x,_y,_rodz,_id; _x = readshort(); _y = readshort(); _id = readshort(); _rodz = readshort(); ___i = instance_create(_x,_y,Item); ___i.rodzaj = _rodz; ___i.ID = _id; break; To chyba wszystko, puki co nie wiem o co kaman, bo noc ciemna i brak wiedzy ;] Licze na waszą szybką pomoc gdyż z projektem stać w miejscu mi szkoda.
-
Pokaż cały kod odpowiedzialny za wysyłanie danych playera i odbieranie ich :)
-
Oj wierz mi Gnysek ze niektórzy wysyłają =)
-
rozumiem ze wysyłasz dane w stepie/alarmie lub innym evencie a odbierasz w stepie ?
-
Lub uzywa zmiennej lokalnej ale hp odejmuje w innym obiekcie który adresując ustala zmienną lokalną we wszystkich robakach. Najlepiej adresować moby po ich id. Tak jak powiedział Nobody, lub też tak : [step] GML if (maxexp<=exp) { show_message('lvl: '+string(lvl)); maxexp = exp*3 } Chociaz bez sensu jest sprawdzać to co step, radził bym ci to robić przy kazdym dodaniu expa tak aby gra była wydajniejsza. Mozesz operować tak na 1 zmiennej do wszytskich poziomow jakie bedziesz chciał wyświetlić. Pomyśl sam, nie ebde pisał wszytskiego za ciebie ;) . Praca domowa :P . Wystarczy zmienna która bedzie sprawdzac czy przedmiot jest w plecaku, jesli warunek bedzie nieprawdziwy wystarczy zrobic tak: GML if !(warunek_ze_w_plecaku_jest_item) { x = view_xview[0] + iles; y = view_yview[0] + iles; } Poszukaj w dziale skrypty i przykłady tego, na pewno było.
-
nietoperze tez praktycznie nie widzą oczami a jednak dobrze im idze polowanie, nie trzeba mieć dobrego wzroku żeby widzieć . Chociaż teraz kłucimy sie o bzdet w ogóle nie istotny
-
Mam pytanie, czy puki co zrobione jest tylko sterowanie Ludźmi czy już może można grać aliensami? Jestem ciekaw jak to bedzie wyglądało, czy aliensy też bedą miały tak ciemno? Tzn. bedą miały zaciemnione pokoje w których nie bedzie lamp? Bo coś mi sie zdaje ze w filmach "one" widziały lepiej niż ludzie w ciemnościach :).
-
tylko twój kod na strzał nikas nie ma względu na odległość strzelającego do gracza ;]
-
użyj alarmów https://gmclan.org/index.php?czytajart=64