Elite Games - Свобода среди звезд!
.
  » Скриптописание. Проблемы и их решение. | страница 55
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 55 из 55
На страницу: Пред.  1, 2, 3 ... 53, 54, 55    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » Модовый и скриптовый отсек X3: Terran Conflict: «Скриптописание. Проблемы и их решение.»
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Можно ли скриптами без MD создать всплывающее окошко Да/Нет с вопросом и соответственно чтоб выдавало True/False?
_________________
Пираты - наше всё!
    Добавлено: 09:54 04-11-2018   
DNA78
 330 EGP


Рейтинг канала: 8(994)
Репутация: 61
Сообщения: 617
Откуда: с гор
Зарегистрирован: 12.11.2008
za4ot :
Можно ли скриптами без MD создать всплывающее окошко Да/Нет с вопросом и соответственно чтоб выдавало True/False?

Конечно, это можно сделать ещё со времён X3 Reunion.
_________________
Очевидное-невероятное
    Добавлено: 13:24 04-11-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Блин, а как? Хочу чтоб при стыковке корабля к станции всплывало окошко и спрашивало отдать корабль или нет? В принципе заминка только с этим окошком.
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (15:31 04-11-2018), всего редактировалось 1 раз
    Добавлено: 15:30 04-11-2018   
DNA78
 330 EGP


Рейтинг канала: 8(994)
Репутация: 61
Сообщения: 617
Откуда: с гор
Зарегистрирован: 12.11.2008
za4ot :
В принципе заминка только с этим окошком.

Код:
send incoming question <Var/String> to player: callback=<Script Name>

- эта команда имеется ещё со времён X3 Reunion
Код:
<RetVar/IF> open custom menu: title=<Var/String> description=<Var/String> option array=<Var/Array>

- а эта добавлена в X3 Terran Conflict
___________________
а можно и просто вот так
Код:
<RetVar/IF><RefObj> get user input: type=<Script Reference Type>, title=<Var/String>

_________________
Очевидное-невероятное
    Добавлено: 17:10 04-11-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Посмотрел команды, попробовал так и этак - не нравиться, не то. Думаю прикручу просто хоткей и скрипт, который сам отдаст нужный корабль в нужном месте, и будет мне счастье. Хы...
_________________
Пираты - наше всё!
    Добавлено: 22:26 07-11-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Переписал с нуля свою сюжетку и вот там использовал такой финт:
$array1=ищем корабли на станции
$array2=ищем корабли в радиусе 5 км от станции
$array->array alloc size=0
append to $array value $array1
append to $array value $array2
вот думаю прокатит такая конструкция объединения двух массивов в один или придется переписать.

Еще попутно написал скрипт тумана войны. Каждый игровой день скрипт проверяет наличие в секторах кораблей или станций игрока и если их нет, то помечает сектор как неизвестный (с карты он естественно исчезает).
+++
Дополнительный стимул размещения спутников, орбитальных платформ и патрулей. Так-то я играл вообще без спутников и патрулей, а это целый кусок геймплея выпадает. Стимул исследовать вселенную и наращивать свое присутствие во всех секторах. А то я после запуска скрипта обнаружил, что играю всего в пяти секторах из 231.
---
Секторные и прочие торговцы без спутниковой сети никуда не полетят. У меня было трое, после запуска скрипта завершили сделки и сели на станциях намертво, ибо не видят куда лететь.

Ну как бы логичное обоснование происходящему, что вселенная огромная и динамичная, и данные, собранные хз когда протухают и не соответствуют действительности, а значит должны быть удалены с бортового компьютера.
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (00:17 10-12-2018), всего редактировалось 1 раз
    Добавлено: 21:55 09-12-2018   
Petrovytsh
 55 EGP

Репутация: 4
Сообщения: 38

Зарегистрирован: 05.02.2016
za4ot :
Ну как бы логичное обоснование происходящему, что вселенная огромная и динамичная, и данные, собранные хз когда протухают и не соответствуют действительности, а значит должны быть удалены с бортового компьютера.

У меня один вопрос: зачем и нах..?
В смысле, кому может придти в голову удалять навигационную информацию, пусть даже она устарела? Ведь "хоть какая-то" информация лучше, чем никакой. Ради "тумана войны"? Так он и так присутствует - есть спктники/корабли - все видно. Нет спутников/кораблей - есть только устаревшие данные о навигационной информации, типа врат, крупных астероидов, неподвижных станций.
Да и вообще:
za4ot :
Секторные и прочие торговцы без спутниковой сети никуда не полетят.

Этого уже достаточно для того, чтобы стараться эту сеть расширять.
    Добавлено: 12:02 10-12-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Petrovytsh :
Этого уже достаточно для того, чтобы стараться эту сеть расширять.

Когда сектора открыты они летят и без спутников, в том-то и суть хочешь, чтоб торговцы работали, держи в секторе спутник.
Petrovytsh :
У меня один вопрос: зачем и нах..?

Еще одна причина, что при наличии прыг двигателя и скрипта прыжок в док выполнение миссий по доставке слишком читерное получается. А с туманом войны сильно не попрыгаешь по крайней мере сначала нужно будет прыгнуть в сектор, а потом в док, а не сразу в док.
Ну как бы скрипт был написан между делом, просто идея показалась интересной, но все равно спасибо за мнение. Хотя мне кажется, что он мог бы привнести в игру некоторое разнообразие. В принципе пока с ним не поиграешь трудно сказать в какую сторону он изменит геймплей в лучшую или худшую.
_________________
Пираты - наше всё!
    Добавлено: 13:08 10-12-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Что за на...! Неделю назад переписал сюжетку. Зашел на следующий день а там ничего из написанного нет. Думал по запарке забыл сохранить скрипт. Вчера переписал всё заново, в процессе сохранял скрипт раза четыре точно, сегодня зашел, а там опять ничего. Как такое может вообще быть? Другие скрипты пишу же всё сохраняет вроде. Опять заново всё писать Задница
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (20:01 10-12-2018), всего редактировалось 1 раз
    Добавлено: 20:01 10-12-2018   
Petrovytsh
 55 EGP

Репутация: 4
Сообщения: 38

Зарегистрирован: 05.02.2016
za4ot :
прыжок в док

Ты где такое взял? Прыжок только и исключительно на ворота и/или на прыжковый маяк. А вот возможность строить прыжковые маяки на своей верфи (штаб квартире) очень не хватает (хотя и решается простеньким MD скриптиком).
    Добавлено: 18:53 11-12-2018   
VNZ
 61 EGP

Рейтинг канала: 1(6)
Репутация: 2
Сообщения: 57
Откуда: Ukraine
Зарегистрирован: 04.11.2015
Petrovytsh :
прыжок в док


Gateless_jumpdrive(прыжок в точку,док).rar
 Описание:
 Имя файла:  Gateless_jumpdrive(прыжок в точку,док).rar
 Размер файла:  13.02 KB
 Скачано:  45 раз(а)
    Добавлено: 19:14 11-12-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Petrovytsh :
Ты где такое взял?

Мы так-то в модовом отсеке, а тут и не такие диковины найти можно. Хы...
_________________
Пираты - наше всё!
    Добавлено: 19:14 11-12-2018   
Petrovytsh
 55 EGP

Репутация: 4
Сообщения: 38

Зарегистрирован: 05.02.2016
za4ot :
тут и не такие диковины найти можно. Хы...

Лишь бы лорно и в балансе. А ставить мод, чтобы потом компенсировать другим модом его имбанутость... ну я хз )))
    Добавлено: 19:40 11-12-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Только что в очередной раз переписал сюжетку, сохранялся четыре раза, в редакторе после каждого сохранения делал копию скрипта, вышел из игры ни изменений в исходном файле, ни копий нет. Задница В редакторе есть какое-то ограничение на количество строк? У меня где-то под 300 было. Или может это у мну файл на диске подпорчен и нужно проверку диска сделать? Блин уже три вечера убиваю чтоб эти 300 строк набрать и всё зря. Задница Задница Задница Можно с нуля переписать, но в исходном файле уже строк 100 набрано, не хотелось бы их заново набирать. Вообще не понимаю в чем может быть дело?

добавлено спустя 5 минут:
Может есть ограничение на длину имени переменных - умну есть довольно длинные? ХЗ короче.
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (00:03 12-12-2018), всего редактировалось 2 раз(а)
    Добавлено: 00:03 12-12-2018   
DNA78
 330 EGP


Рейтинг канала: 8(994)
Репутация: 61
Сообщения: 617
Откуда: с гор
Зарегистрирован: 12.11.2008
za4ot :
Переписал с нуля свою сюжетку и вот там использовал такой финт:
$array1=ищем корабли на станции
$array2=ищем корабли в радиусе 5 км от станции
$array->array alloc size=0
append to $array value $array1
append to $array value $array2
вот думаю прокатит такая конструкция объединения двух массивов в один

Нет не прокатит, на выходе получишь массив состоящий из двух массивов.
Вообще здесь можно много на фантазировать вариантов слития двух массивов и вот некоторые из них:
 Вариант 1. продолжение твоего кода и создание нового массива   (кликните здесь для просмотра)
Код:

$array1=ищем корабли на станции
skip if is datatype[$array1] == [DATATYPE_ARRAY]
 $array1 = array alloc: size=0

$array2=ищем корабли в радиусе 5 км от станции
skip if is datatype[$array2] == [DATATYPE_ARRAY]
 $array2 = array alloc: size=0

$array = array alloc: size=0
$array.temp = array alloc: size=0
append $array1 to array $array.temp
append $array2 to array $array.temp
$size.array.temp = size of array $array.temp
while $size.array.temp
 dec $size.array.temp
 $item = $array.temp [$size.array.temp]
 $size = size of array $item
 do if $size == 0
  continue

 while $size
  dec $size
  $obj = $item [$size]
  skip if find $obj in array: $array
   append $obj to array $array
 end
end

 Вариант 2. добавление в существующий массив   (кликните здесь для просмотра)
Код:

$array=ищем корабли на станции
skip if is datatype[$array] == [DATATYPE_ARRAY]
 $array = array alloc: size=0

$array.temp=ищем корабли в радиусе 5 км от станции
skip if is datatype[$array.temp] == [DATATYPE_ARRAY]
 $array.temp = array alloc: size=0

$size = size of array $array.temp
if $size > 0
 while $size
  dec $size
  $obj = $array.temp [$size]
  skip if find $obj in array: $array
   append $obj to array $array
 end
end

 Вариант 3. создание нового массива с использованием егосовтовской библиотеки !lib.array.join.pck которую можно взять в альбионе   (кликните здесь для просмотра)
Код:

$array=ищем корабли на станции
skip if is datatype[$array] == [DATATYPE_ARRAY]
 $array = array alloc: size=0

$array.temp=ищем корабли в радиусе 5 км от станции
skip if is datatype[$array.temp] == [DATATYPE_ARRAY]
 $array.temp = array alloc: size=0

$array = [THIS]-> call script '!lib.array.join' : a.arr1=$array a.arr2=$array.temp

 Вариант 4.   (кликните здесь для просмотра)

использование кода из !lib.array.join.pck

_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (08:47 13-12-2018), всего редактировалось 1 раз
    Добавлено: 08:43 13-12-2018   
za4ot
 317 EGP


Рейтинг канала: 5(139)
Репутация: 15
Сообщения: 1951
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Свершилось. Наконец-то я нашел причину того, что скрипты не сохраняются. На скрине указал стрелкой.
https://drive.google.com/file/d/1mjGLECUXkOR1gJvCvkSbreu0XRMGsgmC/view?usp=sharing
Значение это выставляется через пункт "Выбрать станцию" и больше никак. Причем если финт прокатывает и скрипт сохраняется (были прецеденты на небольших скриптах), и даже работает как нужно сразу после написания, то гарантии что после перезапуска игры скрипт будет работать нет. Пытался записать станцию в переменную через Maintype - Subtype, get name, get class и прочие костыли - в лучшем случае команда поиска кораблей с такой переменной выдает ARRAY(), в худшем вешает игру еще на попытке записать станцию в переменную (это без таймаутов в циклах, с таймаутами скрипт просто не завершается).
Причем команда "найти корабль в секторе" нормально срабатывает при указании сектора Элизиум света и стандартным параметром refobj=Храм гонеров, выбираемом через "Выбрать тип станции". А вот команда "достать массив кораблей с объекта" при стандартном значении выдает ARRAY(), при выборе через "Выбрать станцию" работает, но недолго, пока не глюканет, через костыли ARRAY(). Короче, как я ни бился, а написать скрипт, который гарантировано доставал бы список пристыкованных кораблей к Храму гонеров так и не удалось. Глючная станция.
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (22:41 15-12-2018), всего редактировалось 1 раз
    Добавлено: 22:39 15-12-2018   
Канал X3: Terran Conflict -> Модовый и скриптовый отсек X3: Terran Conflict: «Скриптописание. Проблемы и их решение.»
На страницу: Пред.  1, 2, 3 ... 53, 54, 55    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Прошу отметить, что я категорически не желаю отмечаться в этой теме! (пост Fry'я)

  » Скриптописание. Проблемы и их решение. | страница 55
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18