NL0bP / AAEmu

A server software for ArcheAge written in .Net Core
Other
16 stars 8 forks source link

[BUG] <Баг с нанесением своего логотипа на предметы> #60

Open Black-Judge opened 4 months ago

Black-Judge commented 4 months ago

I confirm that:

Code branch that is affected by this issue

AAEmu-client_version-3.0_client(2017-03-15)+

Bug description

Проявился баг с созданием и нанесением своего логотипа на предметы (плащи, паруса, глайдеры) Проблема заключается в следующих пунктах :

  1. Предметы для изготовления шаблона и штампа (ИД 11127 Чернила геральдиста ИД 4053 Memory Ink), а также сам одноразовый штамп не исчезают после применения (на нашем сервере не используется Несмываемые чернила для активации штампа, я так понял их ввели специально для mail.ru, в нашем случае используется ИД 4053 Memory Ink)
  2. При нанесении штампа на предмет возникает ошибка и клиент закрывается, при этом штамп наносится на предмет и если повторно зайти в игру то предмет уже будет с личным логотипом.
  3. Повторно создать шаблон можно только после перезагрузки сервера, если не перезагрузить сервер то при попытке создать шаблон ничего не происходит.
  4. ИД 19780 Шаблон штампа герба (на нашем сервере) служит для возвращения предмету изначального рисунка, на нашем сервере этот предмет также работает некорректно, при попытке применения возникает ошибка на экране, но клиент не закрывается и предмету возвращается изначальный вид, также он не исчезает после использования.
  5. После перезагрузки сервера рисунок на предмете не сохраняется, что является серьезной ошибкой в работе этой механики.

Текст ошибки из логов:

08:59:10 [ERROR] PacketMarshaler - UNKNOWN OPCODE FOR PACKET 08:59:10 [ERROR] PacketMarshaler - GamePacket: C->S type 160 .C2G.CSStartSkillPacket 08:59:10 [FATAL] PacketMarshaler - System.SystemException: System error. System.SystemException: System error. at AAEmu.Game.Core.Network.Game.GamePacket.Encode() in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 119 at AAEmu.Game.Core.Network.Connections.GameConnection.SendPacket(GamePacket packet) in /server/AAEmuDev/AAEmu.Game/Core/Network/Connections/GameConnection.cs:line 66 at AAEmu.Game.Models.Game.Units.Unit.SendPacket(GamePacket packet) in /server/AAEmuDev/AAEmu.Game/Models/Game/Units/Unit.cs:line 675 at AAEmu.Game.Models.Game.Skills.Effects.ImprintUccEffect.Apply(BaseUnit caster, SkillCaster casterObj, BaseUnit target, SkillCastTarget targetObj, CastAction castObj, EffectSource source, SkillObject skillObject, DateTime time, CompressedGamePackets packetBuilder) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Effects/ImprintUccEffect.cs:line 41 at AAEmu.Game.Models.Game.Skills.Skill.ApplyEffects(BaseUnit caster, SkillCaster casterCaster, BaseUnit targetSelf, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 996 at AAEmu.Game.Models.Game.Skills.Skill.ScheduleEffects(BaseUnit caster, SkillCaster casterCaster, BaseUnit target, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 756 at AAEmu.Game.Models.Game.Skills.Skill.Cast(BaseUnit caster, SkillCaster casterCaster, BaseUnit target, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 651 at AAEmu.Game.Models.Game.Skills.Skill.Use(BaseUnit caster, SkillCaster casterCaster, SkillCastTarget targetCaster, SkillObject skillObject, Boolean bypassGcd) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 255 at AAEmu.Game.Core.Packets.C2G.CSStartSkillPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSStartSkillPacket.cs:line 109 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171 08:59:10 [ERROR] GameProtocolHandler - System.SystemException: System error. System.SystemException: System error. at AAEmu.Game.Core.Network.Game.GamePacket.Encode() in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 119 at AAEmu.Game.Core.Network.Connections.GameConnection.SendPacket(GamePacket packet) in /server/AAEmuDev/AAEmu.Game/Core/Network/Connections/GameConnection.cs:line 66 at AAEmu.Game.Models.Game.Units.Unit.SendPacket(GamePacket packet) in /server/AAEmuDev/AAEmu.Game/Models/Game/Units/Unit.cs:line 675 at AAEmu.Game.Models.Game.Skills.Effects.ImprintUccEffect.Apply(BaseUnit caster, SkillCaster casterObj, BaseUnit target, SkillCastTarget targetObj, CastAction castObj, EffectSource source, SkillObject skillObject, DateTime time, CompressedGamePackets packetBuilder) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Effects/ImprintUccEffect.cs:line 41 at AAEmu.Game.Models.Game.Skills.Skill.ApplyEffects(BaseUnit caster, SkillCaster casterCaster, BaseUnit targetSelf, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 996 at AAEmu.Game.Models.Game.Skills.Skill.ScheduleEffects(BaseUnit caster, SkillCaster casterCaster, BaseUnit target, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 756 at AAEmu.Game.Models.Game.Skills.Skill.Cast(BaseUnit caster, SkillCaster casterCaster, BaseUnit target, SkillCastTarget targetCaster, SkillObject skillObject) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 651 at AAEmu.Game.Models.Game.Skills.Skill.Use(BaseUnit caster, SkillCaster casterCaster, SkillCastTarget targetCaster, SkillObject skillObject, Boolean bypassGcd) in /server/AAEmuDev/AAEmu.Game/Models/Game/Skills/Skill.cs:line 255 at AAEmu.Game.Core.Packets.C2G.CSStartSkillPacket.Read(PacketStream stream) in /server/AAEmuDev/AAEmu.Game/Core/Packets/C2G/CSStartSkillPacket.cs:line 109 at AAEmu.Game.Core.Network.Game.GamePacket.Decode(PacketStream ps) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GamePacket.cs:line 149 at AAEmu.Game.Core.Network.Game.GameProtocolHandler.OnReceive(GameConnection connection, Byte[] buf, Int32 bytes) in /server/AAEmuDev/AAEmu.Game/Core/Network/Game/GameProtocolHandler.cs:line 171

Steps to reproduce

Перед созданием логотипа требуется:

Подготовить изображение в формате png размером 256х256, которое необходимо назвать «ucc» и поместить в папку UCC (находится в папке профиля игры); Создать чернила геральдиста ИД 11127, создать ИД 4053 ; Найти гербовый станок (во всех крупных городах). После того как все требования выполнены, можно приступить к созданию логотипа:

Подойти к гербовому станку и в открывшемся окне выбрать заранее подготовленное изображение; Подтвердить свой выбор; Получить шаблон; Сделать одноразовый штамп посредством ранее полученного шаблона; Активировать штамп и выбрать вещь для нанесения логотипа.

Полученный таким образом шаблон будет в постоянном пользовании у создателя. Штампы, созданные с помощью ИД 4053 Memory Ink, можно передавать другим персонажам. Количество создаваемых штампов ограниченно лишь количеством имеющихся в наличии ИД 4053 Memory Ink.

пример логотипа для глайдера Охотник за удачей ИД 40019

https://drive.google.com/drive/folders/1-MqYK-wTQCUcHUGrCgkrsMY__b7ldS-o?usp=sharing

Expected behavior

Screenshots

Пример того как это работает у нас

https://youtu.be/H_mGOzyHkZM

Пример как это работает на mail.ru

https://www.youtube.com/watch?v=yNoKpMfv9Po

Any additional context for this bug