Yoda Opublikowano 8 Stycznia 2008 Udostępnij Opublikowano 8 Stycznia 2008 Coś zrąbałem chyba przy odbieraniu pozycji czy wysyłaniu, sam nie wiem - po prostu nie działa odbieranie pozycji, i innych zmiennych od klienta :f podaję kod wysyłania zmiennych: GML //ALARM[0] - obj_player_self clearbuffer(); writebyte(2); writebyte(global.myid); writeshort(x); writeshort(y); writeshort(direction); writeshort(image_angle); writeshort(armr_angle); writeshort(arml_angle); writeshort(handr_angle); writeshort(handl_angle); writeshort(head_angle); writeshort(sword_angle); writeshort(global.sprWeapon); writeshort(global.sprShield); writeshort(global.sprHead); writeshort(global.sprArmLeft); writeshort(global.sprArmRight); writeshort(global.sprHandLeft); writeshort(global.sprHandRight); sendmessage(global.clienttcp); alarm[0]=1; Kod odbierania i wysyłania pozycji przez serwer: GML //STEP - obj_client switch(messageid) { case 2: var player, value; value = readbyte(); player = global.players[value]; player.x = readshort(); player.y = readshort(); player.direction = readshort(); player.image_angle = readshort(); player.armr_angle = readshort(); player.arml_angle = readshort(); player.handr_angle = readshort(); player.handl_angle = readshort(); player.head_angle = readshort(); player.sword_angle = readshort(); player.sprWeapon = readshort(); player.sprShield = readshort(); player.sprHead = readshort(); player.sprArmLeft = readshort(); player.sprArmRight = readshort(); player.sprHandLeft = readshort(); player.sprHandRight = readshort(); clearbuffer(); writebyte(5); writebyte(value); writeshort(player.x); writeshort(player.y); writeshort(player.direction); writeshort(player.image_angle); writeshort(player.armr_angle); writeshort(player.arml_angle); writeshort(player.handr_angle); writeshort(player.handl_angle); writeshort(player.head_angle); writeshort(player.sword_angle); writeshort(player.sprWeapon); writeshort(player.sprShield); writeshort(player.sprHead); writeshort(player.sprArmLeft); writeshort(player.sprArmRight); writeshort(player.sprHandLeft); writeshort(player.sprHandRight); with(obj_client) { sendmessage(tcp); } break; ... } i kod odbierania pozycji przez klienta: GML //STEP - obj_client switch (messageid) { case 5: value = readbyte(); player = players[value]; player.x = readshort(); player.y = readshort(); player.direction = readshort(); player.image_angle = readshort(); player.armr_angle = readshort(); player.arml_angle = readshort(); player.handr_angle = readshort(); player.handl_angle = readshort(); player.head_angle = readshort(); player.sword_angle = readshort(); player.sprWeapon = readshort(); player.sprShield = readshort(); player.sprHead = readshort(); player.sprArmLeft = readshort(); player.sprArmRight = readshort(); player.sprHandLeft = readshort(); player.sprHandRight = readshort(); break; ... } Jeżeli to nie wystarcza to mogęe komuś zaufanemu wysłać cały kod :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RPGCreator Opublikowano 10 Stycznia 2008 Udostępnij Opublikowano 10 Stycznia 2008 Klient:Kelner co to jest?? o.O Kelner: A to jest o taki kod: /Update pozycji, wysyłanie do obj_client. clearbuffer(); writebyte(2); writebyte(global.myid); writeshort(x); writeshort(y); writeshort(sprite_index); writeshort(image_speed); writeshort(image_index); writeshort(direction); sendmessage(global.clienttcp); //Powtórka alarm[0] = 1; Ustaw w Alarm 0... Jak coś będzie źle to powiedz :P No wiesz... Lepiej odrazu niż po kolei bo ty masz tak: writeshort(global.sprWeapon); writeshort(global.sprShield); writeshort(global.sprHead); writeshort(global.sprArmLeft); writeshort(global.sprArmRight); writeshort(global.sprHandLeft); writeshort(global.sprHandRight); Wszystko można zrobic w : writeshort(sprite_index); writeshort(image_speed); writeshort(image_index); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cekol Opublikowano 10 Stycznia 2008 Udostępnij Opublikowano 10 Stycznia 2008 Zrób coś takiego jak "Think Debug mode" ;P Czyli w każdym miejscu w kodzie , gdzie ci się wydaje że może nie jest on wykonywany, dawaj show_message("Odebrano") albo show_message("Wysłano") w zależności kodu ;P W odbieraniu danych od clienta, daj taki kodzik, i sprawdź czy w ogóle doszło coś od clienta , czy serwer nie umie wysyłać :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 10 Stycznia 2008 Autor Udostępnij Opublikowano 10 Stycznia 2008 writeshort(global.sprWeapon); writeshort(global.sprShield); writeshort(global.sprHead); writeshort(global.sprArmLeft); writeshort(global.sprArmRight); writeshort(global.sprHandLeft); writeshort(global.sprHandRight); @RPGMaker: Ej koleś nie che cię martwic ale ja te wszystkie sprity rysuję :| Nie mam jedngo sprite_indexa - postać składa się z kilku spritów. @Cekol: patrzyłem tak już - nawet serwer mi nie odpowiadał... nie wiem czy do niego nie dochodzą te wiadomości... :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 10 Stycznia 2008 Udostępnij Opublikowano 10 Stycznia 2008 A ty widzę dalej wysyłasz taką masę bajtów co stepa mając 60 stepów na sekundę, nawet jeśli ci zadziała, to gra będzie mega lagowna xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mistyk Opublikowano 11 Stycznia 2008 Udostępnij Opublikowano 11 Stycznia 2008 @up żrzyna z almory xD dynamiczne rysowanie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi