Каст скиллов (момент skill_hit_cancel_time) и его прерывание сбросом таргета?

KATE

Под колпаком.
Партнер
L2JETERNITY
Победитель в номинации 2023
Часть системы
Победитель в номинации 2021
Мастер реакций
Баг мой - друг мой
Знак Форума за коммерческие успехи
Неукротимое пламя
Разработчик
Стальной Визионер
Веселый флудер
Любитель реакций
Куратор Данных
За заслуги перед форумом
За веру и верность форуму
Медаль за активность на Форуме
Победитель в номинации 2020
Победитель в номинации 2019
Сообщения
566
Розыгрыши
0
Репутация
2 256
Реакции
1 182
Баллы
1 053
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
Своя
Друзья, нужна ваша помощь в разгадке момента.

Например:
СХ и его скилл Хуррикан
Код:
skill_name    s_hurricane11
skill_id    1239
skill_hit_time    4
skill_hit_cancel_time    0.5
Время каста 4 сек
Время когда скилл всё равно докастуется 0,5 (или нельзя отменить? может не так трактую?)

Так вот вопрос:
Сможет ли скилл подобный Трику, Шадов Степ, Аура Флеш и др. которые сбрасывают таргет сбить каст скилла (полностью прервать атаку) когда время каста будет в промежутке skill_hit_cancel_time или даже при сбросе таргета всё равно докастуется?

Ситуация:
Кастую Хуррикан и на момент каста skill_hit_cancel_time АВ юзает Трик (сброс таргета) - докастуется хуррикан или атака полностью прервётся?
 
Друзья, нужна ваша помощь в разгадке момента.

Например:
СХ и его скилл Хуррикан
Код:
skill_name    s_hurricane11
skill_id    1239
skill_hit_time    4
skill_hit_cancel_time    0.5
Время каста 4 сек
Время когда скилл всё равно докастуется 0,5 (или нельзя отменить? может не так трактую?)

Так вот вопрос:
Сможет ли скилл подобный Трику, Шадов Степ, Аура Флеш и др. которые сбрасывают таргет сбить каст скилла (полностью прервать атаку) когда время каста будет в промежутке skill_hit_cancel_time или даже при сбросе таргета всё равно докастуется?

Ситуация:
Кастую Хуррикан и на момент каста skill_hit_cancel_time АВ юзает Трик (сброс таргета) - докастуется хуррикан или атака полностью прервётся?
Мне кажется что трик должен все равно сбить каст, а выше данные, используются для расчета когда цель невидно, допустим забежал за колонну на оли, будет ли урон или нет.
 
Мне кажется что трик должен все равно сбить каст, а выше данные, используются для расчета когда цель невидно, допустим забежал за колонну на оли, будет ли урон или нет.
просто по репортам со скрайда и других сомнительных серверов, там каст не сбивается. Из этого и возникает вопрос как должно быть?
 
В промежутке от skill_hit_cancel_time до конца, каст уже не может быть сбит если цель выйдет из зоны видимости, а также уже не может быть отменён юзером.

Но эффект i_target_cancel при срабатывании сбивает каст в любой его момент.
 
просто по репортам со скрайда и других сомнительных серверов, там каст не сбивается. Из этого и возникает вопрос как должно быть?
Ну за то там многу унлайна, так юзеры тоже говорят)
 
skill_hit_cancel_time = время для отмены скила посредством прожатия клавиши Esc. Иными словами 500ms для того чтобы отменить каст. Отвечая на ваш вопрос - всё собьётся в любой промежуток времени начиная со start и заканчивая последними ms до финиша, если trick/switch попадёт.

UPD. либо это остаточное время 0.5 сек. когда вы НЕ сможете отменит ьскилл когда его каст завершается. Но это тскилл по-прежнему сбивается и т.д. и т.п. Пример: каст 3.5 сек. когда остаётся 0.5 до "выстрела" Esc не будет работать.

Короче это точно сделано для собственно-ручной отмены.
 
Последнее редактирование:
Спасибо за ответы! По итогу именно так как сказали и расписали Spoken и finfan.

Дополнительно протестировали этот момент на Адвекс :)
Посмотреть видео можно тут и

Тестили Шадов Степ и Трюк
skill_names_shadow_step1
skill_id821
effect{i_teleport_to_target};{i_target_cancel;100}


skill_names_trick2
skill_id11
effect{i_delete_hate_of_me;80};{i_target_cancel;80}
 
Последнее редактирование:
skill_hit_cancel_time = время для отмены скила посредством прожатия клавиши Esc. Иными словами 500ms для того чтобы отменить каст. Отвечая на ваш вопрос - всё собьётся в любой промежуток времени начиная со start и заканчивая последними ms до финиша, если trick/switch попадёт.

UPD. либо это остаточное время 0.5 сек. когда вы НЕ сможете отменит ьскилл когда его каст завершается. Но это тскилл по-прежнему сбивается и т.д. и т.п. Пример: каст 3.5 сек. когда остаётся 0.5 до "выстрела" Esc не будет работать.

Короче это точно сделано для собственно-ручной отмены.
Чем ты болен ? hitCancelTime = skill_hit_cancel_time это промежуток до которого есть вероятность сбить каст скила. Применяется только для isMagic = магический (ваш кэп, физ скилы не интераптятся), в ином случаи скил не сбивается. Запусти твоя полудурная бошка ПТС и проверь самостоятельно.
skill(умение) hit(удар) я так понял тебе ни о чем не говорит.

Спасибо за ответы! По итогу именно так как сказали и расписали Spoken и finfan.

Дополнительно протестировали этот момент на Адвекс :)
Посмотреть видео можно тут и

Тестили Шадов Степ и Трюк
skill_names_shadow_step1
skill_id821
effect{i_teleport_to_target};{i_target_cancel;100}


skill_names_trick2
skill_id11
effect{i_delete_hate_of_me;80};{i_target_cancel;80}
Тебе нассали в уши. Запусти ПТСку и чекни сам. Установи время для физ скила любое и время кста огромное, потом маг скилу и тоже большое время и тупа атакуй чем тебе угодно, увидишь что каст маг скила будет сбит при атаке. Физического же скила не будет сбит никогда.

Никогда не слушай никого - запускаешь ПТСку, она есть в шаре и все проверяешь сам. Долбое*ы тебе такого насоветуют...
 
Последнее редактирование:
физ скилы не интераптятся
Совершенно верно, но только когда речь идёт о получении любого урона кастующим.
И верно также, что сбитие каста любым уроном тоже возможно только до промежутка skill_hit_cancel_time.

Но причем здесь механика эффекта i_target_cancel? Вопрос ТС был о нём.
 
Но причем здесь механика эффекта i_target_cancel? Вопрос ТС был о нём.
совершенно верно! И по тестам на птс все тоже не так однозначно не всегда каст отменяется даже если таргет убирается. Но хочется больше конкретики
 
насколько я помню, у птса ещё есть глобальный тик в 0.6сек
помню смутно, но вроде как он может вызывать некоторые несоответствия цифр в подобных тестах, особенно на столь низких значениях

маловато я про это знаю\помню, так что может кто поправит

//вбросил
 
совершенно верно! И по тестам на птс все тоже не так однозначно не всегда каст отменяется даже если таргет убирается. Но хочется больше конкретики
Есть уже готовый скилл которым можно корректно протестировать: [s_antaras_debuff] skill_id = 4109
В нём:
skill_hit_time = 2.8
skill_hit_cancel_time = 2

Это значит, что по истечении 0.8 сек каста, наступит промежуток skill_hit_cancel_time длительностью 2 сек (проверить когда он наступил можно, нажимая Esc для отмены каста - каст уже не будет отменяться).

Юзайте какой-нибудь Трик в этом промежутке и увидите что каст сбивается всегда, когда эффект проходит (т.е. когда слетает таргет).

Ну и конкретная конкретика:
C++:
bool __fastcall CSkillEffect_i_target_cancel::Instant(struct CSkillEffect_i_target_cancel *This, struct CCreature *Actor, struct CObject *Target, const struct CSkillInfo *SkillInfo, struct CSkillAction2 *SkillAction, double DistanceSqr)
{
  const struct CSkillInfo *skillInfo; // rsi@1
  struct CObject *target; // rbx@1
  struct CCreature *actor; // rbp@1
  struct CSkillEffect_i_target_cancel *this; // r12@1
  bool result; // al@2
  struct CCreature *targetCreature; // rbx@3
  double chance; // xmm6_8@8

  skillInfo = SkillInfo;
  target = Target;
  actor = Actor;
  this = This;

  if ( target->Vtbl->IsCreature(target) )
  {
    targetCreature = target->Vtbl->GetCreature(target);
    if ( targetCreature->Vtbl->IsBoss(targetCreature) || targetCreature->Vtbl->IsZzoldagu(targetCreature) )
    {
      result = 0;
    }
    else if ( targetCreature->Vtbl->IsNPC(targetCreature) && targetCreature->SharedData->ex_crt_effect == 1 )
    {
      result = 0;
    }
    else
    {
      chance = L2SkillFunc::CalculateProbability((double)this->nEffectChance, actor, targetCreature, skillInfo);
      if ( chance > Rnd::GetDouble_OneInclusive() * (100.0 - 0.0) + 0.0 )
      {
        if ( targetCreature->SharedData->nTargetIndex )
        {
          CCreature::DoNothingAction(targetCreature);
          targetCreature->Vtbl->ChangeTarget(targetCreature, 0i64, CTR_CanceledByEffect);
          CCreature::DoNothingAction(targetCreature);
        }
      }
      result = 1;
    }
  }
  else
  {
    result = 0;
  }
  return result;
}
 
Оффтоп:
Знатоки птс и всего такого - откройте заводчанину главную тайну: что все таки триггерит рб на аое кенсел и маг скиллы, и иногда непонятный срыв с танка на петов и тд, или где это посмотреть можно :unsure:
 
Offtopic:
Connoisseurs of PTS and all that - reveal the main secret to the factory worker: what all the same triggers RB on AoE Kensel and Mage skills, and sometimes an incomprehensible break from the tank to Pets, etc., or where you can watch it : unsure:
class raid_boss_standard

RandomizeAttackDesire ();




class raid_boss_type1

EventHandler ATTACKED (attacker, damage) {
if (attacker.is_pc! = 0 || IsInCategory (@summon_npc_group, attacker.npc_class_id)) {
if (IsNullCreature (attacker) == 0 && IsNullCreature (myself.top_desire_target) == 0) {
if (attacker == myself.top_desire_target && Rand (15) <1) {
AddUseSkillDesire (attacker, PhysicalSpecial_a, @ST_ATTACK, @AMT_MOVE_TO_TARGET, 1000000);
}

if (attacker! = myself.top_desire_target && DistFromMe (attacker) <150 && Rand (25 * 15) <1) {
AddUseSkillDesire (myself.sm, SelfRangePhysicalSpecial_a, @ST_ATTACK, @AMT_MOVE_TO_TARGET, 1000000);
}

if (DistFromMe (attacker) <150 && Rand (50 * 15) <1) {
AddUseSkillDesire (myself.sm, SelfRangeCancel_a, @ST_ATTACK, @AMT_MOVE_TO_TARGET, 1000000);
}
}
}
 
для "заводчан" жеж :pandaredlol:
if (DistFromMe (attacker) <150 && Rand (50 * 15) <1) это с каждой атакой какого-то челика в радиусе 150 есть шанс 1/750 что прилетит кенсел?
 
для "заводчан" жеж :pandaredlol:
if (DistFromMe (attacker) <150 && Rand (50 * 15) <1) это с каждой атакой какого-то челика в радиусе 150 есть шанс 1/750 что прилетит кенсел?
если атакующий ближе 150 и выпал 0 из 750
 
Юзайте какой-нибудь Трик в этом промежутке и увидите что каст сбивается всегда, когда эффект проходит (т.е. когда слетает таргет).
Мы больший упор делали на тест шадоу степа где шанс заведомо 100% -> итог нихрена не 100% сбивается каст хотя таргет слетает всегда
 
Мы больший упор делали на тест шадоу степа где шанс заведомо 100% -> итог нихрена не 100% сбивается каст хотя таргет слетает всегда
Если цель 85 уровня - шанс ШС'а около 55%
 
Назад
Сверху Снизу