[Help] Making esx_property set owned houses to one individual via Database

Is There a way for me to assoiciate this with the sql Owned column In the Properties table i made
im trying to make it to where if the player owns the property then that property then will not be on the market
I have set in OwnedProperties table for the owner name to be unique, so in essence im trying to limit the ability to buy more then one property
and then have it display a blip over the house for the server to show that that house has been sold and then
how can i get that owned table to work like 0 = not owned and 1 = owned
i know this may be easy for one person but im still new to lua and i have only made one script and it was client side script
if anyone can give me helpful hints ill be grateful i do wanna learn to do this so i will take notes or any hints !!!

function ownedz(name, owned)
local property = GetProperty(name)
local entering = nil 
local owned = nil 
local owner = ESX.GetPlayerData().identifier
      if CurrentPropertyOwner = owner and 
                currentProperty = property and 
                       PropertyIsOwned then 
      RemoveBlip(Blips[enteringName])
      
  		Blips[enteringName] = AddBlipForCoord(entering.x, entering.y, entering.z)
  		SetBlipSprite(Blips[enteringName], 357)
      SetBlipColour(Blips[enteringName], 1)
  		SetBlipAsShortRange(Blips[enteringName], true)
  
  		BeginTextCommandSetBlipName("STRING")
  		AddTextComponentString(_U('Sold'))
  		EndTextCommandSetBlipName(Blips[enteringName])
  end 
end

Links To Photos Of Database



***Im not looking for a handout just help ***

1 Like

Has anyone figured this out yet?

Is this solved? Need it so much

client.lua

RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer)
	ESX.TriggerServerCallback('esx_property:getProperties', function(properties)
		Config.Properties = properties
		CreateBlips()
	end)

	ESX.TriggerServerCallback('esx_property:getOwnedProperties', function(ownedProperties)
		for i=1, #ownedProperties, 1 do
			SetPropertyOwned(ownedProperties[i], true)
		end
	end)
end)

server.lua

ESX = nil

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
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)

		if xPlayer then
			TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, true)

			if rented then
				TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rented_for', ESX.Math.GroupDigits(price)))
			else
				TriggerClientEvent('esx:showNotification', xPlayer.source, _U('purchased_for', ESX.Math.GroupDigits(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)

		if xPlayer then
			TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, false)
			TriggerClientEvent('esx:showNotification', xPlayer.source, _U('made_property'))
		end
	end)
end
3 Likes