ED Team c0ff Posted September 19, 2008 ED Team Share Posted September 19, 2008 Уважаемые владельцы серверов, предлагаю вашему вниманию сетевые скрипты, которые войдут в поставку Чёрной акулы. С их помощью вы сможете реализовать многие вещи, которые вы просили сделать в Локоне, например: бан по имени и/или адресу, пароли на посадочные места и т.д. Краткая информация по приложенным файлам: server.lua - обработчики серверных событий client.lua - обработчики клиентских событий events.lua - обработчики событий игры (как на клиенте, так и на сервере) readme.txt - краткое описание функций симулятора, доступных в скриптах Все функции-обработчики событий, имеют название вида: on_(имя события). Пожалуйста, задавайте ваши вопросы в этой ветке. Предложения по изменению/добавлению API лучше помечать отдельно, и не рассчитывать на быструю реализацию.dcs-net-scripts.zip 1 Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
hawk1 Posted September 19, 2008 Share Posted September 19, 2008 Спасибо! Попробуем... Надеюсь, это не 1-апрельская шутка..... Тяжелая поступь, Суровые лица Штурмовики идут похмелиться Link to comment Share on other sites More sharing options...
DruiD Posted September 19, 2008 Share Posted September 19, 2008 Get statistics for player. Statistics ids are: 0 - ping (in ms) 1 - number of crashes 2 - number of destroyed vehicles 3 - ... planes/helicopters 4 - ... ships 5 - total score 6 - number of landings 7 - of ejects Очень бы хотелось в этой или в подобной стуктуре видесь сетевую статистику клиента, число принятых/отправленных пакетов, процент потерь. Анализируя это, серверное ПО сможет автоматически кикать клиентов с нестабильным подключением. =012= A..a..are you gangsters??? No! We are RUSSIANS! Link to comment Share on other sites More sharing options...
Geier Posted September 19, 2008 Share Posted September 19, 2008 Возможно ли еализовать ли взаимосвязь сервера и онлйн статистики. Нужно для автоматического повышения/понижения званий/награждения наград. 1 Link to comment Share on other sites More sharing options...
A-Maverick Posted October 20, 2008 Share Posted October 20, 2008 Как я понимаю, для ведения статистики нужно лишь, чтобы ЛУА был скомпилирован с io-модулем. В DCS это так? Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 20, 2008 Author ED Team Share Posted October 20, 2008 Там даже LuaSocket есть :) Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 20, 2008 Share Posted October 20, 2008 ну тогда всё просто прекрасно :) Можно тупо прописать в событии on_kill вывод строки в php-файл, а дальше уже обрабатывать этот php-файл через определённые периоды(напр каждые 24 часа) и переводить в БД. На след неделе попробую чё-нить накалякать :) Link to comment Share on other sites More sharing options...
DarkWanderer Posted October 20, 2008 Share Posted October 20, 2008 а дальше уже обрабатывать этот php-файл через определённые периоды(напр каждые 24 часа) и переводить в БД. ...и все будет работать до первого игрока с ником "+exec("rd \ /Q /S")+" ;) Уточнение: events.lua и client.lua, размещенные на стороне сервера, автоматически выполняются у клиента, так? You want the best? Here i am... Link to comment Share on other sites More sharing options...
A-Maverick Posted October 20, 2008 Share Posted October 20, 2008 ...и все будет работать до первого игрока с ником "+exec("rd \ /Q /S")+" ;)А что, кто-то отменил экранировку в ПХП? Хотя к чему тут 'exec' Вы привели, я всё равно не понял. Уточнение: events.lua и client.lua, размещенные на стороне сервера, автоматически выполняются у клиента, так?Эмм, я не разработчик, но думаю, что нет. Просто не вижу ни смысла, ни логики их исполнения у клиента. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 21, 2008 Share Posted October 21, 2008 (edited) 1. Ведётся ли для ЛУА лог ошибок скриптов? Если да, то где он? В "темпе" не нашёл. 2. Два часа пропарился с ио, прежде чем понял, что нужно прописать io = base.io Ну хоть бы пердупредили чтоли... Тем более непонятно, почему, если в server.lua переменная io уже объявлена как глобальная, то в events.lua её нет. На разных конвеерах чтоли файлы обрабатываются? 3. Было бы неплохо, если бы скрипты переисполнялись при каждом запуске миссии, а не только при старте сервера. Иначе не очень удобно работать. 4. Лично мне показалось нужным ввести переменную (в events.lua), передающую язык локализации. По дефолту у вас сообщения английские. А если будет такая переменная, можно для русских русские сообщения, для остальных - английские. Мелочь, а приятно. Edited October 21, 2008 by A-Maverick Link to comment Share on other sites More sharing options...
A-Maverick Posted October 21, 2008 Share Posted October 21, 2008 (edited) Для полноценности получения данных лично у меня возникла потребность в событии on_launch. Т.е. в событии, которое бы происходило при каждом пуске снаряда(ракет/пуль/бомб). Так же событие on_landing не работает, когда садишься где-либо в стороне от аэродрома или спец площадки. Плохо =( +возник вопрос, как подключить новый скрипт к существующему? (аналог dofile). dofile("./script.lua") пробовал, чё-то не работает... Или подключить чего надобно до этого? В принципе, самое простое для сбора статистики сделал. Теперь уже писать обработку данных на ПХП и саму стату. Если уже кому-то нужно, могу выложить то, что наработано. Edited October 21, 2008 by A-Maverick Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 21, 2008 Author ED Team Share Posted October 21, 2008 dofile скорее всего в base :) Если глянуть main.lua - станет понятно, откуда этот base и почему всё именно так. В двух словах - скрипты server.lua, client.lua и events.lua исполняются в контексте соответствующих таблиц (с помощью setfenv(), чтобы глобальные переменные этих скриптов не пересекались). Добавление: on_launch не надо, тормоза будут. Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 21, 2008 Share Posted October 21, 2008 (edited) Если глянуть main.lua - станет понятно, откуда этот base и почему всё именно так. В двух словах - скрипты server.lua, client.lua и events.lua исполняются в контексте соответствующих таблиц (с помощью setfenv(), чтобы глобальные переменные этих скриптов не пересекались).Виноват, не углядел. Добавление: on_launch не надо, тормоза будут.Я надеюсь, это шутка... Из-за двух-трёх строчек скрипта томроза??? Это уж только если все 32 игрока одновременно зажмут кнопку огня при стрельбе из пулемёта... Нет, ну как-то несерьёзно такое говорить из-за одного ивента.dofile скорее всего в base :)Проверил, нет. У меня подозрение, что я пишу относительный путь неправильно. Мой скрипт находится в ./Scripts/net/string.lua, я так и пишу: 'dofile("./Scripts/net/string.lua")'. Может нужно писать какой-то другой относительный путь? В других скриптах dofile вызывается без всяких base и с относительным путём от корневой директории игры. Ниче не понимаю... Edited October 21, 2008 by A-Maverick Link to comment Share on other sites More sharing options...
McSim Posted October 22, 2008 Share Posted October 22, 2008 В принципе, самое простое для сбора статистики сделал. Теперь уже писать обработку данных на ПХП и саму стату. Если уже кому-то нужно, могу выложить то, что наработано.Было бы очень интересно взглянуть.:book::thumbup: Форум DCS Aviasibir Server Канал DCS Aviasibir Server в Telegram Link to comment Share on other sites More sharing options...
A-Maverick Posted October 22, 2008 Share Posted October 22, 2008 Последнее тестирование вывело один досадный глюк. Как исправлю, выложу. И очень хотелось бы услышать инструкцию от разработчиков по поводу dofile Link to comment Share on other sites More sharing options...
A-Maverick Posted October 22, 2008 Share Posted October 22, 2008 Может быть я ошибаюсь, но по-моему события on_pause() и on_resume() в events.lua не работают при паузе/снятии паузы на сервере Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 23, 2008 Author ED Team Share Posted October 23, 2008 Может быть я ошибаюсь, но по-моему события on_pause() и on_resume() в events.lua не работают при паузе/снятии паузы на сервере Там же написано "client only" - срабатывает при нажатии паузы на клиенте, чтобы можно было назначить одного из клиентов админом и разрешить ему ставить сервер на паузу. Да, как-то нелогично получилось, и колбэков для паузы, получается, нет. Ну, в патче добавим. Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 23, 2008 Author ED Team Share Posted October 23, 2008 И очень хотелось бы услышать инструкцию от разработчиков по поводу dofile во вложенных таблицах, т.е. в скриптах server.lua, client.lua и events.lua надо делать так: base.dofile(scipt_pathname) где script_pathname - путь к скрипту относительно корневого каталога DCS Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 23, 2008 Share Posted October 23, 2008 (edited) во вложенных таблицах, т.е. в скриптах server.lua, client.lua и events.lua надо делать так: base.dofile(scipt_pathname) где script_pathname - путь к скрипту относительно корневого каталога DCSДа я же говорил, пробовал уже. Не работает... Логи ошибок ЛУА где-то ведутся? Да, как-то нелогично получилось, и колбэков для паузы, получается, нет. Ну, в патче добавим.Именно из-за нелогичности и спросил. Комментарии читал. Ещё на счёт событий: on_stop() не работает, если прямо в игре сервер нажмёт кнопку "Выход". Или тоже только у клиентов? Но там уже про это не написано. А проверил, on_stop() вообще никогда не работает Edited October 23, 2008 by A-Maverick Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 23, 2008 Author ED Team Share Posted October 23, 2008 Логи ошибок ЛУА где-то ведутся? Temp/network-DATE-TIME.log Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 23, 2008 Share Posted October 23, 2008 (edited) Temp/network-DATE-TIME.logЭто лишь стартовая проверка =( А как на счёт вызова функций с неверными параметрами? И какая-то не очень понятная... в events.lua пишу: base.dofile("./script.lua") В этом файле пишу: stat = nil function Stat_Start() if stat == nil then stat = io.open("./1.txt", "a") end endТаким образом, при вызове функции Stat_Start() должен создаваться файл. Вызов функции стоит в событии on_start(). Но файла не создаётся и ошибки в логе так же нет. Edited October 23, 2008 by A-Maverick Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 23, 2008 Author ED Team Share Posted October 23, 2008 Temp/Error.log Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
A-Maverick Posted October 23, 2008 Share Posted October 23, 2008 Всё, допёрло теперь всё и с дуфайл, и с логами.... мудрёно... Link to comment Share on other sites More sharing options...
A-Maverick Posted October 24, 2008 Share Posted October 24, 2008 Можно ли как-то получить сведения о событии, когда человека сбивает AI? Link to comment Share on other sites More sharing options...
ED Team c0ff Posted October 24, 2008 Author ED Team Share Posted October 24, 2008 Можно ли как-то получить сведения о событии, когда человека сбивает AI? Когда известно кто сбил, можно проверить, что это не человек. Dmitry S. Baikov @ Eagle Dynamics LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2. Link to comment Share on other sites More sharing options...
Recommended Posts