-- this is the first file executed when the application starts -- we have to load the first modules form here -- updater Services = { --updater = "http://localhost/api/updater.php", --./updater --status = "http://localhost/login.php", --./client_entergame | ./client_topmenu --websites = "http://localhost/?subtopic=accountmanagement", --./client_entergame "Forgot password and/or email" createAccount = "https://play.valdren-online.com/crear-cuenta", -- OT-MMO: server/cuentas (botón «Crear cuenta») --getCoinsUrl = "http://localhost/?subtopic=shop&step=terms", --./game_market clientAssets = { enabled = true, repository = "dudantas/tibia-client", installSounds = true, strictManifestSha256 = true, allowRawFallbackHashMismatch = false, allowMissingPackedRawFallback = true, preferArchive = true, fallbackToArchiveOnManifestFailure = false, installArchiveExtras = true, archiveExtraPrefixes = { "bin" }, installPackagedFiles = true }, -- ./client_assets } --- Enables or disables the entire server configuration block. -- Set to `false` to disable all configuration below. -- VALDREN (apertura, 23-oct): herramientas de desarrollo del cliente con UNA bandera. false = build publica: -- no se cargan client_terminal (Ctrl+T, consola Lua), client_debug_info (Ctrl+Alt+D) ni dev_otui (Ctrl+Alt+U), -- asi que sus atajos y botones no existen. true = pruebas. Espejo del servidor: server/scripts/modo_pruebas.lua. MODO_PRUEBAS = false HERRAMIENTAS_PRUEBAS = { 'client_terminal', 'client_debug_info', 'dev_otui' } local ENABLE_SERVERS = true --- -- @module Servers_init -- Configuration table for all servers used by the system. -- -- This entire block is conditionally enabled based on ENABLE_SERVERS. -- When ENABLE_SERVERS == false, everything is ignored/disabled. -- --- -- Server configuration system for multi-server or multi-world clients. -- -- This structure allows a single client build to connect to multiple servers -- without requiring duplicate client folders. -- -- A server that hosts several worlds, or that provides a separate test environment, -- can simply define additional entries inside this configuration table. -- -- Instead of maintaining multiple client installations (one per world/server), -- the client can switch between servers by selecting the desired configuration entry. -- This simplifies testing, avoids redundant directories, and centralizes connection settings. -- -- The ENABLE_SERVERS flag allows the entire configuration block to be enabled or disabled -- without deleting or commenting out individual entries. -- Servers_init = {} if ENABLE_SERVERS then --- -- List of servers and their configuration parameters. -- Each entry defines port, protocol, and authentication options. -- @table Servers_init -- -- OT-MMO: servidor precargado. El puerto NO puede ser 7171: -- con 7171 el cliente usa el login TCP antiguo (entergame.lua) y en la web falla. Servers_init = { -- Un solo servidor => OTClient oculta Servidor/Versión/Puerto (EnterGame.setUniqueServer). ["https://play.valdren-online.com/login.php"] = { port = 443, protocol = 1525, httpLogin = false, useAuthenticator = false } } end g_app.setName("Valdren"); g_app.setCompactName("otclient"); g_app.setOrganizationName("otcr"); g_app.hasUpdater = function() return (Services.updater and Services.updater ~= "" and g_modules.getModule("updater")) end -- setup logger g_logger.setLogFile(g_resources.getWorkDir() .. g_app.getCompactName() .. '.log') g_logger.info("Operating system: " .. g_platform.getOSName()) -- print first terminal message g_logger.info(g_app.getName() .. ' ' .. g_app.getVersion() .. ' rev ' .. g_app.getBuildRevision() .. ' (' .. g_app.getBuildCommit() .. ') built on ' .. g_app.getBuildDate() .. ' for arch ' .. g_app.getBuildArch()) -- setup lua debugger if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then require("lldebugger").start() g_logger.debug("Started LUA debugger.") else g_logger.debug("LUA debugger not started (not launched with VSCode local-lua).") end -- add data directory to the search path if not g_resources.addSearchPath(g_resources.getWorkDir() .. 'data', true) then g_logger.fatal('Unable to add data directory to the search path.') end -- add modules directory to the search path if not g_resources.addSearchPath(g_resources.getWorkDir() .. 'modules', true) then g_logger.fatal('Unable to add modules directory to the search path.') end g_html.addGlobalStyle('/data/styles/html.css') g_html.addGlobalStyle('/data/styles/custom.css') -- try to add mods path too g_resources.addSearchPath(g_resources.getWorkDir() .. 'mods', true) -- setup directory for saving configurations g_resources.setupUserWriteDir(('%s/'):format(g_app.getCompactName())) -- search all packages g_resources.searchAndAddPackages('/', '.otpkg', true) -- load settings g_configs.loadSettings('/config.otml') g_modules.discoverModules() -- libraries modules 0-99 g_modules.autoLoadModules(99) g_modules.ensureModuleLoaded('corelib') g_modules.ensureModuleLoaded('gamelib') g_modules.ensureModuleLoaded('modulelib') g_modules.ensureModuleLoaded("startup") g_modules.autoLoadModules(999) g_modules.ensureModuleLoaded('game_shaders') -- pre load local function loadModules() -- client modules 100-499 g_modules.autoLoadModules(499) g_modules.ensureModuleLoaded('client') if MODO_PRUEBAS then for _, nombre in ipairs(HERRAMIENTAS_PRUEBAS) do g_modules.ensureModuleLoaded(nombre) end end -- game modules 500-999 g_modules.autoLoadModules(999) g_modules.ensureModuleLoaded('game_interface') -- mods 1000-9999 g_modules.autoLoadModules(9999) g_modules.ensureModuleLoaded('client_mods') local script = '/' .. g_app.getCompactName() .. 'rc.lua' if g_resources.fileExists(script) then dofile(script) end -- uncomment the line below so that modules are reloaded when modified. (Note: Use only mod dev) -- g_modules.enableAutoReload() end -- run updater, must use data.zip if g_app.hasUpdater() then g_modules.ensureModuleLoaded("updater") return Updater.init(loadModules) end loadModules()