-
Postów
419 -
Dołączył
-
Ostatnia wizyta
Treść opublikowana przez Piotrek1910
-
Ja polecam Visual Studio 2012. Jest za free. Wiele języków programowania, Wersja polska. Ładny wygląd (tutaj zależy dla kogo. Bo jest w stylu metro).
-
Threef nie chce nic mówić ale koledze chodzi o C++ a nie GML.
-
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
pablo1517, ok. Ja to ogarniałem na przykładach i tutkach od YYG więc nie za bardzo ogarniam niektóre rzeczy. -
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Chodzi ci o przykład? Mi on dobrze działał. -
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Ok :D. Mam nadzieje, że niczego nie skopałem w tłumaczeniu. -
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Tworzysz jeden buffer a potem do nie upychasz. Tu masz linka do typów bufforów. link np. Strona Clienta: GML var buff = buffer_create(256, buffer_grow, 1); buffer_seek(buff, buffer_seek_start, 0); buffer_write(buff, buffer_u8, 1 ); buffer_write(buff, buffer_s16, x); buffer_write(buff, buffer_s16, y); buffer_write(buff, buffer_s16, direction); network_send_packet( client, buff, buffer_tell(buff) ); buffer_delete(buff); //Dobrze by było usunąć ten buffer jak go już wyślemy.</span> Strona serwera: GML //Odbiera dane od clienta. var t_buffer = buffer_create(256, buffer_grow, 1); xx = buffer_read(buff, buffer_s16); yy = buffer_read(buff, buffer_s16); ddirection = buffer_read(buff, buffer_s16); buffer_delete(t_buffer); Wiem może to troche dziwne wygląda. Troche się to różni od 39dll.dll. -
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
BTW. to ostatnio ogarnąłem MMO w Networkingu. Jakoś tam działa. Jak chcecie moge wam wrzucić. -
Ja to robie tak: W create mam zmienną idd i tablice Gracze[32]=0; Potem jak gracz dołącza to: GML Gracze[idd] = instance_create(x,y,obj_other); //Dzięki temu można sterować jednym obiektem jak jest ich tysiące. np. with(Gracze[id]) instance_destroy(); Niszczy dany obiekt. idd++; //Dodaje 1 do id, żeby każdy miał swoje id.</span></span> No i dalej jakiś tam kod.
-
Nie moge odpalić tego bo mam 8.1. Ale widze błąd. Gdy gracz dołącza tworzy instancje obj_hero, i w tym problem. Bo obj_hero jest sterowany przez ciebie. Stwórz jakiś inny obiekt np. obj_other i tam daj sprita tej samej postaci. Po czym w kodzie powinno wyglądać to tak: GML ds_map_add( m, 'id', instance_create( 0, 0, obj_other ) ); Wtedy wszystko będzie dobrze.
-
Najlepiej jak byś dał kod to można było zobaczyć co jest źle. Ale widze, że chyba chodzi o to, że jak ktoś dołączy to tworzy tą samą instancje a nie osobną.
-
Jak już wydasz oficiala to weś dodaj na steam greenlight. Może dostasz się na steam.
-
MaxGaming, bo to dyzmek :D
-
Tak :D. Ale sądzę, że tak jest najlepiej.
-
Tytuł: GameDos Starter 2 Opis: O to druga część moje programu. Poprzednia wersja nie została jakoś za bardzo przyjęte więc postanowiłem napisać ten program od nowa. Nowości: -możliwość konfiguracji, -samouczki, -możliwość stworzenia pliku .exe (z ikoną) zamiast .bat. Download: Framework 4.5 Download Framework 4.0 Download Nie jestem pewny jak działa. Rozmiar pliku: 2,13 MB Autorzy: Programowanie: Piotrek1910 Screeny: Tak wygląda program: Menu konfiguracji: Lista samouczków :D Błędy, bugi, glicze prosze zgłaszać.
-
[c#] Problem z MonoGame
Piotrek1910 odpowiedział(a) na cysior temat w .NET Framework (C#, ASP.NET itp.)
Sądzę, że to jest problem dwóch rzeczy. Windows 8 lub wersji Visual Studio. Pobierz wersje 2012 Visual Studio i wtedy zobacz. -
Przechwycenie konsoli
Piotrek1910 odpowiedział(a) na Utermiko temat w .NET Framework (C#, ASP.NET itp.)
Jak coś napiszesz to najpierw spójrz na date. Po za tym sądzę, że już rozwiązał to. -
Jak rozpakować archiwum zip do określonego folderu?
Piotrek1910 odpowiedział(a) na Darkhog temat w Pytania zaawansowanych
Ja to zrobiłem u sb tak: 1.Włącza się autoupdater (Napisany w C#) 2.Sprawdza czy jest jakaś aktualizacja, jeżeli tak pobiera ją. 3.Włącza gre. -
Jak rozpakować archiwum zip do określonego folderu?
Piotrek1910 odpowiedział(a) na Darkhog temat w Pytania zaawansowanych
Ciekawe jak w batch pobierzesz plik. -
Jak rozpakować archiwum zip do określonego folderu?
Piotrek1910 odpowiedział(a) na Darkhog temat w Pytania zaawansowanych
Nie polecam robić auto-updaterów w game makerze. Ze względu na rozmiar pliku. Program po skompilowaniu z gm 8/8.1 ok 2 mb z Studio ok. 1.5 mb. A w C# ok. 100 kb bez grafiki. -
Użyj funkcji virtual_key_show(id); aby zobaczyć gdzie jest położony dany virtual key.
-
Proruszanie się postaci
Piotrek1910 odpowiedział(a) na slodziaczekzkamera temat w Pytania początkujących
Jeżeli to jest troll no to nara ale jeżeli nie to lepiej żeby autor wysłał swój projekt i wtedy można było by sprawdzić co jest źle. -
Troche cofając się o pare postów nie polecam irandom bo za każdym razem losuje tą samą liczbe. Polecam round ( random (x) )
-
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
BTW. To gdy ogarniałem Networking pisałem sobie to co ogarnąłem w formie kodu. Jest to taki jakby chat. Może się komuś przydać: Download -
[GM:Studio] Networking - Czyli co i jak
Piotrek1910 odpowiedział(a) na Piotrek1910 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Jeżeli to jest wbudowane w program to pewnie działa. Ale nie wiem, bo nie mam eksportu na andka. -
Witam ostatnio ogarnąłem Networking w GM:S i pomyślałem, że komuś może się przydać przykład jak zrobić coś takiego. 1.Co potrzebne?: -Game Maker Studio Free, -Cierpliwość. 2.Tworzymy serwer Na samym początku tworzymy object oServer, dodajemy event Create i wklejamy kod: GML server = network_create_server( network_socket_tcp, 6510, 32 ); //Tworzymy serwer z naszym ip (localhost), portem 6510 i z maksymalną liczbą graczy 32 if( server<0 ) //Na wszelki wypadek upewniamy się czy serwer został stworzony. { show_message("Nie mozna sie polaczyc"); //Jeżeli nie to wyświetla komunikat. game_end(); //I kończy gre } else // Jeżeli jednak udało się stworzyć serwer to { show_message("Pomyslnie utworzono serwer"); //Wyświetla komunikat, że udało się stworzyć serwer. } 3.Tworzymy klienta Teraz tworzymy obiekt oClient i w create wklejamy: GML client = network_create_socket( network_socket_tcp ); //Tworzymy socket server = network_connect( client, "127.0.0.1", 6510 ); //Laczymy sie do serwera ip (localhost), i port (6510) if server < 0 //Tak samo jak przy serwerze { show_message("Nie można się połączyc"); game_end(); } else { show_message("Pomyslnie polaczono!"); } 4.Odbieranie danych od klienta Aby serwer mógł odbierać dane od klienta należy utworzyć mape graczy oraz liste socketów Więc w obiekt oServer w Create wklejamy kod: GML Clients = ds_map_create(); //Tworzmy mape klientów socketlist = ds_list_create(); //Tworzmy liste socketów idd = 0; //Przydatne do rozróżniania graczy</span></span></span></span> Teraz w Event Networking: Wklejamy: GML var eventid = ds_map_find_value(async_load, "id"); if( server == eventid ) { var t = ds_map_find_value(async_load, "type"); //Typ polaczenia (połączył się/rozłączył się) var sock = ds_map_find_value(async_load, "socket"); //Pobieramy jego sock if( t==network_type_connect) //Jezeli ktos dolaczyl { ds_list_add( socketlist, sock ); //Dodajemy do listy idd ++; //Dodajemy 1 do idd ds_map_add( Clients, sock, idd ); //Dodajemy do mapy //idd - przypisujemy mu id show_message("Nowy gracz dolaczyl!"); } else //Jeżeli się rozłączył { var inst = ds_map_find_value(Clients, sock ); //Znajdujemy tego gracza ds_map_delete(Clients, sock ); //Usuwamy go z mapy var index = ds_list_find_index( socketlist, sock ); //Znajdujemy go w liscie ds_list_delete(socketlist,index); //I usuwamy } } else if( eventid!=0) //Jezeli nie rowna sie 0 { var buff = ds_map_find_value(async_load, "buffer"); //Tworzymy buffer var wiadomosc = buffer_read(buff, buffer_string ); //No i odbieramy dane show_message(wiadomosc); //Wyświetlanie wiadomosc //var sock = ds_map_find_value(async_load, "id"); //Przydatne do tego niżej //var inst = ds_map_find_value(Clients, sock ); //Przydatne jeżeli chcemy określić od kogo to zostało wysłane } 5.Odbieranie danych od serwera Aby odbierać dane od serwera należy zrobić tak samo jak powyżej, ale nie trzeba dodawać mapy i listy do create. Wystarczy GML var eventid = ds_map_find_value(async_load, "id"); if( client == eventid ) { var buff = ds_map_find_value(async_load, "buffer"); cmd = buffer_read(buff,buffer_string); show_message(cmd); } Tutaj chyba nie musze tłumaczyć 5.Wysyłanie danych do serwera Wysyłanie jest bardzo proste. Spójrzcie na kod: GML var buff = buffer_create(256, buffer_grow, 1); //Tworzymy buffer buffer_seek(buff, buffer_seek_start, 0); //Czyścimy go buffer_write(buff, buffer_string,get_string("Podaj wiadomosc: ","")); //Wpisujemy do buffera naszą wiadomość network_send_packet( client, buff, buffer_tell(buff) ); //Wysyłamy</span></span></span></span> 5.Wysyłanie danych do clienta Jeżeli chcemy wysłać jakąś wiadomość wszystkim graczą wystarczy: GML var t_buffer = buffer_create(256, buffer_grow, 1); //Tworzymy buffer buffer_seek(t_buffer, buffer_seek_start, 0); //Czyścimy go buffer_write(t_buffer , buffer_string,get_string("Podaj wiadomość:","")); //Wpisujemy do buffera naszą wiadomość for (var i = 0; i < ds_list_size(socketlist); i++;) //I wysyłamy do wszystkich graczy { network_send_packet(ds_list_find_value(Clients, i), t_buffer, buffer_tell(t_buffer)); } Jednak jeżeli chcemy wysłać do jednego gracza musimy znać jego id czyli można użyć teraz sock Np. GML buffer_seek(t_buffer, buffer_seek_start, 0); buffer_write(t_buffer, buffer_u8, 3 ); buffer_write(t_buffer , buffer_s8, global.idd); network_send_packet(ds_list_find_value(Clients, global.idd-1), t_buffer, buffer_tell(t_buffer)); Nie wklejacie tego do swojego projektu. Gotowe! Jeżeli wszystko zrobiliście dobrze to powinno działać. Przykład: Download Przykład v2.0 (bez wytłumaczenia i nie ogarnięty troche kod): Download Jeżeli coś nie działa, jakiś bulwers czy po prostu jakaś propozycja pisać w komentarze. #CA14 - Uzjel