Use new item use type const naming

This commit is contained in:
Vortrex
2022-06-30 16:33:55 -05:00
parent ff6768d64d
commit beb7e2070c
9 changed files with 176 additions and 171 deletions

View File

@@ -2646,7 +2646,7 @@ function buyFromBusinessCommand(command, params, client) {
} }
let useType = getItemTypeData(getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).itemTypeIndex).useType; let useType = getItemTypeData(getItemData(getBusinessData(businessId).floorItemCache[itemSlot - 1]).itemTypeIndex).useType;
if (useType == VRR_ITEM_USETYPE_WEAPON || VRR_ITEM_USETYPE_TAZER || useType == VRR_ITEM_USETYPE_AMMO_CLIP) { if (useType == VRR_ITEM_USE_TYPE_WEAPON || VRR_ITEM_USE_TYPE_TAZER || useType == VRR_ITEM_USE_TYPE_AMMO_CLIP) {
if (isPlayerWeaponBanned(client) && !isPlayerExemptFromAntiCheat(client)) { if (isPlayerWeaponBanned(client) && !isPlayerExemptFromAntiCheat(client)) {
messagePlayerError(client, getLocaleString(client, "WeaponBanned")); messagePlayerError(client, getLocaleString(client, "WeaponBanned"));
return false; return false;

View File

@@ -363,7 +363,7 @@ function clanChat(client, messageText) {
// =========================================================================== // ===========================================================================
function canPlayerUseMegaphone(client) { function canPlayerUseMegaphone(client) {
if (getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USETYPE_MEGAPHONE) != -1) { if (getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USE_TYPE_MEGAPHONE) != -1) {
if (isPlayerActiveItemEnabled(client)) { if (isPlayerActiveItemEnabled(client)) {
return true; return true;
} }

View File

@@ -193,18 +193,18 @@ let globalConfig = {
geoIPCityDatabaseFilePath: "geoip-city.mmdb", geoIPCityDatabaseFilePath: "geoip-city.mmdb",
randomTipInterval: 600000, randomTipInterval: 600000,
weaponEquippableTypes: [ weaponEquippableTypes: [
VRR_ITEM_USETYPE_WEAPON, VRR_ITEM_USE_TYPE_WEAPON,
VRR_ITEM_USETYPE_TAZER, VRR_ITEM_USE_TYPE_TAZER,
VRR_ITEM_USETYPE_EXTINGUISHER, VRR_ITEM_USE_TYPE_EXTINGUISHER,
VRR_ITEM_USETYPE_SPRAYPAINT, VRR_ITEM_USE_TYPE_SPRAYPAINT,
VRR_ITEM_USETYPE_PEPPERSPRAY, VRR_ITEM_USE_TYPE_PEPPERSPRAY,
], ],
onFootOnlyItems: [ onFootOnlyItems: [
VRR_ITEM_USETYPE_VEHREPAIR, VRR_ITEM_USE_TYPE_VEHREPAIR,
VRR_ITEM_USETYPE_VEHCOLOUR, VRR_ITEM_USE_TYPE_VEHCOLOUR,
VRR_ITEM_USETYPE_VEHUPGRADE_PART, VRR_ITEM_USE_TYPE_VEHUPGRADE_PART,
VRR_ITEM_USETYPE_VEHLIVERY, VRR_ITEM_USE_TYPE_VEHLIVERY,
VRR_ITEM_USETYPE_VEHTIRE, VRR_ITEM_USE_TYPE_VEHTIRE,
], ],
vehicleInactiveRespawnDelay: 1800000, // 20 minutes vehicleInactiveRespawnDelay: 1800000, // 20 minutes
chatSectionHeaderLength: 96, chatSectionHeaderLength: 96,

View File

@@ -56,7 +56,7 @@ function castFishingLineCommand(client) {
return false; return false;
} }
if (doesPlayerHaveItemOfUseTypeEquipped(client, VRR_ITEM_USETYPE_FISHINGROD)) { if (doesPlayerHaveItemOfUseTypeEquipped(client, VRR_ITEM_USE_TYPE_FISHINGROD)) {
messagePlayerError(client, getLocaleString(client, "NeedFishingRod")); messagePlayerError(client, getLocaleString(client, "NeedFishingRod"));
return false; return false;
} }
@@ -80,7 +80,7 @@ function resetFishingLineCommand(client) {
return false; return false;
} }
if (doesPlayerHaveItemOfUseTypeEquipped(client, VRR_ITEM_USETYPE_FISHINGROD)) { if (doesPlayerHaveItemOfUseTypeEquipped(client, VRR_ITEM_USE_TYPE_FISHINGROD)) {
messagePlayerError(client, getLocaleString(client, "CantFishHere")); messagePlayerError(client, getLocaleString(client, "CantFishHere"));
return false; return false;
} }

View File

@@ -21,10 +21,10 @@ function gpsCommand(command, params, client) {
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderBusinessList"))); messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderBusinessList")));
let locationType = VRR_GPS_TYPE_NONE; let locationType = VRR_GPS_TYPE_NONE;
let useType = VRR_ITEM_USETYPE_NONE; let useType = VRR_ITEM_USE_TYPE_NONE;
let blipColour = "white"; let blipColour = "white";
switch(toLowerCase(params)) { switch (toLowerCase(params)) {
case "police": case "police":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_POLICE; locationType = VRR_GPS_TYPE_POLICE;
@@ -46,7 +46,7 @@ function gpsCommand(command, params, client) {
case "player": case "player":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_SKIN; useType = VRR_ITEM_USE_TYPE_SKIN;
break; break;
case "gun": case "gun":
@@ -57,20 +57,20 @@ function gpsCommand(command, params, client) {
case "weps": case "weps":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_WEAPON; useType = VRR_ITEM_USE_TYPE_WEAPON;
break; break;
case "food": case "food":
case "eat": case "eat":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_FOOD; useType = VRR_ITEM_USE_TYPE_FOOD;
break; break;
case "drink": case "drink":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_DRINK; useType = VRR_ITEM_USE_TYPE_DRINK;
break; break;
case "alcohol": case "alcohol":
@@ -78,7 +78,7 @@ function gpsCommand(command, params, client) {
case "bar": case "bar":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_ALCOHOL; useType = VRR_ITEM_USE_TYPE_ALCOHOL;
break; break;
case "repair": case "repair":
@@ -88,7 +88,7 @@ function gpsCommand(command, params, client) {
case "fix": case "fix":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_VEHREPAIR; useType = VRR_ITEM_USE_TYPE_VEHREPAIR;
break; break;
case "vehiclecolour": case "vehiclecolour":
@@ -97,52 +97,52 @@ function gpsCommand(command, params, client) {
case "colour": case "colour":
blipColour = "businessBlue" blipColour = "businessBlue"
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
useType = VRR_ITEM_USETYPE_VEHCOLOUR; useType = VRR_ITEM_USE_TYPE_VEHCOLOUR;
break; break;
default: { default: {
let itemTypeId = getItemTypeFromParams(params); let itemTypeId = getItemTypeFromParams(params);
if(getItemTypeData(itemTypeId) != false) { if (getItemTypeData(itemTypeId) != false) {
locationType = VRR_GPS_TYPE_BUSINESS; locationType = VRR_GPS_TYPE_BUSINESS;
blipColour = "businessBlue"; blipColour = "businessBlue";
useType = getItemTypeData(itemTypeId).useType; useType = getItemTypeData(itemTypeId).useType;
} else { } else {
let gameLocationId = getGameLocationFromParams(params); let gameLocationId = getGameLocationFromParams(params);
if(gameLocationId != false) { if (gameLocationId != false) {
position = getGameConfig().locations[getServerGame()][gameLocationId][1] position = getGameConfig().locations[getServerGame()][gameLocationId][1]
} }
} }
} }
} }
if(locationType == VRR_GPS_TYPE_NONE) { if (locationType == VRR_GPS_TYPE_NONE) {
messagePlayerError(client, getLocaleString(client, "InvalidGPSLocation")); messagePlayerError(client, getLocaleString(client, "InvalidGPSLocation"));
return false; return false;
} }
if(locationType == VRR_GPS_TYPE_BUSINESS) { if (locationType == VRR_GPS_TYPE_BUSINESS) {
let businessId = getClosestBusinessWithBuyableItemOfUseType(useType); let businessId = getClosestBusinessWithBuyableItemOfUseType(useType);
if(!businessId) { if (!businessId) {
messagePlayerError(client, getLocaleString(client, "NoBusinessWithItemType")); messagePlayerError(client, getLocaleString(client, "NoBusinessWithItemType"));
return false; return false;
} }
if(!getBusinessData(businessId)) { if (!getBusinessData(businessId)) {
messagePlayerError(client, getLocaleString(client, "NoBusinessWithItemType")); messagePlayerError(client, getLocaleString(client, "NoBusinessWithItemType"));
return false; return false;
} }
hideAllBlipsForPlayerGPS(client); hideAllBlipsForPlayerGPS(client);
blinkGenericGPSBlipForPlayer(client, getBusinessData(businessId).entrancePosition, getBusinessData(businessId).entranceBlipModel, getColourByType(blipColour), 10); blinkGenericGPSBlipForPlayer(client, getBusinessData(businessId).entrancePosition, getBusinessData(businessId).entranceBlipModel, getColourByType(blipColour), 10);
messagePlayerSuccess(client, "Look for the blinking icon on your mini map"); messagePlayerSuccess(client, "Look for the blinking icon on your mini map");
} }
if(locationType == VRR_GPS_TYPE_GAMELOC) { if (locationType == VRR_GPS_TYPE_GAMELOC) {
hideAllBlipsForPlayerGPS(client); hideAllBlipsForPlayerGPS(client);
blinkGenericGPSBlipForPlayer(client, position, 0, getColourByType(blipColour), 10); blinkGenericGPSBlipForPlayer(client, position, 0, getColourByType(blipColour), 10);
messagePlayerSuccess(client, "Look for the blinking icon on your mini map"); messagePlayerSuccess(client, "Look for the blinking icon on your mini map");
return true; return true;
} }
} }
// =========================================================================== // ===========================================================================

View File

@@ -24,71 +24,76 @@ const VRR_ITEM_OWNER_LOCKER = 10; // Item is in player's locker
// =========================================================================== // ===========================================================================
// Item Use Types // Item Use Types
const VRR_ITEM_USETYPE_NONE = 0; // Has no effect const VRR_ITEM_USE_TYPE_NONE = 0; // Has no effect
const VRR_ITEM_USETYPE_WEAPON = 1; // Equips weapon const VRR_ITEM_USE_TYPE_WEAPON = 1; // Equips weapon
const VRR_ITEM_USETYPE_AMMO_CLIP = 2; // Magazine for weapon. If in inventory, R will load it into gun const VRR_ITEM_USE_TYPE_AMMO_CLIP = 2; // Magazine for weapon. If in inventory, R will load it into gun
const VRR_ITEM_USETYPE_PHONE = 3; // Pulls out phone const VRR_ITEM_USE_TYPE_PHONE = 3; // Pulls out phone
const VRR_ITEM_USETYPE_GPS = 4; // Not sure how I want this to work yet const VRR_ITEM_USE_TYPE_GPS = 4; // Not sure how I want this to work yet
const VRR_ITEM_USETYPE_MAP = 5; // Shows minimap on HUD const VRR_ITEM_USE_TYPE_MAP = 5; // Shows minimap on HUD
const VRR_ITEM_USETYPE_SKIN = 6; // Changes skin (uses skin changer) const VRR_ITEM_USE_TYPE_SKIN = 6; // Changes skin (uses skin changer)
const VRR_ITEM_USETYPE_PEDPART = 7; // Changes ped part (clothing, skin, hair, etc) (UNUSED) const VRR_ITEM_USE_TYPE_PEDPART = 7; // Changes ped part (clothing, skin, hair, etc) (UNUSED)
const VRR_ITEM_USETYPE_PEDPROP = 8; // Changes ped prop (watches, glasses, hats, etc) (UNUSED) const VRR_ITEM_USE_TYPE_PEDPROP = 8; // Changes ped prop (watches, glasses, hats, etc) (UNUSED)
const VRR_ITEM_USETYPE_STORAGE = 9; // Shows stored items. Backpack, crate, briefcase, wallet, etc const VRR_ITEM_USE_TYPE_STORAGE = 9; // Shows stored items. Backpack, crate, briefcase, wallet, etc
const VRR_ITEM_USETYPE_VEHKEY = 10; // Locks/unlocks a vehicle and allows starting engine without hotwire const VRR_ITEM_USE_TYPE_VEHKEY = 10; // Locks/unlocks a vehicle and allows starting engine without hotwire
const VRR_ITEM_USETYPE_BIZKEY = 11; // Locks/unlocks a business const VRR_ITEM_USE_TYPE_BIZKEY = 11; // Locks/unlocks a business
const VRR_ITEM_USETYPE_HOUSEKEY = 12; // Locks/unlocks a house const VRR_ITEM_USE_TYPE_HOUSEKEY = 12; // Locks/unlocks a house
const VRR_ITEM_USETYPE_SEED = 13; // Plants a seed const VRR_ITEM_USE_TYPE_SEED = 13; // Plants a seed
const VRR_ITEM_USETYPE_WEED = 14; // Light drug effect (short term relief of addiction symptoms?) const VRR_ITEM_USE_TYPE_WEED = 14; // Light drug effect (short term relief of addiction symptoms?)
const VRR_ITEM_USETYPE_COKE = 15; // Medium drug effect (medium term relief of addiction symptoms?) const VRR_ITEM_USE_TYPE_COKE = 15; // Medium drug effect (medium term relief of addiction symptoms?)
const VRR_ITEM_USETYPE_METH = 16; // Heavy drug effect (extended term relief of addiction symptoms?) const VRR_ITEM_USE_TYPE_METH = 16; // Heavy drug effect (extended term relief of addiction symptoms?)
const VRR_ITEM_USETYPE_CIGAR = 17; // Just for appearance. Makes people look cool I guess const VRR_ITEM_USE_TYPE_CIGAR = 17; // Just for appearance. Makes people look cool I guess
const VRR_ITEM_USETYPE_WATER = 18; // Replenishes small amount of health const VRR_ITEM_USE_TYPE_WATER = 18; // Replenishes small amount of health
const VRR_ITEM_USETYPE_FOOD = 19; // Eat food. Replenishes a small amount of health const VRR_ITEM_USE_TYPE_FOOD = 19; // Eat food. Replenishes a small amount of health
const VRR_ITEM_USETYPE_BEER = 20; // Subtle drunk effect. Replenishes small amount of health. const VRR_ITEM_USE_TYPE_BEER = 20; // Subtle drunk effect. Replenishes small amount of health.
const VRR_ITEM_USETYPE_WINE = 21; // Moderate drunk effect. Replenishes moderate amount of health. const VRR_ITEM_USE_TYPE_WINE = 21; // Moderate drunk effect. Replenishes moderate amount of health.
const VRR_ITEM_USETYPE_LIQUOR = 22; // Heavy drunk effect. Replenishes large amount of health. const VRR_ITEM_USE_TYPE_LIQUOR = 22; // Heavy drunk effect. Replenishes large amount of health.
const VRR_ITEM_USETYPE_COFFEE = 23; // Replenishes moderate amount of health. const VRR_ITEM_USE_TYPE_COFFEE = 23; // Replenishes moderate amount of health.
const VRR_ITEM_USETYPE_AMMO_ROUND = 23; // Bullet. Loads into magazine. Not used at the moment const VRR_ITEM_USE_TYPE_AMMO_ROUND = 23; // Bullet. Loads into magazine. Not used at the moment
const VRR_ITEM_USETYPE_HANDCUFF = 24; // const VRR_ITEM_USE_TYPE_HANDCUFF = 24; //
const VRR_ITEM_USETYPE_ROPE = 25; // const VRR_ITEM_USE_TYPE_ROPE = 25; //
const VRR_ITEM_USETYPE_BLINDFOLD = 26; // const VRR_ITEM_USE_TYPE_BLINDFOLD = 26; //
const VRR_ITEM_USETYPE_TAZER = 27; // const VRR_ITEM_USE_TYPE_TAZER = 27; //
const VRR_ITEM_USETYPE_ARMOUR = 28; // const VRR_ITEM_USE_TYPE_ARMOUR = 28; //
const VRR_ITEM_USETYPE_HEALTH = 29; // const VRR_ITEM_USE_TYPE_HEALTH = 29; //
const VRR_ITEM_USETYPE_AED = 30; // const VRR_ITEM_USE_TYPE_AED = 30; //
const VRR_ITEM_USETYPE_WALKIETALKIE = 31; // const VRR_ITEM_USE_TYPE_WALKIETALKIE = 31; //
const VRR_ITEM_USETYPE_BOOMBOX = 32; // const VRR_ITEM_USE_TYPE_BOOMBOX = 32; //
const VRR_ITEM_USETYPE_EARBUDS = 33; // const VRR_ITEM_USE_TYPE_EARBUDS = 33; //
const VRR_ITEM_USETYPE_BADGE = 34; // const VRR_ITEM_USE_TYPE_BADGE = 34; //
const VRR_ITEM_USETYPE_DRINK = 35; // Drinkable item. Action output shows "Player_Name drinks some (drink name)" const VRR_ITEM_USE_TYPE_DRINK = 35; // Drinkable item. Action output shows "Player_Name drinks some (drink name)"
const VRR_ITEM_USETYPE_EXTINGUISHER = 36; // Extinguisher item. Allows putting out fires const VRR_ITEM_USE_TYPE_EXTINGUISHER = 36; // Extinguisher item. Allows putting out fires
const VRR_ITEM_USETYPE_SPRAYPAINT = 37; // Spraypaint item. Allows spraying custom clan tags on walls const VRR_ITEM_USE_TYPE_SPRAYPAINT = 37; // Spraypaint item. Allows spraying custom clan tags on walls
const VRR_ITEM_USETYPE_PEPPERSPRAY = 38; // Pepper spray item. Incapacitates nearby player const VRR_ITEM_USE_TYPE_PEPPERSPRAY = 38; // Pepper spray item. Incapacitates nearby player
const VRR_ITEM_USETYPE_FLASHLIGHT = 39; // Flashlight item. Unusable for now, but plan to cast a custom light beam const VRR_ITEM_USE_TYPE_FLASHLIGHT = 39; // Flashlight item. Unusable for now, but plan to cast a custom light beam
const VRR_ITEM_USETYPE_AIRPLANETICKET = 40; // Airplane ticket. Allows a character to move to another server const VRR_ITEM_USE_TYPE_AIRPLANETICKET = 40; // Airplane ticket. Allows a character to move to another server
const VRR_ITEM_USETYPE_TRAINTICKET = 41; // Train ticket. Allows a character to move to another server const VRR_ITEM_USE_TYPE_TRAINTICKET = 41; // Train ticket. Allows a character to move to another server
const VRR_ITEM_USETYPE_VEHUPGRADE_PART = 42; // Vehicle update part item. Allows adding custom parts like spoilers, side skirts, roof scoops, etc const VRR_ITEM_USE_TYPE_VEHUPGRADE_PART = 42; // Vehicle update part item. Allows adding custom parts like spoilers, side skirts, roof scoops, etc
const VRR_ITEM_USETYPE_VEHTIRE = 43; // Vehicle tire item. Allows changing the tire/rim types const VRR_ITEM_USE_TYPE_VEHTIRE = 43; // Vehicle tire item. Allows changing the tire/rim types
const VRR_ITEM_USETYPE_FUELCAN = 44; // Fuel can item. Allows refueling of a nearby vehicle anywhere const VRR_ITEM_USE_TYPE_FUELCAN = 44; // Fuel can item. Allows refueling of a nearby vehicle anywhere
const VRR_ITEM_USETYPE_VEHCOLOUR = 45; // Vehicle colour item. Changes primary and secondary vehicle colours const VRR_ITEM_USE_TYPE_VEHCOLOUR = 45; // Vehicle colour item. Changes primary and secondary vehicle colours
const VRR_ITEM_USETYPE_VEHLIVERY = 46; // Vehicle livery/paintjob item. Applies decals and special paint jobs const VRR_ITEM_USE_TYPE_VEHLIVERY = 46; // Vehicle livery/paintjob item. Applies decals and special paint jobs
const VRR_ITEM_USETYPE_VEHREPAIR = 47; // Vehicle repair item. Much longer use time const VRR_ITEM_USE_TYPE_VEHREPAIR = 47; // Vehicle repair item. Much longer use time
const VRR_ITEM_USETYPE_SMOKEDRUG = 48; // Smokable drug. Action output shows "Player_Name smokes some (drug)" const VRR_ITEM_USE_TYPE_SMOKEDRUG = 48; // Smokable drug like weed. Action output shows "Player_Name smokes some (drug)"
const VRR_ITEM_USETYPE_SNORTDRUG = 49; // Snortable drug. Action output shows "Player_Name snorts some (drug)" const VRR_ITEM_USE_TYPE_SNORTDRUG = 49; // Snortable drug like cocaine. Action output shows "Player_Name snorts some (drug)"
const VRR_ITEM_USETYPE_PLANT = 50; // Plantable item. Pot plants, coke plants, etc const VRR_ITEM_USE_TYPE_PLANT = 50; // Plantable item. Pot plants, coke plants, etc
const VRR_ITEM_USETYPE_MEGAPHONE = 51; // Megaphone item. Allows shouting over greater distances. Also called a bullhorn const VRR_ITEM_USE_TYPE_MEGAPHONE = 51; // Megaphone item. Allows shouting over greater distances. Also called a bullhorn
const VRR_ITEM_USETYPE_INJECTDRUG = 52; // Injectable drug. Action output shows "Player_Name injects some (drug)" const VRR_ITEM_USE_TYPE_INJECTDRUG = 52; // Injectable drug like heroine. Action output shows "Player_Name injects some (drug)"
const VRR_ITEM_USETYPE_ALCOHOL = 53; // Alcohol. Applies an intoxication/drunkness effect const VRR_ITEM_USE_TYPE_ALCOHOL = 53; // Alcohol. Applies an intoxication/drunkness effect
const VRR_ITEM_USE_TYPE_METH_LAB = 54; // Meth lab item. Allows creating meth
const VRR_ITEM_USE_TYPE_PLANTER = 55; // Plant pot. Can be used to plant item of use type VRR_ITEM_USE_TYPE_PLANT where terrain is not available
const VRR_ITEM_USE_TYPE_FISH = 56; // Fishing catch ... bass, catfish, etc
const VRR_ITEM_USE_TYPE_JUNK = 57; // Worthless junk. Some used as fishing catches
const VRR_ITEM_USE_TYPE_BAIT = 58; // Bait. Used for fishing
// =========================================================================== // ===========================================================================
// Item Drop Types // Item Drop Types
const VRR_ITEM_DROPTYPE_NONE = 0; // Can't be dropped const VRR_ITEM_DROP_TYPE_NONE = 0; // Can't be dropped
const VRR_ITEM_DROPTYPE_OBJECT = 1; // Drops as an object on the ground const VRR_ITEM_DROP_TYPE_OBJECT = 1; // Drops as an object on the ground
const VRR_ITEM_DROPTYPE_PICKUP = 2; // Drops as a pickup const VRR_ITEM_DROP_TYPE_PICKUP = 2; // Drops as a pickup
const VRR_ITEM_DROPTYPE_OBJECTLIGHT = 3; // Object that produces an area light effect (lamp, flashlight, etc) const VRR_ITEM_DROP_TYPE_OBJECTLIGHT = 3; // Object that produces an area light effect (lamp, flashlight, etc)
const VRR_ITEM_DROPTYPE_DESTROY = 4; // Will destroy the item on drop (keys mostly but for any tiny object) const VRR_ITEM_DROP_TYPE_DESTROY = 4; // Will destroy the item on drop (keys mostly but for any tiny object)
const VRR_ITEM_DROPTYPE_OBJECTSTACK = 5; // Stackable objects (crates and such). Will sit on top of closest other stackable const VRR_ITEM_DROP_TYPE_OBJECTSTACK = 5; // Stackable objects (crates and such). Will sit on top of closest other stackable
// =========================================================================== // ===========================================================================
@@ -158,11 +163,11 @@ class ItemTypeData {
this.index = 0; this.index = 0;
this.name = "Unknown"; this.name = "Unknown";
this.enabled = false; this.enabled = false;
this.useType = VRR_ITEM_USETYPE_NONE; this.useType = VRR_ITEM_USE_TYPE_NONE;
this.useId = 0; this.useId = 0;
this.useValue = 0; this.useValue = 0;
this.maxValue = 0; this.maxValue = 0;
this.dropType = VRR_ITEM_DROPTYPE_NONE; this.dropType = VRR_ITEM_DROP_TYPE_NONE;
this.useId = 0; this.useId = 0;
this.dropPosition = toVector3(0.0, 0.0, 0.0); this.dropPosition = toVector3(0.0, 0.0, 0.0);
this.dropRotation = toVector3(0.0, 0.0, 0.0); this.dropRotation = toVector3(0.0, 0.0, 0.0);
@@ -1274,20 +1279,20 @@ function playerUseItem(client, hotBarSlot) {
logToConsole(LOG_DEBUG, `[VRR.Item] ${getPlayerDisplayForConsole(client)} used a ${itemTypeData.name} (use type ${itemTypeData.useType} - ${typeof itemTypeData.useType}) item (ID: ${itemData.index}/${itemData.databaseId}, TypeID: ${itemTypeData.index}/${itemTypeData.databaseId})`); logToConsole(LOG_DEBUG, `[VRR.Item] ${getPlayerDisplayForConsole(client)} used a ${itemTypeData.name} (use type ${itemTypeData.useType} - ${typeof itemTypeData.useType}) item (ID: ${itemData.index}/${itemData.databaseId}, TypeID: ${itemTypeData.index}/${itemTypeData.databaseId})`);
switch (toInteger(itemTypeData.useType)) { switch (toInteger(itemTypeData.useType)) {
case VRR_ITEM_USETYPE_SKIN: { case VRR_ITEM_USE_TYPE_SKIN: {
getPlayerData(client).itemActionItem = itemIndex; getPlayerData(client).itemActionItem = itemIndex;
forcePlayerIntoSkinSelect(client); forcePlayerIntoSkinSelect(client);
break; break;
} }
case VRR_ITEM_USETYPE_WEAPON: { case VRR_ITEM_USE_TYPE_WEAPON: {
if (isMeleeWeapon(itemTypeData.useId, getGame()) == true) { if (isMeleeWeapon(itemTypeData.useId, getGame()) == true) {
messagePlayerError(client, getLocaleString(client, "WeaponDoesNotUseAmmo", itemTypeData.name)); messagePlayerError(client, getLocaleString(client, "WeaponDoesNotUseAmmo", itemTypeData.name));
} else { } else {
for (let i in hotBarItems) { for (let i in hotBarItems) {
if (hotBarItems[i] != -1) { if (hotBarItems[i] != -1) {
if (getItemData(hotBarItems[i]) != false) { if (getItemData(hotBarItems[i]) != false) {
if (getItemTypeData(getItemData(hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USETYPE_AMMO_CLIP) { if (getItemTypeData(getItemData(hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USE_TYPE_AMMO_CLIP) {
let ammoItemData = getItemData(hotBarItems[i]); let ammoItemData = getItemData(hotBarItems[i]);
let ammoItemTypeData = getItemTypeData(ammoItemData.itemTypeIndex); let ammoItemTypeData = getItemTypeData(ammoItemData.itemTypeIndex);
if (ammoItemTypeData.useId == itemTypeData.databaseId) { if (ammoItemTypeData.useId == itemTypeData.databaseId) {
@@ -1306,7 +1311,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_AMMO_CLIP: { case VRR_ITEM_USE_TYPE_AMMO_CLIP: {
if (doesPlayerHaveKeyBindForCommand(client, "use")) { if (doesPlayerHaveKeyBindForCommand(client, "use")) {
messagePlayerError(client, getLocaleString(client, "LoadAmmoIntoWeaponHelpKeyPress", `{ALTCOLOUR}${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "use").key))}{MAINCOLOUR}`)); messagePlayerError(client, getLocaleString(client, "LoadAmmoIntoWeaponHelpKeyPress", `{ALTCOLOUR}${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "use").key))}{MAINCOLOUR}`));
} else { } else {
@@ -1315,12 +1320,12 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_STORAGE: { case VRR_ITEM_USE_TYPE_STORAGE: {
showItemInventoryToPlayer(client, itemIndex); showItemInventoryToPlayer(client, itemIndex);
break; break;
} }
case VRR_ITEM_USETYPE_FOOD: { case VRR_ITEM_USE_TYPE_FOOD: {
meActionToNearbyPlayers(client, `eats some of their ${itemTypeData.name}`); meActionToNearbyPlayers(client, `eats some of their ${itemTypeData.name}`);
givePlayerHealth(client, itemTypeData.useValue); givePlayerHealth(client, itemTypeData.useValue);
itemData.value = itemData.value - itemTypeData.useValue; itemData.value = itemData.value - itemTypeData.useValue;
@@ -1331,7 +1336,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_DRINK: { case VRR_ITEM_USE_TYPE_DRINK: {
meActionToNearbyPlayers(client, `drinks some of their ${itemTypeData.name}`); meActionToNearbyPlayers(client, `drinks some of their ${itemTypeData.name}`);
givePlayerHealth(client, itemTypeData.useValue); givePlayerHealth(client, itemTypeData.useValue);
itemData.value = itemData.value - itemTypeData.useValue; itemData.value = itemData.value - itemTypeData.useValue;
@@ -1342,7 +1347,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_ARMOUR: { case VRR_ITEM_USE_TYPE_ARMOUR: {
meActionToNearbyPlayers(client, `puts on a ${itemTypeData.name}`); meActionToNearbyPlayers(client, `puts on a ${itemTypeData.name}`);
givePlayerArmour(client, itemTypeData.useValue); givePlayerArmour(client, itemTypeData.useValue);
deleteItem(itemIndex); deleteItem(itemIndex);
@@ -1350,7 +1355,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_ROPE: { case VRR_ITEM_USE_TYPE_ROPE: {
let closestPlayer = getClosestPlayer(getPlayerPosition(client), client); let closestPlayer = getClosestPlayer(getPlayerPosition(client), client);
if (!getPlayerData(closestPlayer)) { if (!getPlayerData(closestPlayer)) {
@@ -1383,7 +1388,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_HANDCUFF: { case VRR_ITEM_USE_TYPE_HANDCUFF: {
let closestPlayer = getClosestPlayer(getPlayerPosition(client), client); let closestPlayer = getClosestPlayer(getPlayerPosition(client), client);
if (!getPlayerData(closestPlayer)) { if (!getPlayerData(closestPlayer)) {
@@ -1411,7 +1416,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_VEHREPAIR: { case VRR_ITEM_USE_TYPE_VEHREPAIR: {
let vehicle = getClosestVehicle(getPlayerPosition(client)); let vehicle = getClosestVehicle(getPlayerPosition(client));
if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) { if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
meActionToNearbyPlayers(client, `takes their repair kit and fixes the vehicle`); meActionToNearbyPlayers(client, `takes their repair kit and fixes the vehicle`);
@@ -1427,7 +1432,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_VEHUPGRADE_PART: { case VRR_ITEM_USE_TYPE_VEHUPGRADE_PART: {
let vehicle = getClosestVehicle(getPlayerPosition(client)); let vehicle = getClosestVehicle(getPlayerPosition(client));
if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) { if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
meActionToNearbyPlayers(client, `takes their upgrade kit and adds a ${itemTypeData.name} to the vehicle.`); meActionToNearbyPlayers(client, `takes their upgrade kit and adds a ${itemTypeData.name} to the vehicle.`);
@@ -1436,7 +1441,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_VEHLIVERY: { case VRR_ITEM_USE_TYPE_VEHLIVERY: {
let vehicle = getClosestVehicle(getPlayerPosition(client)); let vehicle = getClosestVehicle(getPlayerPosition(client));
if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) { if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
meActionToNearbyPlayers(client, `takes their decal kit and adds some decals to the vehicle.`); meActionToNearbyPlayers(client, `takes their decal kit and adds some decals to the vehicle.`);
@@ -1445,7 +1450,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_VEHCOLOUR: { case VRR_ITEM_USE_TYPE_VEHCOLOUR: {
let vehicle = getClosestVehicle(getPlayerPosition(client)); let vehicle = getClosestVehicle(getPlayerPosition(client));
if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) { if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
if (itemData.useId == 1) { if (itemData.useId == 1) {
@@ -1461,7 +1466,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_FUELCAN: { case VRR_ITEM_USE_TYPE_FUELCAN: {
let vehicle = getClosestVehicle(getPlayerPosition(client)); let vehicle = getClosestVehicle(getPlayerPosition(client));
let fuelPump = getClosestFuelPump(getPlayerPosition(client)); let fuelPump = getClosestFuelPump(getPlayerPosition(client));
if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getDistance(getPlayerPosition(client), getFuelPumpData(fuelPump).position)) { if (getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getDistance(getPlayerPosition(client), getFuelPumpData(fuelPump).position)) {
@@ -1494,13 +1499,13 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_WALKIETALKIE: { case VRR_ITEM_USE_TYPE_WALKIETALKIE: {
itemData.enabled = !itemData.enabled; itemData.enabled = !itemData.enabled;
meActionToNearbyPlayers(client, `turns ${toLowerCase(getOnOffFromBool(itemData.enabled))} their walkie-talkie`); meActionToNearbyPlayers(client, `turns ${toLowerCase(getOnOffFromBool(itemData.enabled))} their walkie-talkie`);
break; break;
} }
case VRR_ITEM_USETYPE_PHONE: { case VRR_ITEM_USE_TYPE_PHONE: {
if (itemData.value == 0) { if (itemData.value == 0) {
let phoneNumber = generateRandomPhoneNumber(); let phoneNumber = generateRandomPhoneNumber();
itemData.value = phoneNumber; itemData.value = phoneNumber;
@@ -1518,7 +1523,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_SMOKEDRUG: { case VRR_ITEM_USE_TYPE_SMOKEDRUG: {
meActionToNearbyPlayers(client, `smokes some ${itemTypeData.name}`); meActionToNearbyPlayers(client, `smokes some ${itemTypeData.name}`);
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100); getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100);
if (getPlayerData(client).incomingDamageMultiplier < 0.25) { if (getPlayerData(client).incomingDamageMultiplier < 0.25) {
@@ -1529,7 +1534,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_SNORTDRUG: { case VRR_ITEM_USE_TYPE_SNORTDRUG: {
meActionToNearbyPlayers(client, `snorts some ${itemTypeData.name}`); meActionToNearbyPlayers(client, `snorts some ${itemTypeData.name}`);
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100); getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100);
if (getPlayerData(client).incomingDamageMultiplier < 0.25) { if (getPlayerData(client).incomingDamageMultiplier < 0.25) {
@@ -1540,7 +1545,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_INJECTDRUG: { case VRR_ITEM_USE_TYPE_INJECTDRUG: {
meActionToNearbyPlayers(client, `shoots up some ${itemTypeData.name}`); meActionToNearbyPlayers(client, `shoots up some ${itemTypeData.name}`);
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100); getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier - (itemTypeData.useValue / 100);
if (getPlayerData(client).incomingDamageMultiplier < 0.25) { if (getPlayerData(client).incomingDamageMultiplier < 0.25) {
@@ -1551,7 +1556,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_PLANT: { case VRR_ITEM_USE_TYPE_PLANT: {
meActionToNearbyPlayers(client, `bends down and plants a ${itemTypeData.name} in the ground`); meActionToNearbyPlayers(client, `bends down and plants a ${itemTypeData.name} in the ground`);
createGroundPlant(itemIndex); createGroundPlant(itemIndex);
if (itemData.value == 0) { if (itemData.value == 0) {
@@ -1561,7 +1566,7 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_BADGE: { case VRR_ITEM_USE_TYPE_BADGE: {
meActionToNearbyPlayers(client, `shows their badge to everyone nearby.`); meActionToNearbyPlayers(client, `shows their badge to everyone nearby.`);
let clients = getClients(); let clients = getClients();
for (let i in clients) { for (let i in clients) {
@@ -1575,12 +1580,12 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_AMMO_CLIP: { case VRR_ITEM_USE_TYPE_AMMO_CLIP: {
messagePlayerError(client, `Equip a compatible weapon and press R to use an ammo clip/magazine`); messagePlayerError(client, `Equip a compatible weapon and press R to use an ammo clip/magazine`);
break; break;
} }
case VRR_ITEM_USETYPE_HEALTH: { case VRR_ITEM_USE_TYPE_HEALTH: {
let closestPlayer = getClosestPlayer(getPlayerPosition(client), client); let closestPlayer = getClosestPlayer(getPlayerPosition(client), client);
if (!getPlayerData(closestPlayer)) { if (!getPlayerData(closestPlayer)) {
@@ -1595,26 +1600,26 @@ function playerUseItem(client, hotBarSlot) {
break; break;
} }
case VRR_ITEM_USETYPE_LOTTOTICKET: { case VRR_ITEM_USE_TYPE_LOTTOTICKET: {
messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name)); messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name));
break; break;
} }
case VRR_ITEM_USETYPE_AREARADIO: { case VRR_ITEM_USE_TYPE_AREARADIO: {
itemData.enabled = !itemData.enabled; itemData.enabled = !itemData.enabled;
meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} the boombox radio`); meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} the boombox radio`);
messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`)); messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`));
break; break;
} }
case VRR_ITEM_USETYPE_PERSONALRADIO: { case VRR_ITEM_USE_TYPE_PERSONALRADIO: {
itemData.enabled = !itemData.enabled; itemData.enabled = !itemData.enabled;
meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} their personal radio`); meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} their personal radio`);
messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`)); messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`));
break; break;
} }
case VRR_ITEM_USETYPE_NONE: { case VRR_ITEM_USE_TYPE_NONE: {
messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name)); messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name));
break; break;
} }
@@ -1823,7 +1828,7 @@ function playerSwitchItem(client, newHotBarSlot) {
if (newHotBarItem != -1) { if (newHotBarItem != -1) {
if (getItemData(newHotBarItem)) { if (getItemData(newHotBarItem)) {
if (getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useType == VRR_ITEM_USETYPE_WEAPON) { if (getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useType == VRR_ITEM_USE_TYPE_WEAPON) {
if (getItemData(newHotBarItem).value > 0 || isMeleeWeapon(toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId))) { if (getItemData(newHotBarItem).value > 0 || isMeleeWeapon(toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId))) {
givePlayerWeapon(client, toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId), toInteger(getItemData(newHotBarItem).value), true, true); givePlayerWeapon(client, toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId), toInteger(getItemData(newHotBarItem).value), true, true);
setPlayerWeaponDamageEnabled(client, true); setPlayerWeaponDamageEnabled(client, true);
@@ -1840,7 +1845,7 @@ function playerSwitchItem(client, newHotBarSlot) {
messagePlayerError(client, getLocaleString(client, "ItemUnequippableNoAmmo", getItemName(newHotBarItem), newHotBarSlot)); messagePlayerError(client, getLocaleString(client, "ItemUnequippableNoAmmo", getItemName(newHotBarItem), newHotBarSlot));
} }
} }
} else if (getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useType == VRR_ITEM_USETYPE_TAZER) { } else if (getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useType == VRR_ITEM_USE_TYPE_TAZER) {
if (getItemData(newHotBarItem).value > 0) { if (getItemData(newHotBarItem).value > 0) {
givePlayerWeapon(client, toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId), toInteger(getItemData(newHotBarItem).value), true, true); givePlayerWeapon(client, toInteger(getItemTypeData(getItemData(newHotBarItem).itemTypeIndex).useId), toInteger(getItemData(newHotBarItem).value), true, true);
setPlayerWeaponDamageEnabled(client, false); setPlayerWeaponDamageEnabled(client, false);
@@ -2310,7 +2315,7 @@ function listItemInventoryCommand(command, params, client) {
return false; return false;
} }
if (getItemTypeData(getItemData(itemId).itemTypeIndex).useType != VRR_ITEM_USETYPE_STORAGE) { if (getItemTypeData(getItemData(itemId).itemTypeIndex).useType != VRR_ITEM_USE_TYPE_STORAGE) {
messagePlayerError(client, "This item can't hold anything!"); messagePlayerError(client, "This item can't hold anything!");
return false; return false;
} }
@@ -2631,20 +2636,20 @@ function getItemValueDisplayForItem(itemId) {
// =========================================================================== // ===========================================================================
function getItemValueDisplay(itemType, value) { function getItemValueDisplay(itemType, value) {
if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_SKIN) { if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_SKIN) {
return "any"; return "any";
} else if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_FOOD || getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_DRINK || getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_EXTINGUISHER || getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_SPRAYPAINT || getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_PEPPERSPRAY) { } else if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_FOOD || getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_DRINK || getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_EXTINGUISHER || getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_SPRAYPAINT || getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_PEPPERSPRAY) {
return getPercentage(toString(value), getItemTypeData(itemType).capacity) + "%"; return getPercentage(toString(value), getItemTypeData(itemType).capacity) + "%";
} else if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_PHONE) { } else if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_PHONE) {
return toString(value); return toString(value);
} else if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_WEAPON || getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_TAZER) { } else if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_WEAPON || getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_TAZER) {
if (isMeleeWeapon(getItemTypeData(itemType).useId)) { if (isMeleeWeapon(getItemTypeData(itemType).useId)) {
return false; return false;
} }
return toString(value) + " rounds"; return toString(value) + " rounds";
} else if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_WALKIETALKIE) { } else if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_WALKIETALKIE) {
return toString(toString(value).slice(0, -2) + "." + toString(value).slice(-1) + "MHz"); return toString(toString(value).slice(0, -2) + "." + toString(value).slice(-1) + "MHz");
} else if (getItemTypeData(itemType).useType == VRR_ITEM_USETYPE_VEHCOLOUR) { } else if (getItemTypeData(itemType).useType == VRR_ITEM_USE_TYPE_VEHCOLOUR) {
return `[${getGameConfig().vehicleColourHex[value]}]SAMPLE[#FFFFFF]`; return `[${getGameConfig().vehicleColourHex[value]}]SAMPLE[#FFFFFF]`;
} else { } else {
return value; return value;
@@ -3076,7 +3081,7 @@ function getPlayerFirstAmmoItemForWeapon(client, weaponId) {
for (let i in getPlayerData(client).hotBarItems) { for (let i in getPlayerData(client).hotBarItems) {
if (getPlayerData(client).hotBarItems[i] != -1) { if (getPlayerData(client).hotBarItems[i] != -1) {
if (getItemData(getPlayerData(client).hotBarItems[i]) != false) { if (getItemData(getPlayerData(client).hotBarItems[i]) != false) {
if (getItemTypeData(getItemData(getPlayerData(client).hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USETYPE_AMMO_CLIP) { if (getItemTypeData(getItemData(getPlayerData(client).hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USE_TYPE_AMMO_CLIP) {
if (getItemTypeData(getItemData(getPlayerData(client).hotBarItems[i]).itemTypeIndex).useId == weaponId) { if (getItemTypeData(getItemData(getPlayerData(client).hotBarItems[i]).itemTypeIndex).useId == weaponId) {
return i; return i;
} }

View File

@@ -8,9 +8,9 @@
// =========================================================================== // ===========================================================================
function getItemWithPhoneNumber(phoneNumber) { function getItemWithPhoneNumber(phoneNumber) {
for(let i in getServerData().items) { for (let i in getServerData().items) {
if(getItemTypeData(getItemData(i).itemTypeIndex).useType == VRR_ITEM_USETYPE_PHONE) { if (getItemTypeData(getItemData(i).itemTypeIndex).useType == VRR_ITEM_USE_TYPE_PHONE) {
if(getItemData(i).value == phoneNumber) { if (getItemData(i).value == phoneNumber) {
return i; return i;
} }
} }

View File

@@ -8,11 +8,11 @@
// =========================================================================== // ===========================================================================
function getPlayerActiveWalkieTalkieFrequency(client) { function getPlayerActiveWalkieTalkieFrequency(client) {
let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USETYPE_WALKIETALKIE); let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USE_TYPE_WALKIETALKIE);
if(walkieTalkieSlot != -1) { if (walkieTalkieSlot != -1) {
if(getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot])) { if (getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot])) {
if(getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) { if (getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) {
return getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).value; return getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).value;
} }
} }
@@ -31,7 +31,7 @@ function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) {
// if(isPlayerSpawned(clients[i])) { // if(isPlayerSpawned(clients[i])) {
// if(!isSamePlayer(transmittingPlayer, clients[i])) { // if(!isSamePlayer(transmittingPlayer, clients[i])) {
// if(getPlayerActiveWalkieTalkieFrequency(clients[i]) == radioFrequency) { // if(getPlayerActiveWalkieTalkieFrequency(clients[i]) == radioFrequency) {
// if(getItemData(getPlayerData(clients[i]).hotBarItems[getPlayerFirstItemSlotByUseType(clients[i], VRR_ITEM_USETYPE_WALKIETALKIE)]).enabled) { // if(getItemData(getPlayerData(clients[i]).hotBarItems[getPlayerFirstItemSlotByUseType(clients[i], VRR_ITEM_USE_TYPE_WALKIETALKIE)]).enabled) {
// walkieTalkieIncomingToNearbyPlayers(clients[i], messageText); // walkieTalkieIncomingToNearbyPlayers(clients[i], messageText);
// } // }
// } // }
@@ -40,10 +40,10 @@ function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) {
//} //}
let items = getServerData().items; let items = getServerData().items;
for(let i in items) { for (let i in items) {
if(items[i].enabled) { if (items[i].enabled) {
if(getItemTypeData(items[i].itemTypeIndex).useType == VRR_ITEM_USETYPE_WALKIETALKIE) { if (getItemTypeData(items[i].itemTypeIndex).useType == VRR_ITEM_USE_TYPE_WALKIETALKIE) {
if(items[i].value == radioFrequency) { if (items[i].value == radioFrequency) {
walkieTalkieIncomingToNearbyPlayers(null, messageText, getItemPosition(i)); walkieTalkieIncomingToNearbyPlayers(null, messageText, getItemPosition(i));
} }
} }
@@ -55,7 +55,7 @@ function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) {
function walkieTalkieOutgoingToNearbyPlayers(client, messageText) { function walkieTalkieOutgoingToNearbyPlayers(client, messageText) {
let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().talkDistance);
for(let i in clients) { for (let i in clients) {
messagePlayerNormal(clients[i], `[#CCCCCC]${getCharacterFullName(client)} {ALTCOLOUR}(to radio): {MAINCOLOUR}${messageText}`); messagePlayerNormal(clients[i], `[#CCCCCC]${getCharacterFullName(client)} {ALTCOLOUR}(to radio): {MAINCOLOUR}${messageText}`);
} }
} }
@@ -64,12 +64,12 @@ function walkieTalkieOutgoingToNearbyPlayers(client, messageText) {
function walkieTalkieIncomingToNearbyPlayers(client, messageText, position = null) { function walkieTalkieIncomingToNearbyPlayers(client, messageText, position = null) {
let prefix = `{ALTCOLOUR}(Nearby radio)`; let prefix = `{ALTCOLOUR}(Nearby radio)`;
if(client != null) { if (client != null) {
prefix = `${getCharacterFullName(client)} {ALTCOLOUR}(from radio)`; prefix = `${getCharacterFullName(client)} {ALTCOLOUR}(from radio)`;
} }
let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().walkieTalkieSpeakerDistance); let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().walkieTalkieSpeakerDistance);
for(let i in clients) { for (let i in clients) {
messagePlayerNormal(clients[i], `[#CCCCCC]${prefix}: {MAINCOLOUR}${messageText}`); messagePlayerNormal(clients[i], `[#CCCCCC]${prefix}: {MAINCOLOUR}${messageText}`);
} }
} }
@@ -77,35 +77,35 @@ function walkieTalkieIncomingToNearbyPlayers(client, messageText, position = nul
// =========================================================================== // ===========================================================================
function setWalkieTalkieFrequencyCommand(command, params, client) { function setWalkieTalkieFrequencyCommand(command, params, client) {
if(areParamsEmpty(params)) { if (areParamsEmpty(params)) {
messagePlayerSyntax(client, getCommandSyntaxText(command)); messagePlayerSyntax(client, getCommandSyntaxText(command));
return false; return false;
} }
if(isNaN(params)) { if (isNaN(params)) {
messagePlayerError(client, `The frequency channel must be a number!`); messagePlayerError(client, `The frequency channel must be a number!`);
return false; return false;
} }
params = toInteger(params); params = toInteger(params);
if(params < 100 || params > 500) { if (params < 100 || params > 500) {
messagePlayerError(client, `The frequency channel must be between 100 and 500!`); messagePlayerError(client, `The frequency channel must be between 100 and 500!`);
return false; return false;
} }
if(!getPlayerActiveItem(client)) { if (!getPlayerActiveItem(client)) {
messagePlayerError(client, `You aren't holding a walkie talkie!`); messagePlayerError(client, `You aren't holding a walkie talkie!`);
return false; return false;
} }
if(!getItemData(getPlayerActiveItem(client))) { if (!getItemData(getPlayerActiveItem(client))) {
messagePlayerError(client, `You aren't holding a walkie talkie!`); messagePlayerError(client, `You aren't holding a walkie talkie!`);
return false; return false;
} }
if(getItemData(getPlayerActiveItem(client)).enabled) { if (getItemData(getPlayerActiveItem(client)).enabled) {
if(!doesPlayerHaveKeyBindsDisabled(client) && doesPlayerHaveKeyBindForCommand(client, "use")) { 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`); messagePlayerError(client, `Your walkie talkie is turned off. Press ${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "use")).key)} to turn it on`);
} else { } else {
messagePlayerError(client, `Your walkie talkie is turned off. Type {ALTCOLOUR}/use {MAINCOLOUR}to turn it on`); messagePlayerError(client, `Your walkie talkie is turned off. Type {ALTCOLOUR}/use {MAINCOLOUR}to turn it on`);
@@ -113,20 +113,20 @@ function setWalkieTalkieFrequencyCommand(command, params, client) {
return false; return false;
} }
getItemData(getPlayerActiveItem(client)).value = params*100; getItemData(getPlayerActiveItem(client)).value = params * 100;
messagePlayerSuccess(client, `You set the frequency of you walkie talkie in slot ${getPlayerData(client).activeHotBarSlot} to ${getItemValueDisplayForItem(getPlayerActiveItem(client))}`) messagePlayerSuccess(client, `You set the frequency of you walkie talkie in slot ${getPlayerData(client).activeHotBarSlot} to ${getItemValueDisplayForItem(getPlayerActiveItem(client))}`)
} }
// =========================================================================== // ===========================================================================
function walkieTalkieChatCommand(command, params, client) { function walkieTalkieChatCommand(command, params, client) {
if(areParamsEmpty(params)) { if (areParamsEmpty(params)) {
messagePlayerSyntax(client, getCommandSyntaxText(command)); messagePlayerSyntax(client, getCommandSyntaxText(command));
return false; return false;
} }
let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USETYPE_WALKIETALKIE); let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, VRR_ITEM_USE_TYPE_WALKIETALKIE);
if(!getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) { if (!getItemData(getPlayerData(client).hotBarItems[walkieTalkieSlot]).enabled) {
messagePlayerError(client, "Please turn on a walkie talkie first!"); messagePlayerError(client, "Please turn on a walkie talkie first!");
return false; return false;
} }

View File

@@ -935,7 +935,7 @@ function givePlayerJobEquipment(client, equipmentId) {
for (let i in getJobData(jobId).equipment[equipmentId].items) { for (let i in getJobData(jobId).equipment[equipmentId].items) {
let value = getJobData(jobId).equipment[equipmentId].items[i].value let value = getJobData(jobId).equipment[equipmentId].items[i].value
if (getItemTypeData(getItemTypeIndexFromDatabaseId(getJobData(jobId).equipment[equipmentId].items[i].itemType)).useType == VRR_ITEM_USETYPE_WALKIETALKIE) { if (getItemTypeData(getItemTypeIndexFromDatabaseId(getJobData(jobId).equipment[equipmentId].items[i].itemType)).useType == VRR_ITEM_USE_TYPE_WALKIETALKIE) {
value = getJobData(jobId).walkieTalkieFrequency; value = getJobData(jobId).walkieTalkieFrequency;
} }
let itemId = createItem(getItemTypeIndexFromDatabaseId(getJobData(jobId).equipment[equipmentId].items[i].itemType), value, VRR_ITEM_OWNER_PLAYER, getPlayerCurrentSubAccount(client).databaseId); let itemId = createItem(getItemTypeIndexFromDatabaseId(getJobData(jobId).equipment[equipmentId].items[i].itemType), value, VRR_ITEM_OWNER_PLAYER, getPlayerCurrentSubAccount(client).databaseId);