Савва, _G это ведь просто ссылка на глобал область видимости.
Здесь тоже самое что ты запускаешь разные скрипты, можно сказать какбудто ты разных компьютеров запускаешь.
$> lua.exe script_1.lua
$> lua.exe script_2.lua
Даже если ты модуль какой-то подключишь или еще что-то, оно в любом случае будет изолировано в своей области видимости. Допустим я вот запустил клиент рагнарока и еще просто какойнибудь луа скрипт из консоли, у них же не будет общих ресурсов, вобщем то как и в любом другом языке. Проблема в том, что здесь луа, на любом другом уже бы давно получилось решить подобное, а здесь я даже инфу найти не могу в гугле как это можно реализовать.
Савва, В этом то и заключается вопрос, что они глобальные переменные не шарят между собой, инчае было бы проще простого, да и если бы работало вот так, как представлено, то любой другой клиент перезаписывал бы своего гомункула на другого
Савва, На форумах игры ничего нет. Возможно я как-то не правильно понимаю флоу выполнения, но выглядит какбудто каждый клиент запускает свою среду исполнения (по типу nodejs), соответственно какого-то общего пространства не замечено. Это ж ведь тоже самое что запустить просто 2 разных скрипта, разве нет ?
Если играл в Ragnarok, то я про систему гомункулов. Если не играл, то суть примерно такая: после призыва условного питомца, им можно управлять через кастомные скрипты, с основным файлом AI.lua в папке, минимальное содержание которого для работы это
function AI (myid)
end
тоесть клиент сам вызывает эту функцию когда ему нужно, например при перемещении или других событиях, примерно каждые 100мс. В этой функции можно получать информацию об окружающем пространстве, по типу координат, типов монстров, их ИД и тд.
Дак вот, если будет запущено 50 клиентов, то соответственно как-то сильно много получается вызовов и обработок, я хочу, чтобы в они использовали информацию только из 1 источника, а не каждый свою. Вот я и не знаю как их можно подружить друг с другом, чтоб они знали о соседях. Первая мысль была через файловую систему, типа если в этой папке файла, допустим "state.json" нет, то 1 из клиентов его создает и становится что-то вроде хоста, если файл уже есть, то значит другие не собирают инфу из игры, а берут ее из файла. Вот я бы хотел узнать, возможно ли сделать менее накладную систему не через файлы.
Не знаю насколько это возможно, в плане подключения сторонних библиотек, поэтому спрашивал именно про что-то "встроенное" и универсальное, вот по типу воркеров или общего куска памяти где-то, еще думал насчет системных переменных os.getenv("VAR") и os.execute для назначения, но выглядит сильно ограничено.
akmalbozor1965, добавить его на компьютер, ровно так же как это делают и другие программы, тот же телеграмм. По сути там только в реестр пару записей сделать надо, на память уже не помню куда, думаю загуглить будет не проблема.
akmalbozor1965, я ж написал пример, через тег "a"
может быть еще как то через экстеншены можно.
Но если ты решил что на такое способен чисто html, то представь ситуацию, что ты заходишь на какойнить сайт, а тут у тебя херак и терминал запустился или какое-либо приложение финансовое, ну согласись же тупо будет такое вообще допускать.
Вобщем, попробуй сам подумать сначала, если не получится, тогда смотри спойлер. Сам твой код я наверн даж комментировать не буду, если честно вообще первый раз вижу чтоб делали каунтеры через `new Date`, не говоря уж обо всем остальном, но раз ты так написал, думаю подсказка будет понятней.
hint
let gameInterval;
function startGame() {
gamePause = false;
gameOver = false;
clearInterval(gameInterval);
gameInterval = setInterval(() => {
/* counter logic */
}, 1000);
/* other logic */
}