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

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

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


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Данный аддон пожалуй самый богатый по нововведениям в игровой механике и совершенствованию игрового движка. Здесь только новых скриптовых команд порядка полутора тысяч. Я тут немного пошалил с python и отпарсил всё это дело.
Список всех новых команд из X3 Farnham's Legacy.

Также предлагаю внешний редактор X-Studio с синтаксисом команд из X3 Farnham's Legacy.
После запуска если потребуется, то укажите на папку X3 Farnham's Legacy которая находится внутри директории X-Studio for FL.
X-Studio for FL
_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (20:38 06-05-2021), всего редактировалось 6 раз(а)
    Добавлено: 19:05 06-05-2021   
egornov.ivan
 60 EGP

Рейтинг канала: 2(18)
Репутация: 3
Сообщения: 52

Зарегистрирован: 26.04.2017
Не знаю в ту ли тему пишу, но прошу помогите опознать числовые значения расс(r="*" из x3_universe.xml)
 Cкрытый текст   (кликните здесь для просмотра)
Код:

Argon=1
Boron=2
Split=3
Paranid=4
Teladi=5
Xenon=6
Khaak=7
Pirates=8
Goner=9
Player=10
Enemy_race=11
Neutral_race=12
Friendly_race=13
Unknown=14
TerranATF=17
TerranUSC=18
Yaki=19
OTAS=20
TerraCorp=21
Atreus=22
NMMC=23
Strong_Arms=24
Beryll=25
Dukes=26
Darkspace=27
Industritech=28


Кароче сам раскурил.

Последний раз редактировалось: alexalsp (05:00 21-05-2021), всего редактировалось 1 раз
Последний раз редактировалось: egornov.ivan (16:05 10-05-2021), всего редактировалось 3 раз(а)
    Добавлено: 15:50 09-05-2021   
DNA78
 345 EGP


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

 да всё верно   (кликните здесь для просмотра)
none = 0
argon = 1
boron = 2
split = 3
paranid = 4
teladi = 5
xenon = 6
khaak = 7
pirate = 8
goner = 9
player = 10
enemy = 11
neutral = 12
friend = 13
abandoned = 14
other1 = 15
other2 = 16
atf = 17
terran = 18
yaki = 19
otas = 20
terracorp = 21
atreus = 22
nmmc = 23
strongarms = 24
beryll = 25
dukes = 26
darkspace = 27
industritech = 28
corporation1 = 29
corporation2 = 30

_________________
Очевидное-невероятное
    Добавлено: 18:45 10-05-2021   
egornov.ivan
 60 EGP

Рейтинг канала: 2(18)
Репутация: 3
Сообщения: 52

Зарегистрирован: 26.04.2017
Цветовых кодов \033* все также мало Расстроен Может кто попросит разрабов добавить еще штук 10?
    Добавлено: 20:06 10-05-2021   
alexalsp
 372 EGP


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

Зарегистрирован: 12.08.2014
1.10

Код:

 <t id="3137">inc stat counter, textid=%0, amount=%1, formatted=%2</t>
 <t id="3138">%1%0is sector music fixed</t>
 <t id="3139">%0set sector music fixed: %1</t>
 <t id="3140">%0calculate reward, type=%1, level=%2, discipline=%3, fightrank=%4, traderank=%5, nototitle=%6, stations=%7, missions=%8</t>
 <t id="3141">%0get player transaction object: id=%1</t>

_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 20:13 12-05-2021   
longreed
 65 EGP

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

Зарегистрирован: 19.02.2020
DNA78 :


Custom.Syntax.txt есть ошибка, пробела не хватает:
Код:
CUSTOM
X3AP
1733
NONE
$0table alloc
RetVar
-------------- END DEFINITION ---------------


Должно быть так:
Код:
CUSTOM
X3AP
1733
NONE
$0 table alloc
RetVar
-------------- END DEFINITION ---------------


Наверное их много, это просто то с чем я столкнулся:
 Cкрытый текст   (кликните здесь для просмотра)
Код:
CUSTOM
X3AP
2039
NONE
$0populate merchants: wares table= $1
RefObj
Value
-------------- END DEFINITION ---------------
CUSTOM
X3AP
2040
NONE
$0populate dealers
RefObj
-------------- END DEFINITION ---------------


Последний раз редактировалось: longreed (12:24 15-05-2021), всего редактировалось 1 раз
    Добавлено: 11:47 15-05-2021   
alexalsp
 372 EGP


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

Зарегистрирован: 12.08.2014
[PROGRAM] X3 Editor 2 v2.0.27.0 updated for FL [Unofficial Update]

https://forum.egosoft.com/viewtopic.php?f=201&t=438785
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 18:31 15-05-2021   
DNA78
 345 EGP


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
longreed :
Custom.Syntax.txt есть ошибка, пробела не хватает:

Это одна из самых маленьких проблем )) Со всеми внешними скриптовыми редакторами имеются гораздо более глубокие проблемы, исправить которые можно лишь путём изменения исходного кода редакторов. Одна из основных проблем это - отсутствие в редакторах новых дататипов сопоставляемых с новыми параметрами. Отсюда редактор не хочет корректно работать с некоторыми новыми командами, например:
$sub.Ships = [THIS] -> get managed ships: role= Defender - где role= Defender должна интерпретироваться для игры под 33 дататипом или DATATYPE_CARRIERROLE. Такая же проблема и с командой is docking possible: shiptype= $shiptype, galaxy type= [SG_SHIP_M6] - где galaxy type= [SG_SHIP_M6] это 35 дататип или DATATYPE_GSUBTYPE.
В исходном коде я как-бы нашёл где это можно поправить,
Код:
//
// DATA_TYPE -- Defines the type element of a X3 script {type,value} pair
//
enum  DATA_TYPE  {   DT_NULL            = 0,   DT_UNKNOWN        = 1,   DT_VARIABLE      = 2,
                     DT_CONSTANT        = 3,   DT_INTEGER        = 4,   DT_STRING        = 5,
                     DT_SHIP            = 6,   DT_STATION        = 7,   DT_SECTOR        = 8,
                     DT_WARE            = 9,   DT_RACE           = 10,  DT_STATIONSERIAL = 11,
                     DT_OBJECTCLASS     = 12,  DT_TRANSPORTCLASS = 13,  DT_RELATION      = 14,
                     DT_OPERATOR        = 15,  DT_EXPRESSION     = 16,  DT_OBJECT        = 17,
                     DT_OBJECTCOMMAND   = 18,  DT_FLIGHTRETURN   = 19,  DT_DATATYPE      = 20,
                     DT_ARRAY           = 21,  DT_QUEST          = 22,
                     // New in Terran Conflict
                     DT_WING            = 23,  DT_SCRIPTDEF      = 24,  DT_WINGCOMMAND   = 25,
                     DT_PASSENGER       = 26,
                     // Live Types
                     DT_LIVE_CONSTANT  = DT_CONSTANT WITH DTF_ENCODED,
                     DT_LIVE_VARIABLE  = DT_VARIABLE WITH DTF_ENCODED,
                     DT_LIVE_OBJECT    = DT_OBJECT   WITH DTF_OBJECT_DATA,
                     DT_LIVE_SECTOR    = DT_SECTOR   WITH DTF_OBJECT_DATA,
                     DT_LIVE_SHIP      = DT_SHIP     WITH DTF_OBJECT_DATA,
                     DT_LIVE_STATION   = DT_STATION  WITH DTF_OBJECT_DATA,
                     DT_LIVE_WING      = DT_WING     WITH DTF_OBJECT_DATA,
                     DT_UNARY_OPERATOR = DT_OPERATOR WITH UGC_UNARY_OPERATOR    };

но у меня не получается пересобрать весь проект. По ходу автор его делал на древнем visual studio 2013 для windows xp. Да и не факт, что дело только в этом. лучше конечно если бы сам автор это всё подправил бы.
____________________________
В общем я тут сделал ещё один редактор XStudio2, который работает с новым синтаксисом гораздо лучше первого XStudio. После его запуска указываете GameData на папку X3 Farnham's Legacy которая находится в корневой директории редактора. При последующих запусках необходимо делать Reload в Game Data, без этого XStudio2 почему-то при запуске не хочет сам цеплять игровые данные.
Ну по крайней мере для вычепления не вынесенных строк из скриптов и последующей отправки разрабам редактор вполне годен и даже можно в нём немного покодить с дальнейшей отладкой и исправлением в игровом редакторе Подмигиваю

добавлено спустя 4 минуты:
П.С. Все игровые данные для редактора взяты из игры версии 1.10, новые команды включены в синтаксис.
_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (20:25 17-05-2021), всего редактировалось 2 раз(а)
    Добавлено: 20:24 17-05-2021   
longreed
 65 EGP

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

Зарегистрирован: 19.02.2020
DNA78 :


Да, я все понял, как только столкнулся с первым же типом данных DATATYPE_TABLE и $value = $table['key'], и сразу загрустил из-за отсутствия правил синтаксиса для типов данных.

Спасибо за XStudio2, посмотрим его.
    Добавлено: 21:29 17-05-2021   
alexalsp
 372 EGP


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

Зарегистрирован: 12.08.2014
На его форуме https://forum.egosoft.com/viewtopic.php?p=5047689#p5047689 вроде собрался кто то его под фарнем делать.
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 21:31 17-05-2021   
DNA78
 345 EGP


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

Сами коды отображены в скобках и используются в командах типа:
Код:
set menu line option: <VarArray>, selection colour= <VarNumber>

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

Последний раз редактировалось: DNA78 (19:40 22-05-2021), всего редактировалось 1 раз
    Добавлено: 20:44 19-05-2021   
DNA78
 345 EGP


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Текущая система меню просто загляденье Супер!
_________________
Очевидное-невероятное
    Добавлено: 19:17 20-05-2021   
DNA78
 345 EGP


Рейтинг канала: 5(226)
Репутация: 63
Сообщения: 878
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Немного поигрался с новым движком и модернизировал Корабельный браузер.
_________________
Очевидное-невероятное
    Добавлено: 18:35 26-05-2021   
alexalsp
 372 EGP


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

Зарегистрирован: 12.08.2014
Так может им сразу отправлять, что бы добавили Улыбка
_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (20:45 26-05-2021), всего редактировалось 1 раз
    Добавлено: 20:44 26-05-2021   
egornov.ivan
 60 EGP

Рейтинг канала: 2(18)
Репутация: 3
Сообщения: 52

Зарегистрирован: 26.04.2017
DNA78 :
цифровые коды цветов имеющиеся в движке

А можно их както использовать без скриптов? через коды \033*?
    Добавлено: 20:56 26-05-2021   
DNA78
 345 EGP


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

Так и делаю.
egornov.ivan :
А можно их както использовать без скриптов? через коды \033*?

Нет, те только для использования в меню.
_________________
Очевидное-невероятное
    Добавлено: 05:16 27-05-2021   
gav622007
 72 EGP

Рейтинг канала: 5(108)
Репутация: 22
Сообщения: 164
Откуда: Советский союз
Зарегистрирован: 22.09.2007
Карта Скорпа в X3 Farnham's Legacy не показывает апгрейды на доках.
Команда get tradeable ware array from station похоже теперь на добавляет апгрейды в массив, только товары.
Попробовал поправить скрипт ace.service.assembly.inf.stat
 Cкрытый текст   (кликните здесь для просмотра)
Код:
025   |$msg=$msg + $race.station + $new.string
026   * --------------------------------------------------------------------------------
027   *$array.ware=$station -> get tradeable ware array from station
028   *$m=size of array $array.ware
029   * --------------------------------------------------------------------------------
030   * ================================================================================
031   |$array.ware=$station ->get products table: include equipment=[TRUE]
032   |$ware=get next key: table=$array.ware key=[NULL]
033   |while$ware
034   * ================================================================================
035   * --------------------------------------------------------------------------------
036   *while$m
037   *dec $m=
038   *$ware=$array.ware[$m]
039   * --------------------------------------------------------------------------------
040   ||$price.ware=$station -> get price of ware $ware
041   ||$amount.ware=$station -> get amount of ware $ware in cargo bay
042   ||$free.amount.ware=$station -> get free amount of ware $ware in cargo bay
043   ||$maintype.ware=get maintype of ware $ware
044   ||$string='+' + $ware + '; ' + $price.ware + '; ' + $amount.ware + '; ' + $free.amount.ware + '; ' + $maintype.ware
045   ||$msg=$msg + $string + $new.string
046   * ================================================================================
047   ||$ware=get next key: table=$array.ware key=$ware
048   * ================================================================================
049   |end

между * ====== добавленные команды
между * ------ закомментированы старые
вроде работает Улыбка
p.s. только не понял почему в таблицах один ключ всегда null, пришлось исключать проверкой. решено, код обновил.

Последний раз редактировалось: gav622007 (15:37 06-06-2021), всего редактировалось 4 раз(а)
    Добавлено: 00:55 06-06-2021   
DNA78
 345 EGP


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

А для чего лишние телодвижения с get next key и перебором всей таблицы делал, вот так разве не проще Подмигиваю и не будет никаких нулей.
Код:
$table.ware=$station ->get products table: include equipment=[TRUE]
$keys = get keys: table= $table.ware
$size = size of array $keys
while $size
   dec $size
   $ware = $keys [$size]
end

_________________
Очевидное-невероятное
    Добавлено: 07:03 06-06-2021   
gav622007
 72 EGP

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

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

Зарегистрирован: 19.02.2020
gav622007 :


У вас происходит обращение к несуществующему элементу <ключ><значение>, которое вы потом обрабатываете, а его не надо, так как цикл while должен завершаться. Если используете такую конструкцию нужно:

Код:
$array.ware=$station ->get products table: include equipment=[TRUE]

*-- Получить первый элемент в таблице --
$ware=get next key: table=$array.ware key=[NULL]

while $ware
*-- Обработать элемент ---
*   ........ тут вы создаете свой $msg .....
* -------------------------------
* -- Перейти к следующему, если он не существует, то цикл завершится ---
$ware=get next key: table=$array.ware key=$ware
end
    Добавлено: 09:04 06-06-2021   
Канал X3: Terran Conflict -> X3: Farnham's Legacy: «Обновлённый скриптовый движок и всё, что с ним связано»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: А ты не вчитывайся, а для ускорения - читай только каждое третье слово, гарантирую - смысл постов останется тем же. (советует Harley)

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