Как определить конец каста ?

Anything and all.

Moderators: Murderator+, Murderator

I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

А лучше 200-300 и никто не остановит :twisted: + как ты сказал шард наберет немного онлайна ;)
The End.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

неумеит инжа определять такие вещи, можно занести спелы в массив + время каждого спела, получется +\- нормально...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

NMY wrote:неумеит инжа определять такие вещи, можно занести спелы в массив + время каждого спела, получется +\- нормально...

Я думаю ты не всё знаешь )
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

You Must Die wrote:
NMY wrote:неумеит инжа определять такие вещи, можно занести спелы в массив + время каждого спела, получется +\- нормально...

Я думаю ты не всё знаешь )


А вот что касается спелов + одноимённых им элементов другого массива со временем -неплохая вроде мысль. Ну вот что получится?!
Разве что при получении слов каста в журнале, инжект в цикле с вейтом на проверку журнала проверяет эти слова на наличие подобных в одном из элементов массива с кастами.
Затем если нашёл то сравнивает значение элемента другого массива под тем же номером

Code: Select all

 (
 cast[10]= uo.GetName('laststatus') + ': Kal Vas Flam'
 time[10]=3.5 )
со временем других -более быстрых кастов( лайт, поизон, стрелка )- если время меньше чем лайта- то сравнивай с поизоном. Если меньше поизона то кидай стрелку. (аналогично: если больше меньше лайты, но больше болта- то кидай болт (или параль-как автор впишет или кто там вообще этот скрипт пишет ) )

Вот это уже на чтото похоже разумное ,- но ближе к автоботу. Вопрос тогда как быть ,если есть еще 3ий массив с ИД врагов в мясе(5-10 человек). Проверка каждого следующего на каст, может задевать предыдущего- тем самым физлы. То, что выше описал скорее может подойти к 1х1- если конечно грамотно написать-но эт многого стоит =\

п.с.
В этом не уверен, но думаю если будет желание и востребованность- как то воплотить в жизнь можно будет.

Code: Select all

 (
 cast[10]= uo.GetName('laststatus') + ': Kal Vas Flam'
 time[10]=3.5 )
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Destruction как всегда, спросил так спросил…
Вот примерно так можно

Code: Select all

myAntiCast(Circle)
   var LTimer = UO.Timer(), a, time = 0
   repeat
      if a = UO.GetSerial(UO.InJournal("Uus Jux|Rel Wis|In Por Ylem|Des Mani")-1) <> "self" then
         time = UO.Timer() + (0.5 + 0.25 * 1)
      endif
      if a = UO.GetSerial(UO.InJournal("An Mani")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 2)
      endif
      if a = UO.GetSerial(UO.InJournal("Vas Flam|In Nox")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 3)
      endif
      if a = UO.GetSerial(UO.InJournal("Des Sanct|Por Ort|Ort Rel")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 4)
      endif
      if a = UO.GetSerial(UO.InJournal("In Jux Hur Ylem|Por Corp Wis|An Ex Por")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 5)
      endif
      if a = UO.GetSerial(UO.InJournal("Corp Por|Vas Ort Flam")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 6)
      endif
      if a = UO.GetSerial(UO.InJournal("Vas Ort Grav|Kal Vas Flam|Ort Sanct|Flam Kal Des Ylem")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 7)
      endif
      if a = UO.GetSerial(UO.InJournal("In Vas Por|Vas Corp Por")-1) <> "self"  then
         time = UO.Timer() + (0.5 + 0.25 * 8)
      endif
   until LTimer + (0.5 + 0.25 * Circle) > UO.Timer() || time <> 0

   if LTimer + (0.5 + 0.25 * Circle) - time > 0.5 + 0.25 * 1 then
      UO.Cast("", a)
   endif
   endsub
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Сказал же, проверку по времени не предлагать.

Впринципе - я думаю ,set animecho помучать и прочую лабуду..
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

по анимации не выйдет, она от каста не зависит. Время анимации тоже.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

omi4 wrote:по анимации не выйдет, она от каста не зависит. Время анимации тоже.

Хмм.

Надо что-нибудь кастануть и посмотреть, что там экое есть..
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Я поступаю проще, смотрю исходники сервера.
Там все точно - сколько, чего, кому и когда.
Единственный вариант это время.

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

Скриптом такую задачу решать почти бесполезно, скорости не хватит.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

1. Мне пофиг на резист. Говорю же - для массовых сражений -)

2. Коннект сколько не учитывай, а конструкция такая:

Code: Select all

set timer
checklag
some action
check timer


Погрешность коннекта как раз учтётся чеклагом -)

3. Там точно кромь времени ничего нету? -( И всё-таки я не понимаю, када кастуют ФС - появляется анимация ФСа, почему вы говорите, что низя через неё сделать ?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Destruction wrote:1. Мне пофиг на резист. Говорю же - для массовых сражений -)

2. Коннект сколько не учитывай, а конструкция такая:

Code: Select all

set timer
checklag
some action
check timer


Погрешность коннекта как раз учтётся чеклагом -)

3. Там точно кромь времени ничего нету? -( И всё-таки я не понимаю, када кастуют ФС - появляется анимация ФСа, почему вы говорите, что низя через неё сделать ?


1А у тебя на каждый каст своя анимация?
2Сядь на лошадь и одень щит и оружие и посмотри на свою анимацию.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

1. Своя или нет - не принципиально, разве uo.journalserial() отменили ?

2. Я говорю про конец каста, помнишь как летит болт? -)) А как файр стрелка ? -) Ты ещё скажи, что на каждый каст одна анимация :-D
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Destruction wrote:1. Своя или нет - не принципиально, разве uo.journalserial() отменили ?

2. Я говорю про конец каста, помнишь как летит болт? -)) А как файр стрелка ? -) Ты ещё скажи, что на каждый каст одна анимация :-D


Нет, но на нек. шардах (ФОрестВарс,пвп) к примеру-я запускал скрипт который кастовал 3 подряд каста максимально быстро-тоесть была проверка на ману и реги потраченные вроде. Так смысл в том-что когда еще не было 1ой анимации, уже начинался каст второго спела( ~ 1 сек задержки )
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Может анимация не успела воспроизвестись?...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Destruction wrote:Может анимация не успела воспроизвестись?...

Мб. Ничего точно сказать не могу- но возможно другие с этим сталкивались...

Удачи в написании вобщем. Уехал учиться )
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Это что бы нельзя было кастовать как из пулемета..
private static TimeSpan NextSpellDelay = TimeSpan.FromSeconds( 0.75 );
Это время анимации, самих анимаций несколько.
private static TimeSpan AnimateDelay = TimeSpan.FromSeconds( 1.5 );

То что сервер послал анимацию не значит что ее клиент произведет полностью, на оси кастующий будет обездвижен, у клиента нет задачи следить за этим. На сфере заморозки нет, действия игрока будут обрывать анимацию.

Есть еще звук, но его шлют только кастующему.
Визуальные эфекты шлют только после каста.

Остается только время. Но чисто по нему погрешность сильно большая.

Чтобы построить автоматику на бой, нужно просчитывать всех участников разом.
Взгляд на поле боя глазами каждого участника. Если объект А ведет сражение с Б, вряд ли он будет кастовать на В. И т.д.

Только так можно построить бота, способного уложить людей пачками. Вариантов действий у персонажа управляемого человеком не так уж много, просчитать можно. Только это не сделать скриптом.

Руки по прежнему рулят.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Визуальные эфекты шлют только после каста.

Ну дык, мне и надо, после каста :-D

Остается только время. Но чисто по нему погрешность сильно большая.

Я расчитываю сделать основываясь на времени, но погрешность не будет превышать 0.5 сек., для большинства кастов.
Post Reply