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

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

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

   Страница 30 из 31
На страницу: Пред.  1, 2, 3 ... , 29, 30, 31  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X Rebirth » Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)»
alexalsp
 511 EGP


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

Зарегистрирован: 12.08.2014
Что я один прошу , тут вообще есть живые ))

Кто в скриптах шарит , нужен скрипт который обновит все корабли галлактике

Кто знает как сделать? Все что пробовал , не подходит.

кто добрый дядька , напишите коду плис.

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

пробовал Дестрой но после этого скунс умирает .

Так что надо все обновит кроме скунса .

Всем спасибо за внимание Улыбка
_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (23:48 23-12-2017), всего редактировалось 1 раз
    Добавлено: 23:48 23-12-2017   
alexalsp
 511 EGP


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

Зарегистрирован: 12.08.2014
кто подскажет что тут не так, почему оно не работает ? Компоненты находятся, во втором варианте даже удаляются но патч не срабатывает .

Первый вариант.

Код:


<?xml version="1.0" encoding="utf-8" ?>
<mdscript name="patch_skunk_reballance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
   <cues>
      <cue name="patch_ships_reballance" version="1"> 
         <conditions>
            <event_game_loaded/>       
         </conditions>
         <actions>
            <find_ship name="$ships" space="player.galaxy" multiple="true"/>
               <do_all exact="$ships.count" counter="$i">
                  <patch_macro object="$ships.{$i}"/>   
               </do_all>            
         </actions>
      </cue>
   </cues>
</mdscript>




Второй вариант

Код:

<?xml version="1.0" encoding="utf-8" ?>
<mdscript name="patch_skunk_reballance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
   <cues>
      <cue name="patch_ships_reballance" version="1"> 
         <conditions>
            <event_game_loaded/>       
         </conditions>
         <actions>
            <set_value name="$E_engines_count" exact="0"/>
            
            <find_ship name="$ships" space="player.galaxy" multiple="true"/>
            <remove_value name="$ships.{$ships.indexof.{player.primaryship}}"/>
               <do_all exact="$ships.count" counter="$i">
                  <find_object_component name="$components" class="[class.engine]" object="$ships.{$i}" multiple="true"/>
                     <do_all exact="$components.count" counter="$j">
                        <destroy_object object="$components.{$j}" explosion="false"/>
                        <set_value name="$E_engines_count" operation="add"/>                        
                     </do_all>
                  <patch_macro object="$ships.{$i}"/>   
               </do_all>
               
            <debug_text filter="general" text="'Patched %2 engines in %1 Ships.'.[$ships.count,$E_engines_count]"/>             
         </actions>
      </cue>
   </cues>
</mdscript>

_________________
CMDR: Fallout(EG)

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

Последний раз редактировалось: alexalsp (20:31 24-12-2017), всего редактировалось 1 раз
    Добавлено: 20:30 24-12-2017   
alexalsp
 511 EGP


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

Зарегистрирован: 12.08.2014
В обще мне удалось сделать это Хы...


Возможно у продвинутых скриптеров будут мысли по коду, что то исправить или изменить. Может у кого то более простое решение есть , оставляйте свои мысли.

Рабочий код для обновления движков и оружия на всех кораблях во всей галактике.

Пришлось немного / много попотеть что бы обойти обновление скунса , иначе ему был кирдык. Полностью ломался. Добрые люди помогли ЕгоФорума.

Код:

<?xml version="1.0" encoding="utf-8" ?>
<mdscript name="patch_skunk_reballance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
   <cues>
      <cue name="patch_ships_reballance_0_0_1"> 
         <conditions>
            <event_game_loaded/>       
         </conditions>
         <actions>           
            <set_value name="$patching_ships" exact="[]"/>
            <find_ship name="$ships" space="player.galaxy" multiple="true"/>
            <remove_value name="$ships.{$ships.indexof.{player.primaryship}}"/>
            <do_all exact="$ships.count" counter="$i">
               <append_to_list name="$patching_ships" exact="$ships.{$i}"/>
               <find_object_component name="$components" class="[class.engine,class.weapon]" object="$ships.{$i}" multiple="true"/>
                  <do_all exact="$components.count" counter="$c">
                     <destroy_object object="$components.{$c}" explosion="false"/>
                  </do_all>
               </do_all>       
         </actions>
     <cues>
        <cue name="Patch_ship_all_0_0_1">
          <delay exact="5s"/>
          <actions>
          <do_all exact="$patching_ships.count" counter="$i">             
              <patch_macro object="$ships.{$i}"/>
            </do_all>
            <remove_value name="$patching_ships" />               
            <cancel_cue cue="this"/>
          </actions>
        </cue>
      </cues>
    </cue>
  </cues>
</mdscript>

_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 06:34 25-12-2017   
Romz
 111 EGP


Репутация: 11
Сообщения: 421
Откуда: Волоколамск
Зарегистрирован: 11.03.2004
Круто! А они полностью пересоздаются, или только меняются компоненты в них?
Собственно, я к чему спрашиваю.
Обратил внимание, что в секторах висит некоторое количество кораблей без приказа. Некоторые с грузом, некоторые - нет. Особенно доставляют те, которые таким образом повисли в заправочных комплексах. При личном присутствии в секторе мои корабли не могут подлезть на заправку.
Так вот! Можно ли с такими кораблями, НПЦ без приказов которые, что-то сделать? Прибить без взрыва, например. Потому что работу назначать - это алес.
А твой скрипт при том, что если корабли пересоздаются, то, может, и работу подхватят...
_________________
СисАадмин - Шаман
    Добавлено: 15:04 25-12-2017   
alexalsp
 511 EGP


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

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

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

Последний раз редактировалось: alexalsp (18:21 25-12-2017), всего редактировалось 2 раз(а)
    Добавлено: 18:15 25-12-2017   
Romz
 111 EGP


Репутация: 11
Сообщения: 421
Откуда: Волоколамск
Зарегистрирован: 11.03.2004
Ну по-одному их отлавливать - не вариант, да и чит-меню ставить тоже не хочется - ибо соблазн, а потом не интересно становится играть. Лучше - скриптом всех, проверка условий, и, если есть соответствие - выносим.
_________________
СисАадмин - Шаман
    Добавлено: 22:47 25-12-2017   
alexalsp
 511 EGP


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

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

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 01:27 26-12-2017   
Romz
 111 EGP


Репутация: 11
Сообщения: 421
Откуда: Волоколамск
Зарегистрирован: 11.03.2004
alexalsp :
возможность или необходимость

Возможность, я думаю, есть. Необходимость - у меня - точно есть.
У меня нет знаний по MD-скриптам.
Алгоритм я описать могу, а вот реализовать...
Там нужны всего две проверки - на принадлежность корабля игроку, и на наличие у него задания.
Если по обоим пунктам несоответствие - тогда включаем в список.
И далее, вместо компонента, глушим корабль целиком.
Ограничение такого подхода - нужно операцию проделывать или в промежутке между миссиями, или в свободной игре, чтобы миссионные корабли не зацепило. А, ну ещё строителей, потому что они, вроде, тоже висят без задания.
_________________
СисАадмин - Шаман
    Добавлено: 12:56 26-12-2017   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Romz :

Обратил внимание, что в секторах висит некоторое количество кораблей без приказа.

Они НЕ без приказа висят! Они висяn с командой "Ждать"(move idle).
Romz :

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

Может стоит заработать, продав на заправку нужные ей ресурсы для производства топлива!? Игрок заработает, а очереди рассосутся!
Romz :

Так вот! Можно ли с такими кораблями, НПЦ без приказов которые, что-то сделать?

1. скриптом можно корабли NPC заправить и дать команду "move generic". Как потом он будет действовать я не могу проанализировать, но с вероятностью 90% все будет хорошо!
Непонятно как узнать, что они в очереди на заправку! Тут может быть сложность с проверкой, а всем подряд менять команду как-то не правильно.
Да, еще и на заправку они летят из основной программы , заправляются и возвращаются к продолжению основной программы.
Много вопросов! (((

2. Уничтожение всех кораблей с командой "Ждать" тоже ни к чему хорошему не приведет.

3. Самым правильным решением будет полный анализ причины такого поведения и устранение самой причины! А на это уйдет много времени и никто не захочет этим заниматься! Пусть Эгософт свои косяки исправляет.

зы: Если хотите посмотреть, что будет через 5-10 часов игрового времени после выполнения скрипта по "заправке" или "уничтожению" то я могу помочь их написать. Разгребать последствия Вам придется. Улыбка

добавлено спустя 32 минуты:
alexalsp :
... что то исправить или изменить. Может у кого то более простое решение есть , оставляйте свои мысли.

Я бы так упростил.
Убрал лишний список (2 одинаковых!)
Задержка в 5 сек думаю, что не нужна.(-1 кую)
instante="false" - выполнится 1 раз, не нужно канселить!

Код:

<?xml version="1.0" encoding="utf-8"?>
<mdscript name="patch_skunk_reballance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
  <cues>
    <cue name="patch_ships_reballance_0_0_1" instante="false">
      <conditions>
        <event_game_loaded/>
      </conditions>
      <actions>
        <find_ship name="$ships" space="player.galaxy" multiple="true"/>
        <remove_value name="$ships.{$ships.indexof.{player.primaryship}}"/>
        <do_all exact="$ships.count" counter="$i">
          <find_object_component name="$components" class="[class.engine,class.weapon]" object="$ships.{$i}" multiple="true"/>
          <do_all exact="$components.count" counter="$c">
            <destroy_object object="$components.{$c}" explosion="false"/>
          </do_all>
          <patch_macro object="$ships.{$i}"/>
        </do_all>
      </actions>
    </cue>
  </cues>
</mdscript>


Последний раз редактировалось: Andy_MB (18:15 11-02-2018), всего редактировалось 1 раз
    Добавлено: 18:15 11-02-2018   
alexalsp
 511 EGP


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

Зарегистрирован: 12.08.2014
Такой вариант я вроде проверял, не срабатывает , а задержка для того что бы скрипт отработал после загрузки игры и сева иначе он срабатывает где то в начале и до окончания загрузки он уже давно закончился )) Как то так.


Ног все равно спасибо. Хоть и с опозданием на месяцок так где то Хы... Подмигиваю
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 19:04 11-02-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Очень странно!
Так, как условие <event_game_loaded/> срабатывает, только после загрузки сэйва.
Везде, где я использовал <event_game_loaded/> , все отрабатывало как часы!
Предполагаю, что команда patch_macro может работать не так как хочется. )

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

Последний раз редактировалось: Andy_MB (21:15 11-02-2018), всего редактировалось 1 раз
    Добавлено: 21:13 11-02-2018   
alexalsp
 511 EGP


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

Зарегистрирован: 12.08.2014
Скорее всего ты прав , patch срабатывает не так как надо. Я тогда намучился с вариантами . Хы...

Но как руки дойдут, проверю твой вариант. кто знает что было месяц назад Хы... Я не помню, что вчера было Улыбка
_________________
CMDR: Fallout(EG)

ED - если застряли: https://discord.gg/w56kPWH
    Добавлено: 23:29 11-02-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Заметил странное поведение команды
<cancel_cue cue="this" />
Если вставить в цикл (при проверке условия, например хочу прервать всю "кую")
Нифига не сработает сразу! Только после выполнения всего цикла и команд, следующих за ним!
Пришлось городить конструкцию из брэйков!
Код:
            ...
                  <do_if value="$Temp_true">
                    <break/>
                  </do_if>
                </do_all>
                <do_if value="$Temp_true">
                  <break/>
                </do_if>
              </do_all>
            ...

Только после этого, все заработало правильно!
Полдня на поиск ошибки. Улыбка
Надеюсь кому-то сэкономит время.
    Добавлено: 19:21 13-02-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Кто может подсказать как репутацию перевести из xml-формата в lua-формат, средствами UI ?
 Cкрытый текст   (кликните здесь для просмотра)

UI value mapping (analogously for negative values):
1.0 = 30
0.32 = 25
0.1 = 20
0.032 = 15
0.01 = 10
0.0032 = 5
These values are fixed. Between them, logarithmic interpolation is used. Approximate formulas:
uivalue = 10 * log10(relation * 1000)
relation = 10^(uivalue / 10) / 1000
Between -0.0032 and +0.0032 (UI -5...+5) linear interpolation is used, and 0.00064 equates to one UI value step.

Если обращаться к списку репутаций командой:
menu.relations = GetLibrary("factions")
тогда работает такой объект:
menu.relations[i].relation - получает значения от -30 до +30

а я передаю списком в переменную menu.relations = [0.01,..,-0.032]
menu.relations = menu.param[7]
нашел в библиотеке vmdef.lua -> math вычисление логарифма, но это:
uirelations = 10 * math.log10(menu.relations[i] * 1000)
выдает результат либо 'nan' либо 'inf' , причем пробовал math.log10(3.2) = nan

пробовал тупо к своему списку применить .relation - тоже не работает такая конструкция :
menu.relations[i].relation
Ну тут понятно, что я пытаюсь сравнить список объектов со своим списком чисел Улыбка

... если не получится, то пойду в XML-е пробовать логарифмировать свой список, хоть и не хочется. Улыбка
    Добавлено: 22:34 15-02-2018   
Romz
 111 EGP


Репутация: 11
Сообщения: 421
Откуда: Волоколамск
Зарегистрирован: 11.03.2004
Andy_MB :
Они НЕ без приказа висят! Они висяn с командой "Ждать"(move idle)
В том-то и фикус-пикус, что висят они в состоянии "Нет команд".
Про отсутствие ресурсов я в первую очередь подумал, и на заправки конкретно попробовал завезти. На одной тупо ресурсы были, но непись в створе так и висела. На другой таки да, ресов небыло. Но и их завоз ничего не дал.
И вот тогда я начал ковырять глубжее.

P. S. Ничо так у нас разброс по времени получается в диалоге... Гы-гы

добавлено спустя 3 минуты:
Мож, я, конечно, и ошибаюсь...
Могу, для ясности, скинуть папку с модами и сейв. Если интересно, конечно.
_________________
СисАадмин - Шаман

Последний раз редактировалось: Romz (19:17 29-03-2018), всего редактировалось 1 раз
    Добавлено: 19:17 29-03-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Насколько я помню в AI скриптах есть задержки от 30 мин до полутора часов, если произошел какой-то сбой при выполнении скрипта. Там прописывается команда "нет команд". Потом скрипт возобновляет очередь попыток продолжить выполнение.
Конечно можно написать скрипт убивающий определенные корабли неписей с такой командой. Но умрут и те, что не на заправках. Это очень повлияет на экономику, хотя и на руку игроку со своей промышленной империей. )
Можно написать и такой, чтобы убивал только в секторах, где есть заправки. Все это не сложно но лично у меня сейчас нет времени, хоть и интересно. Я последнее время сплю по 4-5 часов. Может еще кто-нибудь возьмется!?
Могу подсказать, что ковырять надо поиском заправок - > в этом секторе поиск L/XL кораблей НПЦ. Потом цикл проверки команды и килить те, у кого совпадает команда с параметром explosion = false

Последний раз редактировалось: Andy_MB (02:07 30-03-2018), всего редактировалось 1 раз
    Добавлено: 02:07 30-03-2018   
Romz
 111 EGP


Репутация: 11
Сообщения: 421
Откуда: Волоколамск
Зарегистрирован: 11.03.2004
Andy_MB :
Насколько я помню в AI скриптах есть задержки от 30 мин до полутора часов, если произошел какой-то сбой при выполнении скрипта.
Оне у меня таки долгонько уже висят, явно дольше полутора часов... И это только, когда я на них внимание обратил, а сколько до этого - фикзнат...
Andy_MB :
Все это не сложно но лично у меня сейчас нет времени
Да я и не в претензии. Мне не горит, просто неудобно. Да и играю я сейчас редко. Вот запустил на днях - и вспомнил, что такая бяка возникла.
_________________
СисАадмин - Шаман
    Добавлено: 12:32 30-03-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
Написал, но проверить не могу. Не нашел ни одного корабля у себя в игре, который заправляется или стоит в очереди. Попрыгал к разным заправкам - везде пусто!
Хотите попробуйте. Ток сохранитесь, перед подключением мода.
Скрипт просто ищет все заправки, потом все корабли L & XL в зоне с заправкой и пытается их заправить, а пристыкованный - отстыковать. Убивает только те, у которых нет трюма под топливо.

мод не тестировался ни разу Улыбка
Код:
<?xml version="1.0" encoding="utf-8" ?>
<mdscript name="Fast_refuel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">

  <cues>
    <cue name="Refuel_all" instantiate="true" namespace="this">
      <conditions>
        <event_game_loaded/>
      </conditions>
      <actions>
        <create_group groupname="$fuelstations"/>
        <find_station class="class.station" macro="struct_bt_alb_fuelstation_macro" groupname="$fuelstations" space="player.galaxy"/>
        <do_all exact="$fuelstations.count" counter="$i">
          <find_ship class="class.ship_xl,class.ship_l" space="$fuelstations.{$i}.zone" groupname="$ships" multiple="true"/>
          <do_all exact="$ships.count" counter="$j">
            <do_if value="$ships.{$i}.cargo.{ware.fuelcells}.max == 0 or this.ship.cargo.{ware.fuelcells}.free == 0">
              <set_value name="$failreason" exact="'ERR_FUEL_STORAGE_MISSING'"/>
              <destroy_object object="$ships.{$i}" explosion="false"/>
            </do_if>
            <do_else>
              <set_value name="$wares_in_Cargo" exact="$ships.{$i}.cargo.list" />
              <set_value name="$fuelcells" exact="$wares_in_Cargo.indexof.{ware.fuelcells}" />
              <do_if value="$fuelcells != 0">
                <do_if value="$ships.{$i}.cargo.{ware.fuelcells}.count lt $ships.{$i}.cargo.{ware.fuelcells}.max * 0.2f">
                  <!--set_value name="$amount" exact="$fuelcells.count"/-->
                  <set_value name="$ships.{$i}.cargo.{ware.fuelcells}.count" exact="5000" comment="10000"/>
                  <do_if value="$ships.{$i}.dockslot != 0" comment="пристыкован?">
                    <start_script object="$ships.{$i}" name="move.undock"/>
                  </do_if>
                </do_if>
              </do_if>
            </do_else>
          </do_all>
        </do_all>
      </actions>
    </cue>
  </cues>
</mdscript>


Последний раз редактировалось: Andy_MB (16:39 31-03-2018), всего редактировалось 1 раз
    Добавлено: 16:35 31-03-2018   
eliseeff
 268 EGP


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

Зарегистрирован: 07.03.2015
Andy_MB :
Заметил странное поведение команды
<cancel_cue cue="this" />
Если вставить в цикл (при проверке условия, например хочу прервать всю "кую")
Нифига не сработает сразу! Только после выполнения всего цикла и команд, следующих за ним!
Пришлось городить конструкцию из брэйков!
Код:
            ...
                  <do_if value="$Temp_true">
                    <break/>
                  </do_if>
                </do_all>
                <do_if value="$Temp_true">
                  <break/>
                </do_if>
              </do_all>
            ...

Только после этого, все заработало правильно!
Полдня на поиск ошибки. Улыбка
Надеюсь кому-то сэкономит время.

А ничего странного.

Из Егософтовского мануала по MD:

Цитата:
<cancel_cue> and <reset_cue> only take effect after all remaining actions of the current cue are performed. So you can even safely cancel the cue that you are currently in (keyword “this”) or any ancestor cue, and still perform more actions afterwards.


Перевод :
Эффект от <cancel_cue> и <reset_cue> происходит только после того, как все оставшиеся операции в <actions> текущего куя выполнены. Т.е. вы спокойно можете отменить куй, в котором в текущий момент находитесь (“this”) или любой родительский куй, а после этого продолжать другие операции.


добавлено спустя 36 минут:
Andy_MB :
Кто может подсказать как репутацию перевести из xml-формата в lua-формат, средствами UI ?
 Cкрытый текст   (кликните здесь для просмотра)

UI value mapping (analogously for negative values):
1.0 = 30
0.32 = 25
0.1 = 20
0.032 = 15
0.01 = 10
0.0032 = 5
These values are fixed. Between them, logarithmic interpolation is used. Approximate formulas:
uivalue = 10 * log10(relation * 1000)
relation = 10^(uivalue / 10) / 1000
Between -0.0032 and +0.0032 (UI -5...+5) linear interpolation is used, and 0.00064 equates to one UI value step.

Если обращаться к списку репутаций командой:
menu.relations = GetLibrary("factions")
тогда работает такой объект:
menu.relations.relation - получает значения от -30 до +30

а я передаю списком в переменную menu.relations = [0.01,..,-0.032]
menu.relations = menu.param[7]
нашел в библиотеке vmdef.lua -> math вычисление логарифма, но это:
uirelations = 10 * math.log10(menu.relations[i] * 1000)
выдает результат либо 'nan' либо 'inf' , причем пробовал math.log10(3.2) = nan

пробовал тупо к своему списку применить .relation - тоже не работает такая конструкция :
menu.relations[i].relation
Ну тут понятно, что я пытаюсь сравнить список объектов со своим списком чисел Улыбка

... если не получится, то пойду в XML-е пробовать логарифмировать свой список, хоть и не хочется. Улыбка

Не совсем понимаю, ЧТО именно ты хотел. Создается впечатление, что ты просто перепутал relation и uivalue. И пытаешься брать логарифм там, где наоборот - нужно возводить в степень.

Для начал определимся: uivalue - это то, что мы видим в меню репутаций, т.е. значения от -30 до +30. А relation - это то значение репутации, которе использует и хранит игра, т.е. значения от -1 до +1.

И ни в коем случае не следует забывать, что логарифмическая шкала НЕ ДЕЙСТВУЕТ в диапазоне relation между -0.0032 и +0.0032 (uivalue -5...+5). В этом диапазоне шкала линейна, с шагом 0.00064.

Через некоторое время постараюсь сделать луа-код для пересчета.

Последний раз редактировалось: eliseeff (18:33 31-03-2018), всего редактировалось 1 раз
    Добавлено: 18:33 31-03-2018   
Andy_MB
 130 EGP


Рейтинг канала: 4(83)
Репутация: 10
Сообщения: 572
Откуда: Край вселенной, Квазар-1
Зарегистрирован: 13.07.2015
ОООооо! Этот мануал, я читал 4 года назад! К сожалению, я не обладаю идеальной памятью. Улыбка
Привык, что САNCEL ведет себя в других языках программирования определенным образом.

добавлено спустя 5 минут:
eliseeff :

Через некоторое время постараюсь сделать луа-код для пересчета.

Можешь не париться!
Я уже написал тот мод и забыл про него. Я свои задачи решил с его помощью и еще паре человек он понадобился.
Всех устраивает как там все работает.
Я уже давно решил этот вопрос без использования логарифмов.

Последний раз редактировалось: Andy_MB (18:44 31-03-2018), всего редактировалось 1 раз
    Добавлено: 18:44 31-03-2018   
Канал X Rebirth -> Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)»
На страницу: Пред.  1, 2, 3 ... , 29, 30, 31  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Да ну их, я пытаюсь железки свои вернуть, а они там полчаса подождать не могут, пока я на неделю назад вернусь.(жалуется Shepard)

  » Ковыряем новый движок (моддинг) | страница 30
Каналы: Новости | 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