More vehicle purchase stuff
This commit is contained in:
@@ -65,16 +65,15 @@ function addAllNetworkHandlers() {
|
|||||||
|
|
||||||
// Item
|
// Item
|
||||||
addNetworkEventHandler("vrr.itemActionDelayComplete", playerItemActionDelayComplete);
|
addNetworkEventHandler("vrr.itemActionDelayComplete", playerItemActionDelayComplete);
|
||||||
|
|
||||||
addNetworkEventHandler("vrr.weaponDamage", playerDamagedByPlayer);
|
addNetworkEventHandler("vrr.weaponDamage", playerDamagedByPlayer);
|
||||||
|
|
||||||
|
// Misc
|
||||||
addNetworkEventHandler("vrr.player.position", updatePositionInPlayerData);
|
addNetworkEventHandler("vrr.player.position", updatePositionInPlayerData);
|
||||||
addNetworkEventHandler("vrr.player.heading", updateHeadingInPlayerData);
|
addNetworkEventHandler("vrr.player.heading", updateHeadingInPlayerData);
|
||||||
addNetworkEventHandler("vrr.player.lookat", setPlayerHeadLookPosition);
|
addNetworkEventHandler("vrr.player.lookat", setPlayerHeadLookPosition);
|
||||||
|
|
||||||
addNetworkEventHandler("vrr.skinSelected", playerFinishedSkinSelection);
|
addNetworkEventHandler("vrr.skinSelected", playerFinishedSkinSelection);
|
||||||
|
|
||||||
addNetworkEventHandler("vrr.clientInfo", updateConnectionLogOnClientInfoReceive);
|
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);
|
sendNetworkEventToPlayer("vrr.logLevel", client, tempLogLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ==========================================================================
|
||||||
@@ -70,6 +70,7 @@ let globalConfig = {
|
|||||||
economy: {},
|
economy: {},
|
||||||
locales: [],
|
locales: [],
|
||||||
accents: [],
|
accents: [],
|
||||||
|
useServerSideVehiclePurchaseCheck: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|||||||
@@ -157,9 +157,11 @@ function onProcess(event, deltaTime) {
|
|||||||
//checkPlayerPedState();
|
//checkPlayerPedState();
|
||||||
//checkVehicleBurning();
|
//checkVehicleBurning();
|
||||||
|
|
||||||
getClients().forEach((client) => {
|
if(getGlobalConfig().useServerSideVehiclePurchaseCheck == true) {
|
||||||
checkVehicleBuying(client);
|
getClients().forEach((client) => {
|
||||||
});
|
checkVehicleBuying(client);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
@@ -299,12 +301,12 @@ async function onPlayerEnteredVehicle(client, clientVehicle, seat) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(getPlayerData(client).enteringVehicle == null || getPlayerData(client).enteringVehicle != vehicle) {
|
//if(getPlayerData(client).enteringVehicle == null || getPlayerData(client).enteringVehicle != vehicle) {
|
||||||
messagePlayerError(client, "You can't enter this vehicle!");
|
// messagePlayerError(client, "You can't enter this vehicle!");
|
||||||
removePlayerFromVehicle(client);
|
// removePlayerFromVehicle(client);
|
||||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}tried to warp into a locked vehicle`);
|
// messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}tried to warp into a locked vehicle`);
|
||||||
return false;
|
// return false;
|
||||||
}
|
//}
|
||||||
|
|
||||||
logToConsole(LOG_DEBUG, `[VRR.Event] ${getPlayerDisplayForConsole(client)} entered a ${getVehicleName(vehicle)} (ID: ${vehicle.getData("vrr.dataSlot")}, Database ID: ${getVehicleData(vehicle).databaseId})`);
|
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;
|
vehicle.engine = getVehicleData(vehicle).engine;
|
||||||
|
|
||||||
if(getVehicleData(vehicle).buyPrice > 0) {
|
if(getVehicleData(vehicle).buyPrice > 0) {
|
||||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)} is for sale! Cost: {ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).buyPrice)}`);
|
messagePlayerAlert(client, getLocaleString(client, "VehicleForSale", getVehicleName(vehicle), `{ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).buyPrice)}{MAINCOLOUR}`, `{ALTCOLOUR}/vehbuy{MAINCOLOUR}`));
|
||||||
messagePlayerTip(client, `Use /vehbuy if you want to buy it.`);
|
|
||||||
resetVehiclePosition(vehicle);
|
resetVehiclePosition(vehicle);
|
||||||
} else if(getVehicleData(vehicle).rentPrice > 0) {
|
} else if(getVehicleData(vehicle).rentPrice > 0) {
|
||||||
if(getVehicleData(vehicle).rentedBy != client) {
|
if(getVehicleData(vehicle).rentedBy != client) {
|
||||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)} is for rent! Cost: {ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).rentPrice)} per minute`);
|
messagePlayerAlert(client, getLocaleString(client, "VehicleForRent", getVehicleName(vehicle), `{ALTCOLOUR}$${makeLargeNumberReadable(getVehicleData(vehicle).rentPrice)}`, `{ALTCOLOUR}/vehrent{MAINCOLOUR}`));
|
||||||
messagePlayerTip(client, `Use /vehrent if you want to rent it.`);
|
|
||||||
resetVehiclePosition(vehicle);
|
resetVehiclePosition(vehicle);
|
||||||
} else {
|
} 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.`);
|
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(!getVehicleData(vehicle).engine) {
|
||||||
if(doesPlayerHaveVehicleKeys(client, vehicle)) {
|
if(getVehicleData(vehicle).buyPrice == 0 && getVehicleData(vehicle).rentPrice == 0) {
|
||||||
if(!doesPlayerHaveKeyBindsDisabled(client) && doesPlayerHaveKeyBindForCommand(client, "engine")) {
|
if(doesPlayerHaveVehicleKeys(client, vehicle)) {
|
||||||
messagePlayerTip(client, `This ${getVehicleName(vehicle)}'s engine is off. Press {ALTCOLOUR}${toUpperCase(getKeyNameFromId(getPlayerKeyBindForCommand(client, "engine").key))} {MAINCOLOUR}to start it.`);
|
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 {
|
} else {
|
||||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off. Use /engine to start it`);
|
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off and you don't have the keys to start it`);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
messagePlayerAlert(client, `This ${getVehicleName(vehicle)}'s engine is off and you don't have the keys to start it`);
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
resetVehiclePosition(vehicle);
|
resetVehiclePosition(vehicle);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -580,7 +580,7 @@ function buyVehicleCommand(command, params, client) {
|
|||||||
vehicle.engine = true;
|
vehicle.engine = true;
|
||||||
|
|
||||||
getVehicleData(vehicle).needsSaved = 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`);
|
meActionToNearbyPlayers(client, `receives a set of keys to test drive the ${getVehicleName(vehicle)} and starts the engine`);
|
||||||
messagePlayerInfo(client, getLocaleString(client, "DealershipPurchaseTestDrive"));
|
messagePlayerInfo(client, getLocaleString(client, "DealershipPurchaseTestDrive"));
|
||||||
}
|
}
|
||||||
@@ -1354,18 +1354,22 @@ function createPermanentVehicle(modelIndex, position, heading, interior = 0, dim
|
|||||||
|
|
||||||
function checkVehicleBuying(client) {
|
function checkVehicleBuying(client) {
|
||||||
if(!isPlayerLoggedIn(client)) {
|
if(!isPlayerLoggedIn(client)) {
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isPlayerSpawned(client)) {
|
if(!isPlayerSpawned(client)) {
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!getPlayerData(client)) {
|
if(!getPlayerData(client)) {
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!getPlayerData(client).buyingVehicle) {
|
if(!getPlayerData(client).buyingVehicle) {
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1374,6 +1378,7 @@ function checkVehicleBuying(client) {
|
|||||||
messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle"));
|
messagePlayerError(client, getLocaleString(client, "DealershipPurchaseExitedVehicle"));
|
||||||
respawnVehicle(getPlayerData(client).buyingVehicle);
|
respawnVehicle(getPlayerData(client).buyingVehicle);
|
||||||
getPlayerData(client).buyingVehicle = false;
|
getPlayerData(client).buyingVehicle = false;
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1383,6 +1388,7 @@ function checkVehicleBuying(client) {
|
|||||||
messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney"));
|
messagePlayerError(client, getLocaleString(client, "VehiclePurchaseNotEnoughMoney"));
|
||||||
respawnVehicle(getPlayerData(client).buyingVehicle);
|
respawnVehicle(getPlayerData(client).buyingVehicle);
|
||||||
getPlayerData(client).buyingVehicle = false;
|
getPlayerData(client).buyingVehicle = false;
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1396,6 +1402,7 @@ function checkVehicleBuying(client) {
|
|||||||
getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false;
|
getVehicleData(getPlayerData(client).buyingVehicle).spawnLocked = false;
|
||||||
getPlayerData(client).buyingVehicle = false;
|
getPlayerData(client).buyingVehicle = false;
|
||||||
messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete"));
|
messagePlayerSuccess(client, getLocaleString(client, "VehiclePurchaseComplete"));
|
||||||
|
setPlayerBuyingVehicleState(client, VRR_VEHBUYSTATE_NONE, null, null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user