Странное поведение дезы

Мне лень все расписывать по пунктам, поэтому я просто оставлю это здесь

 

P.S. Нет, я не читор, иначе бы и не выкладывал

 

[2015.09.27 20.17.26.zip](< base_url >/applications/core/interface/file/attachment.php?id=157241)

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

 

Собственно все писалось ради одного - что за музончик в клипе?)  :fedlol:

Специально для вас, краткое описание бага.

 

  1. Выстрел дезы магически телепортировался и попал в дальника, прыгающего с помощью реверсивного ускорителя.

  2. То что выстрел дезы прыгнул за телепортом и попал в цель.

3.1. Один раз.

3.2. Выстрелить с помощью дезы в цель, прыгающего ускорителем. После прыжка выстрел все равно попадет в цель и уничтожит ее.

  1. Возможно потому что у дальника пинг высокий был и из-за этого в него попали выстрелов до того как его клиент сообщил что прыжок был совершен. Не факт конечно, но мало ли.

  2. Выше.

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

 

Собственно все писалось ради одного - что за музончик в клипе?)  :fedlol:

Не помню. Вставил какой-то из ютубовского редактора, потому что не нашел, как просто убрать звук. 

 

Специально для вас, краткое описание бага.

 

  1. Выстрел дезы магически телепортировался и попал в дальника, прыгающего с помощью реверсивного ускорителя.

  2. То что выстрел дезы прыгнул за телепортом и попал в цель.

3.1. Один раз.

3.2. Выстрелить с помощью дезы в цель, прыгающего ускорителем. После прыжка выстрел все равно попадет в цель и уничтожит ее.

  1. Возможно потому что у дальника пинг высокий был и из-за этого в него попали выстрелов до того как его клиент сообщил что прыжок был совершен. Не факт конечно, но мало ли.

  2. Выше.

Для меня? Мне не платят за устранение багов)

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

21:35:23.170 CMBT | Spell 'Spell_ReverseThruster' by vivisektor(Module_ReverseThruster_T5_Epic) targets(1): vivisektor
21:35:23.228 CMBT | Heal ARTGUK|-000000001 -> ARTGUK|-000000001 70.18 Module_ShieldEmitter_T5_Epic
21:35:23.228 CMBT | Heal ARTGUK|-000000001 -> AntonyStar|-000000001 35.09 Module_ShieldEmitter_T5_Epic
21:35:23.278 CMBT | Spell 'Spell_Nanobots_Cloud_T5_Rare' by ARTGUK(Weapon_Nanobots_Cloud_T5_Rare) targets(0):
21:35:23.345 CMBT | Spell 'Spell_Cold_Ray' by Takt(Weapon_Cold_Ray_T5_Epic) targets(1): n/a
21:35:23.345 CMBT | Heal canelloni|-000000001 -> canelloni|-000000001 78.00 Module_ShieldEmitter_T5_Craft
21:35:23.345 CMBT | Heal canelloni|-000000001 -> canelloni|-000000001 56.98 Module_RemoteRepairDrones_T5_Epic
21:35:23.345 CMBT | Heal canelloni|-000000001 -> Kurliana|-000000001 58.50 Module_ShieldEmitter_T5_Craft
21:35:23.503 CMBT | Heal canelloni|-000000001 -> canelloni|-000000001 59.07 Module_FrigateDrone_T5_Faction1
21:35:23.620 CMBT | Spell 'Spell_Nanobots_Cloud_T5_Rare' by ARTGUK(Weapon_Nanobots_Cloud_T5_Rare) targets(0):
21:35:23.678 CMBT | Cancel aura 'ShieldRay_l_T5_Rare' id 12638 type AURA_HEAL_SHIELD_SCALED_PERIODIC from 'Kurliana'
21:35:23.678 CMBT | Apply aura 'ShieldRay_l_T5_Rare' id 12638 type AURA_HEAL_SHIELD_SCALED_PERIODIC to 'ARTGUK'
21:35:23.795 CMBT | Damage ARTGUK|0000026019 -> Xrom1|0000017236 230.48 Weapon_Nanobots_Cloud_T5_Rare EMP|PRIMARY_WEAPON|EXPLOSION 
21:35:24.019 CMBT | Cancel aura 'GuidedMissile_T5' id 12832 type AURA_DAMAGE_THERMAL_SCALED from 'PROSVET'
21:35:24.019 CMBT | Spell 'Spell_Nanobots_Cloud_T5_Rare' by ARTGUK(Weapon_Nanobots_Cloud_T5_Rare) targets(0):
21:35:24.069 CMBT | Heal canelloni|-000000001 -> canelloni|-000000001 59.16 Module_FrigateDrone_T5_Faction1
21:35:24.069 CMBT | Heal ARTGUK|-000000001 -> ARTGUK|-000000001 312.00 Module_ShieldRay_l_T5_Rare
21:35:24.186 CMBT | Damage ARTGUK|0000026019 -> Xrom1|0000017236 230.48 Weapon_Nanobots_Cloud_T5_Rare EMP|PRIMARY_WEAPON|EXPLOSION 
21:35:24.245 CMBT | Heal ARTGUK|-000000001 -> ARTGUK|-000000001 70.18 Module_ShieldEmitter_T5_Epic
21:35:24.245 CMBT | Heal ARTGUK|-000000001 -> AntonyStar|-000000001 35.09 Module_ShieldEmitter_T5_Epic
21:35:24.353 CMBT | Spell 'Talent_KillToMinorDamage_Mk1' by canelloni targets(1): canelloni
21:35:24.353 CMBT | Damage Fedman47|0000000490 -> vivisektor|0000024172 7402.78 Module_Disintegrator_T5_Base THERMAL 
21:35:24.354 CMBT | Fedman47 earned medal 'Killing_Spree_0' (20 experience)
21:35:24.354 CMBT | Fedman47 earned medal 'Long_Shot_0' (20 experience)
21:35:24.354 CMBT | Reward Fedman47 Ship_Race1_L_T5_Premium 4386 experience for kill vivisektor

Модуль срабатывает через 2 секунды после нажатия. Ты попал по нему до того как он телепортировался. Просто клиент неправильно отрисовал происходящее

Собственно вот кусок лога:

21:35:23.170 CMBT | Spell 'Spell_ReverseThruster' by vivisektor(Module_ReverseThruster_T5_Epic) targets(1): vivisektor
21:35:24.353 CMBT | Damage Fedman47|0000000490 -> vivisektor|0000024172 7402.78 Module_Disintegrator_T5_Base THERMAL
21:35:24.354 CMBT | Reward Fedman47 Ship_Race1_L_T5_Premium     4386 experience for kill vivisektor

Не баг.  Объясняю : в игре есть функция “донаводка прицела”,  она работает вместе с другой опцией "учет в задержки упреждения " . Собственно может быть так : летит перехват, на очень большом расстоянии 9-12  км от дезы, перехват вертится как может, деза выстреливает, происходит синхронизация на сервере. И даже если визуально снаряд должен был пролететь\либо пролетел мимо, урон проходит все равно. Сталкивался с примерно подобной ситуацией, когда выстрелил в варпающегося разведа, и сняряд также “дорулил” на пару километров  .  С тех пор я забил на ситуации когда снаряд проходит наскозь корабль не нанося урона по мне\ когда визуально сняряд пролетает в полукилометре от меня, но урон проходит, ну и на прочие шалости игры.

Просто клиент неправильно отрисовал происходящее

Ну так он вообще то и говорит что это баг.

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

Ну а в этом примере, видимо, был высокий пинг и клиент с опозданием все прорисовывал, и прорисовал отпрыг, который по факту не успел произойти.

 

P.S. У mx карма уже -1271! Делаем ставки - успеет ли он набрать -1500 к Новому году? ![:)](<fileStore.core_Emoticons>/emoticons/001.png)

Я думаю, причина бага в алгоритме отрисовки донаводки в клиенте - она не предусматривает резкое скачкообразное изменение координат цели за время пинга, т.к. она привязывает выстрел к координатам цели, а не прицела.

Мда … логика на высоте ![:(](<fileStore.core_Emoticons>/emoticons/003.png) А не много подумать и задать себе вопрос откуда ТАМ новая координата цели ?

Не баг, просто побочный эффект.

Возможно, мы попробуем его побороть. Когда-нибудь потом.

Не баг, просто побочный эффект.

Возможно, мы попробуем его побороть. Когда-нибудь потом.

Интересное суждение. А можно у ВАС узнать тогда критерии бага ?

 

Я думаю, причина бага в алгоритме отрисовки донаводки в клиенте - она не предусматривает резкое скачкообразное изменение координат цели за время пинга, т.к. она привязывает выстрел к координатам цели, а не прицела.

Мда … логика на высоте ![:(](<fileStore.core_Emoticons>/emoticons/003.png) А не много подумать и задать себе вопрос откуда ТАМ новая координата цели ?

 

Эт где ТАМ?

Эт где ТАМ?

Ваши слова :


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


Слова - то вот за эти миллисекунды происходит изменение координат цели - вообще то прибитие было раньше.

 

Эт где ТАМ?

Ваши слова :


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


Слова - то вот за эти миллисекунды происходит изменение координат цели - вообще то прибитие было раньше.

 

На сервере попадание дезы произошло в момент времени T, пинг был dT, момент отпрыга T1 находился на временной шкале между T и T+dT, поэтому клиент отрисовал сначала отпрыг на T1, а потом в момент T+dT получил данные о фраге попаданием дезы в цель и отрисовал их уже в новых координатах, в которые он переместил цель, еще не зная, что на сервере она уже умерла.

Так понятно?

На сервере попадание дезы произошло в момент времени T, пинг был dT, момент отпрыга T1 находился на временной шкале между T и T+dT, поэтому клиент отрисовал сначала отпрыг на T1, а потом в момент T+dT получил данные о фраге попаданием дезы в цель и отрисовал их уже в новых координатах, в которые он переместил цель, еще не зная, что на сервере она уже умерла.

Так понятно?

Т.е. по ВАШЕМУ координаты той цели выдает не сервак а клиент ?

 

На сервере попадание дезы произошло в момент времени T, пинг был dT, момент отпрыга T1 находился на временной шкале между T и T+dT, поэтому клиент отрисовал сначала отпрыг на T1, а потом в момент T+dT получил данные о фраге попаданием дезы в цель и отрисовал их уже в новых координатах, в которые он переместил цель, еще не зная, что на сервере она уже умерла.

Так понятно?

Т.е. по ВАШЕМУ координаты той цели выдает не сервак а клиент ?

 

Вот тут и надо копать, что за косяк в синхронизации обмена данными.

Ребят а это уже не в нашей компетенции.

Ребят а это уже не в нашей компетенции.

Но задачку-то надо решить)

Задача как раз из вышмата)