diff --git a/server/main.lua b/server/main.lua index 9bfdc4f..69a9ab2 100644 --- a/server/main.lua +++ b/server/main.lua @@ -9,39 +9,38 @@ 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 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) @@ -52,6 +51,7 @@ ESX.RegisterServerCallback("esx_taxijob:SpawnVehicle", function(source, cb, mode 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 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 - else - xPlayer.showNotification(TranslateCap('quantity_invalid')) - end - end) - else + + if xPlayer.job.name ~= 'taxi' then print(('[^3WARNING^7] Player ^5%s^7 attempted ^5esx_taxijob:getStockItem^7 (cheating)'):format(source)) + return end + + TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory) + local item = inventory.getItem(itemName) + + if not xPlayer.canCarryItem(itemName, count) then + xPlayer.showNotification(TranslateCap('player_cannot_hold')) + return + end + + if count < 0 and item.count <= count then + xPlayer.showNotification(TranslateCap('quantity_invalid')) + return + end + + inventory.removeItem(itemName, count) + xPlayer.addInventoryItem(itemName, count) + xPlayer.showNotification(TranslateCap('have_withdrawn', count, item.label)) + 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 + + if 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 or count < 0 then + return xPlayer.showNotification(TranslateCap('quantity_invalid')) + end + + xPlayer.removeInventoryItem(itemName, count) + inventory.addItem(itemName, count) + xPlayer.showNotification(TranslateCap('have_deposited', count, item.label)) + end) end) ESX.RegisterServerCallback('esx_taxijob:getPlayerInventory', function(source, cb)