|  |  |  | 
	| Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» | 
	|  | 
	|  | 
	
		| Shaddie 
  556 EGP 
       Рейтинг канала: 4(60)
 Репутация: 118
 Сообщения: 261
 Откуда: Томск
 Зарегистрирован: 09.09.2004
 
      |  | Добавляем новые команды в скрипт редактор 
 На данный момент добавляет в скрипт редактор 31 новую команду и
 восстанавливает работоспособность одной команды.
 Так же добавлена возможность изменения максимального склада для станций.
 Измененяет версию скрипт редактора на 26.
 
 Начиная с версии 0.00:
 
 1. <RetVar>=get trade ranking
 Возвращает торговый рейтинг игрока.
 2. add trade ranking to player: <Var/Number>
 Увеличивает торговый рейтинг игрока на заданное значение (0..1000000).
 3. <RetVar>=get fight ranking
 Возвращает боевой рейтинг игрока.
 4. add fight ranking to player: <Var/Number>
 Увеличивает боевой рейтинг игрока на заданное значение (0..1000000).
 5. play music track <Var/Number>
 Прерывает воспроизведение текущего музыкального трека и начинает циклическое воспроизведение музыкального трека с заданным номером.
 0 прерывает воспроизведение текущего музыкального трека.
 
 Начиная с версии 0.01:
 
 6. <Var/Sector> set music track <Var/Number>
 Установить для заданного сектора музыкальный трек с заданным номером.
 Воспроизведение текущего музыкального трека не прерывается.
 
 Начиная с версии 0.02:
 
 7. set change track to combat music <Var/Number>
 Установить признак изменения музыкального трека при приближении врага.
 0 - отключить, 1 - включить.
 
 Начиная с версии 0.03:
 
 8. <RetVar>=get music track from sector <Var/Sector>
 Возвращает номер музыкального трека воспроизводимого для заданного сектора.
 9. <RefObj> set hull to <Var/Number>
 Установить заданное значение корпуса.
 
 Начиная с версии 0.04:
 
 Новые команды вынесены в новый раздел "Extended commands".
 Добавлена возможность изменения максимального склада для станций.
 
 10. <RefObj> set shield percent to <Var/Number>
 Установить величину щита в заданный процент.
 11. <RetVar> get array from <Var/String>
 Получить массив из строки.
 
 Начиная с версии 0.05:
 
 12. create sector: owner=<Var/Race> x=<Var/Number> y=<Var/Number>
 Создать сектор принадлежащий выбранной расе с заданными координатами.
 13. <Var/Sector> set cutscene to <Var/Number>
 Установить для заданного сектора номер cutscene (скайбокс).
 14. <RefObj> set known by player to <Var/Number>
 Установить для объекта (сектор, ворота, станция и т.д.) флаг отображения.
 
 Начиная с версии 0.06:
 
 15. set playership to <Var/Ship>
 Переместить игрока в выбранный корабль. Действие команды аналогично действию Transporter Device.
 16. dock player to <Var/Ship/Station>
 Пристыковать корабль игрока к выбранной станции или кораблю. Действие команды аналогично действию Docking Computer.
 17. set player tracking aim to <RefObj>
 Выбрать заданный объект в прицел корабля игрока.
 
 Начиная с версии 0.07:
 
 18. <RetVar>=<Var/Sector> get sun array from sector
 Возвращает массив содержащий все солнца в выбранном секторе.
 19. <RetVar>=<Var/Sector> get planet array from sector
 Возвращает массив содержащий все планеты в выбранном секторе.
 20. <RetVar>=<Var/Sector> get nebula array from sector
 Возвращает массив содержащий все туманности в выбранном секторе.
 21. <RetVar>=<Var/Sector> get special array from sector
 Возвращает массив содержащий все специальные объекты в выбранном секторе.
 22. <RetVar>=<Var/Sector> get flying ware array from sector
 Возвращает массив содержащий все контейнеры с товаром в выбранном секторе.
 
 Начиная с версии 0.08:
 
 23. <RetVar>=<Var/Warpgate> get destination sector
 Возвращает сектор в который ведут выбранные ворота.
 24. save game to slot: <Var/Number>
 Сохраняет игру в выбранный слот. Использование 20 слота аналогично автосохранению.
 25. load game from slot: <Var/Number>
 Загружает игру из выбранного слота.
 26. <RetVar>=<Var/Ship/Station> get owned ship array from ship/station
 Возвращает массив содержащий все корабли приписанные к заданному объекту.
 27. <RetVar>=<Var/Ship> get ware array from ship
 Возвращает массив содержащий все товары что есть на заданном корабле.
 
 Начиная с версии 0.09:
 
 Восстановлена работоспособность скрипт команды:
 <RetVar/IF> get notoriety from race <Var/Race> to race <Var/Race>.
 
 28. <RefObj> set shield to <Var/Number>
 Установить заданное значение щита.
 29. <RefObj> set invincible to <Var/Number>
 Установить признак "непобедимости" для заданного объекта.
 0 - отключить, 1 - включить.
 
 Начиная с версии 0.10:
 
 В связи с тем, что некоторые возможности по изменению obj файлов доступны только из ассемблера obj файлов, новые версии патча отныне будут выходить в новом формате. А именно: в виде файлов asm для ассемблера obj файлов от пилота CheckerTwo.
 
 30. write to xml file #<Var/Number> pageid=<Var/Number> textid=<Var/Number> value=<Value>
 Создает/перезаписывает текстовый файл-описатель с именем заданным первым параметром команды.
 В файл, для заданных pageid и textid, записывается значение value.
 
 Начиная с версии 0.11:
 
 Версия скрипт редактора изменена на 26.
 
 31. send incoming question <Var/String> to player: display it=<Var/Number> callback=<Script Name>
 Посылает сообщение-вопрос игроку.
 При выборе игроком одного из вариантов ответа, вызывается заданный скрипт в который передается значение ответа.
 Пример использования команды в архиве.
 
 Начиная с версии 0.12f:
 
 Добавлен (только для объектов класса Factory) вызов скрипта
 !station.cmd.build.pl. Скрипт запускается сразу после заполнения списка
 производимой продукции и ресурсов для станции (AddDefaultProductsAndResources).
 
 Для 10 добавленных в TFactories.txt станций (SubType = 242..251) добавлена возможность задать соответствующий значок при выводе на карте сектора.
 
 Добавлен вызов скрипта !ship.cmd.build.pl. Скрипт запускается из процедуры установки движком типовой конфигурации оборудования (TSHIP.AddDefaultItems) на корабль (оружие, ракеты, щиты и т.д.) и фактически должен заменять ее.
 В случае отсутствия необходимости установки оборудования из скрипта в нем следует добавить вызов команды "add default items to ship".
 
 Для скрипт команды <RetVar>=<RefObj> find nearest missile aiming to me добавлена возможность работы с объектами класса TSTATION, TGATE, TASTEROID и TMISSILE.
 
 Добавлен вызов скрипта !player.signal.killed. Скрипт запускается в момент уничтожения корабля на котором находится игрок (game over). В случае если данный скрипт будет найден уничтожения корабля игрока не произойдет (уничтожить игрока нужно уже из этого скрипта).
 
 32. quick warp to sector <Var/Sector>
 Перемещает корабль игрока в центр заданного сектора без отсчета времени и проигрывания голоса.
 33. set player ship to <Var/Ship> no animation
 Переместить игрока в выбранный корабль без показа анимации. Команда работает для ВСЕХ кораблей в секторе с игроком.
 34. <RetVar/IF>=<RefObj> fire missile <Var/Ware> on <Value> new
 Объекту <RefObj> запустить 1 ракету <Var/Ware> в цель <Value>. Команда работает для ВСЕХ объектов которые находятся в одном секторе с кораблем игрока.
 35. <RetVar>=<RefObj> get array of missiles aiming to me
 Возвращает массив содержащий все ракеты нацеленые на объект <RefObj>. Команда работает с объектами класса TSHIP, TSTATION, TGATE, TASTEROID и TMISSILE.
 36. <RetVar>=<RefObj> get current max speed
 Возвращает текущую максимальную скорость объекта с учетом апгрейдов скорости.
 37. <RetVar>=<RefObj> get current speed
 Возвращает текущую скорость объекта. Для объектов находящихся не в секторе с кораблем игрока возвращает максимальную скорость объекта (current max speed).
 38. eject player from ship
 Катапультировать игрока из корабля. Работа этой команды аналогична нажатию SHIFT + E.
 
 Инструкция по применению в архиве.
 
 Ассемблер:
 
 Сайт пилота CheckerTwo
 
 Ассемблер XA_ASM. Версия 03.22b (110 Kb)
 
 X2-ASM - это проcто! - в этой теме вы можете задавать вопросы по использованию XA_ASM, а так же скачать последнюю версию ассемблера.
 
 
 
	
		| ux2story_12f.rar |  
		| Описание: |  |  
		| Имя файла: | ux2story_12f.rar |  
		| Размер файла: | 24.19 KB |  
		| Скачано: | 1515 раз(а) |  
 Последний раз редактировалось: Shaddie (15:00 14-04-2006), всего редактировалось 1 раз
 | 
		
		|  | 
    |  | 
	
		| unihorn 
  220 EGP 
     Репутация: 60
 Сообщения: 464
 Откуда: Москва
 Зарегистрирован: 26.10.2004
 
      |  | Если так то...  Сейчас глянем... | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
 Теперь пашет
   
 Следует в ридмишке особо отметить, что добавление описаний в свой файл-описатель не прокатывает!  Добавлять нужно только в основной файл-описатель х0001.xml  .
 
 зыж Переводчикам Х2 на заметку - обновляйте перевод от ЕГ сразу, включив туда эти команды. Иначе пользователям модов с данными функциями перевода от ЕГ не видать как собственных ушей, а будут пользоваться только теми переводами, какими пользуются авторы модов.
 
 
 
 
	  | Shaddie : |  
	  | 5. play music track <Var/Number> |  
 А можно сделать вариацию данной команды, чтобы изменяемы трек _прописывался_ в сейвах для данного сектора? Ну чтобы по возвращению в сектор играл изменный трек, а не родной для сектора. Или это невозможно реализовать?
   
 зыж Добавил в тему "Внимание моддерам и скриптописателям" ссылку на данную тему
   | 
		
		|  | 
    |  | 
	
		| XArgon 
  1425 EGP 
         Рейтинг канала: 2(11)
 Репутация: 395
 Сообщения: 4153
 Откуда: Интернеты
 Зарегистрирован: 06.08.2005
 
    |  | 
	  | Цитата: |  
	  | Так можно написать и добавление денег, и новые корабли себе (например, хакский М1) |  Во первых, эти команды в редакторе УЖЕ есть, во вторых - проведи опрос, НИКТО сдесь не пользуется скрипт эдитором как читом!!!
  Но по твоему, как, хорошо будет, если человек напишет миссию, очень интересную и очень сложную?  А чтоб она не была нахаляву, дать после выполнения игроку 1000 кредиток, боевой дрон, и + очко боевого рейтинга.   
 Лично моё ИМХО
  - Shaddie - Ма-ла-ца!   | 
		
		|  | 
    |  | 
	
		| DragonP 
  281 EGP 
    Рейтинг канала: 3(27)
 Репутация: 108
 Сообщения: 527
 Откуда: Новосибирск
 Зарегистрирован: 18.12.2004
 
      |  | Чето ссылка не пашет _________________
 Звезды зовут...
 | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
	  | DragonP : |  
	  | Чето ссылка не пашет |  
 Пульнул в тебя мылом
   | 
		
		|  | 
    |  | 
	
		| Shaddie 
  556 EGP 
       Рейтинг канала: 4(60)
 Репутация: 118
 Сообщения: 261
 Откуда: Томск
 Зарегистрирован: 09.09.2004
 
      |  | 
Сделал.
	  | AlexYar : |  
	  | А можно сделать вариацию данной команды, чтобы изменяемы трек _прописывался_ в сейвах для данного сектора? |  
 Смотри в первом посте.
 | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
 Уря!!!!!
 
 А так, чтобы трек не сменялся при приближении врага?
   
 А исчо - get music track тоже было бы неплохо
   | 
		
		|  | 
    |  | 
	
		| Shaddie 
  556 EGP 
       Рейтинг канала: 4(60)
 Репутация: 118
 Сообщения: 261
 Откуда: Томск
 Зарегистрирован: 09.09.2004
 
      |  | 
Могу вообще отключить смену трека при приближении врага. Нужно?
	  | AlexYar : |  
	  | А так, чтобы трек не сменялся при приближении врага?   |  
 
 
В смысле вернуть текущий проигрываемый трек или трек установленный для сектора?
	  | AlexYar : |  
	  | А исчо - get music track тоже было бы неплохо |  | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
	  | Shaddie : |  
	  | Могу вообще отключить смену трека при приближении врага. Нужно? |  
 А сделать что-нить set mode music 0|1 вроде этого мона? Чтобы и так и так можно было включать ?
 | 
		
		|  | 
    |  | 
	
		| Shaddie 
  556 EGP 
       Рейтинг канала: 4(60)
 Репутация: 118
 Сообщения: 261
 Откуда: Томск
 Зарегистрирован: 09.09.2004
 
      |  | 
Попробую. Только со свободным временем могут возникнуть проблеммы.
	  | AlexYar : |  
	  | Чтобы и так и так можно было включать ? |  | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
	  | Shaddie : |  
	  | Попробую. Только со свободным временем могут возникнуть проблеммы. |  
 И вот это тоже глянть сразу, ок? По времени не шибко горит, у меня пока скрипты пишутся, аудиообработку потом можно будет вставить (у меня уже давно привычка пометки для таких команд делать есть, на тебя надеялси
  ) 
 
 
	  | AlexYar : |  
	  | get music track тоже было бы неплохо |  
 Ну и сразу на будущее (пока я сам не забыл
  ) - есть-ли возможность сделать команду с несколькими аргументами для проигрывания списка муз.треков (чтобы при завершении одного начинался следующий по списку), типа такого: 
 play list of track: Value1, Value2, Value3, Value4, Value5, Value6      либо сразу так:
 
 play music array: Array
 
 где Array - последовательность названий муз треков.
 
 зыж Если это реализуемо, готов взять на себя обязательство сделать скриптовой плэйер с возможностью добавления своей музики в игру и составления плэйлистов
   | 
		
		|  | 
    |  | 
	
		| DragonP 
  281 EGP 
    Рейтинг канала: 3(27)
 Репутация: 108
 Сообщения: 527
 Откуда: Новосибирск
 Зарегистрирован: 18.12.2004
 
      |  | Если удасться привести ScE в должный вид (в смысле добавить команды которых так не хватает), то может получиться так, что Х3 будет отдыхать.   _________________
 Звезды зовут...
 | 
		
		|  | 
    |  | 
	
		| unihorn 
  220 EGP 
     Репутация: 60
 Сообщения: 464
 Откуда: Москва
 Зарегистрирован: 26.10.2004
 
      |  | Как на счет поиска планет в секторе (чтобы не заранее прописывать на них указатели)? 
 И насчет фичи редактора с непосредственным помещением корабля в док, если станция в томже секторе (в том смысле, чтобы все нужные видеомодели окружения в память загружались)?
 
 Реально это сдеать?
 _________________
 Мир ищу, где волки агнцам служат,
 И нету слуг верней
 Где слезы никого не душат
 Не ведают смертей
 | 
		
		|  | 
    |  | 
	
		| Krom 
  455 EGP 
    Рейтинг канала: 1(1)
 Репутация: 159
 Сообщения: 1988
 Откуда: Горы Урала
 Зарегистрирован: 19.07.2005
 
    |  | unihorn: Всякое действие должно оправдываться целесообразностью. Приведи пример, где тебе это понадобилось.
 _________________
 Не спешите меня.
 | 
		
		|  | 
    |  | 
	
		| unihorn 
  220 EGP 
     Репутация: 60
 Сообщения: 464
 Откуда: Москва
 Зарегистрирован: 26.10.2004
 
      |  | 
	  | Krom : |  
	  | Всякое действие должно оправдываться целесообразностью. Приведи пример, где тебе это понадобилось. |  
 Поиск планет, для того чтобы обеспечить более реальную имитацию посадок на них.
 
 Примерный алгоритм следующий:
 
 1). находится планета, береется в цель (стандартными скриптами, в игре, не обеспечеш), телепартируешся к ней на некоторое растояние (для сокращения времени подлета), далее летишь на сближение (можно всякие сообщения (не мессагебоксы, а сообщения на подобии связи, в нижнем, левом углу) показывать - о ходе посадки, и даже звук тормозных движков прекрутить);
 
 2). на некотором близком растоянии, переносишся в окружение дока специально созданной (в секторе в котором находится планета)станции (уничтожаемой после использования), которая эмулирует порт планеты (скриптами можно обеспечить изменяемый разброс цен для торговли).
 
 3). если решил не идти на сближение (а решил лететь в противоположную сторону), то через некоторое время телепартируешся обратно (посадка отменена).
 
 Все это (кроме возможности коректно найти планету как объект, и коректно переместить корабль пилотируемый игроком в окружение станции (с загрузкой видеомодели окружения)), реально обеспечить стандартными скриптами.
 | 
		
		|  | 
    |  | 
	
		| Krom 
  455 EGP 
    Рейтинг канала: 1(1)
 Репутация: 159
 Сообщения: 1988
 Откуда: Горы Урала
 Зарегистрирован: 19.07.2005
 
    |  | А мне всегда хотелось устанавливать текущий уровень щита и корпуса. Представляете себе авианосец, совмещённый с ремонтной базой? Одновременно воюют с десяток истребителей, но на смену подбитым вылетают свежие, а те садятся и чинятся... 
 Кстати, не помешают ли совершать приближение к планете стандартные скрипты? Там вроде алгоритм ухода от столкновений шибко боязливый.
 _________________
 Не спешите меня.
 | 
		
		|  | 
    |  | 
	
		| unihorn 
  220 EGP 
     Репутация: 60
 Сообщения: 464
 Откуда: Москва
 Зарегистрирован: 26.10.2004
 
      |  | 
	  | Krom : |  
	  | Кстати, не помешают ли совершать приближение к планете стандартные скрипты |  
 После предварительной телепортации (на расстояние с которого не придется полчаса (на сэте) до планеты лететь) - тут алгоритм ухода от столкновений ни как помешать не может, можно сближаться в ручную (ручным управлением то есть, а не автопилотом), так пожалуй будет интереснее.
 
 Хотя главное приблизится на некоторое расстояние (для реализма), а как сделаеш это - точно в ручную, или петляя на автопиле, не важно...
 
 
 
	  | Krom : |  
	  | Представляете себе авианосец, совмещённый с ремонтной базой? Одновременно воюют с десяток истребителей, но на смену подбитым вылетают свежие, а те садятся и чинятся... |  
 Насчет ремонтного дроида для авианосца не знаю, но для ястребов можно использовать набор скриптов Hull Repair System (по памяти пишу). Не плохая штука. Там правда, насколько помню, ремонт заменой осуществляется. А так поддерживаю, непосредственное указание подобных параметров вещь полезная.
 | 
		
		|  | 
    |  | 
	
		| AlexYar 
  1955 EGP 
                Рейтинг канала: 6(462)
 Репутация: 325
 Сообщения: 33299
 
 Зарегистрирован: 26.10.2003
 
    |  | 
	  | Krom : |  
	  | Одновременно воюют с десяток истребителей, но на смену подбитым вылетают свежие, а те садятся и чинятся... |  
 Это реально с выхода Х2 путем замены корабля новым.
 
 
 
	  | unihorn : |  
	  | Поиск планет, для того чтобы обеспечить более реальную имитацию посадок на них. |  
 Идея интересная, но излишне усложненная
  Вместо всех этих плясок с бубном, которые невозможно реализовать без исходников экзешника, есть способ гораздо более простой - по типу игры фрилансер. Можно даже 1 в 1 сделать с кольцами, и чтобы даже открывались (только звук не приткнуть). Вобщем-то, это уже давно обсуждалось и вполне легко реализуется с помощью 3ДМакса и плясок с конфигами. Просто модель станции делается в виде планеты, и все дела   
 Я вот даже нашел способ, как обхитрить игруху и заставить стрелять охранные пушки на станциях
   | 
		
		|  | 
    |  | 
	
		| CheckerTwo 
  550 EGP 
      Рейтинг канала: 4(96)
 Репутация: 103
 Сообщения: 412
 Откуда: Tomsk
 Зарегистрирован: 18.08.2004
 
    |  | 
	  | AlexYar : |  
	  | 
 
	  | Krom : |  
	  | : Одновременно воюют с десяток истребителей, но на смену подбитым вылетают свежие, а те садятся и чинятся... 
 |  Это реально с выхода Х2 путем замены корабля новым.
 |  
 Была идея добавить скрипт-команду "SetHull". Точнее это команда есть, но интерфейса к ней из xml-скриптов нет. Shaddie - как смотришь?
 | 
		
		|  | 
    |  | 
	|  | 
	
		|  | 
    |  | 
	| Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» | 
	
		|  |