Fix job equipment bug, add badge item usetype
This commit is contained in:
@@ -331,6 +331,11 @@ function dropItemCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isPlayerItemFromJobEquipment(client, hotBarSlot)) {
|
||||
messagePlayerError(client, `You can't drop job items`);
|
||||
return false;
|
||||
}
|
||||
|
||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_DROP;
|
||||
getPlayerData(client).itemActionItem = hotBarSlot;
|
||||
showPlayerItemDropDelay(client, hotBarSlot);
|
||||
@@ -369,6 +374,11 @@ function putItemCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isPlayerItemFromJobEquipment(client, hotBarSlot)) {
|
||||
messagePlayerError(client, `You can't put job items`);
|
||||
return false;
|
||||
}
|
||||
|
||||
getPlayerData(client).itemActionItem = hotBarSlot;
|
||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_PUT;
|
||||
showPlayerItemPutDelay(client, hotBarSlot);
|
||||
@@ -407,6 +417,11 @@ function takeItemCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//if(isPlayerItemFromJobEquipment(client, hotBarSlot)) {
|
||||
// messagePlayerError(client, `You can't take job items`);
|
||||
// return false;
|
||||
//}
|
||||
|
||||
getPlayerData(client).itemActionItem = itemId;
|
||||
getPlayerData(client).itemActionState = VRR_ITEM_ACTION_TAKE;
|
||||
showPlayerItemTakeDelay(client, itemId);
|
||||
@@ -635,7 +650,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_VEHREPAIR:
|
||||
let vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
|
||||
meActionToNearbyPlayers(client, `takes their repair kit and fixes the vehicle`);
|
||||
repairVehicle(vehicle);
|
||||
@@ -648,7 +663,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_VEHUPGRADE_PART:
|
||||
let vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
|
||||
meActionToNearbyPlayers(client, `takes their upgrade kit and adds a ${getItemName(itemIndex)} to the vehicle.`);
|
||||
addVehicleUpgrade(vehicle, getItemData(itemIndex).useId);
|
||||
@@ -656,7 +671,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_VEHLIVERY:
|
||||
let vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
|
||||
meActionToNearbyPlayers(client, `takes their decal kit and adds some decals to the vehicle.`);
|
||||
setVehicleLivery(vehicle, getItemData(itemIndex).useValue);
|
||||
@@ -664,7 +679,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_VEHCOLOUR:
|
||||
let vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
|
||||
if(getItemData(itemIndex).useId == 1) {
|
||||
meActionToNearbyPlayers(client, `takes their vehicle colour kit and changes the primary colour of the vehicle.`);
|
||||
@@ -679,7 +694,7 @@ function playerUseItem(client, hotBarSlot) {
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_FUELCAN:
|
||||
let vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
vehicle = getClosestVehicle(getPlayerPosition(client));
|
||||
let fuelPump = getClosestFuelPump(getPlayerPosition(client));
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getDistance(getPlayerPosition(client), getFuelPumpData(fuelPump).position)) {
|
||||
if(getDistance(getPlayerPosition(client), getVehiclePosition(vehicle)) <= getGlobalConfig().vehicleRepairDistance) {
|
||||
@@ -747,6 +762,18 @@ function playerUseItem(client, hotBarSlot) {
|
||||
switchPlayerActiveHotBarSlot(client, -1);
|
||||
break;
|
||||
|
||||
case VRR_ITEM_USETYPE_BADGE:
|
||||
let clients = getClients();
|
||||
for(let i in clients) {
|
||||
if(getDistance(getPlayerPosition(client), getPlayerPosition(clients[i])) <= 7) {
|
||||
messagePlayerInfo(client, `${getInlineChatColourByType("clanOrange")}== ${getInlineChatColourByType("jobYellow")}Badge ${getInlineChatColourByType("clanOrange")}====================================`);
|
||||
messagePlayerNormal(client, `${getInlineChatColourByType("clanOrange")}Name: ${getInlineChatColourByName("white")}${getCharacterFullName(client)}`);
|
||||
messagePlayerNormal(client, `${getInlineChatColourByType("clanOrange")}Type: ${getInlineChatColourByName("white")}${getJobData(getPlayerJob(client)).name}`);
|
||||
messagePlayerNormal(client, `${getInlineChatColourByType("clanOrange")}Rank: ${getInlineChatColourByName("white")}${getJobRankData(getPlayerJob(client), getPlayerJobRank(client)).name}`);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
messagePlayerError(client, `The ${getItemName(itemIndex)} doesn't do anything when you try to use it.`);
|
||||
break;
|
||||
@@ -970,8 +997,10 @@ function playerSwitchHotBarSlotCommand(command, params, client) {
|
||||
hotBarSlot = hotBarSlot-1;
|
||||
}
|
||||
|
||||
if(getPlayerData(client).activeHotBarSlot == hotBarSlot) {
|
||||
hotBarSlot = -1;
|
||||
if(hotBarSlot != -1) {
|
||||
if(getPlayerData(client).activeHotBarSlot == hotBarSlot) {
|
||||
hotBarSlot = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if(getPlayerData(client).itemActionState != VRR_ITEM_ACTION_NONE) {
|
||||
@@ -1005,8 +1034,10 @@ function getClosestItemOnGround(position) {
|
||||
|
||||
function setItemDataIndexes() {
|
||||
for(let i in getServerData().items) {
|
||||
getServerData().items[i].index = i;
|
||||
getServerData().items[i].itemTypeIndex = getItemTypeIndexFromDatabaseId(getServerData().items[i].itemType);
|
||||
if(getServerData().items[i]) {
|
||||
getServerData().items[i].index = i;
|
||||
getServerData().items[i].itemTypeIndex = getItemTypeIndexFromDatabaseId(getServerData().items[i].itemType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1055,7 +1086,7 @@ function cachePlayerHotBarItems(client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for(let i = 0 ; i <= 9 ; i++) {
|
||||
for(let i = 0 ; i < 9 ; i++) {
|
||||
getPlayerData(client).hotBarItems[i] = -1;
|
||||
}
|
||||
|
||||
@@ -1349,7 +1380,7 @@ function saveItemToDatabase(itemId) {
|
||||
// ===========================================================================
|
||||
|
||||
function storePlayerItemsInJobLocker(client) {
|
||||
for(let i = 0 ; i <= 8 ; i++) {
|
||||
for(let i = 0 ; i < 9 ; i++) {
|
||||
getPlayerData(client).jobLockerCache[i] = getPlayerData(client).hotBarItems[i];
|
||||
getPlayerData(client).hotBarItems[i] = -1;
|
||||
}
|
||||
@@ -1367,7 +1398,7 @@ function restorePlayerJobLockerItems(client) {
|
||||
}
|
||||
}
|
||||
|
||||
for(let i = 0 ; i <= 8 ; i++) {
|
||||
for(let i = 0 ; i < 9 ; i++) {
|
||||
getPlayerData(client).hotBarItems[i] = getPlayerData(client).jobLockerCache[i];
|
||||
getPlayerData(client).jobLockerCache[i] = -1;
|
||||
}
|
||||
@@ -1537,6 +1568,30 @@ function deleteItemInPlayerInventoryCommand(command, params, client) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function deleteAllItemsInPlayerInventoryCommand(command, params, client) {
|
||||
if(areParamsEmpty(params)) {
|
||||
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||
return false;
|
||||
}
|
||||
|
||||
let splitParams = params.split(" ");
|
||||
let targetClient = getPlayerFromParams(splitParams[0]);
|
||||
let hotBarSlot = splitParams[1];
|
||||
|
||||
if(!targetClient) {
|
||||
messagePlayerError(client, `Player not found!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
for(let i = 0; i < 9; i++) {
|
||||
deleteItem(getPlayerData(targetClient).hotBarItems[i]);
|
||||
}
|
||||
|
||||
messagePlayerSuccess(client, `You deleted all items in ${getInlineChatColourByName("lightGrey")}${getCharacterFullName(targetClient)}'s ${getInlineChatColourByName("white")}inventory`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function getItemName(itemId) {
|
||||
if(getItemData(itemId)) {
|
||||
return getItemTypeData(getItemData(itemId).itemTypeIndex).name;
|
||||
@@ -1752,4 +1807,30 @@ function switchPlayerActiveHotBarSlot(client, slotId) {
|
||||
//clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function isPlayerItemFromJobEquipment(client, hotBarSlot) {
|
||||
if(getPlayerData(client).hotBarItems[hotBarSlot].databaseId = -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function getItemPosition(itemId) {
|
||||
switch(getItemData(itemId).ownerType) {
|
||||
case VRR_ITEM_OWNER_PLAYER:
|
||||
return getPlayerPosition(getPlayerFromCharacterId(getItemData(itemId).ownerId));
|
||||
|
||||
case VRR_ITEM_OWNER_VEHDASH:
|
||||
case VRR_ITEM_OWNER_VEHTRUNK:
|
||||
return getVehiclePosition(getVehicleFromDatabaseId(getItemData(itemId).ownerId));
|
||||
|
||||
case VRR_ITEM_OWNER_GROUND:
|
||||
return getItemData(itemId).position;
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
Reference in New Issue
Block a user