Forging Interface correct interactions

11/01/2019 04:33 pintinho12#1
Hello,
I've been working on upgrading my source and there's a problem which already happens on oldest interface, but it happens often on the newest.

Problem: When you upgrade an equipment level, quality, append a DragonSoul, Refinery, or stabilize them the interface should show an animation showing that the interaction has been successful. But, example: when Stabilizying a Soul, the Stones get stuck in the interface and nothing shows. If you don't hover your mouse over the equipment, you wouldn't notice the difference. Same with others, on 2.0 it used to refresh the interface showing an animation, but I can't manage to reproduce it here.

What I've tried: I have tried to reply the same packet, I've tried to send the item update packets before sending the packet, I've tried to don't send the reply packet and just update the equipment, I've tried to send the new equipment packet before removing the required items from the inventory. Nothing worked.

-edit: Only happens on Upgrade Quality, Level, Soul and Refinery (Stabilize too) :/ no effect,no screen update

Screenshots:
What is happening :(
[Only registered and activated users can see links. Click Here To Register...]

What should be happening:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
11/01/2019 08:34 teroareboss1#2
for Stabilize/Purification you need to send the right type :

Code:
RefinaryAdding = 2,
PermanentRefinery = 3,
StabilizationEffectRefined = 4,
PurificationEffect = 5,
PurificationAdding = 6,
ExpireTime = 7,
Stabilization = 8,
StabilizationEffectPurification = 9
on last version the packet is like this:

Code:
 stream.InitWriter();

            stream.Write((uint)(Refinerys.Count + Purifications.Count));

            foreach (var item in Purifications)
            {
                stream.Write(item.ItemUID);//0
                stream.Write((uint)item.Typ);//4 <-- here you need to write the type
                stream.Write(item.PurificationItemID);//8
                stream.Write(item.PurificationLevel);//12
                stream.Write(item.EffectPercent2);//16
                stream.Write(item.PurificationDuration);//20
                stream.Write(item.SecoundsLeft);//24

                stream.Write((uint)0);//unknow
            }
            foreach (var item in Refinerys)
            {
                stream.Write(item.ItemUID);//0
                stream.Write((uint)item.Typ);//4  <-- here you need to write the type
                stream.Write(item.EffectID);
                stream.Write(item.EffectLevel);//12
                stream.Write(item.EffectPercent);//16
                stream.Write(item.EffectPercent2);//20
                stream.Write(item.SecoundsLeft);//24
            }

            stream.Finalize(GamePackets.CMsgItemStatus);
for item quality send packet 1009 with type:

Code:
            UpgradeDragonball = 0x13,
            UpgradeMeteor = 0x14,
there set the offest 4 = itemUID and offset 8 = 1 for successfully or 0 for fail
11/01/2019 14:16 pintinho12#3

Tho, what is the sequence? This is the completion code for Artifacts (DragonSouls)
Code:
target.LoadArtifactAndRefinery();

                    MsgItemStatus send = new MsgItemStatus
                    {
                        Count = 1,
                        Mode = PurificationType.StabilizationEffectPurification,
                        PurificationIdentity = target.Identity,
                        Level = target.ArtifactLevel,
                        Time = target.ArtifactExpire,
                        Type = target.ArtifactType
                    };
                    user.Send(send);
I love you so much. ♥

Edit
I've been reading on the train and I think I know how to handle it. I'll try again.

Edit2:
The upgrade level and quality are working. But the Soul and Refinery thing still stuck without showing the effect :/.
11/03/2019 11:14 turk55#4
Are you sending the packet back to the client?
11/03/2019 21:32 pintinho12#5
Quote:
Originally Posted by turk55 View Post
Are you sending the packet back to the client?
It's not only send the packet back to the client lol
I managed to finish the Aritifact part, but the Permanent Stones not
11/28/2019 21:41 pintinho12#6
For Stabilization:
Send back MsgItemStatus with subtype 4 to show interaction with refineries
Send back MsgItemStatus with subtype 9 to show interaction with artifacts

For appending:
Send back MsgItemStatus with subtype 5 to show interaction with artifacts

Send the updated item information in the MsgItemStatus :)

The problem has been solved. Request close.
11/29/2019 10:14 KraHen#7
Closing the post as requested, could you please update the main post with your findings for further reference for us? :D This is a nice find, congrats. :)