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

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

   Страница 2 из 2
На страницу: Пред.  1, 2 | Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » X3: Farnham's Legacy: «Обновлённый скриптовый движок и всё, что с ним связано»
DNA78
 345 EGP


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
gav622007 :
это типа из таблицы массив получаем?

Нет, здесь получаем массив ключей данной таблицы, коими являются товары.
_________________
Очевидное-невероятное
    Добавлено: 09:12 06-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
DNA78, longreed, спасибо за помощь, выбрал вариант longreed (короче) Улыбка .
Код в своём посте обновил, может кому пригодится.
DNA78 :
Нет, здесь получаем массив ключей данной таблицы, коими являются товары.

я это и имел ввиду, может неправильно выразился Подмигиваю

Последний раз редактировалось: gav622007 (15:18 06-06-2021), всего редактировалось 1 раз
    Добавлено: 15:09 06-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
gav622007 :
DNA78, longreed, спасибо за помощь, выбрал вариант longreed (короче) Улыбка .
Код в своём посте обновил, может кому пригодится.


Тут оба варианта корректны и оба будете использовать, в зависимости от ситуации:

Мой вариант предполагает типичное использование DATATYPE_TABLE. Но этот тип данных имеет ряд серьезных ограничений. Одно из которых, невозможность менять порядок элементов.

По этой причине, если вам нужен измененный порядок элементов, вам необходимо преобразовать DATATYPE_TABLE в DATATYPE_ARRAY, и уже работать с ним как с массивом, что как раз ярко демонстрирует пример DNA78, в котором используется обратный порядок ключей.
    Добавлено: 15:24 06-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
я думаю в данном случае это не критично, выбрал вариант попроще Улыбка
главное, что карта теперь всё показывает

Последний раз редактировалось: gav622007 (15:36 06-06-2021), всего редактировалось 1 раз
    Добавлено: 15:35 06-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
Как скриптом узнать куда направляется корабль (в какой сектор)? Перебрал все команды, не получается. Ещё и раскидали по разделам, запаришься искать, со старым SE мне было проще. Подмигиваю
    Добавлено: 15:44 08-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
gav622007 :
Как скриптом узнать куда направляется корабль (в какой сектор)? Перебрал все команды, не получается. Ещё и раскидали по разделам, запаришься искать, со старым SE мне было проще. Подмигиваю


Это не простой вопрос, по крайней мере для меня. Ни когда этого не делал, но по всей видимости можно через команду $Ship -> get command. Вернет текущую команду которую выполняет корабль в таком виде, например:
COMMAND_DOCKAT
И в зависимости от выполняемой команды, нужно запрашивать цель target или target2

Если корабль стыкуется со станцией(COMMAND_DOCKAT) то сектор можно получить:
Код:
$ShipTarget = $Ship -> get command target
$Sector = $ShipTarget -> get sector

Но если корабль летит что то закупать(COMMAND_GET_WARE), то тут уже нужно через target2, так как target содержит товар:
Код:
$ShipTarget = $Ship -> get command target2
$Sector = $ShipTarget -> get sector

При этом корабль может лететь в сектор(COMMAND_MOVE_SECTOR), тогда target будет содержать, непосредственно сектор:
Код:
$Sector = $Ship -> get command target


Как видите, этот способ(если вообще его так можно назвать) далеко не универсален и не удобен, если точно неизвестно какую команду будет выполнять целевой корабль. Возможно кто то предложит вам более нормальный способ Улыбка
    Добавлено: 17:22 08-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
Спасибо за ответ, эти варианты я пробовал
$Ship -> get command показывает COMMAND_STATION_REBUILD
$ShipTarget = $Ship -> get command target
$Sector = $ShipTarget -> get sector
и
$ShipTarget = $Ship -> get command target2
$Sector = $ShipTarget -> get sector
выдают null
вот я и застрял, может тут вообще варианта нет?

Последний раз редактировалось: gav622007 (18:22 08-06-2021), всего редактировалось 1 раз
    Добавлено: 18:20 08-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
С этой командой все сложнее, она устанавливается в скрипте !god.tl.deliver.factory без параметров, соответственно target и target2 всегда будут возвращать значение null. Проблема заключается в том, что команда set command носит просто информативный характер, и параметры в ней необязательны.
К сожалению, я больше не знаю способа, как вытащить закрытые переменные, в частности сектор назначения из скрипта. Возможно он есть, просто я его не знаю.
    Добавлено: 19:44 08-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
это уже подсказка, надо поковырять этот скрипт, может добавить туда лок. переменную с сектором, и из неё получать? Улыбка
спасибо за помощь
    Добавлено: 20:17 08-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
gav622007 :
это уже подсказка, надо поковырять этот скрипт, может добавить туда лок. переменную с сектором, и из неё получать? Улыбка
спасибо за помощь


Это самый простой способ и нежелательный Улыбка Я имел ввиду без вмешательства.
В действительности, в скрипт передается массив который состоит из позиции X,Y,Z и сектор назначения.

Последний раз редактировалось: longreed (20:23 08-06-2021), всего редактировалось 1 раз
    Добавлено: 20:21 08-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
вот оттуда и надо попробовать выдернуть без вмешательства Подмигиваю
    Добавлено: 20:25 08-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
gav622007 :
вот оттуда и надо попробовать выдернуть без вмешательства Подмигиваю


Я не нашел пока, от куда передаются аргументы в скрипт, но это похоже и не нужно. Так как в !god.tl.deliver.factory происходит проверка, годится ли TL для установки станции и после дается команда на ее установку.
Поэтому, после проверки, уже точно зная что TL ее получит, можно и выдернуть сектор назначения.

Последний раз редактировалось: longreed (20:35 08-06-2021), всего редактировалось 1 раз
    Добавлено: 20:33 08-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
да, я смотрю этот скрипт, но локальных переменных там нет, только добавлять
вот есть массив
046 * TL flies to target sector
047 $target.sector = $target.position[3]
но как его получить без этого скрипта?

Последний раз редактировалось: gav622007 (20:55 08-06-2021), всего редактировалось 1 раз
    Добавлено: 20:48 08-06-2021   
longreed
 65 EGP

Рейтинг канала: 5(184)
Репутация: 4
Сообщения: 152

Зарегистрирован: 19.02.2020
gav622007 :
да, я смотрю этот скрипт, но локальных переменных там нет, только добавлять


Там все переменные локальные, они же и закрыты в скрипте. Глобальных нету. Тут только править скрипт, добавляя свой код, поэтому этот способ и нежелательный.

Получить можно по-разному, добавить свою глобальную переменную, либо вызвать свой скрипт, передав ему в качестве аргументов, все нужные переменные. Дело в том, что я не представляю полную картину, для чего вы хотите получить сектор и что потом будите делать с ним, мне трудно сказать как это можно реализовать.

Последний раз редактировалось: longreed (21:01 08-06-2021), всего редактировалось 1 раз
    Добавлено: 20:57 08-06-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
я неправильно выразился, имел ввиду переменную привязанную к объекту, чтоб через объект её получить
для такого поиска Подмигиваю
 Cкрытый текст   (кликните здесь для просмотра)

Код:
     TL ПЕРЕВОЗЯЩИЕ СТАНЦИИ
Пристанище монаха: Пир. Поставка ID - ITLGV-64 везёт: Аргон Перегонный завод L в сектор:???
Ианамус Зура альфа: Тел. Поставка Альбатрос ID - TTLFV-93 везёт: Телади Благодатное местечко L в сектор:???
Источник веры: Пар. Поставка Геркулес ID - PTLFV-52 везёт: Паранид Улиточное ранчо L в сектор:???
     найдено: 3 (станций: 3)
 
     КОРАБЛИ
Оплот Зирт: M5 Декка Фэйд (X=-86km, Y=11km, Z=-83km)
Семья Зейн: TS Улучш. Меркурий (X=57km, Y=-17km, Z=-59km)
Упущенный шанс: M5 Разведчик (X=65km, Y=-12km, Z=-79km)
Приют проповедника: TP Тукан (X=-34km, Y=-8km, Z=-4km)
Двое Великих: M5 Лунь Защит. (X=-75km, Y=20km, Z=78km)
Лишение Ткр: M5 Разведчик (X=-89km, Y=-17km, Z=-78km)
Полночная звезда: M5 Разведчик (X=196km, Y=123km, Z=-188km)
     найдено: 7
 
     ЧЕРТЕЖИ
Звезда Гайи бета: Весенний Цветок (X=1km, Y=-114km, Z=-58km)
Полночная звезда бета: Корвет (X=6km, Y=-113km, Z=2km)
Путешествие Натана бета: Вулкан (X=-48km, Y=-39km, Z=50km)
     найдено: 3
 
     СНАРЯЖЕНИЕ
Слёзы скупости бета: 1 x Прототип Световая пушка (X=-5km, Y=-116km, Z=-13km)
Гармония Вечности бета: 1 x Кионный лазер КЛ-3 (X=-3km, Y=-117km, Z=-15km)
Гармония Вечности бета: 2 x Фазовый лазерный комплекс (X=5km, Y=-30km, Z=20km)
Скрытые владения бета: 1 x Прототип Бомбомет материя/антиматерия (X=-2km, Y=70km, Z=34km)
Тихий прилив бета: 1 x Эксп. Электромагнитная плазменная пушка (X=3km, Y=100km, Z=-2km)
Сияющие течения бета: 1 x Кионный лазер КЛ-1 (X=-4km, Y=67km, Z=0km)
Темные воды бета: 1 x Кионный лазер КЛ-2 (X=25km, Y=-54km, Z=-29km)
     найдено: 7
 
     СТРАНИЦЫ ЖУРНАЛА
Бездна эта: Страница журнала (X=-51km, Y=-6km, Z=-10km)
Побег Гинн: Страница журнала (X=8km, Y=0km, Z=-38km)
Лишение Ткр: Страница журнала (X=-10km, Y=0km, Z=50km)
Ксенонский Узел: Страница журнала (X=5km, Y=-1km, Z=7km)
Склад добычи: Страница журнала (X=91km, Y=0km, Z=47km)
Облака Ронкар: Страница журнала (X=3km, Y=-13km, Z=58km)
Приют проповедника: Страница журнала (X=-34km, Y=-8km, Z=-4km)
Триумф Бреннана альфа: Страница журнала (X=14km, Y=-7km, Z=39km)
Договор Олманкетцлата: Страница журнала (X=43km, Y=-3km, Z=5km)
Сейзвел альфа: Страница журнала (X=42km, Y=-12km, Z=-8km)
Паранид Прайм бета: Страница журнала (X=40km, Y=8km, Z=11km)
Туманность Херрона: Страница журнала (X=2km, Y=9km, Z=-53km)
Туманность Херрона: Страница журнала (X=51km, Y=0km, Z=-7km)
Королевский тупик дельта: Страница журнала (X=-12km, Y=-13km, Z=33km)
     найдено: 14
 
     НАХОДКИ
Слёзы скупости бета: Находка (X=0km, Y=35km, Z=0km)
Шахты богатства: Находка (X=58km, Y=22km, Z=-52km)
Владение Кардинала альфа: Находка (X=-45km, Y=24km, Z=-39km)
Поражение Чо бета: Особая находка (X=55km, Y=-18km, Z=-55km)
Низвержение безбожника: Находка (X=46km, Y=-11km, Z=70km)
Источник веры: Находка (X=-51km, Y=-22km, Z=71km)
Ксенонский сектор 101: Находка (X=-35km, Y=23km, Z=65km)
Легенда Фарнема альфа: Находка (X=-46km, Y=-6km, Z=-50km)
Дрейф Ролка: Находка (X=-38km, Y=-22km, Z=27km)
     найдено: 9 (Находка: 8; Особая находка: 1)
 
     ПРОЦЕССОРЫ и КРИСТАЛЛЫ
Приют торговца: 2 x Фокусировочный кристалл (X=32km, Y=-11km, Z=-2km)
Большая биржа эпсилон: 2 x Фокусировочный кристалл (X=-19km, Y=-14km, Z=-35km)
Океан фантазии альфа: 2 x Фокусировочный кристалл (X=12km, Y=13km, Z=33km)
Рай Менелайи: 2 x Фокусировочный кристалл (X=-62km, Y=11km, Z=-4km)
Рай Менелайи: 2 x Фокусировочный кристалл (X=52km, Y=13km, Z=19km)
Побег Гинн: 2 x Фокусировочный кристалл (X=12km, Y=0km, Z=20km)
Родина возможности: 2 x Квантовый процессор (X=-33km, Y=12km, Z=11km)
Родина возможности: 2 x Квантовый процессор (X=29km, Y=-10km, Z=-11km)
Родина возможности: 2 x Фокусировочный кристалл (X=25km, Y=2km, Z=24km)
Шахты богатства: 2 x Фокусировочный кристалл (X=31km, Y=-3km, Z=-50km)
Фортуна акционеров: 3 x Квантовый процессор (X=60km, Y=-7km, Z=3km)
Фортуна акционеров: 2 x Квантовый процессор (X=-22km, Y=8km, Z=71km)
Убежище: 2 x Фокусировочный кристалл (X=-34km, Y=2km, Z=-23km)
Уединение Понтифика: 2 x Фокусировочный кристалл (X=37km, Y=0km, Z=14km)
Владение Кардинала альфа: 3 x Квантовый процессор (X=34km, Y=-10km, Z=28km)
Владение Кардинала эпсилон: 2 x Квантовый процессор (X=41km, Y=-2km, Z=-26km)
Крестовый поход Ганна: 2 x Квантовый процессор (X=5km, Y=3km, Z=-41km)
Крестовый поход Ганна: 3 x Квантовый процессор (X=-46km, Y=-11km, Z=-25km)
Крестовый поход Ганна: 2 x Фокусировочный кристалл (X=39km, Y=4km, Z=-2km)
Свет сердца: 2 x Квантовый процессор (X=-18km, Y=13km, Z=66km)
Холм Аладны: 2 x Фокусировочный кристалл (X=-17km, Y=-1km, Z=-28km)
Шанс Данны: 2 x Фокусировочный кристалл (X=29km, Y=14km, Z=0km)
Триумф Бреннана гамма: 2 x Фокусировочный кристалл (X=23km, Y=2km, Z=28km)
Триумф Бреннана бета: 3 x Квантовый процессор (X=-23km, Y=-1km, Z=20km)
Паранид Прайм бета: 2 x Фокусировочный кристалл (X=-26km, Y=-1km, Z=2km)
Паранид Прайм гамма: 2 x Квантовый процессор (X=-15km, Y=-12km, Z=-25km)
Аргон Прайм бета: 2 x Квантовый процессор (X=-20km, Y=-8km, Z=-58km)
Туманность Херрона: 2 x Квантовый процессор (X=8km, Y=3km, Z=-53km)
     найдено: 28 (Квантовый процессор: 13(30); Фокусировочный кристалл: 15(30))
 
     КРЕДИТЫ
Ксенонский сектор 534: 50000 x Кредиты (X=-77km, Y=9km, Z=54km)
Пустоши: 25000 x Кредиты (X=-37km, Y=-8km, Z=64km)
Сейзвел альфа: 571 x Кредиты (X=-49km, Y=-16km, Z=46km)
     найдено: 3 (Кредиты: 75571)
 
     МОДЕРНИЗАЦИИ
Потерянный заказ: 8 x Оптимизация рулевого управления (X=47km, Y=7km, Z=47km)
Звезда Гайи: 4 x Оптимизация рулевого управления (X=-47km, Y=-24km, Z=-43km)
Звезда Гайи: 4 x Форсирование двигателя (X=40km, Y=-16km, Z=62km)
Склад добычи: 6 x Оптимизация рулевого управления (X=65km, Y=-19km, Z=-48km)
Склад добычи: 8 x Форсирование двигателя (X=-57km, Y=-10km, Z=71km)
Поражение Чо бета: 6 x Форсирование двигателя (X=-54km, Y=-15km, Z=-51km)
Третье возвращение: 4 x Оптимизация рулевого управления (X=48km, Y=15km, Z=-55km)
Договор Олманкетцлата: 6 x Форсирование двигателя (X=35km, Y=10km, Z=52km)
Семья Рай: 6 x Оптимизация рулевого управления (X=38km, Y=21km, Z=-48km)
Обитель света дельта: 4 x Форсирование двигателя (X=52km, Y=-6km, Z=31km)
     найдено: 10 (Форсирование двигателя: 5(28); Оптимизация рулевого управления: 5(28); Расширение грузового отсека: 0(0))


код для TL, осталось прикрутить пункт назначения
 Cкрытый текст   (кликните здесь для просмотра)
Код:
016   $title=read text: page=$pageID id=11
017   $text1=read text: page=$pageID id=12
018   write to log file #$logFileNum append=[FALSE] value=$title
019   $logbook=$title + $new.string
020   $sectX=get max sectors in x direction
021   while$sectX >= 0
022   |$sectY=get max sectors in y direction
023   |while$sectY >= 0
024   ||$sect=get sector from universe index: x=$sectX, y=$sectY
025   ||if$sect != null
026   |||$shipArray=$sect -> get ship array from sector/ship/station
027   |||$size=size of array $shipArray
028   |||while$size
029   ||||dec $size=
030   ||||$ship=$shipArray[$size]
031   ||||$class=$ship -> get object class
032   ||||$race=$ship -> get owner race
033   ||||if$class == TL AND $race != Player
034   |||||$wareArray=$ship -> get tradeable ware array from ship
035   |||||$wareArraySize=size of array $wareArray
036   |||||while$wareArraySize
037   ||||||dec $wareArraySize=
038   ||||||$ware=$wareArray[$wareArraySize]
039   ||||||$classWare=get transport class of ware $ware
040   ||||||if$classWare == Станционн. конт. ST
041   |||||||inc $countA=
042   |||||||if$countA > 1
043   ||||||||$logSt=$logSt + ', ' + $ware
044   |||||||else
045   ||||||||$logSt=$ware
046   |||||||end
047   ||||||end
048   |||||end
049   |||||if$countA > 0
050   ||||||$countC=$countC + $countA
051   ||||||inc $countB=
052   ||||||$id=$ship -> get ID code
053   ||||||
054   ||||||
055   
056   
057   
058   ||||||
059   ||||||$logItem=$sect + ': ' + $ship + ' ' + 'ID - ' + $id + $text1 + $logSt
060   ||||||write to log file #$logFileNum append=[TRUE] value=$logItem
061   ||||||$logbook=$logbook + $logItem + $new.string
062   ||||||$countA=0
063   |||||end
064   ||||end
065   |||end
066   ||end
067   ||dec $sectY=
068   |end
069   |dec $sectX=
070   end
071   $logSt=read text: page=$pageID id=13
072   $logItem=$text + $countB + ' (' + $logSt + $countC + ')'
073   write to log file #$logFileNum append=[TRUE] value=$logItem
074   $logbook=$logbook + $logItem
075   write to player logbook $logbook
076   write to log file #$logFileNum append=[TRUE] value=' '


Последний раз редактировалось: gav622007 (21:27 08-06-2021), всего редактировалось 3 раз(а)
    Добавлено: 21:04 08-06-2021   
alexalsp
 372 EGP


Модератор
Рейтинг канала: 6(286)
Репутация: 48
Сообщения: 2980

Зарегистрирован: 12.08.2014
Версия 1.20

Код:
<page id="392003" title="Script Command Names" descr="0" voice="no">
 <t id="3142">%0get player idle time</t>
 <t id="3143">%0disconnect complex</t>
</page>

_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH

Последний раз редактировалось: alexalsp (10:06 09-06-2021), всего редактировалось 1 раз
    Добавлено: 10:05 09-06-2021   
DNA78
 345 EGP


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Есть у кого нибудь опыт работы с visual studio 2008? А то я тут с кодом X-Studio воюю и ни как не могу победить одну хрень:
Код:
typedef   BOOL                  (*CHANGE_WINDOWS_MESSAGE_FILTER_EX)(HWND, UINT, DWORD, CHANGEFILTERSTRUCT*);

на этой строке выдаёт ошибку - error C2061: синтаксическая ошибка: идентификатор "CHANGEFILTERSTRUCT",
но что самое интересное в visual studio 2019 этой ошибки нет. Как мне это победить в visual studio 2008?
_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (19:17 19-06-2021), всего редактировалось 3 раз(а)
    Добавлено: Вчера в 19:12   
Канал X3: Terran Conflict -> X3: Farnham's Legacy: «Обновлённый скриптовый движок и всё, что с ним связано»
На страницу: Пред.  1, 2 | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: По-моему, пилот просто по образу мыслей должен верить в НЛО. (сказал Hamster)

  » Обновлённый скриптовый движок и всё, что с ним связано | страница 2
Каналы: Новости | 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