Fix undefined item & ammo item bug
This commit is contained in:
@@ -561,15 +561,16 @@ function setItemTypeDropModelCommand(command, params, client) {
|
||||
}
|
||||
|
||||
let itemTypeIndex = getItemTypeFromParams(splitParams.slice(0, -1).join(" "));
|
||||
let modelId = splitParams[splitParams.length - 1];
|
||||
let modelIndex = getObjectModelIndexFromParams(splitParams.slice(-1).join(" "));
|
||||
|
||||
if (!getItemTypeData(itemTypeIndex)) {
|
||||
messagePlayerError(client, getLocaleString(client, "InvalidItemType"));
|
||||
return false;
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).dropModel = modelId;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name} dropped object model to ${modelId}`);
|
||||
getItemTypeData(itemTypeIndex).dropModel = modelIndex;
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name}'s dropped object model index to ${modelIndex}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -598,6 +599,7 @@ function setItemTypeOrderPriceCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).orderPrice = orderPrice;
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name} {MAINCOLOUR}base price to {ALTCOLOUR}$${orderPrice}`);
|
||||
}
|
||||
|
||||
@@ -627,7 +629,8 @@ function setItemTypeRiskMultiplierCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).riskMultiplier = riskMultiplier;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name} {MAINCOLOUR}risk multilier to {ALTCOLOUR}$${riskMultiplier}`);
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name}{MAINCOLOUR} risk multiplier to {ALTCOLOUR}$${riskMultiplier}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -655,6 +658,7 @@ function toggleItemTypeEnabledCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).enabled = !getItemTypeData(itemTypeIndex).enabled;
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} ${getEnabledDisabledFromBool(getItemTypeData(itemTypeIndex).enabled)} item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name}`);
|
||||
}
|
||||
|
||||
@@ -684,7 +688,8 @@ function setItemTypeUseTypeCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).useType = useType;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name} {MAINCOLOUR}use type to {ALTCOLOUR}$${useType}`);
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name}{MAINCOLOUR} use type to {ALTCOLOUR}$${useType}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -713,7 +718,8 @@ function setItemTypeUseValueCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getItemTypeData(itemTypeIndex).useValue = useValue;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name} {MAINCOLOUR}use value to {ALTCOLOUR}$${useValue}`);
|
||||
getItemTypeData(itemTypeIndex).needsSaved = true;
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} set item type {ALTCOLOUR}${getItemTypeData(itemTypeIndex).name}{MAINCOLOUR} use value to {ALTCOLOUR}$${useValue}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -722,6 +728,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
let itemIndex = getPlayerData(client).hotBarItems[hotBarSlot];
|
||||
|
||||
if (itemIndex == -1) {
|
||||
logToConsole(LOG_DEBUG | LOG_WARN, `[VRR.Item] ${getPlayerDisplayForConsole(client)} tried to use an empty hotbar slot ${hotBarSlot}`);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -735,7 +742,9 @@ function playerUseItem(client, hotBarSlot) {
|
||||
let itemTypeData = getItemTypeData(itemData.itemTypeIndex);
|
||||
let hotBarItems = getPlayerData(client).hotBarItems;
|
||||
|
||||
switch (itemTypeData.useType) {
|
||||
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)) {
|
||||
case VRR_ITEM_USETYPE_SKIN: {
|
||||
getPlayerData(client).itemActionItem = itemIndex;
|
||||
forcePlayerIntoSkinSelect(client);
|
||||
@@ -746,9 +755,9 @@ function playerUseItem(client, hotBarSlot) {
|
||||
for (let i in hotBarItems) {
|
||||
if (hotBarItems[i] != -1) {
|
||||
if (getItemData(hotBarItems[i]) != false) {
|
||||
if (getItemData(getItemData(hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USETYPE_AMMO_CLIP) {
|
||||
if (getItemTypeData(getItemData(hotBarItems[i]).itemTypeIndex).useType == VRR_ITEM_USETYPE_AMMO_CLIP) {
|
||||
let ammoItemData = getItemData(hotBarItems[i]);
|
||||
let ammoItemTypeData = getItemData(ammoItemData.itemTypeIndex);
|
||||
let ammoItemTypeData = getItemTypeData(ammoItemData.itemTypeIndex);
|
||||
if (ammoItemTypeData.useId == itemTypeData.databaseId) {
|
||||
givePlayerWeaponAmmo(client, ammoItemData.value);
|
||||
itemData.value = itemData.value + ammoItemData.value;
|
||||
@@ -1054,26 +1063,31 @@ function playerUseItem(client, hotBarSlot) {
|
||||
}
|
||||
|
||||
case VRR_ITEM_USETYPE_LOTTOTICKET: {
|
||||
messagePlayerError(client, `The ${itemTypeData.name} doesn't do anything when you try to use it.`);
|
||||
messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name));
|
||||
break;
|
||||
}
|
||||
|
||||
case VRR_ITEM_USETYPE_AREARADIO: {
|
||||
itemData.enabled = !itemData.enabled;
|
||||
meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} the boombox radio`);
|
||||
messagePlayerAlert(client, `Use /radiostation to set the radio station and drop it on the ground to play`);
|
||||
messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`));
|
||||
break;
|
||||
}
|
||||
|
||||
case VRR_ITEM_USETYPE_PERSONALRADIO: {
|
||||
itemData.enabled = !itemData.enabled;
|
||||
meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} the boombox radio`);
|
||||
messagePlayerAlert(client, `Use /radiostation to set the radio station`);
|
||||
meActionToNearbyPlayers(client, `turns ${getOnOffFromBool(itemData.enabled)} their personal radio`);
|
||||
messagePlayerAlert(client, getLocaleString(client, "ItemRadioStationTip", `{ALTCOLOUR}/radiostation{MAINCOLOUR}`));
|
||||
break;
|
||||
}
|
||||
|
||||
case VRR_ITEM_USETYPE_NONE: {
|
||||
messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name));
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
messagePlayerError(client, `The ${itemTypeData.name} doesn't do anything when you try to use it.`);
|
||||
messagePlayerError(client, getLocaleString(client, "ItemDoesntDoAnythingOnUse", itemTypeData.name));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user