|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|
|
Chem
780 EGP
          Рейтинг канала: 15(2610) Репутация: 248 Сообщения: 4751 Откуда: Киев Зарегистрирован: 08.01.2007
 |
|
Andrei [<>Ace] : |
=============================================
Промежуточный итог Скриптов торговая сеть и навигатор торговец
=============================================
На данный момент скрипты переписаны и работоспособны в прежних возможностях.
...Такое впечатление, что эгософтовские торговые скрипты с новым патчем вообще не работают, торговцы бестолку снуют по вселенной создавая видимость бурной деятельности.
|
Имелись ввиду галактические торговцы ? Или ?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Chem : |
Имелись ввиду галактические торговцы ? Или ?
|
Нет другие скрипты для кораблей перевозящих различные товары со станции на станцию.
Галактические торговцы Неписи пока замечены небыли. По крайней мере мною.
|
|
|
Shadowman
265 EGP
   Репутация: 42 Сообщения: 1395 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
2 Andrei [<>Ace]
Я опять по поводу Find ships - надоел уже, наверное
Попробовал искать какский М2 - жму в первом окне М2, во втором - Хаак дестроер, получаю в результатах 100 с чем-то страниц сообщений (в итоге ищется тип корабля null - в заголовке сообщения так и сказано - и выдается ПОЛНЫЙ список всех кораблей в галактике - у меня сейчас 5 с чем-то тыс.). То же самое и с поиском М1 какского.
Версия скрипта - из БД, последняя (2.5 от 7.01.07), сверял с той, что ставится с картой Scorp-а (X3 map v1.2 by Scorp (build 1.2.1.6)) - совпадает, Reinit script cashes делал - не помогает. В чем грабли?
|
|
|
Chem
780 EGP
          Рейтинг канала: 15(2610) Репутация: 248 Сообщения: 4751 Откуда: Киев Зарегистрирован: 08.01.2007
 |
|
Shadowman : |
2 Andrei [<>Ace]
Я опять по поводу Find ships - надоел уже, наверное Улыбка
Попробовал искать какский М2 - жму в первом окне М2, во втором - Хаак дестроер, получаю в результатах 100 с чем-то страниц сообщений (в итоге ищется тип корабля null - в заголовке сообщения так и сказано - и выдается ПОЛНЫЙ список всех кораблей в галактике - у меня сейчас 5 с чем-то тыс.). То же самое и с поиском М1 какского.
Версия скрипта - из БД, последняя (2.5 от 7.01.07), сверял с той, что ставится с картой Scorp-а (X3 map v1.2 by Scorp (build 1.2.1.6)) - совпадает, Reinit script cashes делал - не помогает. В чем грабли?
|
Странно, совершенно не наблюдаю такого. Версия таже. Может дополнительно что-то хитрое стоит ?
_________________ Умножим энтропию на 0 :-) |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Shadowman : |
Я опять по поводу Find ships - надоел уже, наверное
Попробовал искать какский М2 - жму в первом окне М2, во втором - Хаак дестроер, получаю в результатах 100 с чем-то страниц сообщений (в итоге ищется тип корабля null - в заголовке сообщения так и сказано - и выдается ПОЛНЫЙ список всех кораблей в галактике - у меня сейчас 5 с чем-то тыс.). То же самое и с поиском М1 какского.
|
Chem : |
Странно, совершенно не наблюдаю такого. Версия таже. Может дополнительно что-то хитрое стоит ?
|
Это проявилось только в английской версии игры из-за ' в слове Kha'ak.
Уже поправил.
Смотрите здесь
|
|
|
Shadowman
265 EGP
   Репутация: 42 Сообщения: 1395 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Andrei [<>Ace], спасибо! Поиск Хааков теперь работает!
Еще вопрос походу: а почему нельзя поискать М3 какский (Khaak Fighter, Истребитель)?
И еще: почему-то при поиске Pirate Nova Raider выдается несуществующий корабль в секторе Olmacketslat's Treaty с координатами (0,0,0), остальные вроде реальные (всего у меня 3 штуки по поиску).
Chem : |
Может дополнительно что-то хитрое стоит ?
|
Если чем-то хитрым считать русификатор с английскими названиями всего (включая и корабли), то да
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Shadowman : |
И еще: почему-то при поиске Pirate Nova Raider выдается несуществующий корабль в секторе Olmacketslat's Treaty с координатами (0,0,0), остальные вроде реальные (всего у меня 3 штуки по поиску).
|
Опять же. У меня все правильно, но я не играю. Все скрипты написаны практически при стартовой БД игры Х3.
Данный глюк, и это не мой глюк - это уже точно , может быть связан с какой-то оставшейся информацией в БД игры. Возможно такое будешь наблюдать не только с Pirate Nova Raider.
|
|
|
Shadowman
265 EGP
   Репутация: 42 Сообщения: 1395 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Andrei [<>Ace] : |
Попробуй запустить игру вот с этим файлом
|
спасибо, попробую!
ЗЫ: после этой операции список кораблей для поиска ограничился хаакскими М1 и М2 (список М3, М4, и т.д - вообще пуст, типов кораблей нет)
Прпробовал сохраниться с этим скриптом очистки, потом его удалить и загрузиться с сейва снова - список типов кораблей внутри классов появился, хаак Файтера среди них нет!
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Shadowman : |
Еще вопрос походу: а почему нельзя поискать М3 какский (Khaak Fighter, Истребитель)?
|
Shadowman : |
после этой операции список кораблей для поиска ограничился хаакскими М1 и М2 (список М3, М4, и т.д - вообще пуст, типов кораблей нет)
Прпробовал сохраниться с этим скриптом очистки, потом его удалить и загрузиться с сейва снова - список типов кораблей внутри классов появился, хаак Файтера среди них нет!
|
Спасибо и тебе за тестирование и терпение .
Спешил на работу не успевал протестить.
Все. уже ищется смотри здесь.
Для обновления массива запусти игру вот с этим файлом, все будет работать , после сохранения его можно удалить.
setup_ace.rar |
Описание: |
Для обновления массива классов караблей. |
|
Имя файла: |
setup_ace.rar |
Размер файла: |
575 Байт |
Скачано: |
450 раз(а) |
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Нескольо слов о скриптах
«Hot keys of commands to follower ships» v 1.2
«Hot keys of commands to wingman ships» v 1.2
Скрипты смотрите здесь
Скрипты написаны по просьбе одного товарища практикующего бой с немаленьким количеством кораблей и их разнообразием.
. Предыстория.
Чтобы не таскать за собой корабли поддержки, было создано несколько звеньев в необходимых секторах и по мере надобности они подключались к звену игрока. Во время игры и при использовании стандартных клавиш выявилось несколько негативных моментов:
1. На стандартные клавиши «Ведомым атаковать цель», «Ведомым защищать меня» слетелись все ведомые, нарушая тактику и душевное равновесие.
2. При стыковке игрока со станцией, все корабли, следующие за игроком обязательно стараются ее посетить, даже если игрок уже отчалил.
3. А если игрок задержался на станции и пяток кораблей уже, последовав его примеру, присели рядом, то горько наблюдать, как их дружная компания отчаливает пиная друг друга.
Чтобы избавить игрока от этого, и еще некоторых негативных моментов, был написан скрипт «Hot keys of commands to follower ships» v 1.0.
Поэкспериментировав со скриптом, он предложил написать еще один.
Так как скрипт «Hot keys of commands to follower ships» v 1.0. не обращает внимания на ведомого, отмеченного «W», он создал второе звено кораблей, отмеченных «W», но уже одно. Приписал эти корабли к Bigship-у и загнал в ангар на черный день.
В бою опять выявилось несколько негативных моментов:
1. Эти корабли не ввязывались в бой пока не атакован Bigship.
2. Если их по стандартным клавишам «Ведомым атаковать цель», «Ведомым защищать меня» извлечь из Bigship-а, потом надо загонять обратно поодному.
3. Да и флот, гоняющийся за одним, истребителем при уйме врагов, смотрелся смешно.
Обмозговав эти моменты и учтя его пожелания, а также других пилотов, были написаны скрипты:
«Hot keys of commands to follower ships» v 1.2
«Hot keys of commands to wingman ships» v 1.2
Скрипты могут ставиться по одному, и вместе, кому что понравится.
Хотя уже есть наработка по сочетанию этих скриптов.
Могу предложить такой пример:
1. Создаем основное боевое звено игрока (читаем Readme_rus.doc к скрипту «Hot keys of commands to follower ships» v 1.1. Преимущество звена в том, что ведомыми могут быть М6 и Bigship-ы.
2. Создаем звено поддержки из шайки истребителей отмеченных «W» и приписанных к Bigship-у(М1, TL).
3. Резервируем клавиши под команды. Так как команд по четыре (во втором скрипте учитывайте две стандартные клавиши), клавиши я создавал так – одно нажатие клавиши скрипта follower, клавиша с задержкой - wingman:
a. Кл. 5 - Ведомый! Защищать меня. - Кл. 5 с задержкой Ведомым защищать меня (закладка «Игра»)
b. Кл. 6 - Ведомый! Атаковать мою цель. - Кл. 6 с задержкой Ведомым атаковать мою цель (закладка «Игра»)
c. Кл. 7 - Ведомый! Атаковать всех врагов. - Кл. 7 с задержкой Wingmans Уничтожить все враждебные корабли. (закладка «Игра»)
d. Кл. 8 - Ведомый! Оставаться на месте. - Кл. 8 с задержкой Wingmans Вернуться на базу.
А дальше тактику выбирайте сами.
Если расклад боя за Вас – громите врага одним звеном.
Если силы врага превосходящие - удерживаете Кл. 7, Bigship разгружается – валите врага всем скопом. Хотите перевести Wigman-ов в основное звено на время боя – жмете Кл. 5 с задержкой или Кл. 6 с задержкой и все корабли уже управляются клавишами без задержки.
Надо отделить Wigman-ов, жмете Кл. 7 с задержкой или Кл. 8 с задержкой и звенья разделились.
Бой закончен - Кл. 8 с задержкой Wigman-ы пошли на стыковку.
В пылу боя учитывайте особенности скриптов (читать Readme_rus.doc).
Эксперементируйте . Может еще что надумаете .
Файл из архива (смотреть ниже) предназначен для удаления (обновления) клавиш созданных скриптом «Hot keys of commands to follower ships» v 1.1
Рекомендую проделать следующие действия:
1. Удалить файлы скрипта «Hot keys of commands to follower ships» v 1.1 из папки scripts, скопировать в эту папку файл из архива и запустить игру.
2. Клавиши должны удалиться.
3. Сохранить игру и выйти.
4. Удалить файл.
5. Установить «Hot keys of commands to follower ships» v 1.2
Unreg_hkey_cmd_follower.rar |
Описание: |
Для удаления (обновления) клавиш созданных скриптом «Hot keys of commands to follower ships» v 1.1 |
|
Имя файла: |
Unreg_hkey_cmd_follower.rar |
Размер файла: |
777 Байт |
Скачано: |
455 раз(а) |
Последний раз редактировалось: Andrei [<>Ace] (00:47 17-04-2007), всего редактировалось 3 раз(а) |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
Здесь можно оптимизировать скрипт и избавиться от команды, которой нет в х2.
Код: |
001 $array = array alloc: size=4
002 $n = 4
003 while $n
004 dec $n =
005 $gate = $sector -> get warp gate: gate id=$n
006 skip if not $gate
007 $array[$n] = $gate
019 end |
зыж Вроде ничего не напутал
|
005 $gate = $sector -> get warp gate: gate id=$n - в переменную $gate будет записан не ID врат, а указатель на врата, ну или строка с названием врат.
Так что в $array будет записано, в нашем случае, при наличие врат, их названия. Так как при подержки разных языков в массиве будут разные данные, неоюходимо будет дописать скриптик их распознания и сортировки, чтобы учесть нестандартные врата $n = 5 ($n = 4 ) - программа примет только четверо врат.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
005 $gate = $sector -> get warp gate: gate id=$n - в переменную $gate будет записан не ID врат, а указатель на врата, ну или строка с названием врат.
|
Дык это в твоём скрипте оригинальном так, так что это не ко мне
Цитата: |
001 $array = array alloc: size=4
002 $n = 5
003 while $n
004 dec $n =
005 $gate = $sector -> get warp gate: gate id=$n
006 $id.code = $gate -> get ID code
007
008 $layout.gate = get substring of $id.code offset=0 length=3
009 if $layout.gate == ' NO'
010 $array[0] = $gate
011 else if $layout.gate == ' EA'
012 $array[1] = $gate
013 else if $layout.gate == ' SO'
014 $array[2] = $gate
015 else if $layout.gate == ' WE'
016 $array[3] = $gate
017 end
018
019 end
|
Просто в этом участке по большому счету смысла нет:
Цитата: |
006 $id.code = $gate -> get ID code
007
008 $layout.gate = get substring of $id.code offset=0 length=3
009 if $layout.gate == ' NO'
010 $array[0] = $gate
011 else if $layout.gate == ' EA'
012 $array[1] = $gate
013 else if $layout.gate == ' SO'
014 $array[2] = $gate
015 else if $layout.gate == ' WE'
016 $array[3] = $gate
|
Так как судя по строке:
Цитата: |
005 $gate = $sector -> get warp gate: gate id=$n
|
...ты уже изначально знаешь, какие именно ты нашел врата. Т.е. эта команда-аналог "найти северные врата" или "найти южные врата", только вместо "север/юг/*" ты пишешь цифру ИД, которая эти стороны света обозначает:
0 - север
1- юг
2- запад
3- восток
4- блатные
255 - разрушенные
Вот я и упростил участок скрипта и записал в массив сразу то, что у тебя искалось
Andrei [<>Ace] : |
программа примет только четверо врат
|
Дык поэтому и $n = 4, так как ИД начинаются с нуля
0,1,2,3 - всего 4, а не 5
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
Дык поэтому и $n = 4, так как ИД начинаются с нуля
|
А счет то идет с 3-х 4- блатные нету.
AlexYar : |
002 $n = 4
003 while $n
004 dec $n =
005 $gate = $sector -> get warp gate: gate id=$n
|
AlexYar : |
Дык это в твоём скрипте оригинальном так, так что это не ко мне
|
Дык я не имя врат использую, а указатель на врата.
Потом получаю ID врат ' NO-878442... '
Отрезаю ' NO'
и сортирую под шаблон, чтобы осталось только четверо врат, причем точно указываю в каком направлении установлены блатные.
AlexYar : |
Просто в этом участке по большому счету смысла нет:
Так как судя по строке:
...ты уже изначально знаешь, какие именно ты нашел врата. Т.е. эта команда-аналог "найти северные врата" или "найти южные врата", только вместо "север/юг/*" ты пишешь цифру ИД, которая эти стороны света обозначает:
0 - север
1- юг
2- запад
3- восток
4- блатные
255 - разрушенные
|
В отношении 4- блатные не устраивает, нужно знать насколько блатные типа южные или восточные или... Только ради этого и кусок этот написан!
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
А счет то идет с 3-х
|
Дык поэтому и 4, а не 5 3,2,1,0 - это одновременно и ИД врат, и ячейки в твоём массиве
Andrei [<>Ace] : |
Дык я не имя врат использую, а указатель на врата.
|
Ты тоже-самое используешь, что и я написал Строчка одна и та же. И это имя/указатель ты в массив и забиваешь. Еще раз цитирую твой скрипт:
005 $gate = $sector -> get warp gate: gate id=$n
010 $array[0] = $gate
Никаких обработок и изменений переменной $gate после получения и до забивания в массив не производится Как есть, так и вкладывается в массив (т.е. вкладывается именно указатель на врата, т.е. в массиве будет "Северные врата").
Я же у тебя это переписал без изменений
Andrei [<>Ace] : |
В отношении 4- блатные не устраивает, нужно знать насколько блатные
|
Я уже понял, что ради этого Но в х2 такой метод работать не будет. Там вообще нет способа узнать тип врат, если только ты не сам в этом же скрипте их создал Поэтому х3-мап можно будет универсализировать только под стандартную х2 без модов и без сторонних скриптов, добавляющих новые врата.
Посмотри в тему справочника по командам, я там подробно расписал суть проблемы и баги скриптдвижка.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
Дык поэтому и 4, а не 5 3,2,1,0 - это одновременно и ИД врат, и ячейки в твоём массиве
|
Ну бывает, что не доходит (без обид), видно ты заработался .
Считаем:
0 - северные врата - это раз (1)
1 - южные врата - это два (2)
2 - западные врата - это три (3)
3 - восточные врата - это четыре (4)
4 - блатные рата - это пять (5)
Итого $n = 5 - согласен?
А про ячейки массива я не спорю.
AlexYar : |
Ты тоже-самое используешь, что и я написал Строчка одна и та же. И это имя/указатель ты в массив и забиваешь. Еще раз цитирую твой скрипт:
005 $gate = $sector -> get warp gate: gate id=$n
010 $array[0] = $gate
|
Не путай ни меня ни себя .
У меня в массиве всего ЧЕТЫРЕ ячейки, а врат ПЯТЬ!
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
видно ты заработался
|
Это ты заработался, а я написал, что в моём варианте нет учёта блатных врат
Andrei [<>Ace] : |
У меня в массиве всего ЧЕТЫРЕ ячейки, а врат ПЯТЬ!
|
Попробуй тоже-самое сделать для х2 ИД-код там узнать можно, а вот выделить подстроку из него - нельзя.
зыж Я про вариант для х2 пишу, а не для х3.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
Попробуй тоже-самое сделать для х2 ИД-код там узнать можно, а вот выделить подстроку из него - нельзя.
|
Провацируешь ! Что мне сейчас Х2 ставить и патчи к нему качать?
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
Что мне сейчас Х2 ставить и патчи к нему качать?
|
Придется по-любому, если надумаешь скрипты для х2 адаптировать Возможно даже скрипты от х3 вообще в х2 будут не видны, придется перенабивать/пересохранять их в х2
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
AlexYar : |
Возможно даже скрипты от х3 вообще в х2 будут не видны
|
Проверил, видны.
AlexYar : |
придется перенабивать/пересохранять их в х2
|
Достаточно просто пересохранить, предварительно (в х3) переделав алгоритмы (некоторые), чтобы исключить те команды, которых в х2 нет.
|
|
|
Scorp
800 EGP
     Репутация: 310 Сообщения: 2451 Откуда: местный Зарегистрирован: 05.01.2004
 |
|
AlexYar : |
009 if $layout.gate == ' NO'
010 $array[0] = $gate
011 else if $layout.gate == ' EA'
012 $array[1] = $gate
013 else if $layout.gate == ' SO'
014 $array[2] = $gate
015 else if $layout.gate == ' WE'
|
Например, в немецкой версии игры только северные ворота и западные имеют такое обозначение (' NO' и ' WE').
Южные и восточные имеют какое-то другое обозначение.
Можно сделать универсальное распознавание врат для любой языковой версии ?
_________________ Это вам не это |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|