|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|
|
dark_j
135 EGP
  Рейтинг канала: 1(3) Репутация: 7 Сообщения: 121 Откуда: Москва Зарегистрирован: 03.06.2004
 |
|
Создаю эту тему в надежде собрать здесь всякие полезности о написании скриптов
Собсно первый вопрос
Существует ли способ добавить свои пунктики в меню связи с объектом (например когда при выбранной станции нажимаешь "с")?
|
|
|
.koval unreg
|
|
имхо, нет.
а как можно массив глобально объявить а не только Var/String?
|
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
2.koval
Делаешь (например):
$array = array alloc: size=3 (скоко надо)
$index[0] = $value1
$index[1] = $value2
$index[2] = $value3
set global variable: name='name' value=$array
Потом его можно зачитать по
$array = get global variable: name='name'
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
.koval
99 EGP
 Репутация: 4 Сообщения: 103 Откуда: Kyiv, UA Зарегистрирован: 30.11.2003
 |
|
тьфу блин.. а я думал глобальными этой командой можно сделать тока Var/Number/String сенкс!
|
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
Люди, кто ковырял команду
set safe position of sector object <Var/Number>: x=<Var/Number> y=<Var/Number> z=<Var/Number>
В чем там смысл? И почему главный параметр Var/Number ? Это что, ID объекта или как?
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
.koval
99 EGP
 Репутация: 4 Сообщения: 103 Откуда: Kyiv, UA Зарегистрирован: 30.11.2003
 |
|
ну как я понял - да. индекс получить можно командой из того же раздела (get sectorObject id?)
safe - безопасный. ты не пробовал ставить станцию поверх станции? они тогда ударяются и станция возвращается на место, а если safe - то просто выберется свободное место рядом, если место занято чем-то (как пример - выгруз станции из TL'а. ты же не можешь её поставить слишком близко к какому-либо объекту).
|
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
А как ее правильно использовать? Последовательность действий, плиз, если можно.
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
.koval
99 EGP
 Репутация: 4 Сообщения: 103 Откуда: Kyiv, UA Зарегистрирован: 30.11.2003
 |
|
ну я приблизительно так понимаю:
$obj = get tracking aim
$id = $obj -> get sectorObject id
set safe position of sector object $id: x=$x y=$y z=$z
|
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
А координаты - это координаты точки отсчета, или именно туда передвинется?
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
.koval
99 EGP
 Репутация: 4 Сообщения: 103 Откуда: Kyiv, UA Зарегистрирован: 30.11.2003
 |
|
это координаты "именно туда". как по карте смотришь (вот там курсор указывается координатами в километрах). 1 unit == 1m
то есть (0,0,0) - центр сектора
|
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
Я собственно, чего спрашиваю. Есть задача для устройства для захвата астероидов выгружать "в безопасном месте". Т.е., чтобы добрые игроки не грохали астероидами всякие им не принадлежащие объекты . Имеем координаты корабля, из которого будет происходить выгрузка. Сейчас астероид просто появляется по координатам корабля со смещением по всем осям 1,5 км. Есть идеи, как красиво организовать безопасную выгрузку?
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
.koval
99 EGP
 Репутация: 4 Сообщения: 103 Откуда: Kyiv, UA Зарегистрирован: 30.11.2003
 |
|
легко!
единственный бок - невозможность получения id объекта, когда он ещё не создан предлагаю.. вывалить астероид где-нить по координатам за пределами живого сектора (где точно кораблей и станций нет.. скажем.. за 200км по всем осям), получить его id, поставить по set safe с координатами выгружающего корабля
|
|
|
Usharik
125 EGP
  Репутация: 9 Сообщения: 102 Откуда: IL Зарегистрирован: 14.05.2004
 |
|
A кaк вooбще дoбaвить свoй пункт в меню ?
И мoжнo ли в скрипте пoлучить (кoл-вo руды и.т.п)инфoрмaцию oб aстерoиде дo егo скaнирoвaния спец. устрoйствoм.Или мoжнo кaк-тo пoлучить эти дaнные пoсредствoм сaмoгo скaнерa aстерoидoв(тoже из скриптa)?
_________________ А что будет,если два раза испугаться до полусмерти?! |
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
2Usharik
Скачай мой скрипт "Устройство для захвата астероидов", посмотри тело скрипта в редакторе или в браузере (для этого в одной папке со скриптом должен лежать x2script.xsl из папки scripts игры). В скрипте init.asteroid.catcher увидишь, как добавлять команды, а в load.asteroid.xml помотришь процесс определения продуктивности астероида. Если что непонятно, пиши мне в приват. Еще почитай на первой странице топика «Скриптами делимся, скриптами» пост Breeze, там много интересного.
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
CTPELOK
145 EGP
  Репутация: 25 Сообщения: 375
Зарегистрирован: 20.05.2003
 |
|
У меня такие вопросы:
Есть константа THIS, как ее трактовать.
И кто что знает, выложите инфу по константам, что они значат.
_________________ То пропадаю, то снова появляюсь |
|
|
Warlock
88 EGP
 Репутация: 13 Сообщения: 305 Откуда: Москва Зарегистрирован: 23.07.2001
 |
|
вопрос. скачал скрипт, скопировал в папку scripts. как теперь его активизировать? написано что надо просто запустить, как? запускаю его в папке - открывается html-документ.
объясните плз
_________________ Продаю EGP, курс 1:1 :) |
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
2CTPELOK
Самые часто используемые константы:
THIS - указатель на объект, который только что получил команду и занялся ее выполнением. Например, вы запустили на корабле команду "Покупать товар". Этот корабль и будет THIS.
ENVIRONMENT - возвращает объект-окружение для другого объекта. Например, если корабль в космосе, то его окружение объект "сектор", а если пристыкован к базе - "база" и т.п.
SECTOR - возвращает объект-сектор, в котором находится объект.
PLAYERSHIP - корабль, в котором сидит игрок
HOMEBASE - база приписки корабля
OWNER - владелец объекта
Есть еще константы для функций find, они описаны в хелпе по Х2.
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
2Warlock
Скрипты запускаются либо при старте игры автоматически (имя должно начинаться с "init."), либо ручками из редактора скриптов по букве "R".
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
XenonTomb
250 EGP
   Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004
 |
|
.koval : |
легко!
единственный бок - невозможность получения id объекта, когда он ещё не создан предлагаю.. вывалить астероид где-нить по координатам за пределами живого сектора (где точно кораблей и станций нет.. скажем.. за 200км по всем осям), получить его id, поставить по set safe с координатами выгружающего корабля
|
Блин, представляешь, попробовал - и нифига. Астероид х.з. где создается, но в новое место не перемещается. Видимо, команда думает, что там достаточно безопасно...
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
Gward
310 EGP
  Рейтинг канала: 2(21) Репутация: 75 Сообщения: 1307 Откуда: Ставрополь Зарегистрирован: 11.06.2004
 |
|
Коммандеры, как можно в тело рабочего скрипта передать указание на прерывание? То есть как скрипт может реагировать на внешние раздражители в виде доп. данных?
|
|
|
|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|