HexscriptsClassicLifeinvader
Configurations
Here you will get all configurations & open source files that are included within this script.
Open Source Files
Config = {}
Config.Debug = true
Config.Locale = 'de'
Config.Framework = {
current = 'ESX', -- only ESX or QB
object = nil, -- leave it alone
cachedInformations = { -- leave it alone
phone_number = {}
},
loadFunction = function()
if Config.Framework.current == 'ESX' then
Config.Framework.object = exports['es_extended']:getSharedObject()
elseif Config.Framework.current == 'QB' then
Config.Framework.object = exports['qb-core']:GetCoreObject()
end
end,
getMoney = function(playerId)
if Config.Framework.current == 'ESX' then
local xPlayer = Config.Framework.object.GetPlayerFromId(playerId)
return xPlayer.getMoney()
elseif Config.Framework.current == 'QB' then
local Player = Config.Framework.object.Functions.GetPlayer(playerId)
return Player.Functions.GetMoney('cash')
end
return 0
end,
removeMoney = function(playerId, amount)
if Config.Framework.current == 'ESX' then
local xPlayer = Config.Framework.object.GetPlayerFromId(playerId)
xPlayer.removeMoney(amount)
elseif Config.Framework.current == 'QB' then
local Player = Config.Framework.object.Functions.GetPlayer(playerId)
Player.Functions.RemoveMoney('cash', amount)
end
end,
getName = function(playerId)
if Config.Framework.current == 'ESX' then
local xPlayer = Config.Framework.object.GetPlayerFromId(playerId)
return xPlayer.getName()
elseif Config.Framework.current == 'QB' then
local Player = Config.Framework.object.Functions.GetPlayer(playerId)
return Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname
end
end,
getPhoneNumber = function(playerId)
if Config.Framework.current == 'ESX' then
local xPlayer = Config.Framework.object.GetPlayerFromId(playerId)
local wait = 0
if Config.Framework.cachedInformations.phone_number[xPlayer.identifier] == nil then
MySQL.Async.fetchScalar('SELECT `phone_number` FROM `users` WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(phone_number)
Config.Framework.cachedInformations.phone_number[xPlayer.identifier] = phone_number
end)
end
while Config.Framework.cachedInformations.phone_number[xPlayer.identifier] == nil and wait <= 20 do
Citizen.Wait(100)
wait = wait + 1
end
if wait >= 20 then
Config.Framework.cachedInformations.phone_number[xPlayer.identifier] = '| unknown'
end
return Config.Framework.cachedInformations.phone_number[xPlayer.identifier]
elseif Config.Framework.current == 'QB' then
local Player = Config.Framework.object.Functions.GetPlayer(playerId)
return Player.PlayerData.metadata["phonedata"].SerialNumber
end
end,
}
Config.Position = {
coords = vector4(4045.8623, 2344.4043, 24.8556, 178.4864),
ped = {
enabled = false,
distance = 1.0,
hash = joaat('CS_FBISuit_01')
},
marker = {
enabled = true,
type = 0,
drawDistance = 50.0,
scale = vector3(0.5, 0.5, 0.5),
color = {
red = 255,
green = 46,
blue = 58,
alpha = 100
},
moveUpAndDown = false,
rotate = true
},
blip = {
enabled = true,
coords = vector3(4045.8623, 2344.4043, 24.8556),
sprite = 77,
scale = 0.8,
color = 1,
display = 4,
shortRange = true,
text = 'Lifeinvader'
}
}
Config.Avatar = true -- need steam api linked in the server.cfg
Config.Cooldown = 300 -- seconds
Config.Price = {
minLetter = 15,
maxLetter = 50,
price = 2500,
perLetter = true,
pricePerLetter = 100
}
Config.blacklistedStrings = {
"<",
">",
"mp3",
"mp4"
}
Config.Locales = {
['de'] = {
['press_e'] = 'Drücke E um eine Werbung zu schalten',
['message_short'] = 'Deine Nachricht ist zu kurz (mind. %s Buchstaben)',
['message_long'] = 'Deine Nachricht ist zu lang (max. %s Buchstaben)',
['not_enough'] = 'Du hast nicht genug Geld dabei!',
['cooldown'] = 'Derzeit ist ein Cooldown aktiv!',
['you_paid'] = 'Du bezahlst %s$!',
['blacklisted_string'] = 'Blacklisted string detected!',
['webhook_username'] = '@%s',
['webhook_description'] = '%s\n\nTelefonnummer: %s',
['webhook_date'] = "Werbung geschalten am %s um %s"
},
['en'] = {
['press_e'] = 'Press E to display an advertisement',
['message_short'] = 'Your message is too short (at least %s characters)',
['message_long'] = 'Your message is too long (max. %s characters)',
['not_enough'] = "You don't have enough money!",
['cooldown'] = 'Currently a cool down is active!',
['you_paid'] = 'You payed %s$!',
['blacklisted_string'] = 'Blacklisted string detected!',
['webhook_username'] = '@%s',
['webhook_description'] = '%s\n\nPhonenumber: %s',
['webhook_date'] = "Advertisement placed on %s at %s"
}
}
function NotifyLifeinvader(name, text, phoneNumber, timeout)
TriggerEvent('hex_lifeinvader:lifeinvaderNotify', name, text, phoneNumber, timeout)
end
function DrawHelpNotify(message)
SetTextComponentFormat('STRING')
AddTextComponentString(message)
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
end
function Notify(title, message, type, timeout)
TriggerEvent('hex_hud:notify', title, message, type, timeout)
end