Уроки танцев на СКРИПТАХ от MistR (От чайника для чайника) | 08.08.2013 12:09:15 Andreilogvin
Репутация: 0 Сообщений: 3 Регистрация: 01.08.2013 | | Malstrime писал(а):Как обычно.
| Код:- skip if not get global variable: name=shipcreateonence
- return null
- set global variable: name=shipcreateonence value=1
- <сколько угодно нужных команд (создание корабля и т.д.)>
- ...
- ...
- ...
|
| |
И еще не забудьте подредактировать скрипт вне игры, как в 5 части указанного выше поста. |
| |
А можно по подробней пример (с начала названия скрипта и до окончания) Пожалуйста!!!!!! |
Редактировалось 1 раз (а). Последний раз 08.08.2013 12:11:31. |
| | 08.08.2013 23:47:58 Ugarich
Репутация: 0 Сообщений: 16 Регистрация: 05.02.2011 | Помогите разобраться с раздачей команд турелям. Нужна скриптовая команда или несколько команд, которые будут раздавать турелям команды так, как будто их раздал игрок из меню приказов (Навроде Носовая турель>Сбивать ракеты, Кормовая турель>Атаковать всех врагов, Команда всем турелям>Защищать корабль). Да, и желательно это реализовать на версии скриптового движка из X3 R (конкретно Xtended mod).
Я себе всю голову сломал, как это сделать.
Вот это заставляет корабль лететь и атаковать ближайшего врага, при этом в консоли появляется:
Команда: Атаковать ближайшего врага Крайт [Атак.Ближ] (Летаю на Крайте, без arg1= [PLAYERSHIP]-> не работает)
001 START [PLAYERSHIP]-> command COMMAND_ATTACK_NEAREST : arg1= [PLAYERSHIP]-> , arg2= null , arg3= null , arg4= null 002 return null
А вот это не работает, турели молчат, в консоли ничего не меняется:
001 START [PLAYERSHIP]-> command COMMAND_TURRET_KILL_ENEMIES : arg1= [PLAYERSHIP]-> , arg2= 1 , arg3= null , arg4= null 002 return null |
|
| | 14.08.2013 06:18:25 Ugarich
Репутация: 0 Сообщений: 16 Регистрация: 05.02.2011 | Куда все подевались? Мне тут одному грустно в космосе... |
Редактировалось 1 раз (а). Последний раз 14.08.2013 15:08:31. |
| | 25.09.2013 03:14:14 DeN4iK_26RUS
Репутация: 0 Сообщений: 8 Регистрация: 16.09.2013 | доброго времени суток. вопрос по первому уроку. как надо написать скрипт, чтобы на верфь добавлялся не один, а несколько кораблей одновременно? |
|
| | 08.10.2013 22:53:59 ki4444
Репутация: 15 Сообщений: 160 Регистрация: 21.11.2012 | | DeN4iK_26RUS писал(а):доброго времени суток. вопрос по первому уроку. как надо написать скрипт, чтобы на верфь добавлялся не один, а несколько кораблей одновременно? |
| |
я так сделал:  |
|
| | 11.10.2013 13:00:43 DeN4iK_26RUS
Репутация: 0 Сообщений: 8 Регистрация: 16.09.2013 | Так да, вот только я для каждого корабля выбирал станцию. |
|
| | 12.10.2013 11:25:14 Destroyerm
Репутация: 433 Сообщений: 958 Регистрация: 09.08.2011 | | Ugarich писал(а):А вот это не работает, турели молчат, в консоли ничего не меняется:001 START [PLAYERSHIP]-> command COMMAND_TURRET_KILL_ENEMIES : arg1= [PLAYERSHIP]-> , arg2= 1 , arg3= null , arg4= null 002 return null |
| |
корабль игрока атакует своими же турелями самого себя? *facepalm* либо я чтото не поняла может быть и потому что это команда приказы на определённые единицы, а вы приказали атаковать всех врагов.. мб поэтому... хоть насчёт "атакует своими же турелями самого себя" я чот не понимаю... |
Редактировалось 3 раз (а). Последний раз 12.10.2013 11:30:38. |
| | 12.10.2013 12:04:56 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | Зачем гадать? Посмотри там где эта команда назначается (в дефолте !init.ship.globalscriptmap.std.xml), а потом сам обработчик и его аргументы. |
|
| | 15.10.2013 20:22:28 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | Подскажите пожалуйста, какой командой (если такая вообще существует) следует воспользоваться для того, чтобы сохранить информацию (допустим, список всех кораблей расы Аргон) во внешний файл? |
|
| | 15.10.2013 20:35:31 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | | MiB2k писал(а):Подскажите пожалуйста, какой командой (если такая вообще существует) следует воспользоваться для того, чтобы сохранить информацию (допустим, список всех кораблей расы Аргон) во внешний файл? |
| |
Весь список нельзя, только построчно. Для этого существуют три команды в "Командах бортжурнала" вида write to log file. Различаются аргументами. Файл создается в директории игры (... \Документы\Egosoft) | Код:- write to log file <Число> append=<TRUE/FALSE> value=<Текст>
|
| |
Аргументы: 1. Число, с которым назовется файл, с добавлением ведущих нулей, напр. 00068.log при 68. 2. Добавлять ли строку в конец файла или начинать сначала. 3. Строка текста | Код:- write to log file <Число> append=<TRUE/FALSE> printf:fmt=<Текст шаблона>, <Значение>, <Значение>, <Значение>, <Значение>, <Значение>
|
| |
3. Строка шаблона, "%s" в ней будут последовательно заменяться на следующие аргументы. | Код:- write to log file <Число> append=<TRUE/FALSE> pageid=<Число> textid=<Число>, <Значение>, <Значение>, <Значение>, <Значение>, <Значение>
|
| |
3, 4. То же, что и в предыдущей команде, но строка шаблона берется из page/id текстовой страницы. |
Редактировалось 1 раз (а). Последний раз 15.10.2013 21:03:52. |
| | 15.10.2013 21:17:02 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а):Весь список нельзя, только построчно. Для этого существуют три команды в "Командах бортжурнала" вида write to log file. Различаются аргументами. Файл создается в директории игры (... \Документы\Egosoft) ... |
| |
Спасибо огромное  Тогда еще 1 вопрос: есть у нас волшебная строчка | Код:- $shipsArray = get ship array: of race {Argon} class/type = null
|
| |
как я могу из этого массива получить только уникальные значения по типу/классу корабля? Например, мне нужны только М3 аргона, но не в том виде, как они содержатся в массиве, а что-то вроде того, как мы видим на верфях. Это реально сделать, или проще работать с уже готовым дампом? |
|
| | 15.10.2013 21:31:01 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | | MiB2k писал(а):как я могу из этого массива получить только уникальные значения по типу/классу корабля? Например, мне нужны только М3 аргона, но не в том виде, как они содержатся в массиве, а что-то вроде того, как мы видим на верфях. Это реально сделать, или проще работать с уже готовым дампом? |
| |
Можно, конечно, включить в фильтр и M3 как класс и получить все экземпляры M3 аргона, потом в цикле убрать неуникальные. Но есть еще команда get ship type array: maker race=<Var/Race> class=<Value> которая, вроде бы, должна выдавать именно типы, а не корабли, ибо в списке того, что можно купить на верфи, мы видим именно типы. |
Редактировалось 1 раз (а). Последний раз 15.10.2013 21:44:23. |
| | 15.10.2013 21:51:10 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а):Можно, конечно, включить в фильтр и M3 как класс и получить все экземпляры M3 аргона, потом в цикле убрать неуникальные. Но есть еще команда get ship type array: maker race=<Var/Race> class=<Value> которая, вроде бы, должна выдавать именно типы, а не корабли, ибо в списке того, что можно купить на верфи, мы видим именно типы. |
| |
Вот! Это уже ближе к тому, что я хотел видеть)) Еще раз огромное спасибо)) А есть какая-то возможность узнать, что в себе содержат объекты этого массива? Какие их свойства можно вызывать, а какие - без толку? |
|
| | 15.10.2013 22:02:43 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | | MiB2k писал(а):А есть какая-то возможность узнать, что в себе содержат объекты этого массива? Какие их свойства можно вызывать, а какие - без толку? |
| |
Логично предположить, что, раз это ссылка на тип, а не инстанс, то с ней нельзя работать стандартными объектными командами, то бишь свойств напрямую не получить. Возможно, существуют какие-то сакральные способы, но мне они неизвестны. При попытке какого-либо вывода как строки тип тупо выдаст свое имя. |
Редактировалось 1 раз (а). Последний раз 15.10.2013 22:05:10. |
| | 15.10.2013 22:14:07 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а):Логично предположить, что, раз это ссылка на тип, а не инстанс, то с ней нельзя работать стандартными объектными командами, то бишь свойств напрямую не получить. Возможно, существуют какие-то сакральные способы, но мне они неизвестны. При попытке какого-либо вывода как строки тип тупо выдаст свое имя. |
| |
А вот это обидно... и не могу найти никаких мануалов по этому поводу. Остается только научный метод :( Как вариант, конечно, можно попробовать сделать выборку из двух списков одновременно - эдакий весьма своеобразный select и join |
|
| | 15.10.2013 22:26:05 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | | MiB2k писал(а):А вот это обидно... и не могу найти никаких мануалов по этому поводу. Остается только научный метод :( Как вариант, конечно, можно попробовать сделать выборку из двух списков одновременно - эдакий весьма своеобразный select и join |
| |
С некоторыми свойствами типа все же можно как-то работать, но если нужны именно подробности, то действительно логично использовать именно экземпляры кораблей. Зависит от задачи все же. Если цель выдрать характеристики всех кораблей, которые только могут быть, то имхо лучше не заморачиваться со скриптами, а парсить непосредственно ресурсы игры, TShips, в частности. | MiB2k писал(а):Цель - выдрать все характеристики всех кораблей и на основе этой инфы сделать возможность сравнения/сортировки по нескольким параметрам одновременно. |
| |
Конечно, отпарся TShips и переведя данные в SQL, например, можно черта лысого навертеть, как заблагорассудится. |
Редактировалось 1 раз (а). Последний раз 15.10.2013 22:37:37. |
| | 15.10.2013 22:32:02 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а):С некоторыми свойствами типа все же можно как-то работать, но если нужны именно подробности, то действительно логично использовать именно экземпляры кораблей. Зависит от задачи все же. Если цель выдрать характеристики всех кораблей, которые только могут быть, то имхо лучше не заморачиваться со скриптами, а парсить непосредственно ресурсы игры, TShips, в частности. |
| |
Цель - выдрать все характеристики всех кораблей и на основе этой инфы сделать возможность сравнения/сортировки по нескольким параметрам одновременно. Похожие сервисы есть, в частности на этом сайте, но нигде я не встречал возможности включения сразу нескольких фильтров. |
|
| | 15.10.2013 22:53:57 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а): Конечно, отпарся TShips и переведя данные в SQL, например, можно черта лысого навертеть, как заблагорассудится. |
| |
А где можно найти какие-нить мануалы по формату? |
|
| | 15.10.2013 23:02:53 boojum
Репутация: 2505 Сообщений: 1626 Регистрация: 20.08.2013 | | MiB2k писал(а):А где можно найти какие-нить мануалы по формату? |
| |
Признаться, не задавался целью, хоть и мысль такая была. Поищите, должно быть. Имхо, даже эмпирический подбор значений по X3Editor вполне реален, хоть и кропотлив. |
|
| | 15.10.2013 23:03:45 MiB2k
Репутация: 0 Сообщений: 8 Регистрация: 07.10.2013 | | boojum писал(а):Признаться, не задавался целью, хоть и мысль такая была. Поищите, должно быть. Имхо, даже эмпирический подбор значений по X3Editor вполне реален, хоть и кропотлив. |
| |
Нашел исходники X3Editor. Теперь все немного проще |
|
|
|