|
|
|
Канал 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 |
Скачано: |
1469 раз(а) |
Последний раз редактировалось: Shaddie (15:00 14-04-2006), всего редактировалось 1 раз |
|
|
unihorn 220 EGP
Репутация: 60 Сообщения: 464 Откуда: Москва Зарегистрирован: 26.10.2004 |
|
Если так то... Сейчас глянем...
|
|
|
AlexYar 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 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 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 26.10.2003 |
|
DragonP : |
Чето ссылка не пашет
|
Пульнул в тебя мылом
|
|
|
Shaddie 556 EGP
Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
AlexYar : |
А можно сделать вариацию данной команды, чтобы изменяемы трек _прописывался_ в сейвах для данного сектора?
|
Сделал.
Смотри в первом посте.
|
|
|
AlexYar 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 26.10.2003 |
|
Уря!!!!!
А так, чтобы трек не сменялся при приближении врага?
А исчо - get music track тоже было бы неплохо
|
|
|
Shaddie 556 EGP
Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
AlexYar : |
А так, чтобы трек не сменялся при приближении врага?
|
Могу вообще отключить смену трека при приближении врага. Нужно?
AlexYar : |
А исчо - get music track тоже было бы неплохо
|
В смысле вернуть текущий проигрываемый трек или трек установленный для сектора?
|
|
|
AlexYar 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 26.10.2003 |
|
Shaddie : |
Могу вообще отключить смену трека при приближении врага. Нужно?
|
А сделать что-нить set mode music 0|1 вроде этого мона? Чтобы и так и так можно было включать ?
|
|
|
Shaddie 556 EGP
Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004 |
|
AlexYar : |
Чтобы и так и так можно было включать ?
|
Попробую. Только со свободным временем могут возникнуть проблеммы.
|
|
|
AlexYar 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 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 1874 EGP
Рейтинг канала: 6(445) Репутация: 324 Сообщения: 32008
Зарегистрирован: 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: «Добавляем новые команды в скрипт редактор» |
|