Ил-2 Штурмовик: Битва за Британию. Скрипты. FAQ — различия между версиями
Материал из АвиаВики
Podvoxx (обсуждение | вклад) (Новая страница: «#'''Вопрос:''' ''В случае более-менее сложного скрипта, какие инструменты отладки можно испол...») |
Podvoxx (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | == 1 == | |
+ | ::'''Вопрос:''' ''В случае более-менее сложного скрипта, какие инструменты отладки можно использовать?'' | ||
::'''Ответ:''' | ::'''Ответ:''' | ||
К сожалению, похоже, что кроме собственной головы - никаких. Если кто найдет обратное, буду очень признателен. | К сожалению, похоже, что кроме собственной головы - никаких. Если кто найдет обратное, буду очень признателен. | ||
Строка 14: | Строка 15: | ||
using maddox.game; | using maddox.game; | ||
using maddox.game.world; | using maddox.game.world; | ||
− | + | После код просто копирую в игру. Единственное убираю неймспейс моего проекта. Не самая удобная штука, но писать вполне можно. | |
+ | == 2 == | ||
+ | ::'''Вопрос:''' ''Как определить, имеется ли самолет какой-либо группы в данный момент или нет? У немцев названия группы содержат знаки (|, ||, |||, |V, V, V|) и так далее. Но, при написании скрипта игра подобные знаки игнорирует. С англичанами проблем нет, у них обозначения цифровые, например 218Sqn. А вот у немцев обозначения типа JG51_| и игра их не видит'' | ||
+ | ::'''Ответ:''' | ||
+ | Пример из игры -"BoB_LW_JG53_I" | ||
+ | 1 - латинская буква "I", 5 -латинская "V". | ||
+ | == 3 == | ||
+ | ::'''Вопрос:''' ''Как отследить статики? Они не являются AiActor (по крайней мере события на них не реагируют - уничтожен, поврежден и т.д.). Ни в Battle, ни в GamePlay методов никаких похожих тоже нет. GamePlay.gpActorByName("StaticName") тоже ничего не дает. Отследить уничтожение статика(ов) удалось только повесив на них триггер.'' | ||
+ | ::'''Ответ:''' | ||
+ | Да, статики, это не акторы, у них нет "мозга", и они для красоты стоят, событий не вызывают. | ||
+ | == 4 == | ||
+ | ::'''Вопрос:''' ''Что есть поле MissionNumberListener? Пробовал присваивать номер свежезагруженной миссии - вообще всякие события вызывать перестало (в этой миссии).'' | ||
+ | ::'''Ответ:''' | ||
+ | Это поле, которое показывает события какой миссии скрипт миссии слушает - при загрузке миссии в это поле ставится её номер - т.е. она "слышит" только свои события. Если выставить номер другой миссии - будет "слушать" только её, чтобы все миссии слышать - поле в меньше нуля выставить надо (то есть "-1"). | ||
[[Категория:Ил-2 Штурмовик: Битва за Британию. Скрипты]] | [[Категория:Ил-2 Штурмовик: Битва за Британию. Скрипты]] |
Версия 16:15, 3 октября 2011
1
- Вопрос: В случае более-менее сложного скрипта, какие инструменты отладки можно использовать?
- Ответ:
К сожалению, похоже, что кроме собственной головы - никаких. Если кто найдет обратное, буду очень признателен. Почти наверняка влияет вот эта строчка - //-$debug, но я с ней пока не экспериментировал. Я делаю так - запускаю студию, новый проект любой C#. Прилинковал к проекту: ...\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\core\part.dll ...\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\core\maddox.dll ...\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\core\gameWorld.dll ...\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\core\gamePlay.dll ...\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\bob\Campaign.dll Подозреваю, что не все эти сборки необходимы, но особо туда не лез, пусть будут. Последняя же нужна только для миссий из кампании. Создал класс, в using прописал необходимый минимум using System; using maddox.game; using maddox.game.world; После код просто копирую в игру. Единственное убираю неймспейс моего проекта. Не самая удобная штука, но писать вполне можно.
2
- Вопрос: Как определить, имеется ли самолет какой-либо группы в данный момент или нет? У немцев названия группы содержат знаки (|, ||, |||, |V, V, V|) и так далее. Но, при написании скрипта игра подобные знаки игнорирует. С англичанами проблем нет, у них обозначения цифровые, например 218Sqn. А вот у немцев обозначения типа JG51_| и игра их не видит
- Ответ:
Пример из игры -"BoB_LW_JG53_I" 1 - латинская буква "I", 5 -латинская "V".
3
- Вопрос: Как отследить статики? Они не являются AiActor (по крайней мере события на них не реагируют - уничтожен, поврежден и т.д.). Ни в Battle, ни в GamePlay методов никаких похожих тоже нет. GamePlay.gpActorByName("StaticName") тоже ничего не дает. Отследить уничтожение статика(ов) удалось только повесив на них триггер.
- Ответ:
Да, статики, это не акторы, у них нет "мозга", и они для красоты стоят, событий не вызывают.
4
- Вопрос: Что есть поле MissionNumberListener? Пробовал присваивать номер свежезагруженной миссии - вообще всякие события вызывать перестало (в этой миссии).
- Ответ:
Это поле, которое показывает события какой миссии скрипт миссии слушает - при загрузке миссии в это поле ставится её номер - т.е. она "слышит" только свои события. Если выставить номер другой миссии - будет "слушать" только её, чтобы все миссии слышать - поле в меньше нуля выставить надо (то есть "-1").