diff --git a/server/main.lua b/server/main.lua index 9bfdc4f..8e87a14 100644 --- a/server/main.lua +++ b/server/main.lua @@ -9,49 +9,49 @@ TriggerEvent('esx_society:registerSociety', 'taxi', 'Taxi', 'society_taxi', 'soc type = 'public' }) -RegisterNetEvent('esx_taxijob:success') -AddEventHandler('esx_taxijob:success', function() +RegisterNetEvent('esx_taxijob:success', function() local xPlayer = ESX.GetPlayerFromId(source) local timeNow = os.clock() + + if not xPlayer.job.name == 'taxi' then + print(('[^3WARNING^7] Player ^5%s^7 attempted to ^5esx_taxijob:success^7 (cheating)'):format(source)) + return + end - if xPlayer.job.name == 'taxi' then - if not lastPlayerSuccess[source] or timeNow - lastPlayerSuccess[source] > 5 then - lastPlayerSuccess[source] = timeNow + if not lastPlayerSuccess[source] or timeNow - lastPlayerSuccess[source] > 5 then + lastPlayerSuccess[source] = timeNow - math.randomseed(os.time()) - local total = math.random(Config.NPCJobEarnings.min, Config.NPCJobEarnings.max) + local total = math.random(Config.NPCJobEarnings.min, Config.NPCJobEarnings.max) - if xPlayer.job.grade >= 3 then - total = total * 2 - end + if xPlayer.job.grade >= 3 then + total = total * 2 + end - TriggerEvent('esx_addonaccount:getSharedAccount', 'society_taxi', function(account) - if account then - local playerMoney = ESX.Math.Round(total / 100 * 30) - local societyMoney = ESX.Math.Round(total / 100 * 70) + TriggerEvent('esx_addonaccount:getSharedAccount', 'society_taxi', function(account) + if account then + local playerMoney = ESX.Math.Round(total / 100 * 30) + local societyMoney = ESX.Math.Round(total / 100 * 70) - xPlayer.addMoney(playerMoney, "Taxi Fair") - account.addMoney(societyMoney) + xPlayer.addMoney(playerMoney, "Taxi Fair") + account.addMoney(societyMoney) - xPlayer.showNotification(TranslateCap('comp_earned', societyMoney, playerMoney)) - else - xPlayer.addMoney(total, "Taxi Fair") - xPlayer.showNotification(TranslateCap('have_earned', total)) - end - end) - end - else - print(('[^3WARNING^7] Player ^5%s^7 attempted to ^5esx_taxijob:success^7 (cheating)'):format(source)) + xPlayer.showNotification(TranslateCap('comp_earned', societyMoney, playerMoney)) + else + xPlayer.addMoney(total, "Taxi Fair") + xPlayer.showNotification(TranslateCap('have_earned', total)) + end + end) end end) ESX.RegisterServerCallback("esx_taxijob:SpawnVehicle", function(source, cb, model , props) local xPlayer = ESX.GetPlayerFromId(source) - if xPlayer.job.name ~= "taxi" then + if not xPlayer.job.name == "taxi" then print(('[^3WARNING^7] Player ^5%s^7 attempted to Exploit Vehicle Spawing!!'):format(source)) return end + local SpawnPoint = vector3(Config.Zones.VehicleSpawnPoint.Pos.x, Config.Zones.VehicleSpawnPoint.Pos.y, Config.Zones.VehicleSpawnPoint.Pos.z) ESX.OneSync.SpawnVehicle(joaat(model), SpawnPoint, Config.Zones.VehicleSpawnPoint.Heading, props, function(vehicle) local vehicle = NetworkGetEntityFromNetworkId(vehicle) @@ -63,31 +63,31 @@ ESX.RegisterServerCallback("esx_taxijob:SpawnVehicle", function(source, cb, mode cb() end) -RegisterNetEvent('esx_taxijob:getStockItem') -AddEventHandler('esx_taxijob:getStockItem', function(itemName, count) +RegisterNetEvent('esx_taxijob:getStockItem', function(itemName, count) local xPlayer = ESX.GetPlayerFromId(source) + + if not xPlayer.job.name == 'taxi' then + print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:getStockItem^7 (cheating)'):format(source)) + return + end - if xPlayer.job.name == 'taxi' then - TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory) - local item = inventory.getItem(itemName) - - -- is there enough in the society? - if count > 0 and item.count >= count then - -- can the player carry the said amount of x item? - if xPlayer.canCarryItem(itemName, count) then - inventory.removeItem(itemName, count) - xPlayer.addInventoryItem(itemName, count) - xPlayer.showNotification(TranslateCap('have_withdrawn', count, item.label)) - else - xPlayer.showNotification(TranslateCap('player_cannot_hold')) - end + TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory) + local item = inventory.getItem(itemName) + + -- is there enough in the society? + if count > 0 and item.count >= count then + -- can the player carry the said amount of x item? + if xPlayer.canCarryItem(itemName, count) then + inventory.removeItem(itemName, count) + xPlayer.addInventoryItem(itemName, count) + xPlayer.showNotification(TranslateCap('have_withdrawn', count, item.label)) else - xPlayer.showNotification(TranslateCap('quantity_invalid')) + xPlayer.showNotification(TranslateCap('player_cannot_hold')) end - end) - else - print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:getStockItem^7 (cheating)'):format(source)) - end + else + xPlayer.showNotification(TranslateCap('quantity_invalid')) + end + end) end) ESX.RegisterServerCallback('esx_taxijob:getStockItems', function(source, cb) @@ -96,26 +96,26 @@ ESX.RegisterServerCallback('esx_taxijob:getStockItems', function(source, cb) end) end) -RegisterNetEvent('esx_taxijob:putStockItems') -AddEventHandler('esx_taxijob:putStockItems', function(itemName, count) +RegisterNetEvent('esx_taxijob:putStockItems', function(itemName, count) local xPlayer = ESX.GetPlayerFromId(source) - local sourceItem = xPlayer.getInventoryItem(itemName) - - if xPlayer.job.name == 'taxi' then - TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory) - local item = inventory.getItem(itemName) - - if sourceItem.count >= count and count > 0 then - xPlayer.removeInventoryItem(itemName, count) - inventory.addItem(itemName, count) - xPlayer.showNotification(TranslateCap('have_deposited', count, item.label)) - else - xPlayer.showNotification(TranslateCap('quantity_invalid')) - end - end) - else + local sourceItem = xPlayer.getInventoryItem(itemName) + + if not xPlayer.job.name == 'taxi' then print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:putStockItems^7 (cheating)'):format(source)) + return end + + TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory) + local item = inventory.getItem(itemName) + + if sourceItem.count >= count and count > 0 then + xPlayer.removeInventoryItem(itemName, count) + inventory.addItem(itemName, count) + xPlayer.showNotification(TranslateCap('have_deposited', count, item.label)) + else + xPlayer.showNotification(TranslateCap('quantity_invalid')) + end + end) end) ESX.RegisterServerCallback('esx_taxijob:getPlayerInventory', function(source, cb)