From 8d0bcf6599fea56430b2d7db1118f4de8ef081c3 Mon Sep 17 00:00:00 2001 From: Rivulet Date: Wed, 24 Dec 2025 21:42:06 +0000 Subject: [PATCH] i tried --- entrypointclient.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/entrypointclient.lua b/entrypointclient.lua index cd743ac..5980f8b 100644 --- a/entrypointclient.lua +++ b/entrypointclient.lua @@ -1,4 +1,4 @@ -local max_distance = 220 +local max_distance = {} local pullEvent = os.pullEventRaw local modem = peripheral.find("modem",function (s) return peripheral.wrap(s).isWireless() end) @@ -11,11 +11,12 @@ if not modem then end local message_queue = {} modem.open(15125) -local canidate = {id = -1, distance = max_distance} +local canidate = {id = -1, distance = 764} parallel.waitForAny(function () repeat sleep(0.1) until canidate.id ~= -1 end, function () while true do local _, _, channel, _, msg, distance = pullEvent("modem_message") + max_distance[msg.sender] = math.max(distance,max_distance[msg.sender] or 0) if channel == 15125 then if msg.protocol == "entrypoint_advertise" then if distance < canidate.distance then @@ -36,9 +37,9 @@ local function receive() if msg.protocol == "heartbeat" and msg.target == os.getComputerID() and msg.sender == canidate.id then last_heartbeat = os.epoch("utc") modem.transmit(15125,15125,{protocol="heartbeat_response",sender=os.getComputerID(),target=canidate.id}) - if distance > max_distance then + if distance > (max_distance[msg.sender]or 6)-5 then modem.transmit(15125,15125,{protocol="entrypoint_disconnect",sender=os.getComputerID(),target=canidate.id}) - canidate = {id = -1, distance = max_distance} + canidate = {id = -1, distance = (max_distance[msg.sender]or 6)-5} parallel.waitForAny(function () repeat sleep(0.1) until canidate.id ~= -1 end, function () while true do @@ -78,7 +79,7 @@ end local function connect() while true do if os.epoch("utc") - last_heartbeat > 200 then - canidate = {id = -1, distance = max_distance} + canidate = {id = -1, distance = (max_distance[msg.sender]or 6)-5} parallel.waitForAny(function () repeat sleep(0.1) until canidate.id ~= -1 end, function () while true do