fix(taxijob): thread not starting

This commit is contained in:
Mycroft
2022-05-31 17:02:03 +01:00
parent f438ce8371
commit dcc7a44842
2 changed files with 664 additions and 628 deletions
File diff suppressed because it is too large Load Diff
+74 -70
View File
@@ -1,105 +1,109 @@
local lastPlayerSuccess = {}
if Config.MaxInService ~= -1 then
TriggerEvent('esx_service:activateService', 'taxi', Config.MaxInService)
TriggerEvent('esx_service:activateService', 'taxi', Config.MaxInService)
end
TriggerEvent('esx_phone:registerNumber', 'taxi', _U('taxi_client'), true, true)
TriggerEvent('esx_society:registerSociety', 'taxi', 'Taxi', 'society_taxi', 'society_taxi', 'society_taxi', {type = 'public'})
TriggerEvent('esx_society:registerSociety', 'taxi', 'Taxi', 'society_taxi', 'society_taxi', 'society_taxi', {
type = 'public'
})
RegisterNetEvent('esx_taxijob:success')
AddEventHandler('esx_taxijob:success', function()
local xPlayer = ESX.GetPlayerFromId(source)
local timeNow = os.clock()
local xPlayer = ESX.GetPlayerFromId(source)
local timeNow = os.clock()
if xPlayer.job.name == 'taxi' then
if not lastPlayerSuccess[source] or timeNow - lastPlayerSuccess[source] > 5 then
lastPlayerSuccess[source] = timeNow
if xPlayer.job.name == 'taxi' then
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)
math.randomseed(os.time())
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)
account.addMoney(societyMoney)
xPlayer.addMoney(playerMoney)
account.addMoney(societyMoney)
xPlayer.showNotification(_U('comp_earned', societyMoney, playerMoney))
else
xPlayer.addMoney(total)
xPlayer.showNotification(_U('have_earned', total))
end
end)
end
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger success (cheating)'):format(xPlayer.identifier))
end
xPlayer.showNotification(_U('comp_earned', societyMoney, playerMoney))
else
xPlayer.addMoney(total)
xPlayer.showNotification(_U('have_earned', total))
end
end)
end
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger success (cheating)'):format(xPlayer.identifier))
end
end)
RegisterNetEvent('esx_taxijob:getStockItem')
AddEventHandler('esx_taxijob:getStockItem', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.job.name == 'taxi' then
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
local item = inventory.getItem(itemName)
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(_U('have_withdrawn', count, item.label))
else
xPlayer.showNotification(_U('player_cannot_hold'))
end
else
xPlayer.showNotification(_U('quantity_invalid'))
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger getStockItem'):format(xPlayer.identifier))
end
-- 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(_U('have_withdrawn', count, item.label))
else
xPlayer.showNotification(_U('player_cannot_hold'))
end
else
xPlayer.showNotification(_U('quantity_invalid'))
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger getStockItem'):format(xPlayer.identifier))
end
end)
ESX.RegisterServerCallback('esx_taxijob:getStockItems', function(source, cb)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
cb(inventory.items)
end)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
cb(inventory.items)
end)
end)
RegisterNetEvent('esx_taxijob:putStockItems')
AddEventHandler('esx_taxijob:putStockItems', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.job.name == 'taxi' then
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
local item = inventory.getItem(itemName)
if xPlayer.job.name == 'taxi' then
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_taxi', function(inventory)
local item = inventory.getItem(itemName)
if item.count > 0 then
xPlayer.removeInventoryItem(itemName, count)
inventory.addItem(itemName, count)
xPlayer.showNotification(_U('have_deposited', count, item.label))
else
xPlayer.showNotification(_U('quantity_invalid'))
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger putStockItems'):format(xPlayer.identifier))
end
if item.count > 0 then
xPlayer.removeInventoryItem(itemName, count)
inventory.addItem(itemName, count)
xPlayer.showNotification(_U('have_deposited', count, item.label))
else
xPlayer.showNotification(_U('quantity_invalid'))
end
end)
else
print(('[esx_taxijob] [^3WARNING^7] %s attempted to trigger putStockItems'):format(xPlayer.identifier))
end
end)
ESX.RegisterServerCallback('esx_taxijob:getPlayerInventory', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local items = xPlayer.inventory
local xPlayer = ESX.GetPlayerFromId(source)
local items = xPlayer.inventory
cb({items = items})
cb({
items = items
})
end)