120 lines
2.5 KiB
Lua
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 |