|
|
|
Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Кстати, команду dock playership не можно, а НУЖНО запускать в другом скрипте! Так как в ней встроен return null.
Если вы её вставите (команду) прямо в середину своего скрипта, то этот скрипт далее команды dock не пойдет, а будет принудительно прерван
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Кстати2: Команда
Race add notoriety: race= Race value= Value
Работает черти знает как. Скорее всего это баг эгософта, но хотелось бы досконально разобраться:
1. каким образом добавляются рейты? Т.е. по какой формуле.
2. Почему рейты клинит в крайних положениях? И их уже нельзя поменять десятичными числами, приходится прибегать к хитростям из комбинаций бинарных и десятичных чисел.
3. Почему в крайних и некрайних положениях рейта прибавка одинаковых чисел дает совершенно разный результат?
Можно довести до ума эти рейты, или это так же повлияет и на прибавку рейтов при убийствах и нападениях на неписей непредсказуемым образом? В принципе, неписево-движковые рейты (изменения) можно вообще отключить, а изменение рейтов рас к игроку сделать в сигналах. Зато прямая работа рейтов была бы очень удобна.
Пока удалось откопать следующие комбинации чисел для изменения рейта. Следует учитывать, что если нужно установить рейт расы на определенный уровень, то сперва нужно сделать откат на крайний предел рейта, т.е. править рейт комбинацией из нескольких строчкек.
Сперва ставим минимальный рейт данной расы. В стандартной игре рейты редко бывают на упорах, но мы всё же подстрахуемся и сделаем так:
-101
-2500000
Теперь, чтобы установить рейтинг уровня -3 (0%) делаем так:
99
Теперь по всем уровням:
Для уровня -4 (0%)
-101
-2500000
99
-90000
Для -3 (0%) смотрим выше.
Для -2 (0%) такая комбинация:
-101
-2500000
100
-1000
Для установки уровня -1 (0%) :
-101
-2500000
100
-100
Для установки уровня 0 (50%), т.е. нейтрал, абсолютная середина:
-101
-2500000
100
Для установки уровня +1 (0%)
-101
-2500000
100
10
Для установки уровня +2 (0%)
-101
-2500000
100
100
Для установки уровня +3 (0%) :
-101
-2500000
1000
Для установки уровня +4 (0%):
-101
-2500000
101
Для установки уровня +5 (0%):
-101
-2500000
110
Для установки +5 (100%), т.е. верхний упор:
-101
-2500000
200
Т.е. всегда нужно учитывать, что на упорах обычное изменение репы не работает. Чтобы установить определенную репу в нужный уровень и процент - сперва комбинацией ставите уровень, а потом процент догоняете нужной цифрой по шкале баллов рейта, который есть на этом сайте (правда там рейт неправильный написан, написаны два средних уровня, хотя на самом деле есть только один средний - это 0(50%), а соседний через 100 очков), как это сделано на примере уровня -4, -2 и -1.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Кстати3:
Есть подозрение, что с помощью данных кодов можно заставить работать как надо пиратский, ксенонский, хаакский и прочие рейтинги, а так же спецом блокировать рейтинги мирных рас, как заблокированы пиратский и остальные вражеские. Для блокировки рейта достаточно его опрокинуть на упор, а для разблокировки - применить любой код
Но желательно, конечно, иметь еще и инструмент возвращать значение текущего рейта райсы, что очень пригодилось бы в миссиях и прочих скриптах.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Вопрос по команде set shield percent снят. Я нашел способ, как выкрутиться
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Снят только вопрос, но сама команда Set shield to: в единицах - по прежнему нужна.
В процентах точно рассчитать и установить щит нельзя.
Если у корабля сила пушек 100, а щитов на корабле на 1`000`000, то корабль врежет по щитам аж 10`000 единиц ущерба!
1000000-100=999900 (это сколько должно быть после попадания)
представляем это в процентах
999900 * 100 / 1000000 = 99,99 дробная часть откидывается автоматом движком ScE (в нем нет дробей).
Значит новое значение щита будет 99%, это на 10000 единиц меньше!
Итого - пушка с дэмеджом 100 будет лупасить по врагу с силой в СТО раз больше !
Либо вообще не повреждать (если сделать отсечку по рассчету одного процента), что недопустимо в принципе!
Еще хотелось бы команду :
Object set undead to: TRUE/FALSE
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Shaddie, вспомнил о некоторых командах которых так не хватает:
<Array >= find station: resource <product> with best price: max.price=<price>, amount=<amount>, max.jumps=<jumps>, startsector=<sector>, trader=<trader>
То есть тот же поиск покупателя, но результат не одна станция а массив станций.
<Array>= find station sell: resource <product> with best price: max.price=<price>, amount=<amount>, max.jumps=<jumps>, startsector=<sector>, trader=<trader>
И тоже самое для поиска продавца. Мне в «Транспортном Отделе» (это скрипт мой) для исключения полетов транспортов (приписанных к одной базе) за ресурсами или для продажи на одну и туже станцию пришлось извращаться перебирая все сектора выявляя те что попадают в диапазон прыжка, затем станции в этих секторах проверяя тогует(продает)-ли станция этот товар, выбирать по ценам. В общем геморрой настоящий, да и с задержками скрипт барабанил около 15 секунд при диапазоне прыжка 9 секторов, а без задержек двадцать станций с одним приписанным транспортом могли игру завесить. И это все чтобы получить массив станций продавцов или покупателей. В общем очень нужные команды.
И еще одна команда, которая в купе с идеей AlexYar’а о динамическом диалоговом меню, позволит сделать эту систему максимально гибкой.
Write to page <page> ID <id> <Value>
В общем записать в нужный ID на нужную страницу значение. Наличие этой команды исключит необходимость заготавливать под каждый диалог собственный файл-ресурс, достаточно создать один и вбить в него все намеченные пункты, а далее легким движением мы можем динамически создать диалог содержащий любые варианты ответов.
PS Пора делать собственный Elite-Games patch, и стандартизировать его. Будет X2-Threat v. 1.4_EG. Чтобы уже использовать все нововведения и не бояться несовместимости (эх завидую я Алексу, делает в своем Инкоменге чего хочет и не греет голову о том «А пойдет ли этот скрипт там-то»
_________________ Звезды зовут... |
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
Вышла новая версия программы. Ссылка на первой странице.
_________________ Быстро едешь, тихо понесут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Респекты подразумеваются как само собой разумеещееся
|
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
DragonP : |
<Array >= find station: resource <product> with best price: max.price=<price>, amount=<amount>, max.jumps=<jumps>, startsector=<sector>, trader=<trader>
<Array>= find station sell: resource <product> with best price: max.price=<price>, amount=<amount>, max.jumps=<jumps>, startsector=<sector>, trader=<trader>
|
Посмотрел. Там все дело упирается в асм. процедуру, а их изменять мы еще не научились . Пришли алгоритм или скрипт, попробую реализовать на внутренних командах. По крайней мере, работать будет быстрее.
DragonP : |
Write to page <page> ID <id> <Value>
|
Думаю такая команда не возможна.
Хотя... если во время игры изменить дополнительный текстовый файл-описатель и потом его прочитать из скрипт-редактора, соответствующие тексты ведь изменятся?
Если у кого есть время, проверьте возможность поиска запущенных ракет следующим образом:
Получить массив объектов: <RetVar>=<Var/Sector> get special array from sector
Проверить этот массив (все объекты с maintype=10 - это ракеты): <RetVar/IF>=<object> get maintype
Ну и subtype объекта - это тип ракеты: <RetVar/IF>=<object> get subtype
Так же думаю можно искать и мух.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Shaddie : |
Пришли алгоритм или скрипт, попробую реализовать на внутренних командах. По крайней мере, работать будет быстрее.
|
Отправил.
Shaddie : |
Хотя... если во время игры изменить дополнительный текстовый файл-описатель и потом его прочитать из скрипт-редактора, соответствующие тексты ведь изменятся?
|
Изменятся стопроцентно. Тока как файл из скрипта поменять . Есть идеи ?
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Shaddie : |
если во время игры изменить дополнительный текстовый файл-описатель и потом его прочитать из скрипт-редактора, соответствующие тексты ведь изменятся?
|
Да. У меня в клонировании команд этот трюк используется. Только я не меняю описание, а гружу другой файл описатель с другими описаниями команд.
Кстати, LazyCat делал прогу обратной связи по моей просьбе, которая позволяет по командам из скриптов производить действия вне игры (записывать в файлы описатели данные, перемещать и переименовывать файлы в папке с игрой и многое другое). Прогу так и не доделали, так как у него нет времени свободного Но кое что она делать все-таки уже умеет.
Но если сделать возможность записи в файл-описатель средствами игры, тогда было бы вообще супер-круто. К примеру, можно было бы блокировать релоад-чит для взятия более легкой миссии (первое сгенеренное условие сразу прописывать в файл описатель, и потом сколько не релоадься, миссия будет одна и та же).
|
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
DragonP : |
Тока как файл из скрипта поменять . Есть идеи ?
|
Ага, есть и даже уже проверил, думаю скоро появится новая команда . Будет создавать/перезаписывать в папке t файл описатель содержащий одну запись с заданым id для заданной page.
To all
Могу убрать ограничение для команды load text: id= на загрузку основного файл-описателя. Нужно?
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
Shaddie : |
Могу убрать ограничение для команды load text: id= на загрузку основного файл-описателя. Нужно?
|
Что за ограничение? Работает с любыми файлами описателями, и с 1 и с 2 и с остальными.
|
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
Вышла новая версия программы. Ссылка на первой странице.
AlexYar : |
Что за ограничение? Работает с любыми файлами описателями, и с 1 и с 2 и с остальными.
|
Точно все читаются, как то криво видать я проверял .
|
|
|
unihorn
220 EGP
    Репутация: 60 Сообщения: 464 Откуда: Москва Зарегистрирован: 26.10.2004
 |
|
Кстати реально, всетаки, из скрипта (добавив такую возможность, естественно), отслеживать кнопки на много кнопочном диалоге, или нет? Я нашел обходной вариант, но такой, "прямой", был бы удобнее...
|
|
|
Пассажир
|
|
Shaddie : |
Будет создавать/перезаписывать в папке t файл описатель содержащий одну запись с заданым id для заданной page.
|
было бы очень неплохо если надо добавить пару тройку значений... а вот если их много? к тому же в скриптредакторе патологическая проблема с русским текстом.
Меня наталкивает на мысль что было бы полезно открывать файлы на чтение.запись и запускать внешние командные файлы (их в принципе достаточно) из скрипта.
З.Ы. кстать хорошо было бы к этому иметь программку с параметром(ами) добавляющую данные из одного файл-описателя в другой. кто знает есть ли такие?
хотя в этом можно и не увидеть много смысла, так меньше заморочек будет с добавлением к игре новых данных(команд, товаров, инф. о секторах и т.д.) т.к. при установке скриптов мне разок выдался случай когда файлы обоих имели одно название и переписались.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Shaddie а можно сделать чтобы после внесения изменений в x2story изменилась версия Script Engine например на 26 или на какой-нибудь специфический номер. Чтобы совместисость из скрипта можно было отследить.
И еще, можно ли команду <RetVar>=<ship> find nearest missile aiming to me заставить работать и с объектами типа станция.
И была бы полезна (очень) команда create active missile <type> <X><Y><Z> to <target>, вобщем создать активную ракету нацеленную на <target> .
ps Очередной респет за последнюю версию.
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32760
Зарегистрирован: 26.10.2003
 |
|
DragonP : |
чтобы после внесения изменений в x2story изменилась версия Script Engine например на 26 или на какой-нибудь специфический номер. Чтобы совместисость из скрипта можно было отследить.
|
Поддерживаю. Сам хотел предложить такую идею
DragonP : |
еще, можно ли команду <RetVar>=<ship> find nearest missile aiming to me заставить работать и с объектами типа корабль.
|
Ты хотел сказать - со станциями? Она и так только с кораблями работает.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
AlexYar : |
Ты хотел сказать - со станциями?
|
Ну конечно - чего то я записался
_________________ Звезды зовут... |
|
|
SeT aka SettleR
300 EGP
  Рейтинг канала: 1(2) Репутация: 94 Сообщения: 1253 Откуда: Третья планета от Солнца Зарегистрирован: 27.05.2005
 |
|
Скачал последнюю версию и столкнулся с такой проблемой: при попытке изменить размер трюма станций игра перестает работать (загрузка сейва/новая игра -> вылет на рабочий стол). Я изменял в ux2story.asm строчку StoreFactor = 5000d на StoreFactor = 50000000d - вылет. Тот же эффект и при любых других значениях Что я не так делаю?
Зыж: про чит-режим. А какие там ещё клавиши задействованы? Я чогойт больше ничего не нашёл
_________________ Ищу Белый Тезис |
|
|
|
|
|
Канал X2: The Threat: «Добавляем новые команды в скрипт редактор» |
|