|
|
|
Канал X2: The Threat: «Подготовка к "тараканьим бегам"» |
|
Ваше отношение? |
Я за! |
|
67% |
[ 19 ] |
Я тоже за! |
|
25% |
[ 7 ] |
Приму участие! |
|
7% |
[ 2 ] |
|
Всего проголосовало : 28 |
|
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
Krom : |
В твоём скрипте, как мне кажется, только один недостаток - жёсткая заточка под турнирный корабль на уровне подбора параметров руками. И, может быть, то, что схема разделения тактики по дистанции.
|
Да, была жесткая заточка. Но так ведь и ставилась задача: давайте сделаем для одного корабля, если что-то удачное получится, будет видно, может быть можно будет дальше сделать универсальный скрипт.
Для разных дистанций, а также для разных условий на одной дистанции имхо, и нужны разные тактики.
Пример:
При схождении на больших расстояниях нужна спираль или какие-то другие маневры уклонения от лобовой очереди. А если цель нужно догонять, так спираль нах не нужна.
При средних дистанциях желательно сделать полет с упреждением, иначе меньше выстрелов попадает (проверено). Т.е. команда "лететь к точке", которая впереди по курсу цели, а не просто команда "следовать за целью"
На малых дистанциях (200 метров и меньше) команда "лететь к точке" не применима, корабль ведет себя, как корова и на цель наводиться не желает, в обязательном порядке команда "следовать за целью"
Что собсно и реализовано было.
Имхо, для разных кораблей нужны не только разные параметры, но и разная тактика.
Пример:
Если хаак М3 выйдет против М3 с обычными ХЕПТами, то для хаака тактика - на 3 км остановиться и стрелять, стараясь убить противника до того, как он приблизится на расстояние стрельбы своих ХЕПТов, а для М3 с ХЕПТами в этом случае, лучшая тактика - не спираль крутить (все равно от хаакских лазеров не увернешься), а максимально быстро приблизиться и постараться сесть хааку на хвост.
2 Alex:
Поэкспериментирую предметно со стеками, вечером отпишу.
Пока имхо - фризится тока тот стек, где движком прерывается полетная команда для уклонения от столкновений. Принудительное выкидывание скрипта из стека с полетной командой обычной командой start tack этот стек, прерывает и механизм уклонения. Собсно об этом я уже написал и это вызвало споры
|
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
Grey Wolf : |
Имхо, для разных кораблей нужны не только разные параметры, но и разная тактика.
|
Целиком и полностью согласен. Я имел в виду, что нужно как-то в зависимости от собственных вооружений, характеристик противника и тактического положения автоматически определять наилучшую тактику. Тактики можно сделать скриптовыми примитивами и вызывать в бою по мере необходимости. А то в оригинале примитивов всего 2 - attack run и defensive move, и оба дрянь.
Я пока автоматом сделал только определение предельной дальности стрельбы, да и то - только на встречных курсах, хотя переделка на любой курс с помощью GetRelativeCourse не вызовет трудностей (возвращается по сути косинус, домножить его на скорость противника и получим её радиальную проекцию). Еще бы твою уклоняющую спираль крутить не на заданной дистанции, а перед тем, как к кораблю должен подлететь первый снаряд противника. Плюс рассмотреть вопрос применения ракет.
Создать, что ли, темку для сбора описаний, кто с кем, с чем в руках, на чём и как воюет? Да, пожалуй сделаю. Вот: http://www.elite-games.ru/conference/viewtopic.php?t=30762
P.S> Да, а хаак-то при такой тактике - машина смерти! Однако!
_________________ Не спешите меня. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Krom : |
Еще бы твою уклоняющую спираль крутить не на заданной дистанции, а перед тем, как к кораблю должен подлететь первый снаряд противника.
|
Или вообще не крутить, если противник не стрелял У грейвольфа проверки на стрельбу противника я не видел. Можно разнообразить, тоесть либо крутит бочку уклоняясь, либо летит прямо и стреляет, либо еще че-нить. Вариантов дофига.
|
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
Давайте переместимся в новую тему, а то хз, где писать, тут или там
_________________ Быстро выпитая рюмка не считается налитой |
|
|
Tension MAN
1220 EGP
     Рейтинг канала: 4(56) Репутация: 383 Сообщения: 8350 Откуда: Москва, корпус Д&Ф Зарегистрирован: 30.11.2002
 |
|
может вам тему про скриптовый турнир открыть? а то я эту не читаю, ибо ничего не понимаю а там бы отписали условия и т.д. и обсуждали бы дальше
_________________ EVE-online - TensionMAN in game. |
|
|
Murka
555 EGP
       Рейтинг канала: 1(9) Репутация: 166 Сообщения: 882 Откуда: Израиль Зарегистрирован: 04.07.2003
 |
|
Grey Wolf, поздравляю! Классный скрипт для турнира!
Против PLAYERSHIP тоже неплохо работает на близкой дистанции, но если оторваться от корабля с таким скриптом на дистанцию 1.5-2 км и лететь на малой скорости, то он начинает тупить и больше не нападает.
_________________ Где-то здесь... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Tension MAN : |
может вам тему про скриптовый турнир открыть? а то я эту не читаю, ибо ничего не понимаю а там бы отписали условия и т.д. и обсуждали бы дальше
|
Дык нечего обсуждать по турниру, так как провели его уже
|
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
AlexYar : |
Дык нечего обсуждать по турниру, так как провели его уже
|
Ну нифига себе нечего! У меня вопрос: кто проверял дистанцию, на которой врубается уклонение от препятствий? По-моему, она как-то завязана на размер объекта, причём на малых объектах она похоже равна "размер объекта"+константа, а для больших - плюс процент от размера, или вроде того. Короче, кто-нибудь во время подготовки к турниру детально разбирался?
_________________ Не спешите меня. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Ха мы молодцы... А наши скрипты с доп.стеками на неписях-то НЕ РАБОТАЮТ
Заменил стандартный !fight.attack.object навороченным - и полный висюк при загрузке сохраненки!
|
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
AlexYar:
Чьим навороченным?
И потом, они ж только для боя в секторе с игроком, верно я помню?
_________________ Не спешите меня. |
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
2 Krom: расстояние зависит от размера объекта и зависит от скорости сближения. Чем больше скорость и размер, тем больше расстояние, на котором начинается уклонение. Точнее зависимость определить не могу.
2 Alex: так мы же и проверяли на неписях!
Имхо, в стандартном !fight.attack.object есть куча проверок всякой всячины, в том числе и проверка, где происходит бой, в секторе с игроком или удаленно. И все эти проверки там наверняка не лишние. Нужно в стандартном !fight.attack.object выкинуть непосредственно боевую часть, а вместо нее вставить вызов нашего боевого скрипта, оставив тем самым все проверки, тогда и виснуть ничего не должно.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
Grey Wolf:
А... Ага... Вот оно как. Ладно, проведу замеры, скажем, на TS и разных объектах с максимальной скоростью сближения. В шахтёрском комплексе у меня получилось обмануть алгоритм уклонения подлётом по инерции, но зависимости дистанции вырубания движка от скорости подлёта там нет, так что результат иногда "носом в камень". Спасибо.
P.S> Вставлять вызов турнирного боевого скрипта надо как-то так, чтобы проверка на присутствие игрока в секторе крутилась постоянно. Мой, например, на такое не рассчитан.
_________________ Не спешите меня. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Grey Wolf : |
Имхо, в стандартном !fight.attack.object есть куча проверок всякой всячины, в том числе и проверка, где происходит бой, в секторе с игроком или удаленно. И все эти проверки там наверняка не лишние. Нужно в стандартном !fight.attack.object выкинуть непосредственно боевую часть, а вместо нее вставить вызов нашего боевого скрипта, оставив тем самым все проверки, тогда и виснуть ничего не должно.
|
Да я так и делал. Всё дело в грёбаном "race logic". Отключаешь его, запускаешь руками скрипт на корабле - всё работает. А если заменить стандартный боевой скрипт - новым, то при загрузке игры сразу вис. Видать рэйс лоджику не нравятся наши хитрожописти
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
AlexYar : |
А если заменить стандартный боевой скрипт - новым, то при загрузке игры сразу вис
|
Кстати, в стандартном скрипте !fight.attack.object я только заменил строчку запуска ракеты - строчкой запуска скрипта в другом стеке, который и запускает ракету.
Почему это вызывает вис скрипта, когда игрок в другом секторе - хз Вся ж начинка осталась стандартной и все новые процедуру должны игнорироваться... Надо дальше искать...
|
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
А в удалённом секторе ракеты разве используются?
_________________ Не спешите меня. |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Krom : |
А в удалённом секторе ракеты разве используются?
|
AlexYar : |
Вся ж начинка осталась стандартной и все новые процедуру должны игнорироваться...
|
Т.е. в удаленных секторах ракеты как не использовались, так и не используются.
Причина виса игры до сих пор не ясна....
|
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
2 Alex: я свой боевой скрипт вставил, ничего не виснет, корабли бьются, как и задумано. Только медленные они, как заразы, в оригинальной игре им скорости не хватает, поэтому все это выглядит убого на медленных кораблях.
Но речь не об этом, а о том, что все работает и никакой race logic не мешает.
Вставил я следующим образом:
после строчки
$secobid=[THIS]->get Sector Object ID
я вставил строчки
if $secobid
if not isbigship
@ = [THIS] call script GreyWolf.fight.AI.19 $victim
break
end
end
_________________ Быстро выпитая рюмка не считается налитой |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Grey Wolf : |
Вставил я следующим образом:
|
Я тоже таким же вставлял. В секторе с игроком бьются - всё нормально, улетаем из сектора - и через несколько минут - мертвый вис. Это если вручную запускать скрипт на кораблях. А если заменить fight.attack.object и потом загрузить сохраненку, то вис сразу.
Grey Wolf : |
Вставил я следующим образом:
|
И? Это нисколько не блокирует работу твоего скрипта в удаленном секторе. Как работал, так и будет работать. Если в присутствии игрока заустился конечно. Т.е. когда ты в секторе - непись перешла на внутрисекторный бой, ты из сектора улетел, а она продолжает биться по внутрисекторски. Подожди минут несколько - и у тебя вис будет.
Главное понять, от чего висы....
|
|
|
Grey Wolf
500 EGP
    Рейтинг канала: 2(17) Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003
 |
|
AlexYar : |
И? Это нисколько не блокирует работу твоего скрипта в удаленном секторе.
|
Как это не блокирует?? Функция
$secobid=[THIS]->get Sector Object ID
выдает какое-то число ТОЛЬКО в присутствии игрока. В удаленном секторе эта функция ВСЕГДА возвращает null (или 0, не помню точно), и именно этот принцип используется во всех стандартных скриптах Егософта для определения, секторных с игроком или удаленных событий.
Так что при такой вставке в удаленном секторе стандартный !fight.attack пойдет вообще без изменений. И соотв никаких висов
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32767
Зарегистрирован: 26.10.2003
 |
|
Grey Wolf : |
Как это не блокирует?? Функция $secobid=[THIS]->get Sector Object ID выдает какое-то число ТОЛЬКО в присутствии игрока.
|
Кто про что Я тебе и говорю, что эта строка не работает, так как этот скрипт, где она стоит НЕ РАБОТАЕТ! Услышь ты меня наконец
Скрипт с этой строкой стоит на месте (freezed), в то время как работает уже запущенный твой скрипт, когда игрок был в том секторе! Т.е. пока твой скрипт не вернёт управление стандартному, то так и будет выполняться независимо от того - есть игрок в секторе, или его нет. Т.е. надо делать многократную проверку еще и внутри твоего скрипта, и внутри всех других, твоих, которые в других стеках работают.
|
|
|
|
|
|
Канал X2: The Threat: «Подготовка к "тараканьим бегам"» |
|