Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008 | страница 12
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 12 из 13
На страницу: Пред.  1, 2, 3 ... , 11, 12, 13  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Reunion » Модовый и скриптовый отсек X3: Reunion: «Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008»
Что нужно добавить в справочник в первую очередь ?
Описания файлов из каталога types.
25%
 25%  [ 2 ]
Статьи, написанные выдающимися скриптерами.
37%
 37%  [ 3 ]
Задачи, и лучшие решения скрипт-школы.
37%
 37%  [ 3 ]
Свой вариант (просьба описать кратко, но емко).
0%
 0%  [ 0 ]
Всего проголосовало : 8
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
Посмотрел - команда всегда будет возвращать 1 для всех несюжетных объектов.

Принцип действия таков:

Если проверяющий корабль или цель имеет флаг невидимости на карте сектора -> проверяется следующее условие:

Код:
 if(SE_DistanceAA(this->GetPos(),arg1->GetPos())>SA_GetGlobalParameter(12)+(arg1->GetSize()+this->GetSize()))


По-русски: если дистанция между проверяющим объектом и целью > (радиус радара в небуле + размер проверяющего объекта + размер корабля).

Радиус радара в небуле - нерабочий параметр, он всегда равен 750000*2 метров.

Если условие истинно - возвращается 0 (цель невидима).

Во всех остальных случаях возвращается 1.
Флаг "невидимости на карте сектора" устанавливается только для сюжетных кораблей кодом сюжета.


Резюме - команда абсолютно бесполезна для скриптеров в стандартной игре (в ext-патче можно флаг невидимости ставить принудительно из скриптов, и корабля/станции не будет видно на карте сектора, соотно и эта команда будет работать).
    Добавлено: 22:30 29-07-2008   
X3-Protector
 180 EGP


Рейтинг канала: 5(166)
Репутация: 20
Сообщения: 634
Откуда: Новосибирск
Зарегистрирован: 26.07.2008
В общем что-то нечто подозрительный эффект от этой команды.
_________________
Я давно уже не в форме, я уже совсем не тот, но не стоит делать вызов, я прославленный пилот...

Последний раз редактировалось: X3-Protector (23:07 29-07-2008), всего редактировалось 1 раз
    Добавлено: 22:43 29-07-2008   
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
X3-Protector :
эффект невироятно точный.


Какой эффект? Что ты вообще хотел этим показать? Улыбка

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

Про команду я написал точнее некуда - она всегда возвращает 1 для несюжетных кораблей.
    Добавлено: 22:52 29-07-2008   
z_m_a
 105 EGP


Рейтинг канала: 7(635)
Репутация: 20
Сообщения: 264
Откуда: Подмосковье
Зарегистрирован: 23.07.2007
Цитата:
<RetVar> = <RefObj> get size of object
engine v. 32
· Команда возвращает размер объекта <RefObj> пространстве. Представляет из себя радиус воображаемой сферы, созданной вокруг объекта. Значение возвращается в юнитах, для перевода в метры разделите значение на 222.
Видимо устарело или опечатка. Возвращает значение в метрах. Делить на 222 не нужно.
    Добавлено: 00:12 30-07-2008   
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
z_m_a :
Делить на 222 не нужно.


100% устаревшие данные, так как коэффициент 222 был в х2, в х3 же коэффициент равен 500.

Внутри скриптдвижка возвращаемое значение этой командой уже делится на 500, значит результат в метрах, как ты и сказал Улыбка
    Добавлено: 00:23 30-07-2008   
z_m_a
 105 EGP


Рейтинг канала: 7(635)
Репутация: 20
Сообщения: 264
Откуда: Подмосковье
Зарегистрирован: 23.07.2007
AlexYar :
100% устаревшие данные
С похожими командами( get max speed) аналогично?

ЗЫЖ Тут слегка ввел в заблуждение. По имени пилота можно узнать что нейтральный корабль брошен, а вот заблокировать захват(по Claim, кстати, имя отличное от No Pilot, на игрока не меняет) нет. Расстроен Насчет скорости сказать не могу. В скафандре не угонишься. Улыбка

Последний раз редактировалось: z_m_a (00:56 30-07-2008), всего редактировалось 3 раз(а)
    Добавлено: 00:34 30-07-2008   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 9(1184)
Репутация: 342
Сообщения: 13051
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
И здесь:
Код:
@ <RetVar/IF><RefObj> move to position: x=<Var/Number> y=<Var/Number> z=<Var/Number> with precision <Var/Number> m

Цитата:
Эту удаленность (точность) требуется указывать именно в игровых юнитах, а не метрах, не смотря на наличие m после этого параметра. Т.е. желаемую удаленность требуется сначала умножить на 222, а потом подставлять в данную команду

На самом деле в метрах значения.
Я еще когда shields takeoff писал, хотел упомянуть об этом, но забыл.
_________________
Все астероиды не пересчитать!
    Добавлено: 00:35 30-07-2008   
X3-Protector
 180 EGP


Рейтинг канала: 5(166)
Репутация: 20
Сообщения: 634
Откуда: Новосибирск
Зарегистрирован: 26.07.2008
Как меня достал тормозной боевой интелект!
Я двое суток без перерывов на поесть добивался того что бы мой "Эклипс" (Main:on 8xAHEPT и Turrets:off 2xAHEPT) смог наконец-то стабильно воевать против трёх "Ксенон L" и одного "Ксенон LX" одновременно(Бездна Тина).
Всё дело в том, что команда "@ <RetVar/IF><RefObj> defensive move: type=<Var/Number>, intensity=<Var/Number>, timeout=<Var/Number>ms, avoid object=<Value>" работает так неуклюже и безтолково, что от неё у меня были только проблемы в сучаях гогда действительно нужно уворачиваться от выстрелов.
Может показаться странным, но для уворачивания от вражеских выстрелов лучше всего использовать другую команду, а именно "@ <RetVar/IF><RefObj> attack run on target <Value> : timeout=<Var/Number> ms", только предварительно вычислив кто атакует и указать атакующего для выполнения подготовки - для того что бы атакующий временно перестал атаковать, по завершении маневра проверьте что атакующий в радиусе поражения орудий и сделайте хотя бы один выстрел наверняка, если попадёт то у атакующего сработает прерывание атаки.
Суть вообще в этом посту заключается в том, что первая команда почти не изменяет положения происходящего, даже если интенсивность поставить 100...
...
Кстати, справочник реально учит - всем новичкам настоятельно рекомендую справочник по командам X3:Reunion от DragonP...
...
Данные по приоритетам не верны:
0 Все скрипты по умолчанию
50 Бегство после обработки SIGNAL_ATTACKED
99 Вооруженное сопротивление после обработки SIGNAL_ATTACKED
100 SIGNAL_ATTACKED
150 SIGNAL_LEADERNEEDSHELP
^^^ SIGNAL_FOLLOWERNEEDSHELP
200 SIGNAL_FORMATIONLEADERCHANGED
300 SIGNAL_CAPTURED
10000 SIGNAL_KILLED
-------------------------------------------------------------
Я поставил приоритет на 10 стэк = 1000, и при каждом уничтожении врага игра стала зависать. Соответственно, если приоритет моего скрипта всего 1000 а приоритет системного скрипта 10000 зависает или что там с ним происходит, то получается что вышеупомянутые данные или устарели, или вообще далеки от истины.
Я вообще поставил приоритет 1000 для того что бы в процесс моей атаки не вмешивались всякие там левые скрипты по типу 100,99,50 и им подобным.
Подскажите если знаете точно, какой приоритет нужно поставить что бы процесс боя не прерывался?
Пока что я попробую поставить 100, но уже при 99 бывали зависания, так что я в заблуждении...
_________________
Я давно уже не в форме, я уже совсем не тот, но не стоит делать вызов, я прославленный пилот...

Последний раз редактировалось: X3-Protector (14:19 07-08-2008), всего редактировалось 3 раз(а)
    Добавлено: 21:17 06-08-2008   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 9(1184)
Репутация: 342
Сообщения: 13051
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
Дополнение к команде
Код:
send incoming question <Var/String> to player: callback=<Script Name>

Цитата:
Скрипт-обработчик <Script Name> запускается глобально, а не с объекта, с которого его вызвала команда. Поэтому учитывайте это, используя [THIS]-указатель в скрипте-обработчике. [THIS] вернет значение null.


И для команды
Код:
<RetVar> =  register hotkey <Var/String> to call script <Script Name>
 

Цитата:
При вызове скрипта-обработчика с клавиатуры, скрипn-обработчик <Script Name> запускается глобально


Проверено опытным путем Подмигиваю
_________________
Все астероиды не пересчитать!

Последний раз редактировалось: Арманкессилон (09:43 14-08-2008), всего редактировалось 2 раз(а)
    Добавлено: 16:47 09-08-2008   
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
Арманкессилон :
запускается глобально, а не с объекта


Т.е. если поставить wait 60000, к примеру, в этом скрипте, то его можно увидеть в списке глобальных скриптов?
    Добавлено: 19:03 09-08-2008   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 9(1184)
Репутация: 342
Сообщения: 13051
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
Не знаю, не пробовал. Но THIS возвращает null. Я скрипт специально тестовый написал.
Кстати, скрипт, вызываемый по горячей клавише, тоже возвращает null при использовании THIS-указателя.
_________________
Все астероиды не пересчитать!
    Добавлено: 19:14 09-08-2008   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 9(1184)
Репутация: 342
Сообщения: 13051
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
Проверил. Скрипт появляется в списке глобальных.
_________________
Все астероиды не пересчитать!
    Добавлено: 22:36 09-08-2008   
X3-Protector
 180 EGP


Рейтинг канала: 5(166)
Репутация: 20
Сообщения: 634
Откуда: Новосибирск
Зарегистрирован: 26.07.2008
Чёта я совсем не въезжаю, какой флаг должен вернуть скрипт запущенный командой set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name>Хочу чтоо бы были высокие требования к апгрэйдам на корабле, а чё за флаг должен вернуться не могу сообразить. 1, [TRUE], CmdConCheck.Available - ни чего не срабатывает, как только не крутил вертел толку нет.
Какой нужен флаг???
_________________
Я давно уже не в форме, я уже совсем не тот, но не стоит делать вызов, я прославленный пилот...
    Добавлено: 01:00 13-08-2008   
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
X3-Protector :
Хочу чтоо бы были высокие требования к апгрэйдам на корабле


В графу "upgrade" поставь TRUE (типа для всех апгрейдов), а в проверочном скрипте проверяй наличие необходимых апгрейдов.
Вернуть должен CmdConCheck.Available, чтобы команда была активна в консоли.
    Добавлено: 12:58 13-08-2008   
X3-Protector
 180 EGP


Рейтинг канала: 5(166)
Репутация: 20
Сообщения: 634
Откуда: Новосибирск
Зарегистрирован: 26.07.2008
Ага, а я ставил наименование апгрэйда - думал что один апгрэйд обязательный. Если я во время игры выброшу один из апгрэйдов, то команда исчезнет? А как сделать что бы команда отображалась но была недоступно? Я так думаю это связанно с типом корабля на который эти команды вообще должны ставиться. Заранее спасибо, проверять пока не буду - устал с работы и просто хочу фильм посмотреть...
_________________
Я давно уже не в форме, я уже совсем не тот, но не стоит делать вызов, я прославленный пилот...
    Добавлено: 17:12 13-08-2008   
AlexYar
 1846 EGP


Рейтинг канала: 13(2096)
Репутация: 328
Сообщения: 31404

Зарегистрирован: 26.10.2003
X3-Protector :
А как сделать что бы команда отображалась но была недоступно?


CmdConCheck.Disable
    Добавлено: 18:49 13-08-2008   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Арманкессилон :
И для команды
Код:
global script map: set: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>, script=<Script Name>, prio=<Var/Number>

Цитата:
При вызове скрипта-обработчика с клавиатуры, скрипn-обработчик <Script Name> запускается глобально

Где-то здесь логика нарушена. Назначение скрипт-команды какое? Задать соответствие команды-сигнала, срабатывающим на объекте указанного класса и указанной расы, с определенным скриптом, который обработает сигнал.

В данном контексте подразумеваются события и команды конкретных объектов, а следовательно и скрипт обработчик должен запускаться на этих объектах, а не глобально. Либо же глобально, но получать в качестве одного из аргументов ссылку на объект. В реальном случае, скрипт всё таки запускается на объекте. Другой разговор какая комада-сигнал используется. Есть команды, которые запускают скрипты в нулевом стеке объекта, к ним относятся навигационные, торговые, специальные, пиратство... Есть, которые запускаются в слотах дополнительных команд - дополнительные команды кораблей и станций. Есть команды для туррелей, для них тоже свои выделенные стеки... Но во всех этих случаях ключевое слово [THIS], если этот скрипт действительно был запущен по сигналу или команде, указывает на объект. Для задания обработчика глобальных событий, существует другая скрип-команда.

AlexYar :
Т.е. если поставить wait 60000, к примеру, в этом скрипте, то его можно увидеть в списке глобальных скриптов?

Он явно что-то не договаривает. Не может сразу после выполнения команды:

global script map: set: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>, script=<Script Name>, prio=<Var/Number>

запуститься обработчик сигнала, да ещё и глобально.

to X3-Protector
Для того, чтоб команда появилась в консоле нужно провести серию команда:
Как раз одной из команд является та, о которой я обсуждал выше. Она нужна для задания скрипт обработчика твоей команды. А вторая уже:
set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name>

или

set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware>

Если задан upgrade, то его отсутствие на люъекте будет обозначать отсутсвие и команды в консоле. Но можно поставить вместо значения девайса единицу или TRUE, тогда проверка будет вестись только скриптом.

На счет флагов. Флаги имеют бинарную структуру и как следствие могут передаваться вместе. Для объединения флагов необходимо использовать логическую связку "ИЛИ" т.е. скрипт команду "|".
Напрммер, чтобы сделать пункт меню видимым в консоле, но его нельзя было бы выбрать нужно объединить флаг доступности Available с флагом запрета Disable. Мы увидим в консоле серый пункт меню, на который можно будет навестись только при условии, что имеется хелп к этой команде, о чем свидетельствует буква "i" справа от имени команды и с лева от короткого имени команды.

Код:
$ret = CmdConCheck.Available | CmdConCheck.Disabled
return $ret


В целом, если я не ошибаюсь, это тоже самое, что:
Код:
return 3

_________________
Новое ещё не значит лучшее
    Добавлено: 05:45 14-08-2008   
Арманкессилон
 1725 EGP


Модератор
Рейтинг канала: 9(1184)
Репутация: 342
Сообщения: 13051
Откуда: Ставрополь
Зарегистрирован: 16.08.2007
ULiX :
Где-то здесь логика нарушена. Назначение скрипт-команды какое? Задать соответствие команды-сигнала, срабатывающим на объекте указанного класса и указанной расы, с определенным скриптом, который обработает сигнал.

Ой, прошу прощения, я не ту команду скопипастил Гы-гы Конечно же, я о команде:
Код:
<RetVar> =  register hotkey <Var/String> to call script <Script Name>


добавлено спустя 1 минуту:
Хорошо, что заметил Подмигиваю
_________________
Все астероиды не пересчитать!

Последний раз редактировалось: Арманкессилон (09:47 14-08-2008), всего редактировалось 1 раз
    Добавлено: 09:47 14-08-2008   
X3-Protector
 180 EGP


Рейтинг канала: 5(166)
Репутация: 20
Сообщения: 634
Откуда: Новосибирск
Зарегистрирован: 26.07.2008
AlexYar :
CmdConCheck.Disable
Спасибо за [TRUE], с остальным я сам уже разобрался...
_________________
Я давно уже не в форме, я уже совсем не тот, но не стоит делать вызов, я прославленный пилот...
    Добавлено: 00:14 16-08-2008   
RAMI
 330 EGP


Рейтинг канала: 5(241)
Репутация: 82
Сообщения: 2538
Откуда: Центральная Россия
Зарегистрирован: 16.11.2005
данной комманды нет в справочнике:
set safe position of sector object <RefObj> : x= <Var/Number> y= <Var/Number> z= <Var/Number>

конечно из слова safe можно предположить, что она означает, но конкретные условия и действия не ясны.
_________________
В действительности всё иначе, чем на самом деле...
    Добавлено: 03:53 12-09-2008   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008»
На страницу: Пред.  1, 2, 3 ... , 11, 12, 13  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Кто о чем, а Радик о пиве... (заметил Harley)

  » Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008 | страница 12
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18