Bind hotbar update to client side

This commit is contained in:
Vortrex
2021-01-25 22:40:39 -06:00
parent 57fd6c0b21
commit 2d9951a86c

View File

@@ -34,7 +34,7 @@ function addAllNetworkHandlers() {
addNetworkHandler("ag.exitedSphere", onPlayerExitedSphere); addNetworkHandler("ag.exitedSphere", onPlayerExitedSphere);
addNetworkHandler("ag.playerDeath", onPlayerDeath); addNetworkHandler("ag.playerDeath", onPlayerDeath);
addNetworkHandler("ag.onPlayerEnterVehicle", onPlayerEnteredVehicle); addNetworkHandler("ag.onPlayerEnterVehicle", onPlayerEnteredVehicle);
addNetworkHandler("ag.onPlayerExitVehicle", onPlayerExitedVehicle); //addNetworkHandler("ag.onPlayerExitVehicle", onPlayerExitedVehicle);
// Job // Job
addNetworkHandler("ag.arrivedAtJobRouteStop", playerArrivedAtJobRouteStop); addNetworkHandler("ag.arrivedAtJobRouteStop", playerArrivedAtJobRouteStop);
@@ -154,7 +154,7 @@ function updatePlayerSpawnedState(client, state) {
function setPlayerControlState(client, state) { function setPlayerControlState(client, state) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s control state ${toUpperCase(getOnOffFromBool(state))}`); logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s control state ${toUpperCase(getOnOffFromBool(state))}`);
triggerNetworkEvent("ag.control", client, state); triggerNetworkEvent("ag.control", client, state, !state);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -224,12 +224,14 @@ function updatePlayerHotBar(client) {
let itemValue = 0; let itemValue = 0;
let itemExists = false; let itemExists = false;
if(getPlayerData(client).hotBarItems[i] != -1) { if(getPlayerData(client).hotBarItems[i] != -1) {
if(getItemData(getPlayerData(client).hotBarItems[i])) {
let itemData = getItemData(getPlayerData(client).hotBarItems[i]); let itemData = getItemData(getPlayerData(client).hotBarItems[i]);
let itemTypeData = getItemTypeData(itemData.itemTypeIndex); let itemTypeData = getItemTypeData(itemData.itemTypeIndex);
itemExists = true; itemExists = true;
itemImage = itemTypeData.hotbarImage; itemImage = itemTypeData.hotbarImage;
itemValue = itemData.value; itemValue = itemData.value;
} }
}
tempHotBarItems.push([i, itemExists, itemImage, itemValue]); tempHotBarItems.push([i, itemExists, itemImage, itemValue]);
} }
triggerNetworkEvent("ag.hotbar", client, getPlayerData(client).activeHotBarSlot, tempHotBarItems); triggerNetworkEvent("ag.hotbar", client, getPlayerData(client).activeHotBarSlot, tempHotBarItems);
@@ -247,6 +249,7 @@ function setPlayerWeaponDamageEnabled(client, state) {
function setPlayerWeaponDamageEvent(client, eventType) { function setPlayerWeaponDamageEvent(client, eventType) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Sending weapon damage event (${eventType}) for ${getPlayerDisplayForConsole(client)} to all players`); logToConsole(LOG_DEBUG, `[Asshat.Client] Sending weapon damage event (${eventType}) for ${getPlayerDisplayForConsole(client)} to all players`);
triggerNetworkEvent("ag.weaponDamageEvent", null, client.name, eventType); triggerNetworkEvent("ag.weaponDamageEvent", null, client.name, eventType);
getPlayerData(client).weaponDamageEvent = eventType;
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -489,6 +492,7 @@ function sendChatBoxMessageToPlayer(client, message, colour) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemTakeDelay(client, itemId) { function showPlayerItemTakeDelay(client, itemId) {
if(getItemData(itemId)) {
let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay; let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay;
if(delay > 0) { if(delay > 0) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
@@ -497,24 +501,28 @@ function showPlayerItemTakeDelay(client, itemId) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (instant)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerTakeItem(client, itemId); playerTakeItem(client, itemId);
} }
}
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemUseDelay(client, itemSlot) { function showPlayerItemUseDelay(client, itemSlot) {
if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).useDelay; let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).useDelay;
if(delay > 0) { if(delay > 0) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
triggerNetworkEvent("ag.showItemActionDelay", client, delay); triggerNetworkEvent("ag.showItemActionDelay", client, delay);
} else { } else {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (instant)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playeUseItem(client, itemSlot); playerUseItem(client, itemSlot);
}
} }
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemDropDelay(client, itemSlot) { function showPlayerItemDropDelay(client, itemSlot) {
if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).dropDelay; let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).dropDelay;
if(delay > 0) { if(delay > 0) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
@@ -523,11 +531,13 @@ function showPlayerItemDropDelay(client, itemSlot) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (instant)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerDropItem(client, itemSlot); playerDropItem(client, itemSlot);
} }
}
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemPickupDelay(client, itemId) { function showPlayerItemPickupDelay(client, itemId) {
if(getItemData(itemId)) {
let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay; let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay;
if(delay > 0) { if(delay > 0) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
@@ -536,11 +546,13 @@ function showPlayerItemPickupDelay(client, itemId) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (instant)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerPickupItem(client, itemId); playerPickupItem(client, itemId);
} }
}
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemPutDelay(client, itemSlot) { function showPlayerItemPutDelay(client, itemSlot) {
if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).putDelay; let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).putDelay;
if(delay > 0) { if(delay > 0) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
@@ -549,6 +561,7 @@ function showPlayerItemPutDelay(client, itemSlot) {
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (instant)`); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerPutItem(client, itemSlot); playerPutItem(client, itemSlot);
} }
}
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -584,17 +597,34 @@ function sendPlayerClearPedState(client) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function playerDamagedByPlayer(client, damagerPed, weaponId, pedPiece) { function playerDamagedByPlayer(client, damagerEntityName, weaponId, pedPiece, healthLoss) {
let damagerClient = getClientFromPlayerElement(damagerPed); let damagerEntity = getClientByName(damagerEntityName);
if(!getPlayerData(damagerClient) || !getPlayerData(client)) { if(isNull(damagerEntity)) {
logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)}'s damager entity from ID is null`);
return false; return false;
} }
switch(getPlayerData(damagerClient).weaponDamageEvent) { logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)} was damaged by ${damagerEntity}`);
if(isNull(damagerEntity)) {
logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)}'s damager client is INVALID`);
return false;
}
if(!getPlayerData(damagerEntity) || !getPlayerData(client)) {
logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)}'s damager's client data is INVALID`);
return false;
}
logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)}'s damager is ${getPlayerDisplayForConsole(damagerEntity)}`);
switch(getPlayerData(damagerEntity).weaponDamageEvent) {
case AG_WEAPON_DAMAGE_EVENT_TAZER: case AG_WEAPON_DAMAGE_EVENT_TAZER:
logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)}'s damager ${getPlayerDisplayForConsole(damagerEntity)} is using a tazer`);
if(!isPlayerTazed(client) && !isPlayerHandCuffed(client) && !isPlayerInAnyVehicle(client)) { if(!isPlayerTazed(client) && !isPlayerHandCuffed(client) && !isPlayerInAnyVehicle(client)) {
meActionToNearbyPlayers(client, `electrifies ${getCharacterFullName(damagerClient)} with their tazer`); logToConsole(LOG_DEBUG, `[Asshat.Client] ${getPlayerDisplayForConsole(client)} was not previously tazed, binded, or in a vehicle. Taze successful`);
meActionToNearbyPlayers(damagerEntity, `electrifies ${getCharacterFullName(client)} with their tazer`);
tazePlayer(client); tazePlayer(client);
} }
break; break;