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