Bind hotbar update to client side
This commit is contained in:
@@ -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)`);
|
||||||
@@ -498,23 +502,27 @@ function showPlayerItemTakeDelay(client, itemId) {
|
|||||||
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)`);
|
||||||
@@ -524,10 +532,12 @@ function showPlayerItemDropDelay(client, itemSlot) {
|
|||||||
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)`);
|
||||||
@@ -537,10 +547,12 @@ function showPlayerItemPickupDelay(client, itemId) {
|
|||||||
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)`);
|
||||||
@@ -550,6 +562,7 @@ function showPlayerItemPutDelay(client, itemSlot) {
|
|||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user