mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-31 18:28:52 +00:00
4 tab indent update
This commit is contained in:
+487
-649
File diff suppressed because it is too large
Load Diff
@@ -8,3 +8,5 @@ Config.Zones = {}
|
||||
Config.Properties = {}
|
||||
Config.EnablePlayerManagement = false -- If set to true you need esx_realestateagentjob
|
||||
Config.Locale = 'fr'
|
||||
|
||||
Config.Properties = {}
|
||||
|
||||
+207
-336
@@ -4,78 +4,48 @@ local hasSqlRun = false
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
|
||||
function GetProperty(name)
|
||||
|
||||
for i=1, #Config.Properties, 1 do
|
||||
if Config.Properties[i].name == name then
|
||||
return Config.Properties[i]
|
||||
end
|
||||
end
|
||||
|
||||
for i=1, #Config.Properties, 1 do
|
||||
if Config.Properties[i].name == name then
|
||||
return Config.Properties[i]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function SetPropertyOwned(name, price, rented, owner)
|
||||
MySQL.Async.execute('INSERT INTO owned_properties (name, price, rented, owner) VALUES (@name, @price, @rented, @owner)',
|
||||
{
|
||||
['@name'] = name,
|
||||
['@price'] = price,
|
||||
['@rented'] = (rented and 1 or 0),
|
||||
['@owner'] = owner
|
||||
}, function(rowsChanged)
|
||||
local xPlayer = ESX.GetPlayerFromIdentifier(owner)
|
||||
|
||||
MySQL.Async.execute(
|
||||
'INSERT INTO owned_properties (name, price, rented, owner) VALUES (@name, @price, @rented, @owner)',
|
||||
{
|
||||
['@name'] = name,
|
||||
['@price'] = price,
|
||||
['@rented'] = (rented and 1 or 0),
|
||||
['@owner'] = owner
|
||||
},
|
||||
function(rowsChanged)
|
||||
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
|
||||
for i=1, #xPlayers, 1 do
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
|
||||
|
||||
if xPlayer.identifier == owner then
|
||||
|
||||
TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, true)
|
||||
|
||||
if rented then
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rented_for', price))
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('purchased_for', price))
|
||||
end
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
)
|
||||
if xPlayer then
|
||||
TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, true)
|
||||
|
||||
if rented then
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rented_for', price))
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('purchased_for', price))
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function RemoveOwnedProperty(name, owner)
|
||||
MySQL.Async.execute('DELETE FROM owned_properties WHERE name = @name AND owner = @owner',
|
||||
{
|
||||
['@name'] = name,
|
||||
['@owner'] = owner
|
||||
}, function(rowsChanged)
|
||||
local xPlayer = ESX.GetPlayerFromIdentifier(owner)
|
||||
|
||||
MySQL.Async.execute(
|
||||
'DELETE FROM owned_properties WHERE name = @name AND owner = @owner',
|
||||
{
|
||||
['@name'] = name,
|
||||
['@owner'] = owner
|
||||
},
|
||||
function(rowsChanged)
|
||||
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
|
||||
for i=1, #xPlayers, 1 do
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
|
||||
|
||||
if xPlayer.identifier == owner then
|
||||
TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, false)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('made_property'))
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
)
|
||||
|
||||
if xPlayer then
|
||||
TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, false)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('made_property'))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
AddEventHandler('onMySQLReady', function()
|
||||
@@ -170,115 +140,90 @@ ESX.RegisterServerCallback('esx_property:getProperties', function(source, cb)
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_ownedproperty:getOwnedProperties', function(cb)
|
||||
MySQL.Async.fetchAll('SELECT * FROM owned_properties', {}, function(result)
|
||||
local properties = {}
|
||||
|
||||
MySQL.Async.fetchAll(
|
||||
'SELECT * FROM owned_properties',
|
||||
{},
|
||||
function(result)
|
||||
|
||||
local properties = {}
|
||||
|
||||
for i=1, #result, 1 do
|
||||
|
||||
table.insert(properties, {
|
||||
id = result[i].id,
|
||||
name = result[i].name,
|
||||
price = result[i].price,
|
||||
rented = (result[i].rented == 1 and true or false),
|
||||
owner = result[i].owner,
|
||||
})
|
||||
end
|
||||
|
||||
cb(properties)
|
||||
|
||||
end
|
||||
)
|
||||
for i=1, #result, 1 do
|
||||
table.insert(properties, {
|
||||
id = result[i].id,
|
||||
name = result[i].name,
|
||||
price = result[i].price,
|
||||
rented = (result[i].rented == 1 and true or false),
|
||||
owner = result[i].owner
|
||||
})
|
||||
end
|
||||
|
||||
cb(properties)
|
||||
end)
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_property:setPropertyOwned', function(name, price, rented, owner)
|
||||
SetPropertyOwned(name, price, rented, owner)
|
||||
SetPropertyOwned(name, price, rented, owner)
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_property:removeOwnedProperty', function(name, owner)
|
||||
RemoveOwnedProperty(name, owner)
|
||||
RemoveOwnedProperty(name, owner)
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:rentProperty')
|
||||
AddEventHandler('esx_property:rentProperty', function(propertyName)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local property = GetProperty(propertyName)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local property = GetProperty(propertyName)
|
||||
|
||||
SetPropertyOwned(propertyName, property.price / 200, true, xPlayer.identifier)
|
||||
|
||||
SetPropertyOwned(propertyName, property.price / 200, true, xPlayer.identifier)
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:buyProperty')
|
||||
AddEventHandler('esx_property:buyProperty', function(propertyName)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local property = GetProperty(propertyName)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local property = GetProperty(propertyName)
|
||||
|
||||
if property.price <= xPlayer.get('money') then
|
||||
|
||||
xPlayer.removeMoney(property.price)
|
||||
SetPropertyOwned(propertyName, property.price, false, xPlayer.identifier)
|
||||
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('not_enough'))
|
||||
end
|
||||
|
||||
if property.price <= xPlayer.getMoney() then
|
||||
xPlayer.removeMoney(property.price)
|
||||
SetPropertyOwned(propertyName, property.price, false, xPlayer.identifier)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('not_enough'))
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:removeOwnedProperty')
|
||||
AddEventHandler('esx_property:removeOwnedProperty', function(propertyName)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
RemoveOwnedProperty(propertyName, xPlayer.identifier)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
RemoveOwnedProperty(propertyName, xPlayer.identifier)
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_property:removeOwnedPropertyIdentifier', function(propertyName, identifier)
|
||||
RemoveOwnedProperty(propertyName, identifier)
|
||||
RemoveOwnedProperty(propertyName, identifier)
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:saveLastProperty')
|
||||
AddEventHandler('esx_property:saveLastProperty', function(property)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
MySQL.Async.execute(
|
||||
'UPDATE users SET last_property = @last_property WHERE identifier = @identifier',
|
||||
{
|
||||
['@last_property'] = property,
|
||||
['@identifier'] = xPlayer.identifier
|
||||
}
|
||||
)
|
||||
|
||||
MySQL.Async.execute('UPDATE users SET last_property = @last_property WHERE identifier = @identifier',
|
||||
{
|
||||
['@last_property'] = property,
|
||||
['@identifier'] = xPlayer.identifier
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:deleteLastProperty')
|
||||
AddEventHandler('esx_property:deleteLastProperty', function()
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
MySQL.Async.execute(
|
||||
'UPDATE users SET last_property = NULL WHERE identifier = @identifier',
|
||||
{
|
||||
['@identifier'] = xPlayer.identifier
|
||||
}
|
||||
)
|
||||
MySQL.Async.execute('UPDATE users SET last_property = NULL WHERE identifier = @identifier', {
|
||||
['@identifier'] = xPlayer.identifier
|
||||
})
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:getItem')
|
||||
AddEventHandler('esx_property:getItem', function(owner, type, item, count)
|
||||
|
||||
local _source = source
|
||||
local xPlayer = ESX.GetPlayerFromId(_source)
|
||||
local xPlayerOwner = ESX.GetPlayerFromIdentifier(owner)
|
||||
|
||||
if type == 'item_standard' then
|
||||
|
||||
local sourceItem = xPlayer.getInventoryItem(item)
|
||||
|
||||
TriggerEvent('esx_addoninventory:getInventory', 'property', xPlayerOwner.identifier, function(inventory)
|
||||
@@ -299,271 +244,198 @@ AddEventHandler('esx_property:getItem', function(owner, type, item, count)
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('not_enough_in_property'))
|
||||
end
|
||||
end)
|
||||
|
||||
elseif type == 'item_account' then
|
||||
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_' .. item, xPlayerOwner.identifier, function(account)
|
||||
local roomAccountMoney = account.money
|
||||
|
||||
if roomAccountMoney >= count then
|
||||
account.removeMoney(count)
|
||||
xPlayer.addAccountMoney(item, count)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('amount_invalid'))
|
||||
end
|
||||
end)
|
||||
|
||||
elseif type == 'item_weapon' then
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayerOwner.identifier, function(store)
|
||||
local storeWeapons = store.get('weapons') or {}
|
||||
local weaponName = nil
|
||||
local ammo = nil
|
||||
|
||||
for i=1, #storeWeapons, 1 do
|
||||
if storeWeapons[i].name == item then
|
||||
weaponName = storeWeapons[i].name
|
||||
ammo = storeWeapons[i].ammo
|
||||
|
||||
table.remove(storeWeapons, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
store.set('weapons', storeWeapons)
|
||||
xPlayer.addWeapon(weaponName, ammo)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
if type == 'item_account' then
|
||||
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_' .. item, xPlayerOwner.identifier, function(account)
|
||||
|
||||
local roomAccountMoney = account.money
|
||||
|
||||
if roomAccountMoney >= count then
|
||||
account.removeMoney(count)
|
||||
xPlayer.addAccountMoney(item, count)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('amount_invalid'))
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
if type == 'item_weapon' then
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayerOwner.identifier, function(store)
|
||||
|
||||
local storeWeapons = store.get('weapons')
|
||||
|
||||
if storeWeapons == nil then
|
||||
storeWeapons = {}
|
||||
end
|
||||
|
||||
local weaponName = nil
|
||||
local ammo = nil
|
||||
|
||||
for i=1, #storeWeapons, 1 do
|
||||
if storeWeapons[i].name == item then
|
||||
|
||||
weaponName = storeWeapons[i].name
|
||||
ammo = storeWeapons[i].ammo
|
||||
|
||||
table.remove(storeWeapons, i)
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
store.set('weapons', storeWeapons)
|
||||
|
||||
xPlayer.addWeapon(weaponName, ammo)
|
||||
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:putItem')
|
||||
AddEventHandler('esx_property:putItem', function(owner, type, item, count)
|
||||
local _source = source
|
||||
local xPlayer = ESX.GetPlayerFromId(_source)
|
||||
local xPlayerOwner = ESX.GetPlayerFromIdentifier(owner)
|
||||
|
||||
local _source = source
|
||||
local xPlayer = ESX.GetPlayerFromId(_source)
|
||||
local xPlayerOwner = ESX.GetPlayerFromIdentifier(owner)
|
||||
if type == 'item_standard' then
|
||||
|
||||
if type == 'item_standard' then
|
||||
local playerItemCount = xPlayer.getInventoryItem(item).count
|
||||
|
||||
local playerItemCount = xPlayer.getInventoryItem(item).count
|
||||
if playerItemCount >= count and count > 0 then
|
||||
TriggerEvent('esx_addoninventory:getInventory', 'property', xPlayerOwner.identifier, function(inventory)
|
||||
xPlayer.removeInventoryItem(item, count)
|
||||
inventory.addItem(item, count)
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('have_deposited', count, inventory.getItem(item).label))
|
||||
end)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('invalid_quantity'))
|
||||
end
|
||||
|
||||
if playerItemCount >= count and count > 0 then
|
||||
|
||||
TriggerEvent('esx_addoninventory:getInventory', 'property', xPlayerOwner.identifier, function(inventory)
|
||||
xPlayer.removeInventoryItem(item, count)
|
||||
inventory.addItem(item, count)
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('have_deposited', count, inventory.getItem(item).label))
|
||||
end)
|
||||
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('invalid_quantity'))
|
||||
end
|
||||
elseif type == 'item_account' then
|
||||
|
||||
end
|
||||
local playerAccountMoney = xPlayer.getAccount(item).money
|
||||
|
||||
if type == 'item_account' then
|
||||
if playerAccountMoney >= count and count > 0 then
|
||||
xPlayer.removeAccountMoney(item, count)
|
||||
|
||||
local playerAccountMoney = xPlayer.getAccount(item).money
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_' .. item, xPlayerOwner.identifier, function(account)
|
||||
account.addMoney(count)
|
||||
end)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('amount_invalid'))
|
||||
end
|
||||
|
||||
if playerAccountMoney >= count and count > 0 then
|
||||
elseif type == 'item_weapon' then
|
||||
|
||||
xPlayer.removeAccountMoney(item, count)
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayerOwner.identifier, function(store)
|
||||
local storeWeapons = store.get('weapons') or {}
|
||||
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_' .. item, xPlayerOwner.identifier, function(account)
|
||||
account.addMoney(count)
|
||||
end)
|
||||
table.insert(storeWeapons, {
|
||||
name = item,
|
||||
ammo = count
|
||||
})
|
||||
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', _source, _U('amount_invalid'))
|
||||
end
|
||||
store.set('weapons', storeWeapons)
|
||||
xPlayer.removeWeapon(item)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
if type == 'item_weapon' then
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayerOwner.identifier, function(store)
|
||||
|
||||
local storeWeapons = store.get('weapons')
|
||||
|
||||
if storeWeapons == nil then
|
||||
storeWeapons = {}
|
||||
end
|
||||
|
||||
table.insert(storeWeapons, {
|
||||
name = item,
|
||||
ammo = count
|
||||
})
|
||||
|
||||
store.set('weapons', storeWeapons)
|
||||
|
||||
xPlayer.removeWeapon(item)
|
||||
|
||||
end)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getOwnedProperties', function(source, cb)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
MySQL.Async.fetchAll('SELECT * FROM owned_properties WHERE owner = @owner', {
|
||||
['@owner'] = xPlayer.identifier
|
||||
}, function(ownedProperties)
|
||||
local properties = {}
|
||||
|
||||
MySQL.Async.fetchAll(
|
||||
'SELECT * FROM owned_properties WHERE owner = @owner',
|
||||
{
|
||||
['@owner'] = xPlayer.identifier
|
||||
},
|
||||
function(ownedProperties)
|
||||
|
||||
local properties = {}
|
||||
|
||||
for i=1, #ownedProperties, 1 do
|
||||
table.insert(properties, ownedProperties[i].name)
|
||||
end
|
||||
|
||||
cb(properties)
|
||||
end
|
||||
)
|
||||
for i=1, #ownedProperties, 1 do
|
||||
table.insert(properties, ownedProperties[i].name)
|
||||
end
|
||||
|
||||
cb(properties)
|
||||
end)
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getLastProperty', function(source, cb)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
MySQL.Async.fetchAll(
|
||||
'SELECT * FROM users WHERE identifier = @identifier',
|
||||
{
|
||||
['@identifier'] = xPlayer.identifier
|
||||
},
|
||||
function(users)
|
||||
cb(users[1].last_property)
|
||||
end
|
||||
)
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @identifier', {
|
||||
['@identifier'] = xPlayer.identifier
|
||||
}, function(users)
|
||||
cb(users[1].last_property)
|
||||
end)
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getPropertyInventory', function(source, cb, owner)
|
||||
local xPlayer = ESX.GetPlayerFromIdentifier(owner)
|
||||
local blackMoney = 0
|
||||
local items = {}
|
||||
local weapons = {}
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromIdentifier(owner)
|
||||
local blackMoney = 0
|
||||
local items = {}
|
||||
local weapons = {}
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_black_money', xPlayer.identifier, function(account)
|
||||
blackMoney = account.money
|
||||
end)
|
||||
|
||||
TriggerEvent('esx_addonaccount:getAccount', 'property_black_money', xPlayer.identifier, function(account)
|
||||
blackMoney = account.money
|
||||
end)
|
||||
TriggerEvent('esx_addoninventory:getInventory', 'property', xPlayer.identifier, function(inventory)
|
||||
items = inventory.items
|
||||
end)
|
||||
|
||||
TriggerEvent('esx_addoninventory:getInventory', 'property', xPlayer.identifier, function(inventory)
|
||||
items = inventory.items
|
||||
end)
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
|
||||
local storeWeapons = store.get('weapons')
|
||||
|
||||
if storeWeapons ~= nil then
|
||||
weapons = storeWeapons
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
cb({
|
||||
blackMoney = blackMoney,
|
||||
items = items,
|
||||
weapons = weapons
|
||||
})
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
local storeWeapons = store.get('weapons') or {}
|
||||
end)
|
||||
|
||||
cb({
|
||||
blackMoney = blackMoney,
|
||||
items = items,
|
||||
weapons = weapons
|
||||
})
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getPlayerInventory', function(source, cb)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local blackMoney = xPlayer.getAccount('black_money').money
|
||||
local items = xPlayer.inventory
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local blackMoney = xPlayer.getAccount('black_money').money
|
||||
local items = xPlayer.inventory
|
||||
|
||||
cb({
|
||||
blackMoney = blackMoney,
|
||||
items = items
|
||||
})
|
||||
|
||||
cb({
|
||||
blackMoney = blackMoney,
|
||||
items = items
|
||||
})
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getPlayerDressing', function(source, cb)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
local count = store.count('dressing')
|
||||
local labels = {}
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
|
||||
local count = store.count('dressing')
|
||||
local labels = {}
|
||||
|
||||
for i=1, count, 1 do
|
||||
local entry = store.get('dressing', i)
|
||||
table.insert(labels, entry.label)
|
||||
end
|
||||
|
||||
cb(labels)
|
||||
|
||||
end)
|
||||
for i=1, count, 1 do
|
||||
local entry = store.get('dressing', i)
|
||||
table.insert(labels, entry.label)
|
||||
end
|
||||
|
||||
cb(labels)
|
||||
end)
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_property:getPlayerOutfit', function(source, cb, num)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
local outfit = store.get('dressing', num)
|
||||
cb(outfit.skin)
|
||||
end)
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
local outfit = store.get('dressing', num)
|
||||
cb(outfit.skin)
|
||||
end)
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_property:removeOutfit')
|
||||
AddEventHandler('esx_property:removeOutfit', function(label)
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
|
||||
local dressing = store.get('dressing')
|
||||
|
||||
if dressing == nil then
|
||||
dressing = {}
|
||||
end
|
||||
|
||||
label = label
|
||||
|
||||
table.remove(dressing, label)
|
||||
|
||||
store.set('dressing', dressing)
|
||||
|
||||
end)
|
||||
TriggerEvent('esx_datastore:getDataStore', 'property', xPlayer.identifier, function(store)
|
||||
local dressing = store.get('dressing') or {}
|
||||
|
||||
table.remove(dressing, label)
|
||||
store.set('dressing', dressing)
|
||||
end)
|
||||
end)
|
||||
|
||||
function PayRent(d, h, m)
|
||||
MySQL.Async.fetchAll(
|
||||
'SELECT * FROM owned_properties WHERE rented = 1', {},
|
||||
function (result)
|
||||
MySQL.Async.fetchAll('SELECT * FROM owned_properties WHERE rented = 1', {}, function (result)
|
||||
for i=1, #result, 1 do
|
||||
local xPlayer = ESX.GetPlayerFromIdentifier(result[i].owner)
|
||||
|
||||
@@ -572,8 +444,7 @@ function PayRent(d, h, m)
|
||||
xPlayer.removeAccountMoney('bank', result[i].price)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_rent', result[i].price))
|
||||
else -- pay rent either way
|
||||
MySQL.Sync.execute(
|
||||
'UPDATE users SET bank = bank - @bank WHERE identifier = @identifier',
|
||||
MySQL.Sync.execute('UPDATE users SET bank = bank - @bank WHERE identifier = @identifier',
|
||||
{
|
||||
['@bank'] = result[i].price,
|
||||
['@identifier'] = result[i].owner
|
||||
|
||||
Reference in New Issue
Block a user