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

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

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

   Страница 10 из 13
На страницу: Пред.  1, 2, 3 ... 9, 10, 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
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
бухой джедай :
наверно намекают по той причине что появился ...
теперь можно не боятся впечататся


Я немного дополнил пост выше :
Chem :
Заглянув унутрь, не нашел разницы в работе данной новой команды с
вот этой :
<RefObj> set position: x=<Var/Number> y=<Var/Number> z=<Var/Number>.

Вот прийдет Алекс - он пояснит, я надеюсь Подмигиваю.

Вот та команда и раньше не особо проверяла.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 20:44 27-12-2007   
Bob_Koh
 61 EGP


Рейтинг канала: 3(31)
Репутация: 4
Сообщения: 125
Откуда: Хмельник
Зарегистрирован: 15.10.2007
Chem :
Забыл написать, что добавил еще -
<RefObj> force position: x=<Var/Number> y=<Var/Number> z=<Var/Number>
• Команда перемещает объект <RefObj> в точку пространства с указанными координатами x=<Var/Number> y=<Var/Number> z=<Var/Number>. Будьте аккуратны используя эту инструкцию, она не делает проверки находиться ли по этим координатам какой либо объект. И соответственно если по этим координатам будет находится, например станция, а вы поместите туда корабль, то он разобьется о корпус станции.
Заглянув унутрь, не нашел разницы в работе данной новой команды с
вот этой :
<RefObj> set position: x=<Var/Number> y=<Var/Number> z=<Var/Number>.
Вот прийдет Алекс - он пояснит, я надеюсь Подмигиваю.
З.Ы. Даешь рейтинг 2008 до начала 2008 года Супер! Супер! Супер!
З.Ы.Ы. Блин, теперь надо еще в команды вписать версию игры, структуру придется изменить Расстройство.

Разница есть! В новом варианте не требуется батарей!
    Добавлено: 21:21 27-12-2007   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Bob_Koh :
Разница есть! В новом варианте не требуется батарей!

Гы-гы RefObj> set position: x=<Var/Number> y=<Var/Number> z=<Var/Number>. - никогда батареи не хавала
    Добавлено: 21:42 27-12-2007   
Expert
 423 EGP


Рейтинг канала: 9(1073)
Репутация: 154
Сообщения: 533
Откуда: Златоуст, Южный Урал
Зарегистрирован: 15.08.2004
Цитата:
<RetVar/If> = player HQ has blueprints for: type=<Var/Ship Type>
add blueprints to player HQ: type=<Var/Ship Type>
remove blueprints from player HQ: type=<Var/Ship Type>

Если у игрока несколько Штаб-Квартир, то ни одна команда не работает Ой, не могу!..

Chem :
Ибо нефиг Подмигиваю

Это понятно. Просто программеры Эгософта в очередной раз продемонстрировали свою недальновидность. Весь этот патч - очередная недоделка. Даже в раздел загрузок на своём сайте нормальный архив с первого раза выложить не смогли Рыдания.

Последний раз редактировалось: Expert (00:47 28-12-2007), всего редактировалось 1 раз
    Добавлено: 22:55 27-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Ибо нефиг Подмигиваю
_________________
Умножим энтропию на 0 :-)
    Добавлено: 23:30 27-12-2007   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Отличие команды
<RefObj> force position: x=<Var/Number> y=<Var/Number> z=<Var/Number>

от

<RefObj> set position: x=<Var/Number> y=<Var/Number> z=<Var/Number>


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

Фактически эта команда обединяет следующий алгоритм, который я использовал в своих скриптах для достижения того же эфекта:

Код:

$SecObj = $Obj -> get SectorObject ID
if $SecObj
   set safe position of sector object $SecObj : x= $x y= $y z= $z
else
   $Obj -> set position: x= $x y= $y z= $z
end



Сравните c оригиналом в обжах:

Код:

      var SecObj = RefObj -> GetObjectID();
      if(SecObj)
       {
       SA_SetPos(SecObj,x*500,y*500,z*500);
       RefObj -> GetPos();
       }
      else
       {
       RefObj -> SetPos(x*500,y*500,z*500);
       }
      }


Т.е в удаленных секторах действует как стандартная команда, а в активном секторе устанавливает координаты без проверки совмещения и столкновения.

Другое дело, что команду
set safe position of sector object $SecObj : x= $x y= $y z= $z
нельзя набрать во встроенном редакторе. Однако набрать её можно в ExSCE, а потом она преспокойно копируется и редактируется во встроенном редакторе.

Не могу понять зачем её заблокировали, ведь она рабочая, как и ряд других заблокированных команд:

set position of sector object %0 : x=%1 y=%2 z=%3
set rotation of sector object %0 : x=%1 y=%2 z=%3
%0 create sector object: maintype=%1 subtype=%2
free sector object %0
kill sector object %0 : reason=%1 , killer sector object=%2
start sector object %0 in space %1

Конечно, этими командами нужно пользоваться с большой осторожностью, но всё же пользоваться можно.

Хочу команду позициониравния с точностью физических координат (1/500 метра)!!! Это позволит плавно двигать прикрепленные обекты. А также команды чтения физических координат. Иногда очень нужно спозиционировать с большей точностью чем в 1 метр. 1 метр это очень не мало, если двигать объект скриптами, он движется ступенчато.... Расстроен

<RefObj> ignore collisions: <Var/Number>

Хм... Вот то, что корабли не будут облетать объекты, это понятно, а вот зачем сделали, чтоб корабли могли пролетать сквозь обекты? Ответ напрашивается сам собой... XTM повлиял на егософтовцев. Помните как часто корабли при отстыковке разбивались о верфи и носители? Ну так теперь можно модифицировать скрипты отстыковки и корабли при отстыковке просто пролетят сквозь верфь или носитель и неповреждаясь... Мдя... координальное решение. Команда XTM будет просто без ума от счастья.


Кстати, Chem, а что AlexYar у нас единественный кодокапатель на форуме? Я же тоже ещё не потерян. Хы...
_________________
Новое ещё не значит лучшее
    Добавлено: 09:35 28-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
ULiX :
Кстати, Chem, а что AlexYar у нас единественный кодокапатель на форуме? Я же тоже ещё не потерян

Ну раз так Подмигиваю (Хотя я в этом и не сомневался Подмигиваю.
Вот все равно не вижу разницы между:
set position :

Код:

     loc21->SetPos(loc23*500,loc25*500,loc27*500);


и
force position :

Код:

      if(loc28)
       {
       var loc28=loc21->GetObjectID();
       SA_SetPos(loc28,loc23*500,loc25*500,loc27*500);
       loc21->GetPos();
       }
      else
       {
       loc21->SetPos(loc23*500,loc25*500,loc27*500);
       }



Хотя нет, уже увидел Подмигиваю.
В случае когда объект это корабль или ракета и действие происходит в активном секторе - действительно в случае force pos используется SA_SetPos вместо SA_SafeSetPos.
Исправлю описание Подмигиваю
_________________
Умножим энтропию на 0 :-)
    Добавлено: 12:06 28-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Добавил указание версии игры, с которой действует команда (2.0.02 или 2.5)
Описание :

Справочник по скриптовым командам игры X3:Reunion, в формате .chm.
version 0.3.31, build date 28.12.2007, 18:44
Имя файла: Commands-0.3.31.7z

_________________
Умножим энтропию на 0 :-)
    Добавлено: 13:16 28-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Expert :
Если у игрока несколько Штаб-Квартир, то ни одна команда не работает

Должна работать по последней. Т.е. если ШК создавались именно как ШК игрока.
Не будут работать, если :
1. Были созданы, а потом присвоены игроку.
2. Или если последняя, по времени создания, ШК была уничтожена.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 17:14 28-12-2007   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Chem, ты ещё внеси команды из X2 и укажи, что они работают токлько в версии 1.4 игры X2 Улыбка
Уже если команда в 2.0. не работает, то скриптописатель её и не найдёт в скрипт редакторе. Тут скорее важно указать весию скриптового движка, которая поддерживает данные скрипт-команды. Вот её-то можно поулучить из скриптов командой:

<RetVar> = script engine version

И тогда скриптёр в своих скриптах может учесть, будет ли его скрипт работать с этими командами или нет.

Ладно. Принциписльно не нашел что-то нового от версии 3.27.
Начинаем закрашивать белуе... пардон... жёлтые пятна справочника.

Хотя мы и вели активную переписку с Chem во время моего бана, но он куда-то исчезал (кстати до сих пор не колится, где пропадал) поэтому видимо забыл о нововедениях и дополнениях, на которые я ему указывал. Так что начнём по порядку. И всё таки не с BBS квестов. Надеюсь Chem перечитает статью по созданию BBS и выпишет из неё описания команд. Кстати всю эту статью можно сделать частью справочника. Будет очень полезно. Тем более что раздел справочника имеется.

Начнём.

<RetVar> = <RefObj> serialise object

Команда возвращает строку содержащюю внутренний идентификатор объекта в виде:
"$#"+<номер>+"$"

Где <номер> - челочисленное представление указателя на объект. Передавая такую строку скриптам через аргументы, те будуи интерпритировать её ни как строку а как указатель на объект.

Применяется для передачи указателя на объект в квестовых командах диалога с пилотом.

См. дополнение к команде:
send incoming question <Var/String> to player: callback=<Script Name>


Всвязи с этим дополнения к команде:

send incoming question <Var/String> to player: callback=<Script Name>

· Команда посылает сообщение запрос <Var/String> игроку. Результат выбора будет возвращен в первый аргумент скрипта с именем <Script Name>.
· Правила и примеры форматирования сообщений запросов смотрите в дополнении "Общение с игроком". <доделать>
· Дополнение от пилота Andrei [<>Ace]:
....
....

* Дополнение от меня. Ой, не могу!..

ПОДРОБНЕЙ расмотрим тег

[select value="Answer"]Message[/select]

А точннее параметр Answer.
Через данный параметр можно в скрипт <Script Name> передать не один а несколько параметров. Достаточно перечислить эти параметры через запятую. Параметры будут помещены в соотвотствующий по порядку аргументы скрипта <Script Name>.

Например можно создать шаблон

[select value="%s,%s,%s"]Message[/select]

И передавать вызваемому скрипту три параметра.

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

Для этой цели создана команда:

<RetVar> = <RefObj> serialise object

Указав в качестве одного из передаваемых параметров полученное данной командой значение, скрипт обработчик ответа пилота получит в аргументе сам объект. Очень полезное дополнение, когда, скажем, диалог должен точно знать, о каком именно корабле идёт речь.

---------------
<RefObj> add lasers per value:<Var/Number>(0-100) flags:<Var/Number>

С помощью флага можно конкретизировать из коких типов лазеров подбирать набор вооружения для корабля.

Информация по флагам flags:<Var/Number>

Если указать -1, то выбор будет производиться из любого возможного вооружения.

Группа 1:
2 - AIRE, BIRE
4 - APAC, BPAC
8 - AHEPT, BHEPT
16 - APPC, BPPC, GPPC
32 - AKE, BKE, GKE

Группа 2:
64 - MD
128 - APSG, BPSG, GPSG
256 - ID
512 - AFAA, BFAA
1024 - APBE, BPBE
2048 - MDS
4096 - TB
8192 - Repair Laser
32768 - AEMP, BEMP

Если выбран хотя бы один лазер из группы 2, то к фильтру прибаляется CIG.

-------------------

Эххх... Уже подготовил описание по другим командам, но техника подкачала... Занимался составлением дома, точно помню что сохранялся, но почему-то файлик содержит старую информацию... Странно... Где-то наверно лежит более новая копия файла... Придётся по памяти и кратко, буду вспоминать, что помню...

Для начала... Уже в третий, если не в четвертый раз прошу исправить:
Информация об оружии (General Object Commands)
Это не исправлено в окне навигации. Не знаю, как у кого, но у меня это окно слева Улыбка Можно его также назвать Окно Содержания.

Далее по командам.

<RetVar/IF>get sector from universe index: x=<Var/Number>, y=<Var/Number>
Добавить. Индексация секторов начинается с вехнего левого сектора соответсвующего в стандарте Kindom End. нумерация начинается с индексов x=0, y=0.

Это, чтоб у новичком вопросов не возникало.

<RefObj> start task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value> arg5=<Value>

Дополнение от пилота AlexYar :

Однако стабильная работа стеков, отличных от нулевого, возможна только в том секторе, где находится игрок. В остальных работа стеков будет либо заморожена, либо будет нестабильна (игра их выкинет просто напросто, хотя и не в 100% случаев).
Такая ситуация наблюдается в игре со стандартными обжами.
Т.е. использование стеков кроме 0 не рекомендуется в удаленных секторах.


Удалить дополннение от этого пилота. Я уважаю его мнение, но в данном случае его дополнение звучит слишком угрожающе, а XTM и мой Droid живое подтвеждение его неправоты. Может в версиях 1.4 и менее это возможно имело место, но сейчас это безосновательное утвеждение отпугивающее молодых скриптеров от использования фоновых скриптов. Другое дело, что навигационные команды могут вызывать сбой работы основного нулевого стека, если их использовать в других стеках одновременно с работой в нулевом стеке.

<RefObj> start job
Запускает скрипт выполнения работы по умолчанию согласно JobID. Например торговцы начнут торговлю, а патрульные начнут патрулировать сектор. Эта команда полезна к примеру в случаях, если ваш скрипт временно взял контроль над каким то кораблём, чтоб выполнить определенную задачу, к примеру, защитить мирный кораблль от нападения. А после того как задача выполнена, вы отдаёте ему команду start job и он продолжит выполнять свои прямые обязаности в галактике.

<RefObj> set pilot morale: <Var/Number>
Уровень морали очень силно влияет на вероятность эвакуации пилота корабля. Уменьшив это значение до нуля можно увеличить вероятность раз в 10-20. Улыбка

<RefObj> set pilot aggression: <Var/Number>

От уровня агрессии зависит вероятность "покраснения" корабля при совершении по отношению к окраблю нежелательных для него дейсвий. К числу этих действий относится незаконное сканирование груза и просьба "Скинуть груз". Чем выше агрессия, тем больше вероятность ожесточение пилота.


Тааак... Почему-то не желтые пятна... В глаза не бросаются.


<RetVar> = get power generator of ship/station type <Var/Ware>

Возвращает значение генератора лазеров для типа корабля или станции <Var/Ware>. Не понятно какой может быть генератор лазеров у станций.
Чем больше значение генератора лазеров, тем быстрее происходит восстановление мощности лазеров.

<RetVar> = <RefObj> get power generator

Возвращает значение генератора энергии лазеров для объекта <RefObj>. Фактически эта команда есть комплекс последовательных команд:

$WareType = $RefObj -> get ware type code of object
$PowerGen = get power generator of ship/station type $WareType


------------------------

<RetVar/IF> get ammunition of laser <Var/Ware>

Команда возвращает код товара соответсвующий боеприпасам для типа лазкера <Var/Ware>. Для большинства лазеров возвращает null, Для MassDrive возвращает товар "Боеприпасы".
Т.е. этой командой можно определить нужны ли боеприпасы данному типу лазера и какие именно, чтоб к примеру полететь и закупить.

-------------------

Ух млин... писатель... Главное, чтоб свет не вырубили Улыбка
Идём далее...

Опять без желтых пятен... Да чтож такое...

<RetVar> = get random NPC

Возвращает случайного NPC персонажа. Персонажей всего шесть штук. Соответсвуют како-то одной из шести рас. У каждого персонажа свой набор любымых персональных кораблей и свой набор флота поддержки.

Итак Эта команда вернёт нам указатель на этого самого персонажа. Не путайте... Это не корабль!!! Это NPC герой. Это пилот!!! Существующий отдельно от корабля. Его можно ввести в игру и выдать ему корабль и флот поддержки.

Далее по логическому порядку вещей...

<RetVar> = <RefObj> get NPC personal ship

Команда возвращает персональный корабль на котором в данный момент находится персонаж. По умолчанию у персонажа корабля нет, так как вы ему его не дали, поэтому команда вернёт... Нет не null она верёт не существующий корабль "Not Exists Object". Так что при проверке учтите, что если вы используете условие в виде:

Код:

$Ship = $NPC -> get NPC personal ship
if $Ship
  ...
end


то условие будет соблюдено в любом случае, даже если корабль не существует. Правильно использовать структуру:

Код:

$Ship = $NPC -> get NPC personal ship
if $Ship -> exists
  ...
end


Теперь дадим нашему NPC персонажу корабль...

<RefObj> spawn NPC personal ship: rank=<Var/Number>

Команда создаёт или заменяет корабль NPC. Тип корабля и его вооружение будут зависеть от указания ранга <Var/Number>.
РАнг задаётся от 0 до 1000000. Фактически это боевой ранг персонажа. Вы можете передавать в качестве этого параметра боевой ранг игрока, чтобы создать персонажа с соразмерной силой. Таким образом по ходу игры персонаж будет усиливаться.

Созданные данной командой корабли имеют уникальные имена. Очень даже красивые, например "Центурион", "Быстрая Смерть", "Быстрый Убийца" и другие.

В случае создания нового корабля, корабль создаётся абстрактно. Т.е. корабль не будет физически присутствовать ни в одном окружении, ни на станции, ни в каком либо секторе. Для этого вам потребуется самим переместить корабль в нужное окружение командой:
<RefObj> put into environment <RefObj>

Честно говоря, забыл проверить как поведёт себя команда, если применить её повторно, когда корабль персонажа уже создан. Возможно три варианта:
1. Старый корабль уничтожится а на его месте возникнет новый.
2. Старый корабль исчезнет и создастся новый но абстрактно и вам снова придется перемещать его в нужное окружение и задавать координаты.
3. Старый корабль не уничтожится, а новый не создастся.

Ну я думаю, Chem проверит, какой вариант верный прежде, чем добавлять описание в справочник.

Поехали дальше...

<RefObj> spawn NPC fleet: rank=<Var/Number>

Команда создаёт флот поддержки для NPC персонажа <RefObj>. Размер флота и мощность его кораблей зависит от заданного ранга <Var/Number> от 0 до 1000000. Состав кораблей по типам будет зависеть от самого NPC, вернее от его расового происхождения.

Все корабли флота создаются абстрактными моделями и физически не присутствуют ни в каком из секторов. Для того, чтоб их ввести в игру нужно переместить их в нужное окружение командой:
<RefObj> put into environment <RefObj>

Названия кораблей флота персонажа будут также как и название персонального корабля давольно уникальными.
Например: "Бригада смерти 101", "Жрецы справедливости 201", "Корпус защиты прибыли 14".

Получить массив кораблей флота персонажа можно командой:

<RetVar> = <RefObj> get NPC fleet

Команда возвращает массив кораблей флота поддержки NPC персонажа <RefObj>

-------------------------
Теперь очистка.

<RefObj> release NPC

Команда переинициализирует NPC персонажа <RefObj>. Сбрасываются все настройки персонажа. Уничтожается персональный корабль персонажа (без эфекта взрыва), уничтожаются все корабли флота поддержки данного персонажа.

<RefObj> release NPC personal ship

Сбрасываются настройки персонального корабля персонажа NPC <RefObj>. Эта команда не уничтожает корабли флота поддержки.

<RetVar> = <RefObj> NPC wants to bail

Команда возвращает 1 если корабль готов сдаться и молит о пощаде. Ну это по установкам разработчиков. Всего в игре возможно шесть персонажей и каждый имеет свои пороги значения щитов и корпуса ниже которых персонаж якобы готов сдаться... Или не сдатья а попросить о помощи... Так или иначе это должно проверяться скриптами.

Вот таблица возращения TRUE этой командой для различных персонажей:

Рей Трасер
Щиты менее 10% Корпус менее 40%

Аманчкигнак
Щиты менее 15% Корпус менее 65%

Сн т'Тз
Щиты менее 10% Корпус менее 35%

Семента Винтарс
Щиты менее 15% Корпус менее 45%

Байо Ю
Щиты менее 15% Корпус менее 85%

Хурлис Тумулис Дереанис VII
Щиты менее 30% Корпус менее 45%

Это весь доступный набор персонажей.
Не знаю, на сколько эта команда полезна Подозрение.

Ещё более бесполезная команда:

<RetVar> = <RefObj> NPC is aggressive

Возвращает единицу для агрессивных персонажей. Заисит от самого персонажа:

Рей Трасер -> 1
Аманчкигнак -> 0
Сн т'Тз -> 1
Семента Винтарс -> 1
Байо Ю -> 0
Хурлис Тумулис Дереанис VII -> 1

Т.е. два не агресивных и четыре агресивных персонажа... Ничего по этому поводу сказать больше не могу.

Последнюю команду

<RefObj> NPC send voice message: id=<Var/Number>

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

Ну вот вроде... Теперь белых и желтых пятен стало меньше...
Надеюсь Chem внесёт инфу по командам создания BBS Quests из моей статьи. Там вроде я всё очень подробно описывал.

На сегодня информации достаточно. Переваривайте.
Если за все мои кодокопательства меня так и не номинируют на получение награды "Знаток X3" я начну огорчаться Хы...
_________________
Новое ещё не значит лучшее
    Добавлено: 11:43 29-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
ULiX :
<RetVar> = get power generator of ship/station type <Var/Ware>

Возвращает значение генератора лазеров для типа корабля или станции <Var/Ware>. Не понятно какой может быть генератор лазеров у станций.
Чем больше значение генератора лазеров, тем быстрее происходит восстановление мощности лазеров.

<RetVar> = <RefObj> get power generator

Возвращает значение генератора энергии лазеров для объекта <RefObj>. Фактически эта команда есть комплекс последовательных команд:

$WareType = $RefObj -> get ware type code of object
$PowerGen = get power generator of ship/station type $WareType


Какие же это лазеры -
Код:

     if(loc20==9&&(loc21>>16&255==7||loc21>>16&255==5||loc21>>
        16&255==6))
      {
      loc18=4;
      loc19=SA_GetTypeShieldPowerGeneration(loc21>>16&255,loc21&
         65535);
      }
     else
      {
      if(loc20==65542||loc20==65543)
       {
       loc18=4;
       loc19=loc21->GetShieldPowerGenerator();
       }

Шилд это.

ULiX :
<RetVar> = <RefObj> get NPC personal ship

Команда возвращает персональный корабль на котором в данный момент находится персонаж. По умолчанию у персонажа корабля нет, так как вы ему его не дали, поэтому команда вернёт... Нет не null она верёт не существующий корабль "Not Exists Object". Так что при проверке учтите, что если вы используете условие в виде:


Не согласен, смотри -
Код:

 if(TObj8048.PersonalShip&&!SE_ObjectExists(TObj8048.PersonalShip))
  {
  TObj8048.PersonalShip=0;
  }
 return(TObj8048.PersonalShip);

_________________
Умножим энтропию на 0 :-)
    Добавлено: 15:08 29-12-2007   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
ULiX :
Надеюсь Chem перечитает статью по созданию BBS и выпишет из неё описания команд.

я же писал:
Chem :
З.Ы.Ы. ULiX - Про квестовіе - помню Подмигиваю


В общем держите новую версию:
Описание:
Справочник по скриптовым командам игры X3:Reunion, в формате .chm.
version 0.3.41, build date 29.12.2007, 16:25
Имя файла: Commands-0.3.41.7z

В общем как и обещал - квесты учел. Исправления - тоже.
По некоторым моментам - смотри выше.
По поводу:
ULiX :
но он куда-то исчезал

хочу в преддверии Нового Года всем пожелать того, чтобы причин исчезать не было ни у кого и никогда!

З.Ы.
Насчет команд, которые совсем не описаны -
register god event: script=<Script Name> mask=<Var/Number>
abort god event: <Var/Quest>
finish god event: <Var/Quest>
<RefObj> connect wing command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>

И можно считать релиз-кандидатом. В качестве хелпа к редактору.
Дальше пойдут статьи и таблицы всякие, с картинками и т.п.

З.Ы.Ы. Добавил голосовалку.

З.Ы.Ы.Ы. Напоминаю - всегда параллельно с .chm версией обновляется веб-версия по адресу Справочник по скриптовым командам игры X3:Reunion


З.Ы.Ы.Ы.Ы. Заменил версию игры на версию движка.
_________________
Умножим энтропию на 0 :-)

Последний раз редактировалось: Chem (11:12 30-12-2007), всего редактировалось 4 раз(а)
    Добавлено: 17:30 29-12-2007   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Chem :
Не согласен, смотри -

Вот именно что вернёт 0 а не null
Null это когда тип данных DATATYPE_NULL и значение integer(0)
А эта команда вернёт значение 0 но тип данных DATATYPE_SHIP поэтому это не Null а не существующий объект. Проверено в скриптах.

C генераторами прогнался. Стереотипное мышление не у тебя одного Подмигиваю Я тоже этим грешу. Два сапога пара. Иногда лень проверять. Я просто почему-то когда писал о генераторах думал почему-то о команде "get maximum laser strength" с которой я до этого разбирался, как следвие заклинило, что раз это информация об оружии, значит и генераторы должны быть оружейными.

god event это что-то... Улыбка Перехват событий на уровне god engine Улыбка Пока что имеется только одно применение для генерации новостей BBS. GOD гененрирует хорошие и плохие события, а скрипты bad и good решают что бы такое замутить во вселеннной и сообщить об этом в новостях. Например пожар устроить чтоб весь товар сгорел, или метеоритом станцию снести... Всё это как-то странно работает, придётся напрячься. Кстати ключи для mask= задаются по тому же принципу, что и при создании BBS квестов, когда задаются обработчики событий для определённых объектов. Только в god event судя по всему можно перехватить любые сигналы от любых объектов. Например перехватывать все сигналы SIGNAL_KILLED или все сигналы SIGNAL_CAPTURED. Это как бы предварительная обработка сигнала, до того как будет запущен основной обработчик этого события для конкретного объекта. Короче, есть над чем поразмыслить. И есть где применить. Осталось только исследовать это.
_________________
Новое ещё не значит лучшее
    Добавлено: 14:02 08-01-2008   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
ULiX :
Вот именно что вернёт 0 а не null
Null это когда тип данных DATATYPE_NULL и значение integer(0)
А эта команда вернёт значение 0 но тип данных DATATYPE_SHIP поэтому это не Null а не существующий объект. Проверено в скриптах.


Все, согласен Подмигиваю.

ULiX :
god event это что-то.

Угу. И учитывая, что развития оно не имело, пока пропустим Подмигиваю.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 14:19 08-01-2008   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Теперь и веб-версия - на Элайт-Геймс!

Справочник по скриптовым командам игры X3:Reunion (version 0.3.51, build date 17.01.2008)

Оффлайн версию - тоже обновил.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 16:10 17-01-2008   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Похоже нашел, две неточности, которые перелезли с предыдущих версий. Как минимум в 2.5 версии уже не актуально следующее (выделено красным).
<RetVar/IF><RefObj> buy <Var/Number> units of <Var/Ware> :

· Данной командой осуществляется передача объекту-кораблю <RefObj> игровой команды "купить товар" <Var/Ware>, в количестве <Var/Number> units, на станции к которой корабль пристыкован (это обязательное условие, иначе вернет null).
· Если в грузовом отсеке корабля не хватает места или на станции нет достаточного количества указанного товара, то будет приобретено максимально возможное количество товара (либо сколько войдет, либо сколько есть на станции).
· Деньги снимаются со счета станции к которой приписан корабль, если корабль не имеет базы приписки, то деньги будут взяты со счета игрока (если не хватает денег то будет приобретено столько товара, на сколько денег хватит).
· Эта команда не будут работать с кораблями класса «большой корабль», если он пристыкован снаружи станции или дока.
· Команда возвращает количество реально приобретенного товара.

Так же проверено отсутствие данного ограничения в командах <RetVar/IF><RefObj> load <Var/Number> units of <Var/Ware> и <RetVar/IF><RefObj> unload <Var/Number> units of <Var/Ware>. Проверял на TL и с аргонской верфью..

<RefObj> put into environment <RefObj> :

· Команда позволяет поместить корабль <RefObj> в определенное окружение environment <RefObj>.
· Не путайте эту команду с навигационной командой fly to, т.к. эта инструкция просто перемещает объект в указанную среду.
· Средой для перемещения может являться сектор или станция, а объектом корабль.
· Будьте осторожны при работе с большими кораблями, их при помощи этой команды можно перемещать только в сектор, т.к. перемещаемый корабль помещается непосредственно в стыковочный док, а не в шлюз (то есть, внутрь станции). Если вы все таки попробуете переместить большой корабль на станцию, то перемещение произойдет, но корабль никогда не сможет взлететь со станции.
· При перемещении объекта в сектор, он появиться по координатам в которых он находился в предыдущем секторе.

Проблем не обнаружил, по крайней мере на аргонской верфи и с ТЛ. Наверное стоит допроверять, и написать - что если отрабатывает проверка - is docking possible of - то можно применять put.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 16:48 22-02-2008   
Reliant
 175 EGP


Рейтинг канала: 6(478)
Репутация: 33
Сообщения: 232
Откуда: Москва
Зарегистрирован: 07.12.2002
ULiX :

<RefObj> start task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value> arg5=<Value>

Дополнение от пилота AlexYar :

Однако стабильная работа стеков, отличных от нулевого, возможна только в том секторе, где находится игрок. В остальных работа стеков будет либо заморожена, либо будет нестабильна (игра их выкинет просто напросто, хотя и не в 100% случаев).
Такая ситуация наблюдается в игре со стандартными обжами.
Т.е. использование стеков кроме 0 не рекомендуется в удаленных секторах.


Удалить дополннение от этого пилота. Я уважаю его мнение, но в данном случае его дополнение звучит слишком угрожающе, а XTM и мой Droid живое подтвеждение его неправоты. Может в версиях 1.4 и менее это возможно имело место, но сейчас это безосновательное утвеждение отпугивающее молодых скриптеров от использования фоновых скриптов. Другое дело, что навигационные команды могут вызывать сбой работы основного нулевого стека, если их использовать в других стеках одновременно с работой в нулевом стеке.

Насколько я помню в другом месте он писал, что это происходит при использовании SETA (я подозреваю, чтобы X3 могла компенсировать падение производительности и возможно это не касается станций (куча скриптов использует же слоты 10 -19 для процессов управления станциями) )

to Chem: ты это удалил из раздела вызова скриптов, а из раздела общих команд забыл
_________________
Открылась бездна, звезд полна; Звездам числа нет, бездне дна.
    Добавлено: 16:51 01-04-2008   
Chem
 780 EGP


Скрипт-мастер
Рейтинг канала: 15(2610)
Репутация: 248
Сообщения: 4751
Откуда: Киев
Зарегистрирован: 08.01.2007
Ок, спасибо.
_________________
Умножим энтропию на 0 :-)
    Добавлено: 18:06 01-04-2008   
Reliant
 175 EGP


Рейтинг канала: 6(478)
Репутация: 33
Сообщения: 232
Откуда: Москва
Зарегистрирован: 07.12.2002
Раздел "Управление исполнением цикла" - опечатка "Управление исполнением программы", и там отсутствуют операторы if , if not (надо отметить что if not применятся к результату всего следующего за ним выражения).

В операторах "write to log file ..." - если номер лога задать отрицательным то записи не будет (удобно отключать протоколирование, если в качестве параметра передавать переменную).

Я думаю нужно включить список типов данных, прерываний, флагов и глобальных констант или хотя бы указать что информация из справочника DragonP соответствует X3.
_________________
Открылась бездна, звезд полна; Звездам числа нет, бездне дна.
    Добавлено: 08:10 05-04-2008   
AlexYar
 1848 EGP


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

Зарегистрирован: 26.10.2003
AlexYar :
Однако стабильная работа стеков, отличных от нулевого, возможна только в том секторе, где находится игрок.


Ulix :
Другое дело, что навигационные команды могут вызывать сбой работы основного нулевого стека, если их использовать в других стеках одновременно с работой в нулевом стеке


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

Ну и в стеках турелей нельзя использовать скрипты, которые для турелей не предназначены, так как стеки турелей в удалённом секторе фризятся.
    Добавлено: 13:56 26-04-2008   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008»
На страницу: Пред.  1, 2, 3 ... 9, 10, 11, 12, 13  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: А мне очень нравится группа "Модератор" с композицией "Тема закрывается". (Squad о музыкальных пристрастиях)

  » Справочник по скриптовым командам (X3)|v. 0.3.54|05.07.2008 | страница 10
Каналы: Новости | 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