| 
		 | 
		 | 
	
	| 
Канал 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: Скриптописание» | 
	
		| 
		
		 |