|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.» |
|
|
AquiloS 90 EGP
Рейтинг канала: 2(15) Репутация: 7 Сообщения: 692
Зарегистрирован: 14.08.2009 |
|
За это конечно спасибо, я пользовался старым справочником, но вышеперечисленного я не нашел (
Завтра проверю можно ли получить список лазеров из этого:
Cкрытый текст (кликните здесь для просмотра)
RetVar> get subtype of ware <Var/Ware>
engine v. 32
· Команда возвращает подтип товара <Var/Ware>. Подтип – это идентификатор товара в группе идентичных по типу товаров. Подтипы товаров описываются во внутренних файлах-описателях находящихся в папке \types, эти файлы содержат информацию о визуальной модели, цене и еще множество внутренних параметров. Подробно тип и принадлежащие им подтипы описаны в приложении
<RetVar> get ware from maintype <Var/Number> and subtype <Var/Number>
engine v. 32
· Команда возвращает товар, заданный значениями типа maintype <Var/Number> и подтипа subtype <Var/Number>.
<RetVar> get number of subtypes of maintype <Var/Number>
engine v. 32
· Команда возвращает количество подтипов объектов для типа maintype <Var/Number>.
|
Если подтипы числовые то можно и вопрос снимается.
Из этого можно получить список секторов и проверять является ли ближайший где продают заданный корабль текущим в списке, получить список секторов продажи, но это сильно изврат, нет пути проще?
Cкрытый текст (кликните здесь для просмотра)
<RetVar/IF>get sector from universe index: x=<Var/Number>, y=<Var/Number>
engine v. 32
· Команда возвращает сектор находящийся по указанным координатам во вселенной Х. Индексация секторов начинается начинается с индексов x=0, y=0, с верхнего левого сектора соответствующего в стандарте сектору Kindom End.
<RetVar>get max sectors in x direction
engine v. 32
· Команда возвращает число соответствующее размеру матрицы карты вселенной Х по оси X. Т.е это максимально возможное количество секторов по оси Х.
<RetVar>get max sectors in y direction
engine v. 32
· Команда возвращает число соответствующее размеру матрицы карты вселенной Х по оси Y. Т.е это максимально возможное количество секторов по оси Y.
|
А вот капаситор корабля и ускорение с маневренностью я так и не нашел, буду за них благодарен.
Также ищу скорострельность лазера и энергоемкость выстрела лазера.
И если "get bullet speed of laser" коректно работает со скоростью ракет то "get range of laser" возвращает что-то не то. Как получить дальность ракеты?
Нет, не удалось найти верфи продажи через команду
<RetVar/IF> find station: product <Var/Ware> with min. jumps: max.price=<Var/Number>, amount=<Var/Number>, max.jumps=<Var/Number>, startsector=<Var/Sector>, trader=<Var/Ship/Station>, exclude array=<Value>
Нужна еще и команда поиска ближайшей/всех верфей где продается корабль заданного типа.
_________________ Истинная гармония - лежит между Абсолютной гармонией и Абсолютным хаосом.
Последний раз редактировалось: AquiloS (17:39 28-10-2015), всего редактировалось 3 раз(а) |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
"Скрипты - это легко..." - не фига не легко!
Внял совету скриптёров и перешёл от метода "тыка" к изучению скриптов. Друзья подскажите пожалуйста, что означает закомментированная строка в скрипте. Имеется ввиду не коментарий, а рабочая строка. Какой приоритет у неё?
И если, как я думаю эта строка не имеет значения, за чем её оставляют в скрипте. Иногда в скриптах живут несколько закомментированых строк...
Спасибо.
_________________ На фоне космоса - человечество, всего лишь пыль!
Последний раз редактировалось: Thug (13:45 19-12-2015), всего редактировалось 1 раз |
|
|
za4ot 477 EGP
Рейтинг канала: 5(187) Репутация: 15 Сообщения: 3257 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012 |
|
Thug : |
Друзья подскажите пожалуйста, что означает закомментированная строка в скрипте.
|
Пример был бы кстати. Но могу предположить, что закомментированная строка это остатки, которые обычно остаются после отладки скрипта или какие-нибудь функции, которые автор предпочел отключить в финальном релизе, но на всякий случай оставил. Ну и приоритет у них такой же как и у комментария - никакой.
_________________ Пираты - наше всё! |
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
Да, приоритет - 0.
А комменты оставляют себе, чтоб легче было потом найти определенный кусок скрипта, который что-то делает. Ну, или же тестовые отладки убирают.
Комменты нужны прежде всего самому скриптеру.
и да, "Скрипты - это легко..."
добавлено спустя 3 минуты:
Thug : |
Внял совету скриптёров и перешёл от метода "тыка" к изучению скриптов.
|
Правильно, ничего сложного нет. Есть вопросы - спрашивай, расскажу. Какой движок имеем ввиду - МД или СЕ? и по тому и по другому расскажу и покажу
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (14:57 19-12-2015), всего редактировалось 1 раз |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
by.@ztek : |
Есть вопросы - спрашивай, расскажу. Какой движок имеем ввиду - МД или СЕ? и по тому и по другому расскажу и покажу
|
Спасибо за поддержку. Вопросов много - времени на всё мало..
Скриптовый движок СЕ вожусь в Х3, обращаюсь сюда ибо там "тишина". МД тоже интересен, кажется весь ТерКонфл написан на МД.
Собственно и вопрос:
Столкнулся с ситуацией - писал сообщения к скрипту, некоторые фразы вделил цветным шрифтом. Выделял обычный текст: <<\033B...\033X>> и к аргументу скрипта: <<\033Y%s\033Z>>.
Cкрытый текст (кликните здесь для просмотра)
Пример скриптовой команды:
043 $Message=sprintf: pageid=1 textid=103, null, null, null, null, null
044 [PLAYERSHIP] -> send incoming message: text=$Message temporary=[FALSE]
return null
Пример сообщения:
<t id="103">\033B Администрация станции:\033X \033Y%s\033Z\n\n
Ваша станция \033Y%s\033Z куплена нами как \033W"Утиль сырьё"\033X по фиксированной цене.\n
Цена за одну Б/У станцию: \033Y%s\033Z кредитов. Сумма переведена на Ваш счёт.\n
\033B Бортовой компьютер:\033X\n
Ваш бывший: \033Y%s\033Z кр.\n
Ваш текущий: \033Y%s\033Z кр.</t>
|
Просматривал скрипты в браузере xml и в скриптредакторе.
Всего написал 6 сообщений к одному скрипту, все цветные и большие... Итог - вылетела видеокарта. Видеокарте всего 2 года GTX560, не плохо справлялась с Х3.
Вот чешу репу и думаю мог ли скрипт повредить видеокарту или это было простое совпадение.
Ну типа: <<\033B...\033X>> и <<\033Y%s\033Z>> нельзя писать вперемешку, в одной строке, разных цветов и в таких кол-вах в одном сообщении? Если кто знает подскажите. Спасибо.
_________________ На фоне космоса - человечество, всего лишь пыль! |
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
Да, интересно. Видюха от такого не могла вылететь, это ж просто раскраска текста.
_________________ Совершенству нет предела... |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
Интересно, скриптовый принцип создания команд работает только в рамках игры Х3 или это вообще язык программирования на компьютере?
_________________ На фоне космоса - человечество, всего лишь пыль! |
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
Это помесь какая-то, сам эгософт пишет, что это не язык программирования: "Note that the MD script language is not disigned as a programming language". Просто построение скриптов придерживается некоторых правил.
_________________ Совершенству нет предела... |
|
|
harryz 90 EGP Репутация: 4 Сообщения: 916
Зарегистрирован: 16.11.2014 |
|
1. Кто-нибудь знает как реализовать утраченную команду "собрать развернутое оборудование", ведь спутник и ЛБ, когда не в трюме - корабль?
2. Пишу скрипт на какую-то единственную команду, но при выполнении, просит лишний раз указать корабль или станцию(которая ему без разницы), а не сразу выдает список. (например add blυeprints tο player HQ)
Как сделать чтобы сразу список выдавал, не задавая лишних вопросов?
|
|
|
za4ot 477 EGP
Рейтинг канала: 5(187) Репутация: 15 Сообщения: 3257 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012 |
|
harryz : |
1. Кто-нибудь знает как реализовать утраченную команду "собрать развернутое оборудование", ведь спутник и ЛБ, когда не в трюме - корабль?
|
Один из вариантов это найти координаты ваших спутников (за лазерные башни не скажу) в секторе/вселенной, записать их в массив и по команде "собрать развернутое оборудование", с помощью навигационных команд типа: лететь в точку, передать их кораблю подборщику. Он полетит по маршруту и соберет спутники (за лазерные башни не скажу).
Второй вопрос ниразу не понял.
Последний раз редактировалось: za4ot (18:17 04-01-2016), всего редактировалось 1 раз |
|
|
harryz 90 EGP Репутация: 4 Сообщения: 916
Зарегистрирован: 16.11.2014 |
|
za4ot : |
Он полетит по маршруту и соберет спутники (за лазерные башни не скажу).
Второй вопрос ниразу не понял.
|
Так в том и проблема, что ЛБ, спутники и дроны - корабли а не "flying ware". Разве что удалять и в трюме рисовать новые, но тогда непоняток еще больше.
Второй вопрос, в том, что допустим, запускаем команду "add blυeprints tο player HQ: type=<Var/Ship Type>" но он зачем-то спрашивает вначале указать станцию/корабль(любой, без разницы), а только потом предлагает выбрать из списка собственно эту самую единственную переменную "<Var/Ship Type>"
|
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
harryz : |
1. Кто-нибудь знает как реализовать утраченную команду "собрать развернутое оборудование", ведь спутник и ЛБ, когда не в трюме - корабль?
|
А чем не нравится команда <RetVar> = get ship array: of race <Var/Race> class/type=<Value>?
Находим все объекты класса, например, {Stationary Ship} расы (игрок). Или другой командой можно воспользоваться <RetVar> = <RefObj> -> get player owned ship array from sector (сектора в цикле пустить), да и другими...
2. Запустить скрипт из другого простого скрипта, указать явно "тип/переменную".
_________________ Совершенству нет предела... |
|
|
za4ot 477 EGP
Рейтинг канала: 5(187) Репутация: 15 Сообщения: 3257 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012 |
|
harryz : |
Так в том и проблема, что ЛБ, спутники и дроны - корабли а не "flying ware".
|
Ну не знаю, я спутники да и дроны свои прекрасно собирал просто налетая на них. За ЛБ не скажу - никогда ими не пользовался.
_________________ Пираты - наше всё! |
|
|
harryz 90 EGP Репутация: 4 Сообщения: 916
Зарегистрирован: 16.11.2014 |
|
by.@ztek : |
Находим все объекты класса, например, {Stationary Ship} расы (игрок).
|
Найти-то можно, а вот как их собрать???
by.@ztek : |
А чем не нравится команда <RetVar> = get ship array: of race <Var/Race> class/type=<Value>?
|
Что-то не разобраться как с массивом работать.
Последний раз редактировалось: harryz (16:36 09-01-2016), всего редактировалось 1 раз |
|
|
XXXL 77 EGP
Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010 |
|
harryz : |
by.@ztek : |
Находим все объекты класса, например, {Stationary Ship} расы (игрок).
|
Найти-то можно, а вот как их собрать???
|
za4ot : |
Один из вариантов это найти координаты ваших спутников (за лазерные башни не скажу) в секторе/вселенной, записать их в массив и по команде "собрать развернутое оборудование", с помощью навигационных команд типа: лететь в точку,...
|
harryz : |
Разве что удалять и в трюме рисовать новые,...
|
Предварительно проверив класс груза и место в трюме.
|
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
harryz : |
Найти-то можно, а вот как их собрать???
|
Так они ж собраны. "Array". Не надо пугаться -это массив, в котором записаны -сектор, координаты x,y,z. И может быть записано многое другое. Просто в цикле вынимаем значение1,2 и т.д. И уж дальше работаем с ними...
_________________ Совершенству нет предела... |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
Пытаюсь уменьшить заряд энергии лазера, после выполнения команды кораблём. Скрипт урезан, оставлено нужное. Красным выделил свои не работающие абра-кадабры)) Братцы помогите, как правильно написать команду? Не получается сбросить заряд энергии.
* Назначить корабль
001 set script command: [PLAYERSHIP]
002 $Ship=get script command
003 skip if$Ship -> is of type Апокалипсис М2
004 return null
005
006 * Проверка на наличие заряда энергии лазера.
007 $Saryad=$Ship -> get current laser strength
008 if$Saryad < 75000
012 else
113
114 * Действие - Уничтожение Врат.
115 $gate -> destruct: show no explosion=[FALSE]
116 @ =wait 500 ms
117 * Сбросить энергию лазеров до нуля.
118 $MinSaryad=0
119 if$gate == null
120 $Saryad=$MinSaryad
122 end
125 return null
_________________ На фоне космоса - человечество, всего лишь пыль!
Последний раз редактировалось: Thug (12:32 21-02-2016), всего редактировалось 1 раз |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
При стрельбе из орудий на корабле снижается заряд энергии лазеров, за тем восстанавливается. Друзья возможно ли скриптом снизить энергию как при стрельбе, но не делая при этом выстрела? Команда: get current laser strength - возвращает значение текущего заряда энергии. А вот команды устанавливающей данный параметр, к примеру : set current laser strength - в скрипт редакторе не существует. Может кто пытался подобное проделать, поделитесь пожалуйста) Опыта мало, пытался по разному, не получается..
_________________ На фоне космоса - человечество, всего лишь пыль! |
|
|
by.@ztek 315 EGP
Рейтинг канала: 5(218) Репутация: 50 Сообщения: 795 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010 |
|
Вот так я делал в одном из своих скриптов (Логика Орбитальных Оружейных Платформ, здесь в скриптовом отсеке есть они):
$generator.power = $curr.owp->get maximum laser strength
$curr.owp->set laser energy to $generator.power
_________________ Совершенству нет предела... |
|
|
Thug 67 EGP
Рейтинг канала: 3(26) Репутация: 4 Сообщения: 111 Откуда: Новороссийск Зарегистрирован: 11.11.2013 |
|
by.@ztek : |
$generator.power = $curr.owp->get maximum laser strength
$curr.owp->set laser energy to $generator.power
|
Я не сказал, извиняюсь - игра Х3.
Такой команды: set laser energy to в скрипт редакторе Х3 нет. Видимо в ТС уже есть...
Думал как обмануть игру, но четно...
_________________ На фоне космоса - человечество, всего лишь пыль! |
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.» |
|