Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ESX = nil
- TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
- TriggerEvent('esx_society:registerSociety', 'rhodes', 'rhodes', 'society_rhodes', 'society_rhodes', 'society_rhodes', {type = 'public'})
- RegisterNetEvent('r_rhodes:confiscatePlayerItem')
- AddEventHandler('r_rhodes:confiscatePlayerItem', function(target, itemType, itemName, amount)
- local _source = source
- local sourceXPlayer = ESX.GetPlayerFromId(_source)
- local targetXPlayer = ESX.GetPlayerFromId(target)
- if sourcexPlayer.job2.name ~= 'rhodes' then
- print(('r_rhodes: %s attempted to confiscate!'):format(xPlayer.identifier))
- return
- end
- if itemType == 'item_standard' then
- local targetItem = targetXPlayer.getInventoryItem(itemName)
- local sourceItem = sourceXPlayer.getInventoryItem(itemName)
- if targetItem.count > 0 and targetItem.count <= amount then
- if sourceXPlayer.canCarryItem(itemName, sourceItem.count) then
- targetXPlayer.removeInventoryItem(itemName, amount)
- sourceXPlayer.addInventoryItem (itemName, amount)
- sourceXPlayer.showNotification(_U('you_confiscated', amount, sourceItem.label, targetXPlayer.name))
- targetXPlayer.showNotification(_U('got_confiscated', amount, sourceItem.label, sourceXPlayer.name))
- else
- sourceXPlayer.showNotification(_U('quantity_invalid'))
- end
- else
- sourceXPlayer.showNotification(_U('quantity_invalid'))
- end
- elseif itemType == 'item_account' then
- targetXPlayer.removeAccountMoney(itemName, amount)
- sourceXPlayer.addAccountMoney (itemName, amount)
- sourceXPlayer.showNotification(_U('you_confiscated_account', amount, itemName, targetXPlayer.name))
- targetXPlayer.showNotification(_U('got_confiscated_account', amount, itemName, sourceXPlayer.name))
- elseif itemType == 'item_weapon' then
- if amount == nil then amount = 0 end
- targetXPlayer.removeWeapon(itemName, amount)
- sourceXPlayer.addWeapon (itemName, amount)
- sourceXPlayer.showNotification(_U('you_confiscated_weapon', ESX.GetWeaponLabel(itemName), targetXPlayer.name, amount))
- targetXPlayer.showNotification(_U('got_confiscated_weapon', ESX.GetWeaponLabel(itemName), amount, sourceXPlayer.name))
- end
- end)
- RegisterNetEvent('r_rhodes:handcuff')
- AddEventHandler('r_rhodes:handcuff', function(target)
- local xPlayer = ESX.GetPlayerFromId(source)
- if xPlayer.job2.name == 'rhodes' then
- TriggerClientEvent('r_rhodes:handcuff', target)
- else
- print(('r_rhodes: %s attempted to handcuff a player (not cop)!'):format(xPlayer.identifier))
- end
- end)
- RegisterNetEvent('r_rhodes:drag')
- AddEventHandler('r_rhodes:drag', function(target)
- local xPlayer = ESX.GetPlayerFromId(source)
- if xPlayer.job2.name == 'rhodes' then
- TriggerClientEvent('r_rhodes:drag', target, source)
- else
- print(('r_rhodes: %s attempted to drag (not cop)!'):format(xPlayer.identifier))
- end
- end)
- RegisterNetEvent('r_rhodes:putInVehicle')
- AddEventHandler('r_rhodes:putInVehicle', function(target)
- local xPlayer = ESX.GetPlayerFromId(source)
- if xPlayer.job2.name == 'rhodes' then
- TriggerClientEvent('r_rhodes:putInVehicle', target)
- else
- print(('r_rhodes: %s attempted to put in vehicle (not cop)!'):format(xPlayer.identifier))
- end
- end)
- RegisterNetEvent('r_rhodes:OutVehicle')
- AddEventHandler('r_rhodes:OutVehicle', function(target)
- local xPlayer = ESX.GetPlayerFromId(source)
- if xPlayer.job2.name == 'rhodes' then
- TriggerClientEvent('r_rhodes:OutVehicle', target)
- else
- print(('r_rhodes: %s attempted to drag out from vehicle (not cop)!'):format(xPlayer.identifier))
- end
- end)
- ESX.RegisterServerCallback('r_rhodes:getOtherPlayerData', function(source, cb, target, notify)
- local xPlayer = ESX.GetPlayerFromId(target)
- if notify then
- xPlayer.showNotification(_U('being_searched'))
- end
- if xPlayer then
- local data = {
- name = xPlayer.getName(),
- job = xPlayer.job2.label,
- grade = xPlayer.job2.grade_label,
- inventory = xPlayer.getInventory(),
- accounts = xPlayer.getAccounts(),
- weapons = xPlayer.getLoadout()
- }
- if Config.EnableESXIdentity then
- data.dob = xPlayer.get('dateofbirth')
- data.height = xPlayer.get('height')
- if xPlayer.get('sex') == 'm' then data.sex = 'male' else data.sex = 'female' end
- end
- TriggerEvent('esx_status:getStatus', target, 'drunk', function(status)
- if status then
- data.drunk = ESX.Math.Round(status.percent)
- end
- end)
- end
- end)
- ESX.RegisterServerCallback('r_rhodes:getVehicleInfos', function(source, cb, plate)
- MySQL.Async.fetchAll('SELECT owner FROM owned_vehicles WHERE plate = @plate', {
- ['@plate'] = plate
- }, function(result)
- local retrivedInfo = {plate = plate}
- if result[1] then
- local xPlayer = ESX.GetPlayerFromIdentifier(result[1].owner)
- if xPlayer then
- retrivedInfo.owner = xPlayer.getName()
- cb(retrivedInfo)
- elseif Config.EnableESXIdentity then
- MySQL.Async.fetchAll('SELECT firstname, lastname FROM users WHERE identifier = @identifier', {
- ['@identifier'] = result[1].owner
- }, function(result2)
- if result2[1] then
- retrivedInfo.owner = ('%s %s'):format(result2[1].firstname, result2[1].lastname)
- cb(retrivedInfo)
- else
- cb(retrivedInfo)
- end
- end)
- else
- cb(retrivedInfo)
- end
- else
- cb(retrivedInfo)
- end
- end)
- end)
- ESX.RegisterServerCallback('r_rhodes:buyWeapon', function(source, cb, weaponName, type, componentNum)
- local xPlayer = ESX.GetPlayerFromId(source)
- local authorizedWeapons, selectedWeapon = Config.AuthorizedWeapons[xPlayer.job2.grade_name]
- for k,v in ipairs(authorizedWeapons) do
- if v.weapon == weaponName then
- selectedWeapon = v
- break
- end
- end
- if not selectedWeapon then
- print(('r_rhodes: %s attempted to buy an invalid weapon.'):format(xPlayer.identifier))
- cb(false)
- else
- if type == 1 then
- if xPlayer.getMoney() >= selectedWeapon.price then
- xPlayer.removeMoney(selectedWeapon.price)
- xPlayer.addWeapon(weaponName, 100)
- cb(true)
- else
- cb(false)
- end
- elseif type == 2 then
- local price = selectedWeapon.components[componentNum]
- local weaponNum, weapon = ESX.GetWeapon(weaponName)
- local component = weapon.components[componentNum]
- if component then
- if xPlayer.getMoney() >= price then
- xPlayer.removeMoney(price)
- xPlayer.addWeaponComponent(weaponName, component.name)
- cb(true)
- else
- cb(false)
- end
- else
- print(('r_rhodes: %s attempted to buy an invalid weapon component.'):format(xPlayer.identifier))
- cb(false)
- end
- end
- end
- end)
- ESX.RegisterServerCallback('r_rhodes:storeNearbyVehicle', function(source, cb, nearbyVehicles)
- local xPlayer = ESX.GetPlayerFromId(source)
- local foundPlate, foundNum
- for k,v in ipairs(nearbyVehicles) do
- local result = MySQL.Sync.fetchAll('SELECT plate FROM owned_vehicles WHERE owner = @owner AND plate = @plate AND job = @job', {
- ['@owner'] = xPlayer.identifier,
- ['@plate'] = v.plate,
- ['@job'] = xPlayer.job2.name
- })
- if result[1] then
- foundPlate, foundNum = result[1].plate, k
- break
- end
- end
- if not foundPlate then
- cb(false)
- else
- MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = true WHERE owner = @owner AND plate = @plate AND job = @job', {
- ['@owner'] = xPlayer.identifier,
- ['@plate'] = foundPlate,
- ['@job'] = xPlayer.job2.name
- }, function (rowsChanged)
- if rowsChanged == 0 then
- print(('r_rhodes: %s has exploited the garage!'):format(xPlayer.identifier))
- cb(false)
- else
- cb(true, foundNum)
- end
- end)
- end
- end)
- ESX.RegisterServerCallback('r_rhodes:getPlayerInventory', function(source, cb)
- local xPlayer = ESX.GetPlayerFromId(source)
- local items = xPlayer.inventory
- cb({items = items})
- end)
Add Comment
Please, Sign In to add comment