tibia-client/modules/client_terminal/commands.lua

178 lines
4.3 KiB
Lua
Raw Permalink Normal View History

2013-02-28 23:05:53 +01:00
local function pcolored(text, color)
color = color or 'white'
2013-03-01 10:38:05 +01:00
modules.client_terminal.addLine(tostring(text), color)
2013-02-28 23:05:53 +01:00
end
2013-03-01 00:10:36 +01:00
function draw_debug_boxes()
g_ui.setDebugBoxesDrawing(not g_ui.isDrawingDebugBoxes())
2012-01-09 19:45:28 +01:00
end
2012-01-09 22:16:50 +01:00
2013-02-28 22:39:27 +01:00
function hide_map()
modules.game_interface.getMapPanel():hide()
2012-01-16 06:54:53 +01:00
end
2013-02-28 22:39:27 +01:00
function show_map()
modules.game_interface.getMapPanel():show()
2012-01-16 06:54:53 +01:00
end
2013-03-01 09:46:55 +01:00
function live_textures_reload()
g_textures.liveReload()
end
2013-03-01 10:38:05 +01:00
function live_module_reload(name)
if not name then
pcolored('ERROR: missing module name', 'red')
return
end
2013-03-01 10:38:05 +01:00
local module = g_modules.getModule(name)
if not module then
pcolored('ERROR: unable to find module ' .. name, 'red')
return
end
if not module:isReloadble() then
pcolored('ERROR: that module is not reloadable', 'red')
return
end
if not module:canReload() then
pcolored('ERROR: some other modules requires this module, cannot reload now', 'red')
return
end
local files = {}
local hasFile = false
for _,file in pairs(g_resources.listDirectoryFiles('/' .. name)) do
local filepath = '/' .. name .. '/' .. file
local time = g_resources.getFileTime(filepath)
if time > 0 then
files[filepath] = time
hasFile = true
end
end
if not hasFile then
pcolored('ERROR: unable to find any file for module', 'red')
return
end
cycleEvent(function()
for filepath,time in pairs(files) do
local newtime = g_resources.getFileTime(filepath)
if newtime > time then
pcolored('Reloading ' .. name, 'green')
modules.client_terminal.flushLines()
module:reload()
files[filepath] = newtime
if name == 'client_terminal' then
modules.client_terminal.show()
end
break
end
end
end, 1000)
2012-01-09 22:16:50 +01:00
end
2012-01-19 05:12:53 +01:00
2013-03-01 17:56:12 +01:00
function live_sprites_reload()
local files = {}
for _,file in pairs(g_resources.listDirectoryFiles('/things')) do
local filepath = '/things/' .. file
local time = g_resources.getFileTime(filepath)
if time > 0 then
files[filepath] = time
hasFile = true
end
end
if not hasFile then
pcolored('ERROR: unable to find things file for module', 'red')
return
end
cycleEvent(function()
for filepath,time in pairs(files) do
local newtime = g_resources.getFileTime(filepath)
if newtime > time then
pcolored('Reloading sprites...', 'green')
modules.client_terminal.flushLines()
modules.game_things.load()
files[filepath] = newtime
if name == 'client_terminal' then
modules.client_terminal.show()
end
break
end
end
end, 1000)
end
2013-02-28 22:39:27 +01:00
local pinging = false
2013-03-01 00:10:36 +01:00
local function pingBack(ping)
if ping < 300 then color = 'green'
elseif ping < 600 then color = 'yellow'
else color = 'red' end
pcolored(g_game.getWorldName() .. ' => ' .. ping .. ' ms', color)
end
2013-02-28 22:39:27 +01:00
function ping()
if pinging then
2013-03-01 00:10:36 +01:00
pcolored('Ping stopped.')
2013-02-28 22:39:27 +01:00
g_game.setPingDelay(1000)
disconnect(g_game, 'onPingBack', pingBack)
2012-08-02 16:02:36 +02:00
else
2013-02-28 22:39:27 +01:00
if not (g_game.getFeature(GameClientPing) or g_game.getFeature(GameExtendedClientPing)) then
2013-03-01 00:10:36 +01:00
pcolored('this server does not support ping', 'red')
2013-02-28 22:39:27 +01:00
return
elseif not g_game.isOnline() then
2013-03-01 00:10:36 +01:00
pcolored('ping command is only allowed when online', 'red')
2013-02-28 22:39:27 +01:00
return
end
2013-03-01 00:10:36 +01:00
pcolored('Starting ping...')
2013-02-28 22:39:27 +01:00
g_game.setPingDelay(0)
connect(g_game, 'onPingBack', pingBack)
2012-08-02 16:02:36 +02:00
end
2013-02-28 22:39:27 +01:00
pinging = not pinging
2012-08-02 16:02:36 +02:00
end
2013-02-28 22:39:27 +01:00
function clear()
modules.client_terminal.clear()
end
function ls(path)
path = path or '/'
local files = g_resources.listDirectoryFiles(path)
for k,v in pairs(files) do
if g_resources.directoryExists(path .. v) then
2013-02-28 23:05:53 +01:00
pcolored(path .. v, 'blue')
2013-02-28 22:39:27 +01:00
else
2013-02-28 23:05:53 +01:00
pcolored(path .. v)
2013-02-28 22:39:27 +01:00
end
end
end
2013-02-28 22:39:27 +01:00
function about_version()
2013-02-28 23:05:53 +01:00
pcolored(g_app.getName() .. ' ' .. g_app.getVersion() .. '\n' ..
2013-02-28 22:39:27 +01:00
'Rev ' .. g_app.getBuildRevision() .. ' ('.. g_app.getBuildCommit() .. ')\n' ..
'Built on ' .. g_app.getBuildDate())
2013-01-03 07:24:07 +01:00
end
2013-02-24 21:26:19 +01:00
2013-02-28 22:39:27 +01:00
function about_graphics()
2013-02-28 23:05:53 +01:00
pcolored('Vendor ' .. g_graphics.getVendor() )
pcolored('Renderer' .. g_graphics.getRenderer())
pcolored('Version' .. g_graphics.getVersion())
end
function about_modules()
for k,m in pairs(g_modules.getModules()) do
local loadedtext
if m:isLoaded() then
pcolored(m:getName() .. ' => loaded', 'green')
else
pcolored(m:getName() .. ' => not loaded', 'red')
end
end
2013-02-24 21:26:19 +01:00
end