Use anims for item actions
This commit is contained in:
@@ -12,6 +12,7 @@ function initItemScript() {
|
|||||||
getServerData().itemTypes = loadItemTypesFromDatabase();
|
getServerData().itemTypes = loadItemTypesFromDatabase();
|
||||||
getServerData().items = loadItemsFromDatabase();
|
getServerData().items = loadItemsFromDatabase();
|
||||||
|
|
||||||
|
setItemTypeDataIndexes();
|
||||||
setItemDataIndexes();
|
setItemDataIndexes();
|
||||||
|
|
||||||
cacheAllGroundItems();
|
cacheAllGroundItems();
|
||||||
@@ -216,6 +217,10 @@ function useItemCommand(command, params, client) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(getItemTypeData(getItemData(itemId).itemTypeIndex).useAnimationIndex != false) {
|
||||||
|
makePlayerPlayAnimation(client, getItemTypeData(getItemData(itemId).itemTypeIndex).useAnimationIndex, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_USE;
|
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_USE;
|
||||||
getPlayerData(client).itemActionItem = hotBarSlot;
|
getPlayerData(client).itemActionItem = hotBarSlot;
|
||||||
showPlayerItemUseDelay(client, hotBarSlot);
|
showPlayerItemUseDelay(client, hotBarSlot);
|
||||||
@@ -285,6 +290,10 @@ function pickupItemCommand(command, params, client) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(getItemTypeData(getItemData(itemId).itemTypeIndex).dropAnimationIndex != false) {
|
||||||
|
makePlayerPlayAnimation(client, getItemTypeData(getItemData(itemId).itemTypeIndex).pickupAnimationIndex, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_PICKUP;
|
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_PICKUP;
|
||||||
getPlayerData(client).itemActionItem = itemId;
|
getPlayerData(client).itemActionItem = itemId;
|
||||||
showPlayerItemPickupDelay(client, itemId);
|
showPlayerItemPickupDelay(client, itemId);
|
||||||
@@ -342,6 +351,10 @@ function dropItemCommand(command, params, client) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(getItemTypeData(getItemData(itemId).itemTypeIndex).dropAnimationIndex != false) {
|
||||||
|
makePlayerPlayAnimation(client, getItemTypeData(getItemData(itemId).itemTypeIndex).dropAnimationIndex, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_DROP;
|
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_DROP;
|
||||||
getPlayerData(client).itemActionItem = hotBarSlot;
|
getPlayerData(client).itemActionItem = hotBarSlot;
|
||||||
showPlayerItemDropDelay(client, hotBarSlot);
|
showPlayerItemDropDelay(client, hotBarSlot);
|
||||||
@@ -385,6 +398,10 @@ function putItemCommand(command, params, client) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(getItemTypeData(getItemData(itemId).itemTypeIndex).putAnimationIndex != false) {
|
||||||
|
makePlayerPlayAnimation(client, getItemTypeData(getItemData(itemId).itemTypeIndex).putAnimationIndex, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
getPlayerData(client).itemActionItem = hotBarSlot;
|
getPlayerData(client).itemActionItem = hotBarSlot;
|
||||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_PUT;
|
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_PUT;
|
||||||
showPlayerItemPutDelay(client, hotBarSlot);
|
showPlayerItemPutDelay(client, hotBarSlot);
|
||||||
@@ -428,6 +445,10 @@ function takeItemCommand(command, params, client) {
|
|||||||
// return false;
|
// return false;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
if(getItemTypeData(getItemData(itemId).itemTypeIndex).takeAnimationIndex != false) {
|
||||||
|
makePlayerPlayAnimation(client, getItemTypeData(getItemData(itemId).itemTypeIndex).takeAnimationIndex, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
getPlayerData(client).itemActionItem = itemId;
|
getPlayerData(client).itemActionItem = itemId;
|
||||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_TAKE;
|
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_TAKE;
|
||||||
showPlayerItemTakeDelay(client, itemId);
|
showPlayerItemTakeDelay(client, itemId);
|
||||||
@@ -630,7 +651,7 @@ function playerUseItem(client, hotBarSlot) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VRR_ITEM_USETYPE_DRINK:
|
case VRR_ITEM_USETYPE_DRINK:
|
||||||
meActionToNearbyPlayers(client, `drink some of their ${getItemName(itemIndex)}`);
|
meActionToNearbyPlayers(client, `drinks 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;
|
getItemData(itemIndex).value = getItemData(itemIndex).value - getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
||||||
if(getItemData(itemIndex).value <= 0) {
|
if(getItemData(itemIndex).value <= 0) {
|
||||||
@@ -810,24 +831,27 @@ 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)}`);
|
||||||
getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
if(getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue > 25) {
|
||||||
givePlayerHealth(client, 100);
|
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
||||||
|
}
|
||||||
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)}`);
|
||||||
getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
if(getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue > 25) {
|
||||||
givePlayerHealth(client, 100);
|
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
||||||
|
}
|
||||||
deleteItem(itemIndex);
|
deleteItem(itemIndex);
|
||||||
switchPlayerActiveHotBarSlot(client, -1);
|
switchPlayerActiveHotBarSlot(client, -1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VRR_ITEM_USETYPE_INJECTDRUG:
|
case VRR_ITEM_USETYPE_INJECTDRUG:
|
||||||
meActionToNearbyPlayers(client, `shoots up some ${getItemName(itemIndex)}`);
|
meActionToNearbyPlayers(client, `shoots up some ${getItemName(itemIndex)}`);
|
||||||
getPlayerData(client).incomingDamageMultiplier = getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
if(getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue > 25) {
|
||||||
givePlayerHealth(client, 100);
|
getPlayerData(client).incomingDamageMultiplier = getPlayerData(client).incomingDamageMultiplier-getItemTypeData(getItemData(itemIndex).itemTypeIndex).useValue;
|
||||||
|
}
|
||||||
deleteItem(itemIndex);
|
deleteItem(itemIndex);
|
||||||
switchPlayerActiveHotBarSlot(client, -1);
|
switchPlayerActiveHotBarSlot(client, -1);
|
||||||
break;
|
break;
|
||||||
@@ -854,7 +878,7 @@ function playerUseItem(client, hotBarSlot) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VRR_ITEM_USETYPE_AMMOCLIP:
|
case VRR_ITEM_USETYPE_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;
|
||||||
|
|
||||||
@@ -1133,6 +1157,23 @@ function setItemDataIndexes() {
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
|
function setItemTypeDataIndexes() {
|
||||||
|
for(let i in getServerData().itemTypes) {
|
||||||
|
if(getServerData().itemTypes[i]) {
|
||||||
|
getServerData().itemTypes[i].index = i;
|
||||||
|
getServerData().itemTypes[i].useAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].useAnimationName);
|
||||||
|
getServerData().itemTypes[i].switchAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].switchAnimationName);
|
||||||
|
getServerData().itemTypes[i].dropAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].dropAnimationName);
|
||||||
|
getServerData().itemTypes[i].putAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].putAnimationName);
|
||||||
|
getServerData().itemTypes[i].takeAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].takeAnimationName);
|
||||||
|
getServerData().itemTypes[i].giveAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].giveAnimationName);
|
||||||
|
getServerData().itemTypes[i].pickupAnimationIndex = getAnimationFromParams(getServerData().itemTypes[i].pickupAnimationName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
function cacheAllGroundItems() {
|
function cacheAllGroundItems() {
|
||||||
getServerData().groundItemCache = [];
|
getServerData().groundItemCache = [];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user