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

  » [ДИСКУС]: Скриптописание. Проблемы и их решение. | страница 56
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

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

   Страница 56 из 61
На страницу: Пред.  1, 2, 3 ... 55, 56, 57 ... 59, 60, 61  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.»
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
alexalsp
В прилагаемом материале по этому вопросу всё очень подробно рассказано.

X3Scripting.rar
 Описание:
Учебник по скриптописанию
 Имя файла:  X3Scripting.rar
 Размер файла:  2.62 MB
 Скачано:  304 раз(а)

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

Последний раз редактировалось: DNA78 (06:50 14-02-2020), всего редактировалось 4 раз(а)
    Добавлено: 06:38 14-02-2020   
alexalsp
 513 EGP


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

Зарегистрирован: 12.08.2014
Бывают случаи когда пример лучше целого мануала Улыбка
Я там не нашел необходимой инфы, только общая инфа с примерами которые наврядли мне пригодятся.
У меня конкретная задача...

Создать, подключить и перенести как сделано в русском литкубе.
Только там использовались лткубовские тексовики , а я хотел новый.
Что нало было описано в прошом сообщение.
_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (17:48 14-02-2020), всего редактировалось 1 раз
    Добавлено: 17:46 14-02-2020   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
alexalsp :
Я там не нашел необходимой инфы, только общая инфа с примерами которые наврядли мне пригодятся.

Что? В разделе "Языковые файлы XML в Х2"
об этом всё подробно написано.
alexalsp :
Объясните кто то , как правильно в Х3 переносить текст со скриптов в текстовик и что бы текст отображался после переноса.

В обычных иксах такого не возможно. Такое возможно только в Litcube's Universe либо в Combo Mod.
alexalsp :
Создал текстовик 10000-L007.xml (может в Х3 число имеет значение в отличие от ребеза и Х4)

А это, что за номер такой 10000? Ты где нибудь видел, чтобы так текстовые файлы в Х3 назывались. Используй четырёхзначное число и не будет проблем. Всё астольное как по учебнику:
с начала загружаешь нужный файл - load text: id=1000
а затем читаешь из него - $text = read text: page=1 id=1 или $text = sprintf: pageid=1 textid=1, $Value, $Value, $Value, $Value, $Value
_________________
Очевидное-невероятное
    Добавлено: 18:59 14-02-2020   
alexalsp
 513 EGP


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

Зарегистрирован: 12.08.2014
О теперь понятненько где собака зарыта)))
А я тотдумал имя текстовика не имеет значения.
Хотя в одном из модов видел 5ти значное имя...

Ок попробуем 4х значное.
Спасибо. Теперь есть варианты маневрирования Ой, не могу!..

Приду завтра с работы и буду прбовать.
_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (19:22 14-02-2020), всего редактировалось 1 раз
    Добавлено: 19:20 14-02-2020   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Кто-нибудь знает как можно отключить обучение десантников на аванпостах? Еще вопрос: Как при поиске кораблей во вселенной найти бесхозные корабли? Если в расе указать null, то он корабли всех рас найдет или бесхозные?
_________________
Пираты - наше всё!
    Добавлено: 15:05 25-01-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Я опять с дурацкими вопросами. Как сделать расу на которую не будут агриться ксеноны? То есть, чтоб корабли той расы могли спокойно обитать в ксенонских секторах. Использовать постоянно set relation against?
_________________
Пираты - наше всё!
    Добавлено: 18:21 27-01-2021   
Thug
 67 EGP


Рейтинг канала: 3(26)
Репутация: 4
Сообщения: 111
Откуда: Новороссийск
Зарегистрирован: 11.11.2013
Подскажите друзья, можно ли скриптом изменить название сектора, не правя при этом текстовые документы? Пробовал инструкцию ($Sector ->set name to $Name) - но не меняется. Даже в Х3Реунион был сюжет с покупкой сектора, и предлагалось на выбор несколько названий, и это уж точно скриптом делалось. А в ТС скрипт-редактор более расширен, но я не нашёл код...
_________________
На фоне космоса - человечество, всего лишь пыль!
    Добавлено: 23:27 09-02-2021   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
za4ot :
Кто-нибудь знает как можно отключить обучение десантников на аванпостах?

Отключается в x3story.obj.
za4ot :
Как при поиске кораблей во вселенной найти бесхозные корабли?

$ships = get ship array: of race [Neutral Race] class/type=[Ship]
za4ot :
Как сделать расу на которую не будут агриться ксеноны?

Это делается в x3story.obj или постоянно set relation against.
Thug :
Подскажите друзья, можно ли скриптом изменить название сектора, не правя при этом текстовые документы?

Можно с помощью MD команды <set_sector_override sector="sector" textid="textid" x="x" y="y"/>.
_________________
Очевидное-невероятное
    Добавлено: 07:25 10-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
DNA78 :
в x3story.obj

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

Последний раз редактировалось: za4ot (17:38 11-02-2021), всего редактировалось 1 раз
    Добавлено: 17:38 11-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Как посчитать в игре синус и косинус? Функции в вычислениях выдают какой-то бред при подстановке чисел от 1 до 360. Скормил им дробное значение угла в радианах, чем намертво подвесил игру.
_________________
Пираты - наше всё!
    Добавлено: 19:37 14-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
za4ot :
Как посчитать в игре синус и косинус?

Нашел ответ на вопрос - Никак. Решение тоже нашел, работаю над воплощением.
_________________
Пираты - наше всё!
    Добавлено: 02:36 15-02-2021   
Thug
 67 EGP


Рейтинг канала: 3(26)
Репутация: 4
Сообщения: 111
Откуда: Новороссийск
Зарегистрирован: 11.11.2013
Назначил кораблю команду, в меню приказов "Специальные" и что бы ReadText2010-510 обрёл имя, команду теперь надо прописать в текстовике - это понятно. Но можно ли дать название команде, используя только скрипт-редактор?
Ну типа, как то так:
001 $Name=read text: page id=2010, id=510 exists
002 if$Name == 'ReadText2010-510'
003 |$Name ->set name to 'Pemont'
004 end

_________________
На фоне космоса - человечество, всего лишь пыль!

Последний раз редактировалось: Thug (14:34 16-02-2021), всего редактировалось 1 раз
    Добавлено: 14:25 16-02-2021   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
Thug :
Но можно ли дать название команде, используя только скрипт-редактор?

Нет.
_________________
Очевидное-невероятное
    Добавлено: 14:40 16-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Thug :
команду теперь надо прописать в текстовике - это понятно. Но можно ли дать название команде, используя только скрипт-редактор?

А зачем? Текстовик пишется 5 минут покуривая и попивая чай.
_________________
Пираты - наше всё!
    Добавлено: 17:32 16-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
za4ot :
Как посчитать в игре синус и косинус?

Написал библиотеку, которая создает два глобальных массива с именами "sinus" и "cosinus". Массивы содержат значения синусов и косинусов от 0 до 360 градусов с шагом в 1 градус умноженные на 10 в 9-й степени (ибо игра целочисленная и дробных значений она не ест). Номер элемента массива соответствует градусу. sin30 это sinus[30]. Для нахождения координаты точки на окружности по формуле x=r*sin(a) сначала нужно R=1.000.000.000/r, а уже затем sinus[а]/R. В другом порядке, когда я сначала r умножал на sinus[а], а затем делил на 1.000.000.000 у меня не срабатывало и уж точно не сработает если сразу sinus[а] делить на 1.000.000.000 (ибо дробные значения игра не ест).
Срип достаточно 1 раз запустить из скрипт-редактора и потом обращаться к массивам через ref = get global variable name: 'sinus' или ref = get global variable name: 'cosinus' из любого скрипта.

bradis.zip
 Описание:
Библиотека синусов/косинусов.
 Имя файла:  bradis.zip
 Размер файла:  3.44 KB
 Скачано:  163 раз(а)

_________________
Пираты - наше всё!
    Добавлено: 00:49 17-02-2021   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
za4ot :
Срип достаточно 1 раз запустить из скрипт-редактора и потом обращаться к массивам через ref = get global variable name: 'sinus' или ref = get global variable name: 'cosinus' из любого скрипта.

А зачем память засираешь переменными с массивами? Памяти в Х3ТС не так уж и много Подмигиваю
Сделай возврат массива из 'sinus' и 'cosinus'.
Если не секрет, то как и для чего это можно использовать?
_________________
Очевидное-невероятное
    Добавлено: 15:58 17-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
DNA78 :
А зачем память засираешь переменными с массивами?

Из глобального массива можно в любое время просто считать переменную. Если же вызывать библиотеку, то каждый раз нужно будет это считать, а это время, которое отнято у других скриптов. Я wait-ы стараюсь ставить везде где только можно, и если скорость выполнения скрипта не критична, то паузы бывают в секундах, а иногда даже и в минутах. Ну и кому нужно, тот за пару минут перепишет скрипт под свои нужды - там всего строк несколько дописать/изменить.
DNA78 :
Памяти в Х3ТС не так уж и много

Сколько памяти? На сколько глобальных массивов ее хватит? Думаю памяти не меньше 3,2 Гб (игра ж 32-бита), хотя могу и ошибаться. Хотелось бы узнать подробнее. А то мне для будущих скриптов еще с 10-к глобальных массивов по 500 элементов может понадобиться.
DNA78 :
Если не секрет, то как и для чего это можно использовать?

Используется в задаче нахождения координаты точки на окружности при известных центре и радиусе. Подобный скрипт был использован в скрипте Ring of Fire. Но меня он не устроил (раскладка должна быть английская, а я играю на русской, башни стелс, которые мне не нужны, слишком много башен по умолчанию 360 - ни один корабль в трюм столько не возьмет, а как их подвозить непонятно, странные радиусы без учета дальности орудия, нет возможности собрать установленные башни обратно в трюм), поэтому я не стал копаться в чужом скрипте (слишком долго бы я разбирался в чужом коде и не факт, что разобрался бы) и написал свою версию Ring of Fire. Из оригинала взял только 90 строк с уже введенными табличными значениями синусов и косинусов, чтоб время сэкономить. Всё остальное написал с чистого листа.
Может еще к решению каких задач сгодятся, навскидку так не скажу.
Кстати, еще одна мысль посетила меня. Сейчас у меня 120 ЛБ разворачиваются практически моментально, что не очень реалистично, вот и думаю вставить паузу в 1 секунду, тогда процесс займет 2 минуты, что не очень долго для комфортного игрового процесса, а остальным скриптам будет время выполнится.

_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (18:20 17-02-2021), всего редактировалось 4 раз(а)
    Добавлено: 17:51 17-02-2021   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1192
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
za4ot :
Из глобального массива можно в любое время просто считать переменную.

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

На много.
za4ot :
Думаю памяти не меньше 3,2 Гб

Ошибаешься, всего 2,5 Гб. При старте будет порядка 1,1-1,5 Гб, сюда и будут входить твои глобальные массивы, затем по мере посещения новых секторов память будет расти и как только она достигнет 2,5-2,7 Гб будет небольшой подвисон при котором произойдёт выгрузка памяти до начальных 1,1-1,5 Гб.
Не вижу смысла держать данные в памяти которыми не так уж часто и пользуешься. Не забываем также, что и сейвы в следствии этого также будут раздуваться.
Лично я стараюсь придерживаться правила - отработал и забыл. Ни каких массивных данных в памяти при этом не оставляя, а стараюсь все эти данные записывать в текстовики, либо в самих скриптах. А то в друг с процессом save\load что-то пойдёт не так или в момент выгрузки памяти.
_________________
Очевидное-невероятное
    Добавлено: 20:21 17-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
DNA78 :
данные записывать в текстовики

Да ты чертов гений. Можно же записать таблицы в текстовик, а потом просто считывать нужное значение по текст ай-ди.

<page id="ХХХХ" title=" " descr=" ">
<t id="1">999847694</t>
<t id="2">999390826</t>

<t id="259">999847694</t>
<t id="360">1000000000</t>
</page>

Тогда косинус 2 градусов
$cos=read text: page=ХХХХ id=2
$cos=convert strig $cos to integer

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

Последний раз редактировалось: za4ot (21:34 17-02-2021), всего редактировалось 2 раз(а)
    Добавлено: 21:31 17-02-2021   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
DNA78 :
Если не секрет, то как и для чего это можно использовать?

Вот нашел еще такой фрагмент кола из скрипта "Миномет сквош" для рениона. Вроде как определяет точку перед носом вражеского корабля куда кидать мину.
Код:

001   $size = $ship -> get size of object
002   $a = $ship -> get rot alpha
003   $b = $ship -> get rot beta
004   $g = $ship -> get rot gamma
005   $g = $g - 16384
006   $e = $a + 16384
007   
008   $fix =  = fixed sin $a
009   $sin.a = $fix * 100 / 65535
010   $fix =  = fixed cos $a
011   $cos.a = $fix * 100 / 65535
012   $fix =  = fixed sin $b
013   $sin.b = $fix * 100 / 65535
014   $fix =  = fixed cos $b
015   $cos.b = $fix * 100 / 65535
016   $fix =  = fixed sin $g
017   $sin.g = $fix * 100 / 65535
018   $fix =  = fixed cos $g
019   $cos.g = $fix * 100 / 65535
020   $fix =  = fixed sin $e
021   $sin.e = $fix * 100 / 65535
022   $fix =  = fixed cos $e
023   $cos.e = $fix * 100 / 65535
024   
025   $x = $ship -> get x position
026   $y = $ship -> get y position
027   $z = $ship -> get z position
028   
029   $x = $x + ( $size + 5 ) * $cos.b * $sin.a / 10000 + 20 * $cos.g * $sin.e / 10000
030   $y = $y + ( $size + 5 ) * $sin.b / 100 * -1 + 20 * $sin.g / 100
031   $z = $z + ( $size + 5 ) * $cos.b * $cos.a / 10000 * -1 + 20 * $cos.g * $cos.e / 10000 * -1
032   
033   $array =  array alloc: size=3
034   $array[0] = $x
035   $array[1] = $y
036   $array[2] = $z
037   
038   return $array

Пока еще не понял как автор посчитал синус и косинус с использованием стандартных функций. Может моя библиотека не нужна вовсе, а просто нужно понять как он это сделал и проверить в игре.
_________________
Пираты - наше всё!
    Добавлено: 00:49 18-02-2021   
Канал X3: Terran Conflict -> Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.»
На страницу: Пред.  1, 2, 3 ... 55, 56, 57 ... 59, 60, 61  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Хотя, с нашей скоростью постинга в конфу, конец темы ты можешь и не увидеть... (Harley)

  » [ДИСКУС]: Скриптописание. Проблемы и их решение. | страница 56
Каналы: Новости | 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