diff --git a/scripts/server/item/walkie-talkie.js b/scripts/server/item/walkie-talkie.js index 199ae3f2..9cd3fd8b 100644 --- a/scripts/server/item/walkie-talkie.js +++ b/scripts/server/item/walkie-talkie.js @@ -5,135 +5,4 @@ // FILE: walkie-talkie.js // DESC: Provides features and usage for the walkie-talkie item type // TYPE: Server (JavaScript) -// =========================================================================== - -function getPlayerActiveWalkieTalkieFrequency(client) { - let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, V_ITEM_USE_TYPE_WALKIETALKIE); - - if (walkieTalkieSlot != -1) { - if (getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot])) { - if (getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) { - return getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).value; - } - } - } - - return false; -} - -// =========================================================================== - -function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) { - walkieTalkieOutgoingToNearbyPlayers(transmittingPlayer, messageText); - - //let clients = getServerData().items; - //for(let i in clients) { - // if(isPlayerSpawned(clients[i])) { - // if(!isSamePlayer(transmittingPlayer, clients[i])) { - // if(getPlayerActiveWalkieTalkieFrequency(clients[i]) == radioFrequency) { - // if(getItemData(getPlayerData(clients[i]).hotBarItems[getPlayerFirstItemSlotByUseType(clients[i], V_ITEM_USE_TYPE_WALKIETALKIE)]).enabled) { - // walkieTalkieIncomingToNearbyPlayers(clients[i], messageText); - // } - // } - // } - // } - //} - - let items = getServerData().items; - for (let i in items) { - if (items[i].enabled) { - if (getItemTypeData(items[i].itemTypeIndex).useType == V_ITEM_USE_TYPE_WALKIETALKIE) { - if (items[i].value == radioFrequency) { - walkieTalkieIncomingToNearbyPlayers(null, messageText, getItemPosition(i)); - } - } - } - } -} - -// =========================================================================== - -function walkieTalkieOutgoingToNearbyPlayers(client, messageText) { - let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); - for (let i in clients) { - messagePlayerNormal(clients[i], `[#CCCCCC]${getCharacterFullName(client)} {ALTCOLOUR}(to radio): {MAINCOLOUR}${messageText}`); - } -} - -// =========================================================================== - -function walkieTalkieIncomingToNearbyPlayers(client, messageText, position = null) { - let prefix = `{ALTCOLOUR}(Nearby radio)`; - if (client != null) { - prefix = `${getCharacterFullName(client)} {ALTCOLOUR}(from radio)`; - } - - let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().walkieTalkieSpeakerDistance); - for (let i in clients) { - messagePlayerNormal(clients[i], `[#CCCCCC]${prefix}: {MAINCOLOUR}${messageText}`); - } -} - -// =========================================================================== - -function setWalkieTalkieFrequencyCommand(command, params, client) { - if (areParamsEmpty(params)) { - messagePlayerSyntax(client, getCommandSyntaxText(command)); - return false; - } - - if (isNaN(params)) { - messagePlayerError(client, `The frequency channel must be a number!`); - return false; - } - - params = toInteger(params); - - if (params < 100 || params > 500) { - messagePlayerError(client, `The frequency channel must be between 100 and 500!`); - return false; - } - - if (!getPlayerActiveItem(client)) { - messagePlayerError(client, `You aren't holding a walkie talkie!`); - return false; - } - - if (!getItemData(getPlayerActiveItem(client))) { - messagePlayerError(client, `You aren't holding a walkie talkie!`); - return false; - } - - if (getItemData(getPlayerActiveItem(client)).enabled) { - if (!doesPlayerHaveKeyBindsDisabled(client) && doesPlayerHaveKeyBindForCommand(client, "use")) { - messagePlayerError(client, `Your walkie talkie is turned off. Press ${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "use")).key)} to turn it on`); - } else { - messagePlayerError(client, `Your walkie talkie is turned off. Type {ALTCOLOUR}/use {MAINCOLOUR}to turn it on`); - } - return false; - } - - getItemData(getPlayerActiveItem(client)).value = params * 100; - messagePlayerSuccess(client, getLocaleString(client, "FrequencyChannelChanged", `Walkie Talkie`, `${getPlayerData(client).activeHotBarSlot + 1}`, `${getItemValueDisplayForItem(getPlayerActiveItem(client))}`)); -} - -// =========================================================================== - -function walkieTalkieChatCommand(command, params, client) { - if (areParamsEmpty(params)) { - messagePlayerSyntax(client, getCommandSyntaxText(command)); - return false; - } - - let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, V_ITEM_USE_TYPE_WALKIETALKIE); - if (!getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) { - messagePlayerError(client, "Please turn on a walkie talkie first!"); - return false; - } - - walkieTalkieTransmit(getPlayerActiveWalkieTalkieFrequency(client), params, client); - - markPlayerActionTipSeen(client, "RadioCommandAfterEnablingWalkieTalkie"); -} - // =========================================================================== \ No newline at end of file