Files
2021-12-03 01:05:09 +00:00

120 lines
2.5 KiB
Lua

--================================--
-- FIRE SCRIPT v1.6.3 --
-- by GIMI (+ foregz, Albo1125) --
-- License: GNU GPL 3.0 --
--================================--
function checkVersion()
PerformHttpRequest(
LatestVersionFeed,
function(errorCode, data, headers)
if tonumber(errorCode) == 200 then
data = json.decode(data)
if not data then
print("^3[FireScript]^7 Couldn't check version - no data returned!")
return
end
if data.tag_name == "v" .. Version then
print("^2[FireScript]^7 Up to date.")
else
print(("^3[FireScript]^7 The script isn't up to date! Please update to version %s."):format(data.tag_name))
end
else
print(("^3[FireScript]^7 Couldn't check version! Error code %s."):format(errorCode))
print(LatestVersionFeed)
end
end,
'GET',
'',
{
['User-Agent'] = ("FireScript v%s"):format(Version)
}
)
end
-- Chat
function sendMessage(source, text, customName)
if source > 0 then
TriggerClientEvent(
"chat:addMessage",
source,
{
templateId = "firescript",
args = {
((customName ~= nil) and customName or ("FireScript v%s"):format(Version)),
text
}
}
)
else
print(("[FireScript v%s] %s"):format(Version, text))
end
end
-- Table functions
function highestIndex(table, fireIndex)
if not table then
return
end
local table = fireIndex ~= nil and table[fireIndex] or table
local index = 0
local count = 0
for k, v in ipairs(table) do
count = count + 1
if k >= index then
index = k
end
end
return index, count
end
function table.length(t)
if not t or type(t) ~= "table" then
return
end
local count = 0
for k, v in pairs(t) do count = count + 1 end
return count
end
function table.random(t)
if not t or type(t) ~= "table" or next(t) == nil then
return false
end
local randomPosition = math.random(1, table.length(t))
local currentPosition = 0
local randomKey = nil
for k, v in pairs(t) do -- Select a random registered fire
currentPosition = currentPosition + 1
if currentPosition == randomPosition then
randomKey = k
break
end
end
return randomKey, t[randomKey]
end
-- JSON config
function saveData(data, keyword)
if type(keyword) ~= "string" then
return
end
SaveResourceFile(GetCurrentResourceName(), keyword .. ".json", json.encode(data), -1)
end
function loadData(keyword)
local fileContents = LoadResourceFile(GetCurrentResourceName(), keyword .. ".json")
return fileContents and json.decode(fileContents) or nil
end