More vehicle purchase stuff

This commit is contained in:
Vortrex
2022-01-31 13:46:50 -06:00
parent f11015551f
commit ae32861b44
4 changed files with 45 additions and 26 deletions

View File

@@ -65,16 +65,15 @@ function addAllNetworkHandlers() {
// Item
addNetworkEventHandler("vrr.itemActionDelayComplete", playerItemActionDelayComplete);
addNetworkEventHandler("vrr.weaponDamage", playerDamagedByPlayer);
// Misc
addNetworkEventHandler("vrr.player.position", updatePositionInPlayerData);
addNetworkEventHandler("vrr.player.heading", updateHeadingInPlayerData);
addNetworkEventHandler("vrr.player.lookat", setPlayerHeadLookPosition);
addNetworkEventHandler("vrr.skinSelected", playerFinishedSkinSelection);
addNetworkEventHandler("vrr.clientInfo", updateConnectionLogOnClientInfoReceive);
addNetworkEventHandler("vrr.vehBuyState", receiveVehiclePurchaseStateUpdateFromClient);
}
// ===========================================================================
@@ -1122,8 +1121,18 @@ function updateAllInteriorVehiclesForPlayer(client, interior, dimension) {
// ===========================================================================
function setPlayerBuyingVehicleState(state, vehicle, position) {
function setPlayerBuyingVehicleState(client, state, vehicleId, position) {
if(getGlobalConfig().useServerSideVehiclePurchaseCheck == false) {
sendNetworkEventToPlayer("vrr.vehBuyState", client, state, vehicleId, position);
}
}
// ==========================================================================
function receiveVehiclePurchaseStateUpdateFromClient(client, state) {
if(getGlobalConfig().useServerSideVehiclePurchaseCheck == false) {
checkVehicleBuying(client);
}
}
// ===========================================================================
@@ -1132,4 +1141,4 @@ function sendPlayerLogLevel(client, tempLogLevel = logLevel) {
sendNetworkEventToPlayer("vrr.logLevel", client, tempLogLevel);
}
// ===========================================================================
// ==========================================================================

View File

@@ -70,6 +70,7 @@ let globalConfig = {
economy: {},
locales: [],
accents: [],
useServerSideVehiclePurchaseCheck: false,
};
// ===========================================================================

View File

@@ -157,10 +157,12 @@ function onProcess(event, deltaTime) {
//checkPlayerPedState();
//checkVehicleBurning();
if(getGlobalConfig().useServerSideVehiclePurchaseCheck == true) {
getClients().forEach((client) => {
checkVehicleBuying(client);
});
}
}
// ===========================================================================
@@ -299,12 +301,12 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
return false;
}
if(getPlayerData(client).enteringVehicle == null || getPlayerData(client).enteringVehicle != vehicle) {
messagePlayerError(client, "You can't enter this vehicle!");
removePlayerFromVehicle(client);
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}tried to warp into a locked vehicle`);
return false;
}
//if(getPlayerData(client).enteringVehicle == null || getPlayerData(client).enteringVehicle != vehicle) {
// messagePlayerError(client, "You can't enter this vehicle!");
// removePlayerFromVehicle(client);
// messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}tried to warp into a locked vehicle`);
// return false;
//}
logToConsole(LOG_DEBUG, `[VRR.Event] ${getPlayerDisplayForConsole(client)} entered a ${getVehicleName(vehicle)} (ID: ${vehicle.getData("vrr.dataSlot")}, Database ID: ${getVehicleData(vehicle).databaseId})`);
@@ -315,13 +317,11 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
vehicle.engine = getVehicleData(vehicle).engine;
if(getVehicleData(vehicle).buyPrice > 0) {
messagePlayerAlert(client, `This ${getVehicleName(vehicle)} is for sale! Cost: {ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).buyPrice)}`);
messagePlayerTip(client, `Use /vehbuy if you want to buy it.`);
messagePlayerAlert(client, getLocaleString(client, "VehicleForSale", getVehicleName(vehicle), `{ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).buyPrice)}{MAINCOLOUR}`, `{ALTCOLOUR}/vehbuy{MAINCOLOUR}`));
resetVehiclePosition(vehicle);
} else if(getVehicleData(vehicle).rentPrice > 0) {
if(getVehicleData(vehicle).rentedBy != client) {
messagePlayerAlert(client, `This ${getVehicleName(vehicle)} is for rent! Cost: {ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).rentPrice)} per minute`);
messagePlayerTip(client, `Use /vehrent if you want to rent it.`);
messagePlayerAlert(client, getLocaleString(client, "VehicleForRent", getVehicleName(vehicle), `{ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).rentPrice)}`, `{ALTCOLOUR}/vehrent{MAINCOLOUR}`));
resetVehiclePosition(vehicle);
} else {
messagePlayerAlert(client, `You are renting this ${getVehicleName(vehicle)} for {ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).rentPrice)} per minute. {MAINCOLOUR}Use {ALTCOLOUR}/stoprent {MAINCOLOUR}if you want to stop renting it.`);
@@ -359,6 +359,7 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
}
if(!getVehicleData(vehicle).engine) {
if(getVehicleData(vehicle).buyPrice == 0 && getVehicleData(vehicle).rentPrice == 0) {
if(doesPlayerHaveVehicleKeys(client, vehicle)) {
if(!doesPlayerHaveKeyBindsDisabled(client) && doesPlayerHaveKeyBindForCommand(client, "engine")) {
messagePlayerTip(client, `This ${getVehicleName(vehicle)}'s engine is off. Press {ALTCOLOUR}${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "engine").key))} {MAINCOLOUR}to start it.`);
@@ -369,6 +370,7 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off and you don't have the keys to start it`);
}
}
resetVehiclePosition(vehicle);
}

View File

@@ -580,7 +580,7 @@ function buyVehicleCommand(command, params, client) {
vehicle.engine = true;
getVehicleData(vehicle).needsSaved = true;
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_TESTDRIVE, vehicle.id, getVehiclePosition(vehicle));
meActionToNearbyPlayers(client, `receives a set of keys to test drive the ${getVehicleName(vehicle)} and starts the engine`);
messagePlayerInfo(client, getLocaleString(client, "DealershipPurchaseTestDrive"));
}
@@ -1354,18 +1354,22 @@ function createPermanentVehicle(modelIndex, position, heading, interior = 0, dim
function checkVehicleBuying(client) {
if(!isPlayerLoggedIn(client)) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false;
}
if(!isPlayerSpawned(client)) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false;
}
if(!getPlayerData(client)) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false;
}
if(!getPlayerData(client).buyingVehicle) {
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false;
}
@@ -1374,6 +1378,7 @@ function checkVehicleBuying(client) {
messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle"));
respawnVehicle(getPlayerData(client).buyingVehicle);
getPlayerData(client).buyingVehicle = false;
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
}
return false;
}
@@ -1383,6 +1388,7 @@ function checkVehicleBuying(client) {
messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney"));
respawnVehicle(getPlayerData(client).buyingVehicle);
getPlayerData(client).buyingVehicle = false;
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return false;
}
@@ -1396,6 +1402,7 @@ function checkVehicleBuying(client) {
getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false;
getPlayerData(client).buyingVehicle = false;
messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete"));
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
return true;
}