More vehicle purchase stuff
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
// ==========================================================================
|
||||
@@ -70,6 +70,7 @@ let globalConfig = {
|
||||
economy: {},
|
||||
locales: [],
|
||||
accents: [],
|
||||
useServerSideVehiclePurchaseCheck: false,
|
||||
};
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
@@ -157,9 +157,11 @@ function onProcess(event, deltaTime) {
|
||||
//checkPlayerPedState();
|
||||
//checkVehicleBurning();
|
||||
|
||||
getClients().forEach((client) => {
|
||||
checkVehicleBuying(client);
|
||||
});
|
||||
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,15 +359,17 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
|
||||
}
|
||||
|
||||
if(!getVehicleData(vehicle).engine) {
|
||||
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.`);
|
||||
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.`);
|
||||
} else {
|
||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off. Use /engine to start it`);
|
||||
}
|
||||
} else {
|
||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off. Use /engine to start it`);
|
||||
}
|
||||
} else {
|
||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off and you don't have the keys to start it`);
|
||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off and you don't have the keys to start it`);
|
||||
|
||||
}
|
||||
}
|
||||
resetVehiclePosition(vehicle);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user