diff --git a/index.html b/index.html index 612f287..89b2dbb 100644 --- a/index.html +++ b/index.html @@ -108,7 +108,7 @@ сломать блок [D]: {x}, {y} нажатие кнопки (список кнопок ниже) [K]: {кнопка}, {нажата ли} отправить сообщение [M]: {сообщение} - корректировка движения [R]: {рандомное айди}, {x}, {y} + корректировка движения [R]: {рандомное айди} сервер отправляет: кикнуть игрока с ошибкой [K]: {ошибка} @@ -122,7 +122,7 @@ отправить мир [W]: {изм. мира}, {изм. мира}, ... отправить все типы блоков: [B]: {тип_1}, ..., {тип_9} отправить сообщение [M]: {сообщение}, {сообщение}, ... - корректировка движения [R]: {рандомное айди}, {время}, {vel_x}, {vel_y} + корректировка движения [R]: {рандомное айди}, {время}, {vel_x}, {vel_y}, {x}, {y} список кнопок которые может отправить игрок через отдельный пакет: ["KeyR", "KeyW", "KeyE", "KeyQ", "KeyS", "KeyZ", "KeyX", "KeyC" diff --git a/script.js b/script.js index cd0c45c..9003345 100644 --- a/script.js +++ b/script.js @@ -409,10 +409,6 @@ class MainPlayer extends Player { this.send_packet("D",x,y) } }) - - setInterval(() => { - this.send_packet("R",Date.now(),this.x,this.y) - }, 100) } recv_packet(packet) { @@ -445,6 +441,8 @@ class MainPlayer extends Player { else player.ping = (player.ping + ping) / 2 player.velocity_x = parseFloat(packet_data[2]) player.velocity_y = parseFloat(packet_data[3]) + player.x = parseFloat(packet_data[4]) + player.y = parseFloat(packet_data[5]) } if (packet_id == "P") { @@ -557,6 +555,8 @@ class MainPlayer extends Player { this.collide() ticksAlive++ + + this.send_packet("R",Date.now()) } render() { diff --git a/server.py b/server.py index 382fa6e..b7aa4a6 100644 --- a/server.py +++ b/server.py @@ -272,9 +272,16 @@ async def handler(websocket: ServerConnection): print(message) if packet_id == "R": - rid, x, y = packet_data + rid = packet_data[0] - writePacket(websocket, "R", [rid, str(current_milli_time()), str(player.vel_x + (x - player.x)), str(player.vel_y + (y - player.y))]) + await writePacket(websocket, "R", [ + rid, + str(current_milli_time()), + str(player.vel_x), + str(player.vel_y), + str(player.x), + str(player.y) + ]) if packet_id == "D": x,y = packet_data