Implement ammo items
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
|
||||||
Reference in New Issue
Block a user