0.0.1
This commit is contained in:
127
resources/[esx_addons]/esx_taxijob/server/main.lua
Normal file
127
resources/[esx_addons]/esx_taxijob/server/main.lua
Normal file
@@ -0,0 +1,127 @@
|
||||
local lastPlayerSuccess = {}
|
||||
|
||||
if Config.MaxInService ~= -1 then
|
||||
TriggerEvent('esx_service:activateService', 'taxi', Config.MaxInService)
|
||||
end
|
||||
|
||||
TriggerEvent('esx_phone:registerNumber', 'taxi', TranslateCap('taxi_client'), true, true)
|
||||
TriggerEvent('esx_society:registerSociety', 'taxi', 'Taxi', 'society_taxi', 'society_taxi', 'society_taxi', {
|
||||
type = 'public'
|
||||
})
|
||||
|
||||
RegisterNetEvent('esx_taxijob:success', function()
|
||||
local xPlayer = ESX.Player(source)
|
||||
local timeNow = os.clock()
|
||||
local job = xPlayer.getJob()
|
||||
if job.name ~= 'taxi' then
|
||||
print(('[^3WARNING^7] Player ^5%s^7 attempted to ^5esx_taxijob:success^7 (cheating)'):format(source))
|
||||
return
|
||||
end
|
||||
|
||||
if not lastPlayerSuccess[source] or timeNow - lastPlayerSuccess[source] > 5 then
|
||||
lastPlayerSuccess[source] = timeNow
|
||||
|
||||
local total = math.random(Config.NPCJobEarnings.min, Config.NPCJobEarnings.max)
|
||||
|
||||
if 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)
|
||||
|
||||
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
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback("esx_taxijob:SpawnVehicle", function(source, cb, model , props)
|
||||
local xPlayer = ESX.Player(source)
|
||||
|
||||
if xPlayer.getJob().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)
|
||||
while GetVehicleNumberPlateText(vehicle) ~= props.plate do
|
||||
Wait(0)
|
||||
end
|
||||
TaskWarpPedIntoVehicle(GetPlayerPed(source), vehicle, -1)
|
||||
end)
|
||||
cb()
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_taxijob:getStockItem', function(itemName, count)
|
||||
local xPlayer = ESX.Player(source)
|
||||
|
||||
if xPlayer.getJob().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)
|
||||
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
|
||||
cb(inventory.items)
|
||||
end)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_taxijob:putStockItems', function(itemName, count)
|
||||
local xPlayer = ESX.Player(source)
|
||||
local sourceItem = xPlayer.getInventoryItem(itemName)
|
||||
|
||||
if xPlayer.getJob().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)
|
||||
local xPlayer = ESX.Player(source)
|
||||
local items = xPlayer.getInventory(false)
|
||||
cb({
|
||||
items = items
|
||||
})
|
||||
end)
|
||||
Reference in New Issue
Block a user