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,11 +224,13 @@ 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) {
let itemData = getItemData(getPlayerData(client).hotBarItems[i]); if(getItemData(getPlayerData(client).hotBarItems[i])) {
let itemTypeData = getItemTypeData(itemData.itemTypeIndex); let itemData = getItemData(getPlayerData(client).hotBarItems[i]);
itemExists = true; let itemTypeData = getItemTypeData(itemData.itemTypeIndex);
itemImage = itemTypeData.hotbarImage; itemExists = true;
itemValue = itemData.value; itemImage = itemTypeData.hotbarImage;
itemValue = itemData.value;
}
} }
tempHotBarItems.push([i, itemExists, itemImage, itemValue]); tempHotBarItems.push([i, itemExists, itemImage, itemValue]);
} }
@@ -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,65 +492,75 @@ function sendChatBoxMessageToPlayer(client, message, colour) {
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemTakeDelay(client, itemId) { function showPlayerItemTakeDelay(client, itemId) {
let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay; if(getItemData(itemId)) {
if(delay > 0) { let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay;
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); if(delay > 0) {
triggerNetworkEvent("ag.showItemActionDelay", client, delay); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
} else { triggerNetworkEvent("ag.showItemActionDelay", client, delay);
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (instant)`); } else {
playerTakeItem(client, itemId); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item TAKE delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerTakeItem(client, itemId);
}
} }
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemUseDelay(client, itemSlot) { function showPlayerItemUseDelay(client, itemSlot) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).useDelay; if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
if(delay > 0) { let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).useDelay;
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); if(delay > 0) {
triggerNetworkEvent("ag.showItemActionDelay", client, delay); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
} else { triggerNetworkEvent("ag.showItemActionDelay", client, delay);
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (instant)`); } else {
playeUseItem(client, itemSlot); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item USE delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerUseItem(client, itemSlot);
}
} }
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemDropDelay(client, itemSlot) { function showPlayerItemDropDelay(client, itemSlot) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).dropDelay; if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
if(delay > 0) { let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).dropDelay;
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); if(delay > 0) {
triggerNetworkEvent("ag.showItemActionDelay", client, delay); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
} else { triggerNetworkEvent("ag.showItemActionDelay", client, delay);
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (instant)`); } else {
playerDropItem(client, itemSlot); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item DROP delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerDropItem(client, itemSlot);
}
} }
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemPickupDelay(client, itemId) { function showPlayerItemPickupDelay(client, itemId) {
let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay; if(getItemData(itemId)) {
if(delay > 0) { let delay = getItemTypeData(getItemData(itemId).itemTypeIndex).pickupDelay;
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); if(delay > 0) {
triggerNetworkEvent("ag.showItemActionDelay", client, delay); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
} else { triggerNetworkEvent("ag.showItemActionDelay", client, delay);
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (instant)`); } else {
playerPickupItem(client, itemId); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PICKUP delay to ${getPlayerDisplayForConsole(client)} (instant)`);
playerPickupItem(client, itemId);
}
} }
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
function showPlayerItemPutDelay(client, itemSlot) { function showPlayerItemPutDelay(client, itemSlot) {
let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).putDelay; if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) {
if(delay > 0) { let delay = getItemTypeData(getItemData(getPlayerData(client).hotBarItems[itemSlot]).itemTypeIndex).putDelay;
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`); if(delay > 0) {
triggerNetworkEvent("ag.showItemActionDelay", client, delay); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (${delay} milliseconds)`);
} else { triggerNetworkEvent("ag.showItemActionDelay", client, delay);
logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (instant)`); } else {
playerPutItem(client, itemSlot); logToConsole(LOG_DEBUG, `[Asshat.Client] Showing item PUT delay to ${getPlayerDisplayForConsole(client)} (instant)`);
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;