feat: vehicle metadata

This commit is contained in:
Andyyy7666
2023-10-29 11:20:33 +01:00
parent 8aee90a10f
commit cebe404d42
2 changed files with 16 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ CREATE TABLE IF NOT EXISTS `nd_vehicles` (
`stored` INT(11) DEFAULT '1', `stored` INT(11) DEFAULT '1',
`impounded` INT(11) DEFAULT '0', `impounded` INT(11) DEFAULT '0',
`stolen` INT(11) DEFAULT '0', `stolen` INT(11) DEFAULT '0',
`metadata` LONGTEXT DEFAULT '[]',
PRIMARY KEY (`id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE,
INDEX `owner` (`owner`) USING BTREE, INDEX `owner` (`owner`) USING BTREE,
CONSTRAINT `vehowner` FOREIGN KEY (`owner`) REFERENCES `nd_characters` (`charid`) ON UPDATE CASCADE ON DELETE CASCADE CONSTRAINT `vehowner` FOREIGN KEY (`owner`) REFERENCES `nd_characters` (`charid`) ON UPDATE CASCADE ON DELETE CASCADE

View File

@@ -52,7 +52,8 @@ local function getVehicleDatabaseInfo(vehicle)
stored = stored, stored = stored,
impounded = impounded, impounded = impounded,
stolen = vehicle.stolen == 1, stolen = vehicle.stolen == 1,
available = not impounded and stored available = not impounded and stored,
metadata = json.decode(vehicle.metadata) or {}
} }
end end
@@ -79,7 +80,7 @@ function NDCore.getVehicle(entity)
properties = state.props, properties = state.props,
locked = state.locked, locked = state.locked,
hotwired = state.hotwired, hotwired = state.hotwired,
metadata = state.metadata, metadata = state.metadata or {},
netId = NetworkGetNetworkIdFromEntity(entity) netId = NetworkGetNetworkIdFromEntity(entity)
} }
@@ -145,6 +146,18 @@ function NDCore.getVehicle(entity)
return true return true
end end
function self.setMetadata(key, value)
self.metadata[key] = value
if DoesEntityExist(entity) then
local state = Entity(self.entity).state
local metadata = state.metadata
metadata[key] = value
state.metadata = metadata
end
if not self.id or not self.owner then return end
MySQL.query("UPDATE nd_vehicles SET metadata = ? WHERE id = ?", {json.encode(self.metadata), self.id})
end
if self.id and self.owner then if self.id and self.owner then
spawnedPlayerVehicles[self.id] = self spawnedPlayerVehicles[self.id] = self
end end