> А будет возможность изменять скрипты на лету и без перезапуска сервера? И какие будут возможности для отладки?
meta reload LuaMod только если, но тогда client_manager теряет всех клиентов и часть плагинов перестаёт работать. Все плагины работают как единое целое в одной lua_State, поэтому если поставить плагин от обратнорукого кодера, то всё слетит.
А еще я не знаю как оформить touch и think. Можно либо их просто слать в Lua, либо сделать на плюшной стороне какой-нибудь менеджер, чтобы вызывать think только когда это нужно.
Я всё еще боюсь, что этот мод будет нагружать сервер, хотя если вспомнить MTA с его Lua и отладкой, то задумываешься об этом меньше.
TheEVolk писал: А еще я не знаю как оформить touch и think. Можно либо их просто слать в Lua, либо сделать на плюшной стороне какой-нибудь менеджер, чтобы вызывать think только когда это нужно.
Лучше вызывать сразу вместе с движковой функцией, более совместимый метод.
Цитата:
TheEVolk писал: meta reload LuaMod только если, но тогда client_manager теряет всех клиентов и часть плагинов перестаёт работать. Все плагины работают как единое целое в одной lua_State, поэтому если поставить плагин от обратнорукого кодера, то всё слетит.
В гмоде есть така фича: при изменении .lua файла аддона на сервере, измененный файл сразу же отправляется и исполняется у клиентов, аналогично и для серверных аддонов - изменения применяются на лету, без каких-либо рестартов. Так вот, это очень удобно и экономит очень много времени. Это реально было бы полезно.
Там правда сурс движок, но архитектурно от голдсурса/ксаша он едва ли чем-то отличается.
Добавлено 27-10-2020 в 17:04:
Цитата:
TheEVolk писал: Я всё еще боюсь, что этот мод будет нагружать сервер, хотя если вспомнить MTA с его Lua и отладкой, то задумываешься об этом меньше.
Всё же лучше упор делать на функциональность. Потому что оптимизируй-не оптимизируй, а скрипт состоящий целиком из говнокода будет работать медленно.
Вон в том же AMXX я видовал серваки с кучей ужасных говноплагинов, но даже ТАКОЕ вполне сносно работало.
Ладно, я около часа расписывал о том, что я сделал и когда захотел отправить закинуло на форму входа, а сообщение пропало, было там пару страниц точно. Напишу сухо, кратко.
LuaMod я потерял в конце 21 года, после этого забил на него, так как все-равно Lua так и не оправдал моих ожиданий, не было асинхронности, не было JIT в 32х, не было большого сообщества.
Вчера совершенно случайно я зашел на сервер друга и захотел такой же, на luamod возвращаться не вариант, на amx не хочу, хочу опять свое.
Написал за 16 часов nodemod. Для этого я взял остатки luamod и нарезал фракенштейна, добавив туда исходники samp-node. Теперь у нас есть еще и nodejs в HL1. Последний, крайне предпочтительный вариант, у него есть:
1) Высокая поддержка: 300К пакетов в npm, которые ставятся одной командой
2) Высокая производительность: это гугловский v8 с JIT
3) Высокая функциональность и гибкость: это JS, один из самых популярных современных языков.
Естественно доступен весь современный стек технологий, при желании можно на vue сайты писать и запускать из под HL, я так написал fastdl за 5 минут, чтобы не копировать файлы и не создавать ссылки.
Вот пару функций, которые я скоро сделаю:
1) Сайт для демонстрации, где можно посмотреть всех игроков на карте в реальном времени, то есть они будут реально бегать стрелять и так далее, миникарта условно говоря, реализую на вебсокетах.
2) Что-нибудь многопоточное, пока не придумал что, мне за 2 года еще не приходилось использовать многопоточность, но в случае чего - хоть ботов делай.
3) Пакеты для быстрого создания оружий/монстров/энтити
4) Аккаунты в БД со статистикой
5) Виджеты с топом игроков в том же ВК
6) Боты с прямой интеграцией с сервера, например, я кину боту в ТГ архив с картой, а он его сам поставит куда надо.
Это nodejs, очень популярная платформа. Очень надеюсь, что дам глоток жизни старой и родной игре.
PS. Это вторая версия моего сообщения, она содержит 40% из всего того, что я рассказал в первой версии, задавайте вопросы, отвечу.
Добавлено 08-07-2022 в 00:09:
Цитата:
SNMetamorph писал: В гмоде есть така фича: при изменении .lua файла аддона на сервере, измененный файл сразу же отправляется и исполняется у клиентов, аналогично и для серверных аддонов - изменения применяются на лету, без каких-либо рестартов. Так вот, это очень удобно и экономит очень много времени. Это реально было бы полезно.
Да, щас в том что я сделал это возможно, и конфиги, и скрипты, все можно поставить в hot reload. Я такое делал в других проектах.
Хорошо видеть, что дело не заглохло. Не так давно тоже думал о том, какой язык бы взять в качестве скриптового. Выбирал между Lua и AngelScript, оба языка неплохи, но второй цепляет тем, что там есть полноценная реализация ООП. Но при этом, первый более распространённый, есть множество примеров (взять тот же API в Garry's Mod). Ну и плюс, для Lua уже есть LuaMod, а AngelScript придётся развивать практически с нуля. Также, в Sven Co-op как раз таки используется второй вариант, но в перспективе они уже планируют перейти как раз таки на JS.
Добавлено 07-07-2022 в 20:39:
Цитата:
TheEVolk писал: Естественно доступен весь современный стек технологий, при желании можно на vue сайты писать и запускать из под HL, я так написал fastdl за 5 минут, чтобы не копировать файлы и не создавать ссылки.
Ну вопрос в том, а надо ли это вообще для скриптов? Я вот затрудняюсь ответить на этот вопрос.
SNMetamorph писал: Ну вопрос в том, а надо ли это вообще для скриптов? Я вот затрудняюсь ответить на этот вопрос.
Для плагинов на сервере вполне себе, можно на сервер себе хоть нейросети загрузить из интернета, тут по фантазии.
Добавлено 08-07-2022 в 02:06:
Кстати, какой еще потенциал, так это грузить этот плагин без метамод (сейчас пока так нельзя) и построить свою серверную библиотеку для своей игры на JS, а это более низкий порог вхождения, соответственно больше разработчиков под GS/Xash/что-то еще..
Добавлено 08-07-2022 в 03:17:
Уважаемые модераторы, раз тема с lua перекатилась и шушары выпустили новый мегакрутойплагинубийцуamx, то как поступить лучше, переименовать эту тему и продолжить её как наследние lm, или создать новую?
TheEVolk писал: Кстати, какой еще потенциал, так это грузить этот плагин без метамод (сейчас пока так нельзя) и построить свою серверную библиотеку для своей игры на JS, а это более низкий порог вхождения, соответственно больше разработчиков под GS/Xash/что-то еще..
Вообще совсем не так. В случае в JS всё придётся писать с нуля, что тонна работы, а в обычном случае ты берешь уже готовый HLSDK и меняешь там что-то под себя. Разница, думаю, очевидна.