Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

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

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

   Страница 2 из 3
На страницу: Пред.  1, 2, 3  След. | Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » X3: Farnham's Legacy: «Вопросы и помощь в написании скриптов и модов»
longreed
 96 EGP


Рейтинг канала: 5(208)
Репутация: 6
Сообщения: 165

Зарегистрирован: 19.02.2020
Долго думал, создавать ли тему и будет ли она актуально, что бы перенести в нее сообщения из темы «Обновлённый скриптовый движок и всё, что с ним связано».

Даже сейчас не уверен, но создам, так как все же это разные, на мой взгляд темы.

В общем в теме , как по названию видно, пишем все что связано с написанием скриптов и модов, своего рода справка помагалка от продвинут скриптеров новичкам и не только, в этом не легком деле... Улыбка

Редактирование: alexalsp

===============================================================================

По-моему ни как не получить имя скрипта. Это скорее связано с тем, что скрипт в своем теле может вызывать кучу других скриптов. А для объекта это один процесс с приоритетом. Если я ошибаюсь, думаю меня поправят.

Последний раз редактировалось: alexalsp (02:11 20-02-2023), всего редактировалось 3 раз(а)
    Добавлено: 12:23 21-06-2021   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Если только так:
Код:
$TasksArray = $Ship -> get all running task ids
$Size = size of array $TasksArray
while $Size
   dec $Size
   $Task = $TasksArray[$Size]
   $Command = $Ship -> get command: task= $Task
   $ScriptName = $Ship -> get command script: command= $Command
end

_________________
Очевидное-невероятное
    Добавлено: 13:00 21-06-2021   
gav622007
 73 EGP


Рейтинг канала: 5(141)
Репутация: 22
Сообщения: 183
Откуда: Советский союз
Зарегистрирован: 22.09.2007
да, имя скрипта так получается, спасибо, но видимо это просто имя, сам аргумент из него не получить, только тип и описание.
    Добавлено: 22:04 21-06-2021   
Добрый
 52 EGP


Репутация: 2
Сообщения: 11

Зарегистрирован: 09.12.2013
DNA78 :
Есть у кого нибудь опыт работы с visual studio 2008?


Я пересобирал первый XStudio в Visual Studio 2010 Express.
Release target собрать по итогу не удалось, только Debug.

По итогу лично для себя набросал транслятор скриптов в текстовые файлы. Правда, там по итогу структура кода немного отличается от того, что нам показывают все редакторы, включая встроенный.

С выходом FL подумываю написать компилятор-декомпилятор на каком-нибудь питоне во что-то кастомное, и подсветку для редактора, для меня это пока более простое решение для скриптописательства. Особенно если учесть, что сразу можно будет использовать массу текстовых утилит в консоли Улыбка
    Добавлено: 18:01 10-11-2021   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Добрый :
Я пересобирал первый XStudio в Visual Studio 2010 Express.

Я всё сделал в 2019, собрал всё кроме BearScriptUI. Да и в принципе всё работает со старым BearScriptUI, но с некоторыми ухищрениями )) Юзаю по полной.
_________________
Очевидное-невероятное
    Добавлено: 20:38 10-11-2021   
by.@ztek
 315 EGP


Рейтинг канала: 4(51)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
Не знаю,куда, сюдой буду.
Плююсь, извините. Что за на фиг с секторами?
Вопрос к скриптерам сейчас.
Пишу
Код:
<!--<do_any>
            <find_sector name="this.SectorTemple" x="0" y="15"/>
            <find_sector name="this.SectorTemple" x="0" y="16"/>           
          </do_any>-->

В какие-то "Глубины молчания" меня отправляет, если у=16. Икс то ноль. Я в карте не понимаю ничего теперь. Если у=15 - просто пишет сектор 00-15., хотя он открыт. Что за дела? Знает кто? Это скриптописание и вопросы к нему.
Просто темы нет.

добавлено спустя 13 минут:
 Cкрытый текст   (кликните здесь для просмотра)

Ноль же по X.

добавлено спустя 3 минуты:
Ждать же не буду. Напишу сейчас сектор 0.0. Посмотрим. Улыбка

добавлено спустя 4 минуты:
А, может считать теперь без пропусков (в смысле если по х пусто..или по у ) ?

добавлено спустя 6 минут:
Да "Глубины молчания" не там же... Какого мне выдает что рандом из Двух даже позиций Эту глубину....
Смотрю 00

добавлено спустя 14 минут:
Не.
 Cкрытый текст   (кликните здесь для просмотра)

Отсюда счет начинается.

добавлено спустя 17 минут:
by.@ztek :
Плююсь, извините. Что за на фиг с секторами?

Я один. Скорее всего. Разберусь - отпишусь. Подмигиваю

добавлено спустя 11 минут:
Выяснил. что вижу- то и счет берем.
_________________
Совершенству нет предела...

Последний раз редактировалось: by.@ztek (11:28 06-08-2022), всего редактировалось 9 раз(а)
    Добавлено: 11:28 06-08-2022   
alexalsp
 513 EGP


Модератор
Рейтинг канала: 7(706)
Репутация: 54
Сообщения: 4242

Зарегистрирован: 12.08.2014
by.@ztek :


Пока перенес сюда. долго сам думал к чему его прикрутить , но если сами придумаете правильную тему, создайте ее, я сообщение перенесу или сами скопируйте, а это удалите.
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 11:32 06-08-2022   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
by.@ztek :
В общем - что вижу, считаю.

Нужно считать то, что видишь во внутри игровом редакторе галактики. Там тебе будут показаны номера секторов.
by.@ztek :
Ноль же по X.

by.@ztek :
Отсюда счет начинается.

Не пойму зачем ты смотришь и считаешь по карте? На ней сектора можно хоть как расположить и за это расположение отвечает objects\cut\00749.bod Подмигиваю
_________________
Очевидное-невероятное
    Добавлено: 05:25 08-08-2022   
slepers
 50 EGP

Репутация: 0
Сообщения: 3

Зарегистрирован: 24.12.2022
gav622007 :
Карта Скорпа в X3 Farnham's Legacy не показывает апгрейды на доках.
Команда get tradeable ware array from station похоже теперь на добавляет апгрейды в массив, только товары.
Попробовал поправить скрипт ace.service.assembly.inf.stat

вроде работает Улыбка

Не работает. Ошибка. Не объявлена таблица. Поправлено, готовый код прилагается.

 Cкрытый текст   (кликните здесь для просмотра)
Код:

$new.string=read text: page=3577 id=40009
  $msg=$msg + '-----' + $class.stations + $new.string
 
  $array.station=find station: sector=$sector class or type=$class.stations race=null flags=[Find.Multiple] refobj=null maxdist=null maxnum=999999 refpos=null
  $n=size of array $array.station
  skip if$n
    return $msg
 
  while$n
    dec $n=
    $station=$array.station[$n]
    $class.station=$station -> get object class
    if$class.station == Торговый док
      if$class.stations != Торговый док
        goto label end.n
      end
    end
   
    $x=$station -> get x position
    $y=$station -> get y position
    $z=$station -> get z position
    $msg=$msg + $station + '; ' + $x + '; ' + $y + '; ' + $z + $new.string
   
    $race.station=$station -> get owner race
    $msg=$msg + $race.station + $new.string
   
    $array.ware=table alloc
    $array.ware=$station ->get products table: include equipment=[TRUE]
    $ware=get next key: table=$array.ware key=[NULL]
    while$ware
      $price.ware=$station -> get price of ware $ware
      $amount.ware=$station -> get amount of ware $ware in cargo bay
      $free.amount.ware=$station -> get free amount of ware $ware in cargo bay
      $maintype.ware=get maintype of ware $ware
      $string='+' + $ware + '; ' + $price.ware + '; ' + $amount.ware + '; ' + $free.amount.ware + '; ' + $maintype.ware
      $msg=$msg + $string + $new.string
      $ware=get next key: table=$array.ware key=$ware
     
    end
   
  end.n:
  end
 
  return $msg


Апгрейды отображаются, но с порядком беда. Перфекционист в душе дюже не доволен.

Я хз можно ли тут скидывать готовый правленый файл, ну типо авторские права и тд, но я бы скинул, если можно. Дабы другие юзеры, не особо искушенные в скриптописании, не страдали подобно мне. Только подскажите в какой раздел правильней скинуть.

Готовый файл

Последний раз редактировалось: slepers (02:30 25-12-2022), всего редактировалось 4 раз(а)
    Добавлено: 22:52 24-12-2022   
alexalsp
 513 EGP


Модератор
Рейтинг канала: 7(706)
Репутация: 54
Сообщения: 4242

Зарегистрирован: 12.08.2014
Скидывай, программа свободная.
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 00:39 25-12-2022   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
slepers :
Не работает. Ошибка. Не объявлена таблица. Поправлено, готовый код прилагается.

Хы...
$array.ware=table alloc, а эта строка для чего?
Сама по себе команда $array.ware=$station ->get products table: include equipment=[TRUE] уже возвращает таблицу в переменную и ни какое объявление таблиц для этого не нужно Подмигиваю
 Вот так код прекрасно работает.   (кликните здесь для просмотра)
Код:
  $TMain=get global variable: name='Combo.Main'
  $msg=$msg + '-----' + $class.stations + $new.string
  $array.station=find station: sector=$sector class or type=$class.stations race=null flags=[Find.Multiple] refobj=null maxdist=null maxnum=999999 refpos=null
  $n=size of array $array.station
  skip if$n
    return $msg
 
  while$n
    dec $n=
    $station=$array.station[$n]
    $class.station=$station -> get object class
    if$class.station == Торговый док
      if$class.stations != Торговый док
        goto label end.n
      end
    end
   
    $x=$station -> get x position
    $y=$station -> get y position
    $z=$station -> get z position
    $msg=$msg + $station + '; ' + $x + '; ' + $y + '; ' + $z + $new.string
    $race.station=$station -> get owner race
    $msg=$msg + $race.station + $new.string
    $array.ware=$station -> get tradeable ware array from station
    $m=size of array $array.ware
    while$m
      dec $m=
      $ware=$array.ware[$m]
      $price.ware=$station -> get price of ware $ware
      $amount.ware=$station -> get amount of ware $ware in cargo bay
      $free.amount.ware=$station -> get free amount of ware $ware in cargo bay
      $maintype.ware=get maintype of ware $ware
      $string='+' + $ware + '; ' + $price.ware + '; ' + $amount.ware + '; ' + $free.amount.ware + '; ' + $maintype.ware
      $msg=$msg + $string + $new.string
    end
   
  end.n:
  end
  return $msg

Ах да, апгрейдов не видно...
_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (16:51 26-12-2022), всего редактировалось 1 раз
    Добавлено: 13:59 26-12-2022   
slepers
 50 EGP

Репутация: 0
Сообщения: 3

Зарегистрирован: 24.12.2022
DNA78 :
$array.ware=table alloc, а эта строка для чего?
Сама по себе команда $array.ware=$station ->get products table: include equipment=[TRUE] уже возвращает таблицу в переменную и ни какое объявление таблиц для этого не нужно

Ну во-первых, я же сказал, что не особо искушен в скриптах, так по мелочи что-то могу поправить под себя или добавить, объединить скрипты.
Во-вторых, я просто хотел поиграть. Как в TC и AP установить, накинуть несколько скриптов, и просто пройти сюжетки. В итоге я уже неделю копаюсь в коде и раскуриваю тему. В данном случае я вот как ни бился, пока ее не объявил апгрейды не появились.
Также были муки с текстовиками. Я воткнул мод на редактируемую цветную карту с поиском, обалденная штука должен сказать, моё почтение, но также хотел, чтоб текстовик красил все остальное, кроме карты, но он ломал цвета в карте скорпа. В итоге выяснил, что если не трогать страницу 1266 с основными расами, то карта скорпа нормально подхватывает цвета. Она правда не понимает цвета корпораций, но это ладно, хрен уж с ним, я просто хочу поиграть с кайфом.
Осталось обж поправить, думаю сегодня закончу подготовку к игровому процессу)

DNA78 :
Ах да, апгрейдов не видно...


А вот этого вот я не понял, с чем именно не видно, с моим кодом?

DNA78 :
Вот так код прекрасно работает.

А он порядок сохраняет или также все перемешивает?
    Добавлено: 19:54 26-12-2022   
romanazh
 55 EGP

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

Зарегистрирован: 21.02.2021
У меня с Combo модом оба варианта не исправляют показ апгрейдов.

DNA78 - вы проверили на ванильной или с Combo модом?
    Добавлено: 00:28 18-01-2023   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
В комбо тоже не показывает.
_________________
Очевидное-невероятное
    Добавлено: 05:14 18-01-2023   
gav622007
 73 EGP


Рейтинг канала: 5(141)
Репутация: 22
Сообщения: 183
Откуда: Советский союз
Зарегистрирован: 22.09.2007
В cutscenes везде используется
Код:
<environments>
  <environment_implicit name="mainsector" sector="@playersector"/> 
</environments>

соответственно
Код:
<shot name="shot1" environment="mainsector"...>

В "EnvironmentList" есть команда "find_sector" с атрибутами "name", "x", "y".
Пишу к примеру:
Код:
<environments>
  <find_sector name="newsector" x="20" y="10"/>
</environments>

соответственно
Код:
<shot name="shot1" environment="newsector"...>

Не работает. Можно ли вообще сделать катсцену не в секторе игрока?

Последний раз редактировалось: gav622007 (20:17 02-04-2023), всего редактировалось 1 раз
    Добавлено: 20:16 02-04-2023   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Сцены, катсцены, модели - всё это работает только в секторе с игроком.
_________________
Очевидное-невероятное
    Добавлено: 18:51 03-04-2023   
gav622007
 73 EGP


Рейтинг канала: 5(141)
Репутация: 22
Сообщения: 183
Откуда: Советский союз
Зарегистрирован: 22.09.2007
Понял, спасибо, знач бум прыгать перед катсценой и сразу назад после ролика Улыбка
    Добавлено: 19:45 03-04-2023   
CuriousMax
 56 EGP

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

Зарегистрирован: 22.09.2021
В папке scripts находится файл !setup.x3fl.pck. Хочу добавить несколько новых команд add god factory removal exclusion: race= . Они будут выполняться? И как? Например, только новая игра. Или же как новая игра так и старые сохранения. Или внесение изменений в этот файл не будет иметь никакого эффекта.
    Добавлено: 10:15 06-04-2023   
alexalsp
 513 EGP


Модератор
Рейтинг канала: 7(706)
Репутация: 54
Сообщения: 4242

Зарегистрирован: 12.08.2014
«Скрипты - это легко...»
https://www.elite-games.ru/conference/viewtopic.php?p=738640#738640

 Cкрытый текст   (кликните здесь для просмотра)
Цитата:

Имя скрипта (Script)
Первое что мы видим это имя скрипта. В Х2 имя скрипта имеет большое значение, т.к. в имени скрипта содержится много важной информации обрабатываемой ScE. В нашем примере имя начинается со знака «!» это сообщает редактору о том, что данный скрипт является системным и не подлежит редактированию. Скрипты со знаком «!» не будут отражаться в списке доступных для редактирования скриптов. В Х2 присутствуют следующие типы имен: “init.* ”, ”setup.* ”, “al.plugin.* ”, “galaxy.* “. Каждое из имен имеет определенное значение, и скрипты с такими именами выполняются игрой автоматически.

o Init Scripts: скрипты с именами “init.* ” и “!init.* “ являются скриптами инициализации, тоесть они загружаются автоматически каждый раз когда вы запускаете игру или загружаете сейв. Но обратите внимание на то, что загрузка скриптов init происходит до инициализации галактики (то есть до создания кораблей и станций). Поэтому нужно быть осторожным используя данный тип имен для скриптов работающих с объектами в галактике.

o Setup Scripts: скрипты с именами “setup.* ” и “!setup.* “ запускаются автоматически при создании новой игры или загрузке сейва. Загрузка скриптов setup происходит после инициализации галактики (то есть все объекты уже созданы). Использование setup для скриптов активно работающих с объектами в галактике, позволяет избежать многих ошибок которые могут возникнуть при использовании init.

o AL Plugin Scripts: скрипты с именами “al.plugin.* ” и “!al.plugin.* “ отвечают за искусственную жизнь в галактике (патрули секторов, транспорты летающие между станциями (в том числе и станции игрока) любой скрипт данного типа отвечает за какой нибудь конкретный процесс происходящий в галактике связанный с искусственной жизнью.

o Galaxy Ship Init Scripts: скрипты с именами “galaxy.* “ используются для запуска иных чем встроенная в Х2 карта. Этот скрипт создает стартовый корабль игрока. ScE при запуске проверяет наличие скрипта с именем “galaxy.<имя карты> “ или “!galaxy.<имя карты> “

Обратите внимание на одну особенность при использовании имен скриптов init, setup, !init, !setup. Скрипты !init и !setup запускаются всегда при старте или загрузке сэйва. Если использовать скрипты такого типа, НЕ подписанные Егософтом (цифровая подпись скрипта, см. ниже), то игра автоматом приобретает статус Modified. Скрипты типа init и setup запускаются ТОЛЬКО в игре со статусом Modified, в немодифицированной игре они не будут запускаться, несмотря на то, что находятся в папке \scripts.


X3 Modding:
https://www.elite-games.ru/conference/viewtopic.php?t=47001
_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (12:37 06-04-2023), всего редактировалось 3 раз(а)
    Добавлено: 12:24 06-04-2023   
DNA78
 420 EGP


Рейтинг канала: 8(827)
Репутация: 70
Сообщения: 1194
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
CuriousMax :
Они будут выполняться? И как? Например, только новая игра. Или же как новая игра так и старые сохранения.

Да, будут выполняться (в зависимости от контекста её встраивания в этот скрипт), но тут главное знать что делает та или иная команда. Возымеет ли эффект от add god factory removal exclusion: race= в уже начатой игре вопрос который нужно адресовать автору. Данная команда скорее всего будет работать в долгосрочной перспективе.
_________________
Очевидное-невероятное
    Добавлено: 05:42 07-04-2023   
Канал X3: Terran Conflict -> X3: Farnham's Legacy: «Вопросы и помощь в написании скриптов и модов»
На страницу: Пред.  1, 2, 3  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: При покупке физического тела, духовное и астральное прилагается совершенно бесплатно. (Veste)

  » Вопросы и помощь в написании скриптов и модов | страница 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