|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|
|
бухой джедай
183 EGP
  Рейтинг канала: 5(141) Репутация: 70 Сообщения: 7906 Предупреждений: 1 Откуда: Одесса:) Зарегистрирован: 08.09.2007
 |
|
Таблица применяемых и свободных команд меню консоли корабля игры X³:Reunion. автор Andrei [<>Ace]
_________________ Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист... |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
Вопрос, как сделать так, чтобы через меню консоли в командах для турелей моя команда отображалась только у нужной мне турели?
|
Помоему такого сдалать нельзя, так как нет возможности проверить с какой турели открыто меню команд.
WhiteWolf : |
И как узнать, что на корабле присутствует турель определенного типа (носовая, кормовая, бортовая и по какому борту)?
|
Ну к примеру есть такие команды:
Код: |
<RetVar> = <RefObj> get max. number of lasers in turret <Var/Number>
· Команда возвращает максимальное число орудий в турели turret <Var/Number> объекта-корабля <RefObj>. Также, если установить turret 0, то команда вернет количество носовых орудий. |
Если турели нет вернет 0
Код: |
<RetVar/IF><RefObj> get max laser strength in turret <Var/Number>
· Команда возвращает максимально возможный уровень огневой мощи объекта <RefObj> в турели <Var/Number>. |
Если турели нет вернет 0
Осталось только перебрать все возможные турели и определиться какие есть - каких нет.
бухой джедай : |
COMMAND_SIGNX3_FSUP_DROP_WARE
Таблица применяемых и свободных команд меню консоли корабля игры X3:Reunion. автор Andrei [<>Ace]
|
Эта команда из X3 Bonus Pack v3.1.07. При использовании этой коменды нужно указать два аргумента:
1: ware , Var/Ware of Ship , 'ware'
2: position , Var/Sector Position , 'position'
описание команды (кликните здесь для просмотра)
Эта команда имеет множество функций, зависящих от того, чем является сбрасываемый груз. Для большинства грузов, корабль просто прилетит в указанную позицию и сбросит весь выбранный товар из своего трюма. Товар будет дрейфовать в контейнере около корабля, и можете быть подобран любым кораблём, используя стандартную команду "Подбирать контейнеры...".
Сбросить спутник
Если Вы выберете для сброса Навигационный спутник связи или Улучшенный навигационный спутник, тогда эта команда войдет в режим развёртывания спутниковой сети. Корабль прилетит в указанную позицию и развернёт спутник, затем выберет случайный соседний сектор, чтобы и в нём тоже установить спутник, если его ещё там нет. Если у корабля заканчиваются спутники, он попытается пополнить запас и продолжить развёртывание спутниковой сети. Спутники будут устанавливаться в каждом секторе в одинаковую, указанную Вами, позицию.
Команда будет избегать размещения более одного спутника в секторе в одном месте. Однако Вы можете разместить более одного спутника в одном секторе, когда новый будет располагаться вне зоны действия сканера любого существующего спутника. Использование 2 кораблей для сброса спутников в различных местах сектора может быть хорошей идеей в некоторых секторах Вселенной.
Тип покупаемого спутника базируется на типе, выбранном при старте команды. Если при старте команды Вы выбрали Улучшенный спутник, тогда все сбрасываемые спутники будут Улучшенными спутниками, и корабль попытается докупать только их.
Если желаете ограничить развёртывание спутников определёнными секторами рас, Вы можете настроить значения Друг/Враг корабля. Он посетит только те сектора, которые принадлежат дружественным расам. Корабль не будет посещать или развёртывать спутники в секторах, принадлежащих вражеским расам. Например, для предотвращения размещения спутников в пиратских секторах, всё, что Вы должны сделать, это установить Пиратов врагами в установках Друг/Враг корабля.
Есть одно обстоятельство, когда Вы можете найти свой корабль по развёртыванию спутниковой сети летящим во вражеских секторах. Это то, когда корабль находится в пути для закупки спутников, и прямой маршрут к торгующей ими станции прокладывается кораблём через вражеское пространство. Это та же проблема, от которой страдает торговец во Вселенной, и вызвана стандартными навигационными библиотеками, которые используют все корабли.
Сбросить мину СКВОШ
Если Вы выберете для сброса мину СКВОШ, команда переходит в режим создания минного поля. В этом режиме корабль разместит 8 мин по углам виртуального куба со сторонами 2 км от указанной позиции. Если корабль не располагает достаточным количеством мин СКВОШ, он попытается сначала докупить их.
Как только мины СКВОШ будут размещены, корабль свяжется с Вами и попросит активировать минное поле. В этом месте Вы можете запустить команду снова, пока не заминируете желаемую область, или можете активировать минное поле, связавшись с одной из мин и выбрав команду "Активировать все мины в секторе".
Сбросить Лазерную башню
Если Вы выберете для сброса Лазерную башню, корабль развернёт её в указанных координатах.
|
Последний раз редактировалось: Andrei [<>Ace] (16:15 12-12-2007), всего редактировалось 2 раз(а) |
|
|
бухой джедай
183 EGP
  Рейтинг канала: 5(141) Репутация: 70 Сообщения: 7906 Предупреждений: 1 Откуда: Одесса:) Зарегистрирован: 08.09.2007
 |
|
Есть несколько вопросов :
1) где можно посмотреть на примерный механизм создания
товара(по поиску не нашел,В 'скрипты-это просто' раздел так и не дописали);
2)если взрывать мину скриптом ,то взрыватся она будет с учетом ее боевых качеств или нет?
3)можно ли создать мину с помощью оператора "create flying ware"?
Заранее спасибо
добавлено спустя 2 минуты:
Люди прошу прощения за опечатки так как пишу с смартфона
_________________ Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист...
Последний раз редактировалось: бухой джедай (03:01 12-12-2007), всего редактировалось 1 раз |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
бухой джедай : |
2)если взрывать мину скриптом ,то взрыватся она будет с учетом ее боевых качеств или нет?
|
Да, взорвется как настоящая
бухой джедай : |
3)можно ли создать мину с помощью оператора "create flying ware"?
|
Так создашь контейнер, мину создавай через create ship: тип мина, сектор и координаты в нем по желанию
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
бухой джедай : |
1) где можно посмотреть на примерный механизм создания
товара(по поиску не нашел,В 'скрипты-это просто' раздел так и не дописали);
|
Создаешь языковой файл. В нем вот такую запись:
Код: |
<page id="300017" title="Boardcomp. objects" descr="" voice="yes">
<t id="5893">(do not speak)Название товара(Пример с SS_WARE_SW_NEW15)</t>
<t id="5894">Здесь можно разместить краткое описание товара.</t>
</page> |
Подгружаешь в игру свой языковой файл. Ищешь в списке товаров свой товар.
Последний раз редактировалось: Andrei [<>Ace] (16:13 12-12-2007), всего редактировалось 2 раз(а) |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Вопрос команда <RetVar> = <RefObj> get max. number of lasers in turret <Var/Number> возвращает номер последней пушки в турели (т.е. в нумерации от нуля) или максимальное число пушек в турели?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
Вопрос команда <RetVar> = <RefObj> get max. number of lasers in turret <Var/Number> возвращает номер последней пушки в турели (т.е. в нумерации от нуля) или максимальное число пушек в турели?
|
Количество слотов (посадочных мест) под лазеры в турели.
|
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Andrei [<>Ace] : |
Количество слотов (посадочных мест) под лазеры в турели.
|
Тогда почему вот такой код
Код: |
$Turret = [THIS] -> get local variable: name= "TuretNumber"
$Guns = [THIS] -> get max. number of lasers in turret $Turret
write to player logbook [THIS]
write to player logbook $Turret
write to player logbook $Guns |
в журнале дает строки
если в турели не установлено ни одной пушки?
И такие строки
если в турель установить ствол?
Последний раз редактировалось: WhiteWolf (17:14 13-12-2007), всего редактировалось 1 раз |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
если в турели не установлено ни одной пушки?
|
У меня выдает:
Нова
1
1
Стволов на корабле вообще нет .
Проверь, как происходит запись в локальную переменную.
Может для первого случая там текст.
Последний раз редактировалось: Andrei [<>Ace] (17:26 13-12-2007), всего редактировалось 2 раз(а) |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Andrei [<>Ace] : |
У меня выдает:
Нова
1
1
|
Странно, потому, что у меня вот этот код
Код: |
while 1
$Turret = [THIS] -> get local variable: name= "TuretNumber"
$Guns = [THIS] -> get max. number of lasers in turret $Turret
write to player logbook [THIS]
write to player logbook $Turret
write to player logbook $Guns
@ = wait 1000 ms
end
|
совершенно разные результаты выдает в зависимости от того, установлена ли пушка в турели, и меняется именно в момент установки/снятия орудия Специально его зацикливал, чтобы проверить
Andrei [<>Ace] : |
Проверь, как происходит запись в локальную переменную.
|
В переменной точно число!!! И точно, это номер нужной турели.
PS Обнаружил, что странное поведение проявляется только если данный код запущен в стеке турели (в данном случае в стеке 1), в нулевом же стеке все работает на ура...
Последний раз редактировалось: WhiteWolf (18:40 13-12-2007), всего редактировалось 2 раз(а) |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
WhiteWolf : |
Обнаружил, что странное поведение проявляется только если данный код запущен в стеке турели
|
В стеке турели нельзя ничего запускать кроме скриптов работы самой турели. Все скрипты в этих стеках перезапускаются игрой при входе игрока в сектор с потерей всех локальных данных скрипта.
Последний раз редактировалось: AlexYar (20:47 13-12-2007), всего редактировалось 1 раз |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
AlexYar : |
А откуда у Новы взялась передняя турель? А с Turret=3 что выдаёт?
|
Так почему-то задняя турель и определялась как Turret=1 И именно в первой! турели происходили странности
AlexYar : |
В стеке турели нельзя ничего запускать кроме скриптов работы самой турели. Все скрипты в этих стеках перезапускаются игрой при входе игрока в сектор с потерей всех локальных данных скрипта.
|
Так я не покидал сектора... Ну и сразу вопрос:
AlexYar : |
Все скрипты в этих стеках перезапускаются игрой при входе игрока в сектор с потерей всех локальных данных скрипта.
|
Т.е. локальные переменные для объекта сбрасываются в null? или всетаки только переменные определенные в самом скрипте?
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
WhiteWolf : |
Так почему-то задняя турель и определялась как Turret=1
|
Глянул в кишки игры Оказалось, что ИД у турелей несколько. Есть idx турели, есть typeID турели, а еще есть positionID турели. Если турель задняя определилась как первая, значит берётся idx. А идиксы у каждого корабля свои и идут в том порядке, как они прописаны в тшипсе. Но если турель всего одна, то можно быть уверенным, что её idx будет 1 (так как 0 у главного кокпита всегда).
WhiteWolf : |
или всетаки только переменные определенные в самом скрипте?
|
Локальные переменные скрипта это такие переменные, которые определяются и используются внутри него. Локальная переменная объекта (корабля, станции и проч) - это совсем другое.
|
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
AlexYar : |
Глянул в кишки игры Гы-гы Оказалось, что ИД у турелей несколько. Есть idx турели, есть typeID турели, а еще есть positionID турели. Если турель задняя определилась как первая, значит берётся idx. А идиксы у каждого корабля свои и идут в том порядке, как они прописаны в тшипсе. Но если турель всего одна, то можно быть уверенным, что её idx будет 1 (так как 0 у главного кокпита всегда).
|
Значит нужна команда точно определяющая расположение турели (Я думаю понятно в чей огород камень брошен ) А по поводу переменных я так и подозревал
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
WhiteWolf : |
Значит нужна команда точно определяющая расположение турели (Я думаю понятно в чей огород камень брошен )
|
Если верить описанию 2.0.02Ext beta 6 - такая команда уже давно есть
Цитата: |
1526 - <RetVar/IF> <Var/Ship> get cockpit <Var/Number> name
Возвращает имя кокпита.
1527 - <RetVar/IF> <Var/Ship> get turret <Var/Number> text ID
Возвращает t-ID названия турели данного корабля со страницы 2021.
|
Последняя (1527) команда позволяет узнать ориентацию турели (главная, перед, право, зад, лево, верх, низ) по её номеру. Причём на любой локализации игры.
1526 - возвращает текстовое название турели (то, которое пишется в меню вооружения).
зыж миллион восьмисоттысячная мессага на еге (по ссылке на сообщение).
Последний раз редактировалось: AlexYar (01:48 14-12-2007), всего редактировалось 1 раз |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
В стеке турели нельзя ничего запускать кроме скриптов работы самой турели. Все скрипты в этих стеках перезапускаются игрой при входе игрока в сектор с потерей всех локальных данных скрипта.
|
AlexYar : |
Локальные переменные скрипта это такие переменные, которые определяются и используются внутри него. Локальная переменная объекта (корабля, станции и проч) - это совсем другое.
|
Проверил - ничего не сбрасывается. Локальные переменные скрипта, запущенного в турели корабля игрока не сбрасывается ни через врата, ни через прыжковые двигатель.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
А кто они после такого бардака?
Мечтатель : |
Нет ну идеи есть конечно. Ну например. Есть такая команда -
@ <RetVar/IF><RefObj> turn turret <Var/Number> to target <Var/Ship/Station> : timeout=<Var/Number> ms
|
Вот воспользовался твоей идеей.
WhiteWolf : |
Идея хорошая, но как ты и сам заметил в некоторых ситуациях может вернуть не верный результат Да и ожидание пока турель наводится на объект не есть хорошо
|
Хорошие идеи нужно развивать, хотябы в целях эксперемента.
Ниже скрипт. Возвращает массив турелей расположенных согласно таблицы:
0 - главная
1 - передняя
2 - правая
3 - задняя
4 - левая
5 - верхняя
6 - нижняя
Тоесть индекс номера турели укажет куда смотрит турель согласно таблицы.
Есть два нюанса:
1. для М7 работает не корректно, т.к. расположение турелей у М7 нестандартное.
2. скрипт должен обязательно запускаться глобально, чобы не оставить за собой мусора.
ace_service.rar |
Описание: |
Возвращает массив турелей расположенных согласно таблицы: |
|
Имя файла: |
ace_service.rar |
Размер файла: |
1.94 KB |
Скачано: |
407 раз(а) |
|
|
|
Мечтатель
75 EGP
 Рейтинг канала: 5(188) Репутация: 39 Сообщения: 357 Откуда: Киев Зарегистрирован: 08.06.2007
 |
|
Господа скриптеры. Есть задача. Неоднократно уже обсуждался вопрос о том что для HCF сложно задать цель абордажа.
Я поразмыслив нашел откуда это все дело запускается. Скрипт:
plugin.XTM.Cmd.Cap.xml
Он имеет три параметра. Насколько я понял:
1. Цель захвата;
2. Тип абордажников;
3. Их колличество.
Однако у меня не получилось сделать скрипт который бы запускал его как следует, чтобы сгенерировать абордаж без лазения по менюшкам.
Идея такова, чтобы отправить на корабль, котороый в качестве цели игрока всех абордажников которые есть в трюме, по команде горячей клавиши.
Есть предложения.
_________________ Наука движется настолько быстро, что самые оптимистические прогнозы могут оказаться устаревшими! |
|
|
WhiteWolf
55 EGP
 Рейтинг канала: 2(13) Репутация: 0 Сообщения: 53
Зарегистрирован: 24.10.2007
 |
|
Andrei [<>Ace] : |
Возвращает массив турелей расположенных согласно таблицы:
|
Маяки создаются на осях координат в остчете от центра описанной сферы вокруг созданного корабля. На сколько я понимаю турели могут и не располагаться на осях координат идущих из центра корабля И турели могут быть и меееееедленными, тогда времени наведения в 1000 мс может и не хватить
PS Вот если был бы код возврата, что турель не может быть наведена, тогда было бы счастье, а так...
Последний раз редактировалось: WhiteWolf (16:21 16-12-2007), всего редактировалось 1 раз |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
WhiteWolf : |
На сколько я понимаю турели могут и не располагаться на осях координат идущих из центра корабля
|
А зачем им располагаться на осях координат (тот же М7). Главное чтобы они нашли цель в своем сегменте сферы.
WhiteWolf : |
И турели могут быть и меееееедленными, тогда времени наведения в 1000 мс может и не хватить
|
Да куда уже медленнее.
Но всеравно, скрипт только пример.
WhiteWolf : |
PS Вот если был бы код возврата, что турель не может быть наведена, тогда было бы счастье, а так...
|
Если бы турели по шаблону стояли, или команда была для определения расположения турели, тогда вообще ничего мудрить не нужно было.
Последний раз редактировалось: Andrei [<>Ace] (16:51 16-12-2007), всего редактировалось 1 раз |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|