fix cruise onfoot & add submenu for autoupdate & add changelog for autoupdate

test-utf-8
rubin 2 years ago
parent 350a253188
commit bac19b0ef3
  1. 158
      TruckHUD.lua

@ -215,7 +215,7 @@ function main()
lua_thread.create(luChecker.checker) lua_thread.create(luChecker.checker)
lua_thread.create(doCruise) lua_thread.create(doCruise)
--lua_thread.create(script_update.main) lua_thread.create(script_update.main)
@ -1075,14 +1075,14 @@ function doCruise()
printStringNow('~R~cruise control - OFF', 1500) printStringNow('~R~cruise control - OFF', 1500)
end end
end end
if not sampIsChatInputActive() and not sampIsDialogActive() and not sampIsCursorActive() then if isCharInAnyCar(playerPed) and not sampIsChatInputActive() and not sampIsDialogActive() and not sampIsCursorActive() then
if not cruise and isKeyDown(vkeys["VK_W"]) and isKeyDown(vkeys[inifiles.Settings.Key4]) then if not cruise and isKeyDown(vkeys["VK_W"]) and isKeyDown(vkeys[inifiles.Settings.Key4]) then
cruise = true cruise = true
printStringNow('~G~cruise control - ON', 1500) printStringNow('~G~cruise control - ON', 1500)
repeat repeat
wait(100) wait(100)
until not isKeyDown(vkeys["VK_W"]) until not isKeyDown(vkeys["VK_W"])
elseif cruise and not isKeyDown(vkeys[inifiles.Settings.Key4]) and select(1, check_press_key(additional_key_stop)) then elseif cruise and (isKeyDown(vkeys[inifiles.Settings.Key4]) or select(1, check_press_key(additional_key_stop))) then
cruise = false cruise = false
printStringNow('~R~cruise control - OFF', 1500) printStringNow('~R~cruise control - OFF', 1500)
end end
@ -4349,10 +4349,9 @@ function addChatMessage(text)
end end
script_update = { script_update = {
check_update = false, version_url = "http://gith.deadpoo.net/rubin/TruckHUD/raw/branch/master/version",
check_update_url = "http://gith.deadpoo.net/rubin/TruckHUD/raw/branch/master/version", script_url = "http://gith.deadpoo.net/rubin/TruckHUD/raw/branch/master/TruckHUD.lua",
auto_update = false, changelog_url = "http://gith.deadpoo.net/rubin/TruckHUD/raw/branch/master/changelog",
auto_update_url = "http://gith.deadpoo.net/rubin/TruckHUD/raw/branch/master/TruckHUD.lua",
address_ini = "rubin-mods-updates.ini", address_ini = "rubin-mods-updates.ini",
main = function() main = function()
local name = thisScript().name local name = thisScript().name
@ -4362,20 +4361,22 @@ script_update = {
auto_update = true auto_update = true
} }
}, script_update.address_ini) }, script_update.address_ini)
script_update.check_update = ini[name].check_update ini[name].version_url = script_update.version_url
script_update.auto_update = ini[name].auto_update ini[name].script_url = script_update.script_url
ini[name].changelog_url = script_update.changelog_url
ini[name].script_name = thisScript().name
inicfg.save(ini, script_update.address_ini) inicfg.save(ini, script_update.address_ini)
if script_update.check_update or script_update.auto_update then if ini[name].check_update or ini[name].auto_update then
local fpath = os.tmpname() local fpath = os.tmpname()
local result, text = openURL(script_update.check_update_url, fpath) local result, text = openURL(script_update.version_url, fpath)
if result then if result then
if text ~= "" and not string.find(text, thisScript().version) then if text ~= "" and not string.find(text, thisScript().version) then
addChatMessage( string.format("Âûøëà íîâàÿ âåðñèÿ '%s'. Òåêóùàÿ: '%s'", text, thisScript().version) ) addChatMessage( string.format("Âûøëà íîâàÿ âåðñèÿ '%s'. Òåêóùàÿ: '%s'", text, thisScript().version) )
if script_update.auto_update then if ini[name].auto_update then
addChatMessage( string.format("Àâòî-Îáíîâëåíèå ñêðèïòà âêëþ÷åíî. Ïðîöåññ çàïóùåí!") ) addChatMessage( string.format("Àâòî-Îáíîâëåíèå ñêðèïòà âêëþ÷åíî. Ïðîöåññ çàïóùåí!") )
script_update.command() script_update.command()
else else
local command = thisScript().name:gsub(" ", "").."-update" local command = (thisScript().name:gsub(" ", "").."-update"):lower()
sampRegisterChatCommand(command, script_update.command) sampRegisterChatCommand(command, script_update.command)
addChatMessage( string.format("Àâòî-Îáíîâëåíèå ñêðèïòà âûêëþ÷åíî. Îáíîâèòü ñàìîìó: /%s", command) ) addChatMessage( string.format("Àâòî-Îáíîâëåíèå ñêðèïòà âûêëþ÷åíî. Îáíîâèòü ñàìîìó: /%s", command) )
end end
@ -4386,24 +4387,26 @@ script_update = {
end, end,
command = function() command = function()
lua_thread.create(function() lua_thread.create(function()
local fpath = os.tmpname() -- local fpath = os.tmpname()
local result, text = openURL(script_update.auto_update_url, fpath) -- local result, text = openURL(script_update.script_url, fpath)
if result and text ~= "" and text:find(thisScript().name:gsub("%-", "%%-")) then -- if result and text ~= "" and text:find(thisScript().name:gsub("%-", "%%-")) then
local file, error = io.open(thisScript().path, "w") -- local file, error = io.open(thisScript().path, "w")
if file ~= nil then -- if file ~= nil then
file:write(text) -- file:write(text)
file:flush() -- file:flush()
io.close(file) -- io.close(file)
addChatMessage("Îáíîâëåíèå çàâåðøåíî, ñêðèïò ïåðåçàãðóæåí!") -- addChatMessage("Îáíîâëåíèå çàâåðøåíî, ñêðèïò ïåðåçàãðóæåí!")
wait(500) -- wait(500)
thisScript():reload() -- thisScript():reload()
end -- end
end -- end
end) end)
end, end,
menu = { menu = {
text = {}, text = {},
dialog = {}, dialog = {},
text2 = {},
dialog2 = {},
init = function() init = function()
if not sampIsChatCommandDefined("rubin-mods") then if not sampIsChatCommandDefined("rubin-mods") then
sampRegisterChatCommand("rubin-mods",script_update.menu.show) sampRegisterChatCommand("rubin-mods",script_update.menu.show)
@ -4412,9 +4415,23 @@ script_update = {
local result, button, list, input = sampHasDialogRespond(2160) local result, button, list, input = sampHasDialogRespond(2160)
if result and button == 1 then if result and button == 1 then
if script_update.menu.text[list+1] ~= nil and script_update.menu.dialog[list+1] ~= nil then if script_update.menu.text[list+1] ~= nil and script_update.menu.dialog[list+1] ~= nil then
script_update.menu.dialog[list+1]() script_update.menu.dialog[list+1](script_update.menu.ini[list+1])
end end
end end
local result, button, list, input = sampHasDialogRespond(2162)
if result then
if button == 1 then
if script_update.menu2.text[list+1] ~= nil and script_update.menu2.dialog[list+1] ~= nil then
script_update.menu2.dialog[list+1]()
end
else
script_update.menu.show()
end
end
local result, button, list, input = sampHasDialogRespond(2161)
if result then
script_update.menu2.show(script_update.menu2.data)
end
end end
else else
say("Êîìàíäà çàðåãàíà") say("Êîìàíäà çàðåãàíà")
@ -4423,43 +4440,70 @@ script_update = {
show = function() show = function()
script_update.menu.text = {} script_update.menu.text = {}
script_update.menu.dialog = {} script_update.menu.dialog = {}
script_update.menu.ini = {}
local ini = inicfg.load({}, script_update.address_ini) local ini = inicfg.load({}, script_update.address_ini)
for k,v in pairs(ini) do for k,v in pairs(ini) do
script_update.menu.text[#script_update.menu.text+1] = string.format(" ") script_update.menu.ini[#script_update.menu.ini+1] = v
script_update.menu.dialog[#script_update.menu.dialog+1] = function() script_update.menu.text[#script_update.menu.text+1] = string.format("%s", k)
script_update.menu.show() script_update.menu.dialog[#script_update.menu.dialog+1] = function(data)
end -- script_update.menu.show()
script_update.menu2.show(data)
script_update.menu.text[#script_update.menu.text+1] = string.format("> %s", k)
script_update.menu.dialog[#script_update.menu.dialog+1] = function()
script_update.menu.show()
end
script_update.menu.text[#script_update.menu.text+1] = string.format("\tauto update %s", (ini[k].auto_update and "{59fc30}ON" or "{ff0000}OFF"))
script_update.menu.dialog[#script_update.menu.dialog+1] = function()
ini[k].auto_update = not ini[k].auto_update
inicfg.save(ini, script_update.address_ini)
script_update.menu.show()
end
if not ini[k].auto_update then
script_update.menu.text[#script_update.menu.text+1] = string.format("\tcheck update %s", (ini[k].check_update and "{59fc30}ON" or "{ff0000}OFF"))
script_update.menu.dialog[#script_update.menu.dialog+1] = function()
ini[k].check_update = not ini[k].check_update
inicfg.save(ini, script_update.address_ini)
script_update.menu.show()
end
end
script_update.menu.text[#script_update.menu.text+1] = string.format("\tdelete update settings")
script_update.menu.dialog[#script_update.menu.dialog+1] = function()
ini[k] = nil
inicfg.save(ini, script_update.address_ini)
script_update.menu.show()
end end
end end
local text = "" local text = ""
for i = 1, #script_update.menu.text do for i = 1, #script_update.menu.text do
text = text..script_update.menu.text[i].."\n" text = text..script_update.menu.text[i].."\n"
end end
sampShowDialog(2160,"rubin-mods update settings",text,"Enter","Exit",2) sampShowDialog(2160,"Îáíîâëåíèå ñêðèïòîâ: Rubin Mods",text,"Âûáðàòü","Çàêðûòü",2)
end end
} },
menu2 = {
data = {},
text = {},
dialog = {},
show = function(data)
script_update.menu2.data = data
script_update.menu2.text = {}
script_update.menu2.dialog = {}
local ini = inicfg.load({}, script_update.address_ini)
local k = data.script_name
script_update.menu2.text[#script_update.menu2.text+1] = string.format("Àâòî îáíîâëåíèå %s", (ini[k].auto_update and "{59fc30}ON" or "{ff0000}OFF"))
script_update.menu2.dialog[#script_update.menu2.dialog+1] = function()
ini[k].auto_update = not ini[k].auto_update
inicfg.save(ini, script_update.address_ini)
script_update.menu2.show(data)
end
if not ini[k].auto_update then
script_update.menu2.text[#script_update.menu2.text+1] = string.format("Ïðîâåðÿòü îáíîâëåíèÿ %s", (ini[k].check_update and "{59fc30}ON" or "{ff0000}OFF"))
script_update.menu2.dialog[#script_update.menu2.dialog+1] = function()
ini[k].check_update = not ini[k].check_update
inicfg.save(ini, script_update.address_ini)
script_update.menu2.show(data)
end
end
script_update.menu2.text[#script_update.menu2.text+1] = string.format("Ïîñëåäíèå èçìåíåíèÿ")
script_update.menu2.dialog[#script_update.menu2.dialog+1] = function()
script_update.changelog(ini[k].changelog_url)
end
script_update.menu2.text[#script_update.menu2.text+1] = string.format("Óäàëèòü èç ñïèñêà")
script_update.menu2.dialog[#script_update.menu2.dialog+1] = function()
ini[k] = nil
inicfg.save(ini, script_update.address_ini)
script_update.menu.show()
end
local text = ""
for i = 1, #script_update.menu2.text do
text = text..script_update.menu2.text[i].."\n"
end
sampShowDialog(2162,"Íàñòðîéêè îáíîâëåíèÿ äëÿ "..data.script_name,text,"Âûáðàòü","Íàçàä",2)
end
},
changelog = function(url, data)
local fpath = os.tmpname()
local result, text = openURL(url, fpath)
if result then
sampShowDialog(2161,"Changelog - "..thisScript().name,text,"Âûáðàòü","Íàçàä",4)
end
end
} }

Loading…
Cancel
Save