Grand Crusade Список исправлений Grand Crusade

Status
Not open for further replies.
  • исправлены умения Зов Эмбрио, Щит Астатина
  • исправлены умения, удален параметр <set name="isTrigger" value="true"/>, проверка идет по is_magic=4
  • исправлены умения, удалены параметр <set name="buff_slot_type" value="2"/>, проверка is_magic=4
  • исправлены умения, удален параметр <set name="buff_slot_type" value="-1"/>, проверка is_magic=* (в зависимости от умения)
  • исправлены предметы Браслет Иного Измерения - Ур. 6 ХАР +5, Браслет Вернувшегося Воина Ивент, Браслет Иного Измерения - Ур. 6 ХАР +5
  • исправлены, корректировка предметов с durability/temporal для shadow/period-предметов по PTS itemdata, исправлено 457 предметов
  • исправлены умения с параметром: снижения/увеличения шанса маг крит атак: Массовая Уловка, Позиция для Беглого Огня, Разрушение Пустоты, Взрыв Стихии (Тьма), Защита Чернокнижника, Великое Везение (Кладоискатель Одала), Ноктюрн Безумия, Превосходное Владение Легкими Доспехами (Заступник Сайхи)
  • исправлен CastleMassTeleporter, при смерти Сторожевых Башен (Life Control Tower) во время осады телепорт увеличивается до 8 минут, вместо 30 секунд

    Правки ядра
  • исправлено наложение эффектов наставника на учеников, добавлена отсутствующая Гармония, убраны Гармонии у наставника
  • исправлен Skill, удалены кастомные флаги <set name="isTrigger", <set name="buff_slot_type"
  • исправлен Player.updateOnlineStatus, чинит ложное срабатывание no_restart-зон при коротком релоге внутри зоны и висящий online=1 после штатного логаута (исправляет релог в эпик зонах)
  • исправлен DailyTask.restartDailyCounters, добавлен дополнительный сброс DAILY-квестов через invalidateCondCache(). Чинит проблему, когда DAILY-квесты не помечались доступными после ежедневного сброса 06:30 без релога игрока
  • добавлен стат P_MAGIC_DEFENCE_CRITICAL_RATE по ретейлу (CSkillEffect_p_magic_defence_critical_rate, MagicDefenceCriticalProb)
 
  • исправлен квест Спасение Рядового Рейнджера, случайно в группе
  • исправлен квест Покаяние и его диалоги
  • исправлены предметы Оковы Грешника (5 шт.)
  • исправлены умения Снятие Печати Агатиона - Чревоугодник (5 шт.)
  • исправлен condition_target для 141 квеста согласно ретейл серверу (condition_target - это то, как предметы распределяются: соло, случайно в группе, всем в группе, командный канал)
  • исправлена продажа Манифест Альянса, Печать Амбиций за Знаки Битвы

    Правки ядра
  • исправлен пакет RequestExBR_BuyProduct.runImpl: notify=true при выдаче компонентов покупки итем-молла, игрок получает системное сообщение о полученных предметах
 
Last edited:
  • исправлено умение Гармония Наставника
  • исправлен Наградной Сундук Героя-Защитника Глудина
  • исправлены Труп Члена Авангарда Адена, отключена случайная анимация
  • исправлены квесты с невозможностью отмены, 1-76 ур, 25 шт.
 
  • исправлены умения Милая Хрюшка, Реорганизация, исправлены бонусы от веток улучшений
  • исправлены умения Одинокий Камень, Искажение, случайные виды трансформаций
  • исправлены Анаким/Лилит: блокировка повторного входа к боссу через _enterUsed в статусе битвы
  • исправлены умения Анаким/Лилит и их охраны
  • исправлена временная зона Кимериан экстремальный, фикс ConcurrentModificationException — убраны общие поля _minions/_players, спавн и раздача хейта через локальные переменные + getNpcs(true, npcId)
  • исправлена АИ Кимериана, фикс гонки двойного спавна миньонов — RaidHpState переведён на AtomicInteger, проверка порога и взведение стадии слиты в compareAndSet(0,1)

    Правки ядра
  • реализован эффект p_changebody: случайной визуальной трансформации по кумулятивной вероятности
  • исправлен эффект p_disappear_target: onExit больше не сбрасывает _isTargetable безусловно — флаг возвращается в true только при реальном снятии абнормала (не suspend) и при отсутствии другого активного абнормала с p_disappear_target; устранён возврат таргетабельности при истечении второго скилла, пока первый эффект ещё висит
 
  • исправлены Анаким и Лилит: рейды больше нельзя удерживать бесконечно.
    - Если зайти в логово, но не атаковать рейд — он сбрасывается через 1 час.
    - Если рейд атаковали, но затем не трогать его 10 минут — логово сбрасывается по простою.
    - В любом случае максимальное время с момента входа — 1 час, после чего сброс принудительный.
    При сбросе всех выкидывает наружу, прохождение начинается заново (монстры → Следы Печати → вход).
    Поведение приведено в соответствие с официальным сервером.
  • исправлены умения с типом affect_scope: ring_range (Тайфун умения, бьют между фан и аффект ренжем кольцом, аналог Таути умения "к себе")
  • исправлены ссылки в диалогах no_quest у нпс и вкладки "Сайт Игры" Сообщества

    Правки ядра
  • исправлено Player#onReduceCurrentHp: DOT на Олимпиаде больше не добивает (проверка смерти hp<=1 теперь пропускается для isDot), как на оффе
  • исправлен Creature.reduceCurrentHp(): триггеры RECEIVE_DAMAGE по исходной величине удара
  • исправлен Skill.addTargetsToList: TARGET_RING_RANGE — guard лимита изменён на (affectLimit > 0 && affectedCount >= affectLimit); affect_limit=0 теперь трактуется как «без ограничения целей» (как CCreature::GatherNeighborCreatureRingRange при affect_limit={0;0} на оффе)
  • реализован авто-анонс ивентов с автоматической подстановкой дат на двух языках
 
  • исправлен RewardListInfo, изменено колличество отображаемых предметов 30 -> 22 — фикс крита клиента (NCHtmlTable::CreateTableFrame) при переполнении HTML-окна большим дропом; эмпирический потолок ~107 таблиц/16.6КБ на странице

    Правки ядра
  • исправлен пакет ExUserInfoFishing#writeImpl: координаты хука пишутся безусловно по retail-формату "chdcddd" (User::SendFishingInfo, L2Server.exe) — фикс EXCEPTION_READ_VIOLATION у клиентов игры со строгим парсом; раньше условный writeD под isInProcess давал переменную длину пакета
 
  • исправлен Кристалл Смены Атрибута (не показывает предметы с встроенным атрибутом)
  • исправлена временная зона Пространственный Разлом, не снимает эффекты при входе
  • исправлено умение стражи Лилит, Воздушный Запуск
  • исправлен квест Извлечение Сияющей Пыли, задание высокой сложности доступно на 3 уровне фракции, вместо 4.
  • реализован АИ превращения монстров Младший Гигант, при помощи предмета: Сияющий Камень Истребителей Гигантов
  • исправлен предмет Сияющий Камень Истребителей Гигантов (откат 40с)
  • исправлен квест Контроль над Эволюцией Гигантов, теперь при взятии квеста выдается Сияющий Камень Истребителей Гигантов
  • исправлен CaveGiantsManager: расцветка зоны переведена на EventTriggersManager через Reflection#addEventTrigger/removeEventTrigger вместо Zone#setEventTriggerId+broadcastPacket — триггер теперь регается в реестре, доходит до уже находящихся в локации игроков и восстанавливается при заходе
  • исправлен квест Уничтожить правителей семян зла, убийство ЛЮБОГО из пяти лордов (Istina/Tauti/Tiat/Ekimus) завершает килл-фазу
  • исправлены квесты, изменен тип с Повторяемый на Дневной (REPEATABLE -> DAILY)
    _450_GraveRobberMemberRescue
    _500_BrothersBoundInChains
    _617_GatherTheFlames
    _667_HowToCoverShilensEyes
    _668_FightWithGiants
    _669_IntenseFightAgainstDragon
    _670_DefeatingTheLordOfSeed
    _672_EmbryoTheArchenemy
    _673_BelethAmbition
    _756_TopQualityPetra
    _834_AgainstDragonclaw
    _835_PitiableMelisa
    _846_BuildingUpStrength
    _861_KainsChoice
    _985_AdventureGuildsSpecialRequestLv1
    _986_AdventureGuildsSpecialRequestLv2
    _987_AdventureGuildsSpecialRequestLv3
    _988_AdventureGuildsSpecialRequestLv4
    _989_AdventureGuildsSpecialRequestLv5
  • исправлены квесты, изменен тип с Повторяемый на Одноразовый (REPEATABLE -> ONETIME)
    _033_MakeAPairOfDressShoes
    _034_InSearchOfClothes
    _035_FindGlitteringJewelry
    _036_MakeASewingKit
    _061_LawEnforcement
    _150_ExtremeChallengePrimalMotherResurrected
    _337_AudienceWithLandDragon
    _618_IntoTheFlame
    _621_EggDelivery
    _622_DeliveryofSpecialLiquor
    _648_AnIceMerchantsDream
    _10338_SeizeYourDestiny
    _10535_BlacksmithsSoulawakeningWeapon3
    _10539_EnergySupplyCutoffPlan
    _10703_BottleOfIstinasSoul
    _10704_BottleOfOctavisSoul
    _10705_BottleOfTautisSoul
    _10845_BloodyBattleRescueTheSmiths

    Правки ядра
  • исправлен кодировка языков в CharsetEncodingDetector#detectEncoding: инстанс UniversalDetector на вызов вместо общего статика (data race портил определение кодировки → мойбаке в холдерах); try-with-resources, catch сужен до IOException + warn-лог вместо проглатывания
  • исправлен NpcInstance: добавлен публичный setDeathTime(long) — симметрия к getDeathTime().
    Нужен для сценариев "превращения" NPC (despawn без onDeath), где штатный respawn
    HardSpawner считает задержку от deathTime.
  • исправлен MonsterInstance.onDeath: ретейл-распределение квест-килла по командному каналу
    - COMMAND_CHANNEL (mpcc_all) теперь награждает всех собранных участников, а не одного случайного: по QuestNpcEvent::Check (0x89E200) mpcc_all = весь CC, иначе фолбэк на пати; сужение до одного на оффе только для QCTT_PARTY_ONE. Раньше на не-рейдовой цели COMMAND_CHANNEL вырождался в party_one.
    - Дистанция сбора участников приведена к ретейлу: 2800 для CC-пула (mpcc_all), 1500 для пати — по QuestNpcDieEventController::Do (0x8A0FEC, дефолт m_eventRange). Раньше единый Config.ALT_PARTY_DISTRIBUTION_RANGE
 
  • исправлен квест Извлечение Сияющей Пыли, проверка фракции при первом обращении
  • исправлен CaveGiantsManager: расцветка переведена на map-keyed EventTriggersManager#addTrigger/removeTrigger по координатам рейда (как NpcInstance.event_trigger_id) — reflection-keyed вариант не досылался при смене региона, из-за чего колор не появлялся при телепорте из другой локации
  • реализована Сокровищница Гигантов в Пещере Гигантов (шанс 5%), ключи добываются из Батус Шакримы (только в группе, шанс повышается при уровне Фракции 4+)
  • исправлены диалоги Контрольная Панель Сокровищницы
  • исправлены спавн группы Сокровищниц Гигантов
  • исправлен SevenSignsRaidManager: рейд-босс (Анаким/Лилит) при спавне восстанавливается до 100% HP/MP в onZoneEnter, чтобы не появляться с остаточным хп из raidboss_status после недобитой попытки.
  • исправлен RamonaManager#onNpcSpawn: фаза-1 (26141) при спавне восстанавливается до 100% HP, чтобы не появляться с остаточным хп из raidboss_status после недобитой попытки (фазы 2/3 уже нормализовались).
  • исправлены умения монстров локации Крепость Астатин: Главный Хранитель Крепости, Смелый Солдат Астатина, Командир Ратников Астатина, Призыватель Кельбима Главный Хранитель Крепости, Призыватель Кельбима Командир Ратников Астатина, Инкрустация Астатина Командир Ратников Астатина (до этого умения были одни у всех, от базового класса Бандит Крепости)
  • исправлены умения монстров локации Крепость Астатин: Огненный Маг Крепости, Архонт Крепости, Верховный Жрец Астатина, Призыватель Кельбима Архонт Крепости, Призыватель Кельбима Верховный Жрец Астатина (до этого умения были одни у всех, от Темный Маг Крепости)

    Правки ядра
  • исправлен Skill.getReuseForMonsters: убран искусственный минимальный реюз скиллов монстров
  • исправлена задача каста умений, UseSkillTask.doTask, добавлена проверка защиты после релога, телепорта
  • исправлен AI магических монстров (WizardUseSkill), теперь не бегут в рукопашный бой, а используют умения как положено
  • исправлен PetInstance: Sin Eater (PetType.KARMA) при призыве получал 100% опыта уровня (getExpForNextLevel) — теперь призывается с уровнем владельца и 0% опыта (getExpForThisLevel)
  • исправлен эффект p_changebody: запрет скиллов и обычной атаки при визуальном морфе как на ретейле
 
  • исправлена локация Крепость Астатин, реализована система тревоги, которая динамически увеличивает дальность агрессии и клан помощи (социальность)
  • исправлен zahaq_lowInstance.isEligibleForReward: фикс дропа Петры Захака (35702) с Младшего Захака после смены квеста 756 «Петра высшего качества» на DAILY — QuestState теперь не удаляется при завершении
  • исправлено использование меток Призывателей, можно использовать через форс (ctrl) на цель
  • исправлено умение Истинный Авангард, дает бонус согласно описанию
  • исправлена локация Храм Духов, исправлен АИ монстров с разделением на воинов и магов, исправлены неработающие умения

    Правки ядра
  • исправлен Player.restoreExp(): восстановленный при воскрешении опыт больше не снижает карму (clearKarma=false); карма отрабатывается только опытом за убийство мобов
  • Player: добавлен счётчик m_TargetMeCount (inc/decTargetMeCount) для p_target_me — корректный баланс форса цели при наложении/перекасте target-me
  • исправлен эффект p_target_me: retail-модель по IDA (CSkillEffect_p_target_me::PumpStart/PumpEnd) — счётчик m_TargetMeCount, условный форс, снятие только на последнем инстансе. custom: переустановка того же таргета в onExit разлочивает клиентский /targetnext без сброса цели (замена клиентского m_TargetMeCount, отсутствующего в ядре) — фикс залипания перебора при перекасте агра, корректно в т.ч. в PvP
  • исправлен WizardBehavior/WizardUseSkill: реализован механизм i_ai4 (PTS wizard_behavior/wizard_use_skill) - маг не уходит в рукопашку, пока может кастовать, и не бросает бой после контроля.
  • исправлен Creature.onHitTimer: проверка isTargetable цели в момент нанесения удара автоатаки. По ретейлу (CAttackAction::OnTick) IsTargetable проверяется на каждом тике атак-экшена включая момент удара - замах по цели, ставшей untargetable (fake death, p_disappear_target), уходит вхолостую без системного сообщения. Ранее кейс закрывался только разовым abortAttack в p_disappear_target.
  • исправлен WizardUseSkill.recastMainAttack: гашение recast-цикла по невалидной цели - fake death (isAlikeDead), невидимость (Hide), untargetable (p_disappear_target). По ретейлу (CNPC::dUseSkill) desire по цели в fake death или невидимости не исполняется и умирает через decay
 
Last edited:
  • исправлен менеджер босса Рамона, исправлен спавн фаз рейда с остаточным HP после недобитой попытки. Теперь каждая фаза появляется с корректным HP: 1-я — 100%, 2-я — 75%, 3-я — 50%.
  • исправлен менеджер Анаким и Лилит, рейд-боссы теперь всегда появляется с полным HP, даже если предыдущую попытку бросили недобитой
  • исправлена коллизии нпс Совершенный Камаэль Сущность Леопольда, Совершенный Камаэль Сущность Энумы Элиш
  • исправлен рейд на Хелиоса, переписана логика боссов, спавна монстров по стадиям, алгоритм их действий
  • исправлен монстр Бутон, переписана логика работы и вызова монстров, в том числе предметом Живая Вода
  • исправлены монстры Гигантский Ведьмак, Великий Волшебник Лилим (маги, а не воины)
  • исправлен список предметов продаваемых в лавке Элитных Товаров Гирана, добавлена продажа А грейд оружия (согласно обновлению Helios)
  • исправлена логика следующих боссов, Рейдовый Босс может использовать умение "Берсеркер" через 15 минут с начала боя:
    • ai_raid_boss_1st - 21 шт
    • ai_raid_boss_2nd_warrior - 17 шт
    • ai_raid_boss_3rd_warrior - 13 шт
    • ai_raid_boss_4th_warrior - 12 шт
    • ai_raid_boss_2nd_wizard - 17 шт
    • ai_raid_boss_3rd_wizard - 17 шт
  • удалены статик спавны Хранителя Статуи Ангела
  • исправлены диалоги Статуй Ангела Бытия
  • реализована логика MggTalkBoss вызывает монстров в Саду Бытия, таймаут 15 минут

    Правки ядра
  • исправлен эффект i_get_agro: исправлена перепутанная desire-ветка нового AI по IDA (SetTopDesire, NS 146) — обычный моб получает топ desire атаки +1, боссу передаётся 0 (иммун). Фикс отсутствия доп-хейта агра после спада берсеркер-лока
  • исправлен эффект p_berserker: приведён к retail по IDA (CSkillEffect_p_berserker → SetAbsoluteDesire, NS 161) — на новом AI ставит абсолютное attack-desire (priority -1) на кастера и снимает через resetAbsoluteTask() вместо легаси getAI().Attack(); каст к FuncTask. Legacy-ветка сохранена для мобов на старом AI. Фикс берсеркер-лока моба на танке
  • исправлен UseSkillTask#useSkill: cast_range=-1 (retail) как отсутствие лимита дистанции
    Ретейл-скиллы с cast_range=-1 (self/AoE/конусные, напр. 16727 s_boss_helios_storm_of_fist)
  • исправлен Skill#addTargetsToList: affect_limit={0;0} = без лимита целей для AoE (retail)
    По дизасму L2Server (CCreature::PushCreatureAfterCheckRangeAndCanSee: affectLimit<=0
    = без лимита)
  • удалена неиспользуемая фича мировой статистики (с Линдвиора, world_statistic): DAO, менеджер, статуи победителей, парсер statues_spawns, месячный таск. Фича была отключена (AllowWorldStatistic=false), таблицы пусты во всех схемах.
  • реализован RaidBossUseSkill: реализация ярости рейд-босса (ATTACKED engage + TIMER_FIRED_EX 10290/10291) поверх WarriorUseSkill
  • исправлен Skill#checkTarget: удалён остаточный isTargetable-гейт первой итерации (перенесён в checkCondition в r<номер того коммита>) — фильтровал сбор целей affect_scope вопреки ретейлу (IDA: CSkillAction2::ValidateSkillTarget/OnTickHandle проверяют только aiming target). Фикс неполучения пати-бафов/хилов целью под p_disappear_target.
  • исправлен QuestState.recalcRestartTime: время рестарта DAILY-квеста обнуляется до секунд и миллисекунд (06:30:00.000). Хвост Calendar.getInstance() давал restartTime вида 06:30:45 (по всей базе разброс на всю минуту), из-за чего DailyTask в 06:30:00 заставал isNowAvailable()=false — сброс не срабатывал, квест перекэшировался как недоступный до релога.
 
  • исправлено умение Остаток Защиты
  • исправлено умение Заслуга, передаваемый параметр при энчанте
  • исправлен KimerianManagerInstance: соло-проверка пати и корректный порядок списания билета
  • исправлено умение Свет Равновесия, улучшение Мощность и Перезарядка
  • исправлено умение Сила Воли, улучшение Мощность и Перезарядка
  • исправлен аи монстров в временной зоне Штаб Легиона Эмбрио, которые ходят по точкам
  • исправлены умения Малый Небесный Щит Гиганта, Стойкость Бессмертия Гиганта, Безмолвие Гиганта, Усыпление Гиганта, Зима Гиганта (исправлены abnormal_type умений для корректной работы по наложению и снятию эффектов)
  • исправлен недостающий параметр в мультиселах keep_enchanted="true"
  • исправлено умение Вспышка, сбрасывало цель с кастовальщика
  • исправлен квест Красная нить судьбы, Алмаз Иных Миров не удаляется по завершению квеста
  • исправлены аи монстров в Разломе Между Мирами, фикс циклического изгнания у монстров
  • исправлен аи монстров Крепости Астатина, корректно приходят на помощь соклановцам. Теперь при атаке по монстру все его сородичи поблизости присоединяются к бою, как и должно быть.

    Правки ядра
  • исправлен эффект i_call_skill: наследование sub_level родительского скилла через inherit_sub_level (retail self_effect несёт ветку/уровень заточки)
  • исправлен PrioritySetTasks.getTopDesireValue: убрано условие absoluteTask != null, возврат живого максимума очереди по типу (ретейл CDesirePQ::_GetMaxValue)
  • исправлен WarriorBehavior/WizardBehavior.onEvtSeeSpell: прямая цель враждебного скилла не начисляет SEE_SPELL-хейт повторно (учтён в EVT_ATTACKED/applyEffectPoint) — устранён двойной счёт effect_point
  • исправлен Playable#checkPvP: убран запрет флага за саппорт врага в мирной зоне (флаг за баф флагнутого/ПК вешается как на оффе)
  • исправлен DimensionalRiftManager: рифт сделан полностью опциональным — тихий выход из load при отсутствии xml, null-safe getRoom и защита checkIfInRiftZone/checkIfInPeaceZone
  • исправлен Fishing#stop: генерация события onFishing при ручной смотке удочки
  • исправлен ChaosFestivalEvent#checkParticipationCond: убрана проверка рыбалки (перенесена на этап accept), добавлены проверки isDead/isTeleporting/isPK согласно офф-условиям телепорта на арену
 
Last edited:
Status
Not open for further replies.
Back
Top Bottom