|
You last visited: Today at 20:13
Advertisement
Forging Interface correct interactions
Discussion on Forging Interface correct interactions within the CO2 Private Server forum part of the Conquer Online 2 category.
11/01/2019, 04:33
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Forging Interface correct interactions
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
What should be happening:
|
|
|
11/01/2019, 08:34
|
#2
|
elite*gold: 0
Join Date: Feb 2009
Posts: 262
Received Thanks: 161
|
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
|
#3
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by teroareboss1
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
|
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
|
#4
|
elite*gold: 130
Join Date: Oct 2007
Posts: 1,655
Received Thanks: 705
|
Are you sending the packet back to the client?
|
|
|
11/03/2019, 21:32
|
#5
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
Quote:
Originally Posted by turk55
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
|
#6
|
elite*gold: 0
Join Date: Jul 2009
Posts: 943
Received Thanks: 408
|
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
|
#7
|
elite*gold: 0
Join Date: Jul 2006
Posts: 2,216
Received Thanks: 794
|
Closing the post as requested, could you please update the main post with your findings for further reference for us?  This is a nice find, congrats.
|
|
|
Similar Threads
|
[Release] Coupled Interactions (Correct)
11/06/2017 - CO2 PServer Guides & Releases - 6 Replies
Hey everyone,
Before I release anything, I wanted to bring this to everyone's attention. I strongly believe that developers should work together on researching into the conquer online client. If we shared more information, we might see better and more creative servers (which I strongly support).
Alright. So in this release, I'll be publishing the research required for programming coupled interactions. I've posted something similar before, and I'd like to correct myself on a few things (I...
|
All times are GMT +1. The time now is 20:14.
|
|