|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|
|
ZAd 64 EGP
Репутация: 5 Сообщения: 185 Откуда: Minsk, Belarus Зарегистрирован: 11.08.2004 |
|
А где мона почерпнуть азы скриптописания (как начать и где). Кодить в реале вроде умею, хотелось бы и тут попробовать.
|
|
|
Usharik 125 EGP
Репутация: 9 Сообщения: 102 Откуда: IL Зарегистрирован: 14.05.2004 |
|
Цитата: |
XennonTomb
Несколько советов для тех, кто хочет научиться писать свои скрипты, но не знает как к этому подступиться:
1) Распечатайте раздел хелпа по Х2 про скрипты.
http://www.elite-games.ru/x2/mapeditor.shtml
На сегодняшний момент он немного не полон, но для начала хватит. Читать с бумаги приятнее, и всегда можно посмотреть, когда будете ваять в редакторе.
2) Внимательно изучите распечатку. Проясните для себя, какие возможности есть у различных групп команд. После нескольких прочтений вы многое запомните.
3) Запустите редактор, создайте новый скрипт и попробуйте вводить разные команды. Вы быстро разберетесь со способами ввода, редактор практически не дает возможностей ошибаться.
4) Изучите небольшие скрипты других авторов.
http://www.elite-games.ru/conference/viewtopic.php?t=20941
Их можно смотреть в браузере, не запуская Х2. Для этого надо чтоб в одной папке со скриптами был файл x2script.xsl из папки scripts игры. Разберитесь, пользуя распечатку, что, как и почему сделано.
5) Когда вы решитесь писать что-то свое, сначала тщательно все продумайте. Можно взять листик с ручкой, и нарисовать понятную себе схему алгоритма.
6) После того как базовая задумка будет реализована, поищите в скрипте слабые места. Ошибки всегда лучше выявлять до, а не после.
7) Пред тем как испытывать ваш скрипт, смоделируйте все в голове, возможно, вы чего-то не учли.
8) Не стесняйтесь спрашивать, если вам чего-то не понятно. Все с удовольствием постараются вам помочь."
|
Вoт a если чтo не пoлучится пиши сюдa.Я всегдa тaк делaю.
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Цитата: |
Это вариант перебрать все корабли игрока и выбрать с нужной базой. Слишком медленно. Вот по твоей ссылке нашлось то, что надо <RetVar>= <RefObj> get ship array from sector/ship/station
|
Помоему это не совсем то, что тебе надо. Эта функция выдает массив пристыкованных кораблей к станции/кораблю, если <RefObj> станция/корабль. Либо массив кораблей в секторе (но исключая все корабли что пристыкованы в момент запуска функции), если <RefObj> сектор.
Warstone : |
Подскажите пож. как при создании корабля(пердположим Аргонский М1), Дать турелям команду охранять корабль???
|
Есть команда
<RefObj> start task <Var/Number1> with script <Script Name> and prio <Var/Number2>: arg1=<Value1> arg2=<Value2> arg3=<Value3> arg4=<Value4> arg5=<Value5>
где <RefObj> твой М1;
<Var/Number1> = 1 для турели 1, ... =6 для турели 6;
<Script Name> = '!turret.protect.std'
<Var/Number2> = 0;
Все аргументы = null
Lazy Cat : |
Вопрос: есть ли в Х2 способ назначить свой обработщик сигнала так, чтобы он не мешал другим?
|
Нет. Надо извращаться: подменять стандартный обработчик на свой и затем вызывать все остальные обработчики (включая стандартный если надо) из него. И надо предусмотреть еще кучу всяких бяк, напимер signal_attacked посылается постоянно почти при каждом попадании по кораблю. А еще все скрипты-обработчики запускаются в одном стеке (Task 0) и выполняются согласно приоритетов. Т.е. только 1 самый приоритетный скрипт выполняется в стеке, остальные будут приостановлены, пока этот приориттный скрипт полностью не завершится. Поставить @wait в нем недостаточно, чтобы дать менее приоритетному скрипту поработать, нужна конструкция:
set script priority to 30
@ call script 'MyScript2' with prio=35
@ wait 5000 ms
А если 'MyScript2' был запущен раньше, то имей ввиду, что команда set script priority меняет приоритеты сразу, но они вступают в силу лишь при завершении следующей команды. Т.е. вариант
@ call script 'MyScript2' with prio=35
...
set script priority to 30
@ wait 5000 ms
будет работать так: 'MyScript2' запустится после 5-секундной задержки.
|
|
|
unkAlien 421 EGP
Рейтинг канала: 1(1) Репутация: 36 Сообщения: 860 Откуда: Челябинск Зарегистрирован: 05.06.2004 |
|
akm : |
Помоему это не совсем то, что тебе надо. Эта функция выдает массив пристыкованных кораблей к станции/кораблю, если <RefObj> станция/корабль. Либо массив кораблей в секторе (но исключая все корабли что пристыкованы в момент запуска функции), если <RefObj> сектор.
|
Уже заметил Ну так что, есть такая команда или нужно перебирать все корабли игрока?
P.S. Хочу написать простенький скрипт, который будет автоматически переименовывать станции к виду Имя_сектора - Тип_станции - Порядковый_номер_станции и корабли-транспортеры к виду Имя_базы - TR - Порядковый_номер Тока не надо за меня писать - сам хочу все сделать
|
|
|
Usharik 125 EGP
Репутация: 9 Сообщения: 102 Откуда: IL Зарегистрирован: 14.05.2004 |
|
Н-ндя-я..Есть исчo:
<RetVar>= <RefObj> get player owned ship array from sector
...и вперёд пo сектoрaм.Тoлькo если кoрaбль в мoмент скaнирoвaния сектoрa в гиперпрыжке,
тo oн впoлне мoжет oкaзaться в oтскaнирoвaннoм сектoре, a этo уже
...и нaвернoе функция не вoзврaтит дaнные пристыкoвaвшиxся кoрaбли.
|
|
|
Дрег Ден 205 EGP
Репутация: 52 Сообщения: 571
Зарегистрирован: 06.08.2004 |
|
А как заставить какой-нибудь скрипт запускаться при старте карты (измененной)?
_________________ DFO, DOD. |
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Цитата: |
Н-ндя-я..Есть исчo:
<RetVar>= <RefObj> get player owned ship array from sector
...и нaвернoе функция не вoзврaтит дaнные пристыкoвaвшиxся кoрaбли.
|
100% не вернет! Надо пользоваться этой командой, и потом еще в цикле перебирать все станции в секторе и получать с каждой массив пристыкованных кораблей функцией get ship array from sector/ship/station.
|
|
|
SeNest 165 EGP
Рейтинг канала: 1(9) Репутация: 21 Сообщения: 927 Откуда: Санкт-Петербург Зарегистрирован: 28.12.2003 |
|
2 akm
Не бейте сильно за вопрос.Я тут попал с энтими скриптами- решил проверить скрипт Nividium, патч 1.4, ну поставил фабрику в сектор где храм Гонеров, полетал, вроде все хорошо, забыл в общем про это дело, а потом хась в этот сектор, а игруха меня в винду- всюду могу летать, окромя этого сектора, а хоцца еще страховок прикупить, а не могу. Собственно кто-нить может подсказать выход, а то я севы уже похерил где этой фабрики не было...
|
|
|
Sapper.
|
|
Господа скриптописатели , подскажите пожалуйста где можно взять пример скрипта как правильно установить работоспособную фабрику неписей ?
|
|
|
Sapper.
|
|
На первый вопрос ответ уже нашел , хотел задать второй , какой командой можно дать другое имя любой станции ?
|
|
|
Smith 100 EGP
Репутация: 10 Сообщения: 132
Зарегистрирован: 15.06.2004 |
|
Можно ли модифицировать стандартные скрипты на тему скорости, а именно:
скорость сделать зависимой от заполнения его грузового отсека. Ну если большой груз - то медленнее бегает, порожняком - быстрее и ускорение и управляемость тоже в зависимость поставить?
Тогда можно будет все лишнее за борт если ноги уносим
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Цитата: |
какой командой можно дать другое имя любой станции ?
|
<RefObj> set serial name of station to <Var/Stations Serial> (в разделе General Object Commands)
Команда появилась только в в.1.4.
Smith : |
Можно ли модифицировать стандартные скрипты на тему скорости, а именно:
скорость сделать зависимой от заполнения его грузового отсека. Ну если большой груз - то медленнее бегает, порожняком - быстрее и ускорение и управляемость тоже в зависимость поставить?
Тогда можно будет все лишнее за борт если ноги уносим
|
Можно. Но вот стоит ли? Ведь атакующие корабли всегда пустые, вооружение/щиты не так уж много весят, ну кроме крупнокалиберного, что на М2/М1.
И релизму это тоже не добавит. В Х2 ведь не железнодорожный транспорт, а космический В космосе вес не влияет на макс. скорость. Впрочем, знающие физику скажут, что в Х2 корабли скорее "плавают" в неком эфире, причем весьма густом ... но это уже совсем другая история
2 SeNest
Выход должен быть, по идее. Т.е. расковырять этот скрипт и посмотреть, где его автор нахомутал. Потом написать спец. скрипт по "расхомутанию". Работы от 5 мин. до 1 ч в зависимости от сложности этого скрипта "шахта нивидиума". Ну и не факт еще, что там существует этот баг. Кинь мне этот скриптец на a-k-m@nm.ru. Будет время - гляну.
|
|
|
ada_23 90 EGP
Репутация: 3 Сообщения: 114 Откуда: Калгари, Канада Зарегистрирован: 13.12.2003 |
|
Может кто поможет - нужен скрипт, при помощи которого на станцию в конкретном секторе(допустим Пиратскую базу в Оре Белт) можно добавить какой нибудь товар (допустим руду)...
|
|
|
Antony
|
|
Люди, я пишу скрипты недавно(1 день). Не обижайтесь если вопрос покажется тупым.
$ware = ... GetAmountOfWare...
$ware содержит число или количество определенного товара?
Как удалить товар? Есть команда AddWare и ее можно использовать для удаления. Это путь через ,или так и надо?
|
|
|
AleLuk
|
|
Люди, подскажите плиз!
Как запустить скрипт автоматически при загрузке сэйва (в.1.4)?
Есть в папке scripts файл - init.имя.xml
Есть также сам скрипт имя.xml
Запустить-то я его запускаю из редактора скриптов - все работает, но меня не устраивает 2 пункта:
1) Редактор скриптов так и остается включенным даже если сохранился а затем опять загрузил этот сейв
2) Если запущен редактор скриптов, то в информации о корабле когда листаешь PgDn появляется всякая лабуда типа отладочной инфы
Можно ли выключить редактор скриптов после того как через него запускался собственный скрипт?
Или как заставить запуститься скрипт НЕ через редактор скриптов?
Заранее спасибо.
|
|
|
Lazy Cat 405 EGP
Рейтинг канала: 1(4) Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004 |
|
AleLuk : |
Люди, подскажите плиз!
Как запустить скрипт автоматически при загрузке сэйва (в.1.4)?
Есть в папке scripts файл - init.имя.xml
Есть также сам скрипт имя.xml
|
Скрипт должен называться setup.plugin.имя.xml, тогда он будет автоматически запускаться в 1.4 при старте новой игры или загрузке сейва без редактора скриптов.
AleLuk : |
Запустить-то я его запускаю из редактора скриптов - все работает, но меня не устраивает 2 пункта:
1) Редактор скриптов так и остается включенным даже если сохранился а затем опять загрузил этот сейв
2) Если запущен редактор скриптов, то в информации о корабле когда листаешь PgDn появляется всякая лабуда типа отладочной инфы
Можно ли выключить редактор скриптов после того как через него запускался собственный скрипт?
Или как заставить запуститься скрипт НЕ через редактор скриптов?
Заранее спасибо.
|
1. Да, и с этим ничего не поделаешь. Разве что считаться с сейва, где редактор скриптов не был запущен.
2. Угу, очень полезная инфа, между прочим ... Хотя если тебе не надо - не смотри, там дальше всерано ничего нужного нет, так что особо не мешает.
Выключить нельзя, разве что загрузить сейв с нективированным редактором.
|
|
|
mouse_male 230 EGP
Рейтинг канала: 1(7) Репутация: 64 Сообщения: 822 Откуда: St-Petersburg Зарегистрирован: 23.07.2004 |
|
Г-да скриптологи!
Прочитал - не нашёл ничего по теме, поэтому спрашиваю:
Как изменить, что и где, когда в драй-доках вместо описания и названия новых кораблей из ребаланса появляются слова ReadText.
Язык в ланг.дат 44 устанавливал правильно...
Почему спрашиваю, - только что пришло письмо от коллеги из-за рубежа, у которого таже самая проблема с тем же английским вариантом...
Буду очень признателен, если поможете...
С уважением, мышь-самец
_________________ -Желаю, чтобы все!
-И вам того же! (С) |
|
|
AleLuk 50 EGP
Репутация: 2 Сообщения: 20 Откуда: Украина, Первомайский Зарегистрирован: 20.08.2004 |
|
2 Lazy Cat:
Пробовал как советовал - не получается автоматом запустить скрипт, токо через редактор
Народ, у кого-нить запускаются скрипты автоматом под в.1.4?
Если есть такие скрипты подскажите плиз де взять или мыльните мне примерчик такого скриптика.
_________________ Sapienti sat... |
|
|
Пассажир
|
|
Цитата из форума egosoft:
"Signed scripts have a digital signature which means that the script can be loaded and run in a game where the script editor has not been enabled".
|
|
|
AleLuk 50 EGP
Репутация: 2 Сообщения: 20 Откуда: Украина, Первомайский Зарегистрирован: 20.08.2004 |
|
ivm : |
Цитата из форума egosoft:
"Signed scripts have a digital signature which means that the script can be loaded and run in a game where the script editor has not been enabled".
|
Значит с автозапуском можно и не париться, а жаль...
|
|
|
|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|