Jump to content

Lua скрипты и мультиплеер.


c0ff

Recommended Posts

Нужны передвижные станции типа приводов. Либо имитации ситуации поиска пилота по изветсной частоте передатчика. (Как юнит или т.п.) пусть не пищит даже, но чтобы стрелка АРК работала...

Т.е. кроме пиканья морзянки больше поддержки вообще не нужно.


Edited by edwardpashkov

[sIGPIC][/sIGPIC]

АКА =TMS= Count _ Полеты на = T M S = dedicate server На точке работает РП (РП+РПП)

Набор вирпилов на вертикальную, штурмовую и истребительную авиацию со времен ВОВ и по настоящее время

Комсостав и инструкторы - летавшие в горячих точках (и не только) и действующие летчики.

Link to comment
Share on other sites

  • 1 month later...

Всем привет.

Можно пару вопросов?

события:

on_player_slot

on_player_stat

...

есть... и это хорошо, но у меня такая ситуация... хочу чтоб модуль статистики который я разрабатываю, также отслеживал старты в возхе, как известно в этом случае событие on_takeoff не происходит, а я хочу сделать разделение по вылетам... а не кидать все в 1 кучу, ИМХО в данном случае за событие "начало вылета" можно былоб считать нажатие на "большую синию кноку", типа "начать вылет", но я не смог найти сего события в файлах server.lua и events.lua как и события выхода в меню, после того как игрока сбили... это я плохо искал, или они действительно там отсутствуют?

Заранее спасибо.

 

P.S. понравился прикол с козлением, сколько раз скозлишь на посадке, столько посадок и засчитает :)

  • Like 1

Alpha team, JaZZ

Link to comment
Share on other sites

 

P.S. понравился прикол с козлением, сколько раз скозлишь на посадке, столько посадок и засчитает :)

Хм ...интересно ,надо проверить.

Link to comment
Share on other sites

Хм ...интересно ,надо проверить.

Раз пошла такая пьянка(с)

на on_kill у F-15 weapon == "" если убили пушкой, т.е. оружие просто говоря не определяется, у Су-27 допустим все ок.

Про "козлениея", я смог 4 раза вызвать эвент on_landing в процессе одной посадки.

 

Будет инфа по моему вопросу?

Можно отлавливать события "начать вылет" или "выйти в меню" ?

Alpha team, JaZZ

Link to comment
Share on other sites

  • 1 month later...

Может кто-небудь поподробней обьяснить, как периодически выводить в чат статистику сбитой техники (хотябы количество очков у команды).

Какую функцию дописать и в какой файл.

А еще лучше не в чат а в окно статистики.

Раньше такой скрипт стоял на "109dedicated" сервере, только что-то я нигде его немогу найти.

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Link to comment
Share on other sites

  • 2 months later...

Прошу спецов просмотреть этот трэк.

 

Почему не срабатывает правило "взорвать юнит" для Пилот #2, Пилот #3 и Пилот #5, тогда как для остальных "Пилотов #_" правило нормально отрабатывает?

 

И ещё вопрос.

В сетевой миссии правило "установить отказ" работает? В первоначальном варианте я так и сделал, но результата ни какого не получил. Потому и переустановил на взрывы.

 

Трэк:

Tren_Crash_VPP_onl.miz.trk

  • Like 1

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

В customtrigfunc{}

 

[1] = "if c_unit_altitude_lower(\"1\", \"183\") and c_unit_speed_higher(\"1\", \"10\") and (c_unit_in_zone(\"1\", \"VPP-01\") or c_unit_in_zone(\"1\", \"VPP-02\") or c_unit_in_zone(\"1\", \"VPP-03\") or c_unit_in_zone(\"1\", \"VPP-04\") or c_unit_in_zone(\"1\", \"VPP-05\")) then a_set_flag(\"11\"); else a_clear_flag(\"11\"); mission.customtrigfunc[2]='';end;",

 

надо убрать mission.customtrigfunc[2]=''

 

получится

[1] = "if c_unit_altitude_lower(\"1\", \"183\") and c_unit_speed_higher(\"1\", \"10\") and (c_unit_in_zone(\"1\", \"VPP-01\") or c_unit_in_zone(\"1\", \"VPP-02\") or c_unit_in_zone(\"1\", \"VPP-03\") or c_unit_in_zone(\"1\", \"VPP-04\") or c_unit_in_zone(\"1\", \"VPP-05\")) then a_set_flag(\"11\"); else a_clear_flag(\"11\");end;",

 

и так во всех условиях

 

подправленная миссия во вложении(также немного подправил индексы, но можно было и не править, однако так нагляднее).

Tren_Crash_VPP_onl2.miz

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Прошу спецов просмотреть этот трэк.

 

Почему не срабатывает правило "взорвать юнит" для Пилот #2, Пилот #3 и Пилот #5, тогда как для остальных "Пилотов #_" правило нормально отрабатывает?

 

И ещё вопрос.

В сетевой миссии правило "установить отказ" работает? В первоначальном варианте я так и сделал, но результата ни какого не получил. Потому и переустановил на взрывы.

 

Трэк:

 

1) кастомные триггеры у тебя при исполнении затирают не себя, а следующий. так задумано?

2) затирание триггера у тебя происходит не в then, а в else. ты уверен что хотел сделать именно это?

3) затирать лучше не ='', а =nil, иначе таблица продолжает существовать и на её (неуспешное) исполнение тратится время.

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

Скажу чесно, что в синтаксисе LUA фактически "чайник".

 

3) затирать лучше не ='', а =nil, иначе таблица продолжает существовать и на её (неуспешное) исполнение тратится время.

Вроде время будет по любому "тратиться", т.к. проверка условий проходит каждую секунду.

Второе по вопросу. Эту фразу: 'затирать лучше не ='', а =nil,' не совсем понял, скорее всего для понятия мной этой фразы, её нужно расширенней расписать. :)

 

2) затирание триггера у тебя происходит не в then, а в else. ты уверен что хотел сделать именно это?

Да, т.к. проверка условий проходит каждую секунду, то в зависимости от выполнения всех указанных условий ИЛИ устанавливается флаг 11, ИЛИ в противном случае флаг 11 должен затереться.

 

1) кастомные триггеры у тебя при исполнении затирают не себя, а следующий. так задумано?

Роль кастомных триггеров ИЛИ установить флаг 11, ИЛИ затереть флаг 11. Далее начинают отрабатывать типичные триггера, активирующиеся по событию: "Если флаг 11 истинен, то юниту сделать то-то ...". Здесь полное раздолье. Можно и взрыв установить, а можно ... и т.д.

 

Ещё раз выскажу огромное спасибо aragorlum234-му за подсказку! Теперь в миссии всё чётко срабатывает.

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

Второе по вопросу. Эту фразу: 'затирать лучше не ='', а =nil,' не совсем понял, скорее всего для понятия мной этой фразы, её нужно расширенней расписать. :)
=nil уничтожает переменную совсем. ='' оставляет ее в списке переменных (с пустым значением).
  • Like 1

JGr124 "Katze"

Link to comment
Share on other sites

Роль кастомных триггеров ИЛИ установить флаг 11, ИЛИ затереть флаг 11. Далее начинают отрабатывать типичные триггера, активирующиеся по событию: "Если флаг 11 истинен, то юниту сделать то-то ...". Здесь полное раздолье. Можно и взрыв установить, а можно ... и т.д.

так у тебя триггер периодически проверяется и при первом же невыполнении стирается и больше не проверяется. не вижу смысла.

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

так у тебя триггер периодически проверяется и при первом же невыполнении стирается и больше не проверяется. не вижу смысла.

Может быть мы пока говорим друг с другом о разных вещах.

 

Данные кастомные триггера используются для он-лайновой миссии. При запуске миссии и последующем маневрировании самолёта по аэродрому в местах, которые накрыты триггерными зонами, условия активаци, и в том числе деактивации флагов 11 тире 16 происходит как и заложено. Т.е. если имеется факт Превышение Ограничения Скоростного Режима выше чем 10м/с в любой из триггерных зон - флаг 11 становится истиной. Как только скорость движения самолёта становится меньше чем 10м/с, флаг 11 автоматически деактивируется. Если пилот тут же снова попробует разогнать самолёт по рулёжке выше заложенного ПОСРа, флаг 11 вновь становится активным. К тому же, условие красиво отрабатывается и в том случае, что если самолёт вышел за ограничение скорости и флаг 11 снова стал активным, но в это промежуток времени самолёт успел выехать из ограничительной зоны, то флаг 11 опять таки деактивируется.

 

Второй момент.

Который подразумеат то, что если "клиент" нарушил ПОСР, то уже, извените, его может или взорвать, и он ни как не сможет починиться, и тем самым начать движение по-новому. Или его может просто выкинуть к примеру из миссии. Тем самым, одной активации соответствующего флага уже вполне становится достаточным. При повторном/третьем/четвёртом и т.д. "заходе" пилота в миссию правила срабатывания флага каждый раз будут отработать как и положено.

 

В первоначальном варианте мной тестировались данные триггера, точнее триггер, т.к. проверял на одном самолёте, как раз таки в офф-лайновом варианте. Когда был достигнут положительный результат, то естественно я миссию перекроил в режим он-лайна и добавил для теста сразу несколько самолёт. Но вот тут-то и наткнулся на ту проблему, с которой и обратился здесь. И если б не нашёлся человек с доброй душой, то до сих пор бы ... ну в общем не будем об этом распространяться. :)

 

Свой смылс вижу в том, что удалось решить некую проблему всего лишь одним кастомным триггером, вместо того, чтоб в редакторе расписывать целую кучу стандартных триггеров.

Спорить не буду, возможно есть и ещё более простой вариант решения подобной проблемы, но мне он пока не известен.


Edited by Hawk109

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

Если тригерры не внутри миссии и если для реалиации правились другие луа то на других компах и в сетевом режиме работать корректно не будет вроде как...

[sIGPIC][/sIGPIC]

АКА =TMS= Count _ Полеты на = T M S = dedicate server На точке работает РП (РП+РПП)

Набор вирпилов на вертикальную, штурмовую и истребительную авиацию со времен ВОВ и по настоящее время

Комсостав и инструкторы - летавшие в горячих точках (и не только) и действующие летчики.

Link to comment
Share on other sites

Может быть мы пока говорим друг с другом о разных вещах.

 

Данные кастомные триггера используются для он-лайновой миссии. При запуске миссии и последующем маневрировании самолёта по аэродрому в местах, которые накрыты триггерными зонами, условия активаци, и в том числе деактивации флагов 11 тире 16 происходит как и заложено. Т.е. если имеется факт Превышение Ограничения Скоростного Режима выше чем 10м/с в любой из триггерных зон - флаг 11 становится истиной. Как только скорость движения самолёта становится меньше чем 10м/с, флаг 11 автоматически деактивируется...

он у тебя деактивируется со стиранием триггера. то есть после первой деактивации больше проверок не будет.

 

 

Если тригерры не внутри миссии и если для реалиации правились другие луа то на других компах и в сетевом режиме работать корректно не будет вроде как...

как они могут быть не внутри миссии? всё у него нормально в этом смысле. ты видимо не понял как это всё работает.


Edited by Dmut

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

Может быть мы пока говорим друг с другом о разных вещах.

 

Данные кастомные триггера используются для он-лайновой миссии. При запуске миссии и последующем маневрировании самолёта по аэродрому в местах, которые накрыты триггерными зонами, условия активаци, и в том числе деактивации флагов 11 тире 16 происходит как и заложено. Т.е. если имеется факт Превышение Ограничения Скоростного Режима выше чем 10м/с в любой из триггерных зон - флаг 11 становится истиной. Как только скорость движения самолёта становится меньше чем 10м/с, флаг 11 автоматически деактивируется. ...

он у тебя деактивируется со стиранием триггера. то есть после первой деактивации больше проверок не будет.

Тогда почему происходит следующая активация и вновь последующая деактивация? И так может происходит несколько раз. Проверено.

... Если пилот тут же снова попробует разогнать самолёт по рулёжке выше заложенного ПОСРа, флаг 11 вновь становится активным. К тому же, условие красиво отрабатывается и в том случае, что если самолёт вышел за ограничение скорости и флаг 11 снова стал активным, но в это промежуток времени самолёт успел выехать из ограничительной зоны, то флаг 11 опять таки деактивируется.

Тем самым получается, что активация и деактивация флага проходит многочисленное раз. А если происходит активация и деактивация флага, то получается что проверка условий происходит не один раз, а каждый раз.

 

Как это тогда можно понять?


Edited by Hawk109

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

Поставим вопрос по другому.

 

В: Триггера, прописанные в секции - 'customtrigfunc' отрабатываются по принципу "один раз" или "повторяющийся"?

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

Тогда почему происходит следующая активация и вновь последующая деактивация? И так может происходит несколько раз. Проверено.

 

Тем самым получается, что активация и деактивация флага проходит многочисленное раз. А если происходит активация и деактивация флага, то получается что проверка условий происходит не один раз, а каждый раз.

 

Как это тогда можно понять?

 

не знаю. прикрепи крайнюю версию миссии.

 

 

Поставим вопрос по другому.

 

В: Триггера, прописанные в секции - 'customtrigfunc' отрабатываются по принципу "один раз" или "повторяющийся"?

кастомы - повторяющиеся, пока их вручную не убьют

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

не знаю. прикрепи крайнюю версию миссии.

Вот она - http://forums.eagle.ru/showpost.php?p=954313&postcount=59

К примеру, но уже в редакторе, открываем триггера и для условия, где отрабатывается событие по активации флага 11 оставить только вывод сообщения, а остальное убрать.

Потом запустить миссию как сетевую. Выбрать самый первый самолёт, это должна быть Су-27, т.к. для неё предполагается флаг 11-й.

Завестись, погонять по рулёжкам, на ВПП триггер уже не будет срабатывать, и посмотреть как будут появляться и исчезать сообщение.

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

Link to comment
Share on other sites

  • 2 weeks later...

Можно ли извне, тем-же сервманом, в текущей миссии поднять какой либо флаг?

Тяжелая поступь,

Суровые лица

Штурмовики идут похмелиться

Link to comment
Share on other sites

Хм ...интересно ,надо проверить.
Он не только посадки считает,но и взлеты.Сядешь аварийно в поле или на дорогу тоже посадку напишет на филд.

Тут уже написали,почему происходят старты в воздухе некоторых клиентских машин?Не успевает сосчитать потерю когда быстро презаходят,допустим сбили-катапультировался-машина еще в воздухе как бы у других,а ты уже вышел и на другую хочешь сесть?Или надо выждать какое то время?


Edited by ALF7

Онлайн-MG:joystick:

 

"Страшнее Шилки зверя нет".

"ПИСДРУНС СС ПП".

"Носи ППК с молоду-любить будешь до старости".

"СА-Танки решают все!"

"- А мы, старшина, ни за первую и не за вторую… Мы – за третью. За эту… За как её?.. За Родину!"

 

 

__|77|________:::::: =}-

\~~~~~~~~~/~~~~~~~ NAVAL AVIATION FAN ~~~~~~~

Link to comment
Share on other sites

Можно ли извне, тем-же сервманом, в текущей миссии поднять какой либо флаг?

 

Вопрос снят.

Тяжелая поступь,

Суровые лица

Штурмовики идут похмелиться

Link to comment
Share on other sites

  • 5 weeks later...

Так как все равно тут по мультиплееру. правда не луа, но вот щависоны иногда непонтные на сервере не всегда кследишь. Накатал кмд, но пока чет не висло.

СИе запускает и проверяет приложение на зависон, если повисло, то переапускает. Можно воткнуть в шедулер с запуском раз в 15 минут хотябы и при старте в автоекзек.

Делается (это для незнающих пояснение) cmd и в него текст

 

 

=========================

@echo off
@rem Ждем чуть для нормального запуска компа
sleep 10
tasklist /fi "imagename eq simulator.exe" /nh 2> nul | find /i "simulator.exe" > nul
if errorlevel 1 (
 :: если нет такого процесса
echo  Запуск DCS
@sleep 10
@multipl_sleep.cmd 

) else (
 :: Тут проверяем...
echo Test на подвисон
@sleep 10
@taskkill /f /im simulator.exe /fi "STATUS eq NOT RESPONDING"
@if errorlevel 1 (goto err2)
echo Все пучком, он не повис
@goto :exx
:err2
echo Запускаем опять, т.к. он повис
@multipl_sleep.cmd
exit
)
:exx
exit

===========================

 

multipl_sleep.cmd тут в теле назодится дикая строчка апуска с запуском нужной миссии просто.

 

кмд лежат в корне симулятора, где все основные батники были.


Edited by edwardpashkov

[sIGPIC][/sIGPIC]

АКА =TMS= Count _ Полеты на = T M S = dedicate server На точке работает РП (РП+РПП)

Набор вирпилов на вертикальную, штурмовую и истребительную авиацию со времен ВОВ и по настоящее время

Комсостав и инструкторы - летавшие в горячих точках (и не только) и действующие летчики.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...