From b38aefb8596b4b2c0705be731cfb0c4dc57b12f5 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 24 Aug 2021 19:54:49 -0500 Subject: [PATCH] Receive comms from radios on ground nearby --- scripts/server/item/walkie-talkie.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/scripts/server/item/walkie-talkie.js b/scripts/server/item/walkie-talkie.js index 8609994c..93379acf 100644 --- a/scripts/server/item/walkie-talkie.js +++ b/scripts/server/item/walkie-talkie.js @@ -28,7 +28,7 @@ function getPlayerActiveWalkieTalkieFrequency(client) { function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) { walkieTalkieOutgoingToNearbyPlayers(transmittingPlayer, messageText); - let clients = getClients(); + let clients = getServerData().items; for(let i in clients) { if(isPlayerSpawned(clients[i])) { if(!isSamePlayer(transmittingPlayer, clients[i])) { @@ -40,6 +40,17 @@ function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) { } } } + + let items = getServerData().items; + for(let i in items) { + if(items[i].enabled) { + if(getItemTypeData(items[i].itemTypeIndex).useType == VRR_ITEM_USETYPE_WALKIETALKIE) { + if(items[i].value == radioFrequency) { + walkieTalkieIncomingToNearbyPlayers(null, messageText, items[i].position); + } + } + } + } } // =========================================================================== @@ -53,10 +64,15 @@ function walkieTalkieOutgoingToNearbyPlayers(client, messageText) { // =========================================================================== -function walkieTalkieIncomingToNearbyPlayers(client, messageText) { +function walkieTalkieIncomingToNearbyPlayers(client, messageText, position = null) { + let prefix = `${getInlineChatColourByName("lightGrey")}(Radio)`; + if(client != null) { + prefix = `${getCharacterFullName(client)} ${getInlineChatColourByName("lightGrey")}(from radio)`; + } + let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().walkieTalkieSpeakerDistance); for(let i in clients) { - messagePlayerNormal(clients[i], `[#CCCCCC]${getCharacterFullName(client)} ${getInlineChatColourByName("lightGrey")}(from radio): ${getInlineChatColourByName("white")}${messageText}`); + messagePlayerNormal(clients[i], `[#CCCCCC]${prefix}: ${getInlineChatColourByName("white")}${messageText}`); } }