Implement ammo items

This commit is contained in:
Vortrex
2022-01-04 20:03:58 -06:00
parent e472914ef9
commit d67c8a0099

View File

@@ -109,7 +109,7 @@ function createGroundItemObject(itemId) {
setElementRotation(getItemData(itemId).object, getItemTypeData(getItemData(itemId).itemTypeIndex).dropRotation); setElementRotation(getItemData(itemId).object, getItemTypeData(getItemData(itemId).itemTypeIndex).dropRotation);
setElementOnAllDimensions(getItemData(itemId).object, false); setElementOnAllDimensions(getItemData(itemId).object, false);
setElementDimension(getItemData(itemId).object, getItemData(itemId).dimension); setElementDimension(getItemData(itemId).object, getItemData(itemId).dimension);
setEntityData(getItemData(itemId).object, "vrr.scale", getItemTypeData(getItemData(itemId).itemTypeIndex).dropScale, true); //setEntityData(getItemData(itemId).object, "vrr.scale", getItemTypeData(getItemData(itemId).itemTypeIndex).dropScale, true);
addToWorld(getItemData(itemId).object); addToWorld(getItemData(itemId).object);
} }
@@ -593,7 +593,26 @@ function playerUseItem(client, hotBarSlot) {
break; break;
case VRR_ITEM_USETYPE_WEAPON: case VRR_ITEM_USETYPE_WEAPON:
messagePlayerError(client, `The ${getItemName(itemIndex)} is a weapon. To use it, switch to it from your items. The use key has no effect.`); for(let i in getPlayerData(client).hotBarItems) {
if(getPlayerData(client).hotBarItems[i] != -1) {
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).useId == getItemTypeData(getItemData(itemIndex).itemTypeIndex).databaseId) {
givePlayerWeaponAmmo(client, getItemData(getPlayerData(client).hotBarItems[i]).value);
getItemData(getPlayerData(client).hotBarItems[hotBarSlot]).value = getItemData(getPlayerData(client).hotBarItems[hotBarSlot]).value + getItemData(getPlayerData(client).hotBarItems[i]).value;
deleteItem(getPlayerData(client).hotBarItems[i]);
meActionToNearbyPlayers(client, `loads some ammo into their ${getItemTypeData(getItemData(itemIndex).itemTypeIndex).name}`);
return true;
}
}
}
}
}
messagePlayerError(client, `You don't have any ammo to load into your ${getItemTypeData(getItemData(itemIndex).itemTypeIndex).name}!`);
break;
case VRR_ITEM_USETYPE_AMMO_CLIP:
messagePlayerError(client, `To load this ammo into a weapon, equip the weapon and ${(doesPlayerHaveKeyBindForCommand(client, "use")) ? `press {ALTCOLOUR}${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "use").key))}` : `{ALTCOLOUR}/use`}`);
break; break;
case VRR_ITEM_USETYPE_STORAGE: case VRR_ITEM_USETYPE_STORAGE:
@@ -603,6 +622,7 @@ function playerUseItem(client, hotBarSlot) {
case VRR_ITEM_USETYPE_FOOD: case VRR_ITEM_USETYPE_FOOD:
meActionToNearbyPlayers(client, `eats some of their ${getItemName(itemIndex)}`); meActionToNearbyPlayers(client, `eats some of their ${getItemName(itemIndex)}`);
givePlayerHealth(client, getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue); givePlayerHealth(client, getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue);
getItemData(itemIndex).value = getItemData(itemIndex).value - getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
if(getItemData(itemIndex).value <= 0) { if(getItemData(itemIndex).value <= 0) {
deleteItem(itemIndex); deleteItem(itemIndex);
switchPlayerActiveHotBarSlot(client, -1); switchPlayerActiveHotBarSlot(client, -1);
@@ -714,7 +734,7 @@ function playerUseItem(client, hotBarSlot) {
vehicle = getClosestVehicle(getPlayerPosition(client)); 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.`);
setVehicleLivery(vehicle, getItemData(itemIndex).useValue); setVehicleLivery(vehicle, getItemData(itemIndex).value);
} }
break; break;
@@ -723,11 +743,11 @@ function playerUseItem(client, hotBarSlot) {
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) { if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
if(getItemData(itemIndex).useId == 1) { if(getItemData(itemIndex).useId == 1) {
meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the primary colour of the vehicle.`); meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the primary colour of the vehicle.`);
vehicle.colour1 = getItemData(itemIndex).useValue; vehicle.colour1 = getItemData(itemIndex).value;
} else { } else {
if(getItemData(itemIndex).useId == 1) { if(getItemData(itemIndex).useId == 1) {
meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the secondary colour of the vehicle.`); meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the secondary colour of the vehicle.`);
vehicle.colour2 = getItemData(itemIndex).useValue; vehicle.colour2 = getItemData(itemIndex).value;
} }
} }
} }
@@ -754,11 +774,11 @@ function playerUseItem(client, hotBarSlot) {
if(getDistance(getPlayerPosition(client), getFuelPumpData(fuelPump).position) <= getGlobalConfig().vehicleRepairDistance) { if(getDistance(getPlayerPosition(client), getFuelPumpData(fuelPump).position) <= getGlobalConfig().vehicleRepairDistance) {
if(getItemData(itemIndex).useId == 1) { if(getItemData(itemIndex).useId == 1) {
meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the primary colour of the vehicle.`); meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the primary colour of the vehicle.`);
vehicle.colour1 = getItemData(itemIndex).useValue; vehicle.colour1 = getItemTypeData(itemIndex).value;
} else { } else {
if(getItemData(itemIndex).useId == 1) { if(getItemData(itemIndex).useId == 1) {
meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the secondary colour of the vehicle.`); meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the secondary colour of the vehicle.`);
vehicle.colour2 = getItemData(itemIndex).useValue; vehicle.colour2 = getItemData(itemIndex).value;
} }
} }
} }
@@ -790,14 +810,24 @@ function playerUseItem(client, hotBarSlot) {
case VRR_ITEM_USETYPE_SMOKEDRUG: case VRR_ITEM_USETYPE_SMOKEDRUG:
meActionToNearbyPlayers(client, `smokes some ${getItemName(itemIndex)}`); meActionToNearbyPlayers(client, `smokes some ${getItemName(itemIndex)}`);
givePlayerHealth(client, 25); getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
givePlayerHealth(client, 100);
deleteItem(itemIndex); deleteItem(itemIndex);
switchPlayerActiveHotBarSlot(client, -1); switchPlayerActiveHotBarSlot(client, -1);
break; break;
case VRR_ITEM_USETYPE_SNORTDRUG: case VRR_ITEM_USETYPE_SNORTDRUG:
meActionToNearbyPlayers(client, `snorts some ${getItemName(itemIndex)}`); meActionToNearbyPlayers(client, `snorts some ${getItemName(itemIndex)}`);
givePlayerHealth(client, 50); getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
givePlayerHealth(client, 100);
deleteItem(itemIndex);
switchPlayerActiveHotBarSlot(client, -1);
break;
case VRR_ITEM_USETYPE_INJECTDRUG:
meActionToNearbyPlayers(client, `shoots up some ${getItemName(itemIndex)}`);
getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
givePlayerHealth(client, 100);
deleteItem(itemIndex); deleteItem(itemIndex);
switchPlayerActiveHotBarSlot(client, -1); switchPlayerActiveHotBarSlot(client, -1);
break; break;
@@ -824,6 +854,10 @@ function playerUseItem(client, hotBarSlot) {
} }
break; break;
case VRR_ITEM_USETYPE_AMMOCLIP:
messagePlayerError(client, `Equip a compatible weapon and press R to use an ammo clip/magazine`);
break;
default: default:
messagePlayerError(client, `The ${getItemName(itemIndex)} doesn't do anything when you try to use it.`); messagePlayerError(client, `The ${getItemName(itemIndex)} doesn't do anything when you try to use it.`);
break; break;
@@ -1944,6 +1978,4 @@ function createGroundPlant(itemId) {
groundPlantCache.push(itemId); groundPlantCache.push(itemId);
groundItemCache.push(itemId); groundItemCache.push(itemId);
} }
// ===========================================================================