Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    141

Treść opublikowana przez gnysek

  1. albo w draw za x i y podstawić view_xview[0] itd.
  2. GML ini_write_string( 'notatka', doXor( 'notatka1' ) );
  3. Masz, napisałem Ci gotowca na XOR, jest szybszy i krótszy: https://gmclan.org/index.php?czytajart=58
  4. xor :) ładnie zamienia tekst, potem drugi xor go odmienia spowrotem :D
  5. Zasada z THEN jest taka: GML if <costam> then <costam>; if <costam> then { <costam>; <costam>; } if <costam> { <costam>; <costam>; } i tylko tak
  6. Na serwerze jest serwer i gracze, w kliencie jest klient i nic wiecej. Przykład mogę zrobić jutro po południu bo teraz uczę się na matmę.
  7. nie rozumiesz: SERWER nasłuchuje, czy ktoś dołącza, (tcpaccept zwraca socket > -1 ), tworzy nowy obiekt GRACZ i ustawia mu zmienną SOCKET na socket. SERWER nasłuchuje nadal na następnych NOWYCH graczy. TCPACCEPT zwraca > -1 tylko, gdy dołącza ktoś nowy, tych zaakceptowanych już nie zwraca. GRACZ sprawdza w pętli rozmiar wiadomości która przyszła na socket (size = receivemessage( socket );). Jeżeli jest większa od zero, to robi switcha i tam case, a jak nie to break. Jak za długo nie dostanie nic (można dodawać co step ping +1 jak nie doszły dane i ping=0 gdy doszły), to go kasujemy i zamykamy socket. Wazne info. Gdy wyrzucamy gracza z serwera, lub gracz w KLIENCIE rozłącza się z serwerem, NIE WOLNO od razu zamknąć socketa, bo wtedy zamknie się zanim dane zostaną wysłane. Trzeba odczekać ok. 1s i wtedy zamknąć socket z graczem, lub z serwerem.
  8. brakuje na serwerze: socket = tcpaccept( listen, 1 ); if socket { setnagle(socket,true); a = instance_create(0,0,objKlient); a.socket = socket; } a kod step z serwera, trzeba przenieść do objektu graczy bodaj
  9. I nie zmieniłeś tego, o czym mówiłem. Teraz serwer wcale nie nasłuchuje na graczy. Nie mam czasu poprawić dzisiaj, ale jak nikt się tym nie zajmie to spróbuje jutro.
  10. Tylko mnie nie kuś, we wtorek mam egzamin. Chyba, że potestuję, to od środy nie mam co chodzić na studia :P
  11. Haha, skąd wiesz? Może po prostu też nie mogę powiedzieć ? :P
  12. wiec to by chyba musiało być tak: step serwera: GML socket = tcpaccept( listen, 1 ); if socket { setnagle(socket,true); a = instance_create(0,0,objKlient); a.socket = socket; } step serwera, objKlient: GML while (true) { size = receivemessage( socket ); if ( size <= 0 ) break; packet = readbyte(); switch ( packet ) { /*case*/ } // tutaj także pakiet z pozycją, nickiem itd., jak będą złe, to usuwamy gracza i rozłączamy // itd... } jak to nie dziala, to juz nie wiem, przepisałem Ci prawie Almorę, obciąłem tylko sprawdzanie wersji klienta i liczby graczy :P
  13. Ale wiesz co, w Almorze mam np. tak, że serwer jak przyjmuje nowego gracza ( tcpaccept() ), to ustawia tylko setnagle( socket , true); i tworzy klienta i to on w stepie zajmuje się odbieraniem pozycji: GML while (true) { size = receivemessage( socket ); if ( size <= 0 ) break; packet = readbyte(); switch ( packet ) // itd.</span></span> Edit: jak masz tcpaccept to tam masz socket nowego połączenia, więc ten step serwera nie działa już po tym jak gracz się połączy.
  14. create gracza: GML dllinit( 0, true, false ); x = random( 300 ); y = random( 300 ); name = get_string( "Podaj nazwę gracza:", "nowy_gracz" ); //tcp = tcpconnect( get_string( "Podaj ip serwera:", "localhost" ), 123, true ); socket = tcpconnect( get_string( "Podaj ip serwera:", "localhost" ), 123, true ); //if ( !tcpconnected( tcp ) ) if ( !socket ) { show_message( "Nie udało się połączyć z serwerem!" ); dllfree(); game_end(); exit; } myid = -1; //socket = tcpaccept( tcp, true ); clearbuffer(); writebyte( 0 ); writestring( name ); writeint( x ); writeint( y ); sendmessage( socket );
  15. A co byś chciał? Kolejnego Quake'a ? Binarki masz w sieci, pozmieniaj sobie i tyle.
  16. A jak to są wyniki meczów, to w sumie nawet RSS wystarczy, to też taki XML, tylko specyficzny.
  17. A sprawdziłeś, czy problem nadal występuje po poprawieniu ? Bo nie wiem czy zagłębiać się dalej czy nie.
  18. Wczoraj odbył się pierwszy nieoficjalny test pod długiej już przerwie. Graliśmy po raz pierwszy z nowym sterowaniem ( mysz + wsad ). Wydaje mi się, że takie sterowanie jest nieco lepsze. Poza tym, nie było większych zmian (nom, GUI które pokazywał już Borek i większa czcioneczka), w wersji którą testowaliśmy. Ahh i był test radaru :D Zarąbista sprawa, widać gdzie są Twoi, możesz iść i im pomóc. Fajnie działają też rangi (Borek miał chyba nawet +7, a ranga jest chyba za dwa zabicia... to coś koło 15?). Nie wiem ile Borek ma dodatkowo w zanadrzu, ale on lubi się tajniaczyć i nie puszcza pary z ust, więc możliwe, że w samej grze są już jakieś tryby etc.
  19. GM7 na bank w EXE ma czcionki (dla tego wybiera się od której do której literki potrzeba)
  20. co? := to w delphi =, więc i tutaj.
×
×
  • Dodaj nową pozycję...