|
You last visited: Today at 06:59
Advertisement
Monster Fade Packet
Discussion on Monster Fade Packet within the CO2 Private Server forum part of the Conquer Online 2 category.
08/27/2009, 00:51
|
#1
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Monster Fade Packet
What is the mob fade packet for 5018+? I have:
offset 0 - int16 (size)
offset 2 - int16 (type)
offset 4 - int32 (Monster UID)
offset 8 - byte (Unknown)
offset 12 - byte (Unknown)
offset 16 - int16 (Unknown)
What are the unknown values?
|
|
|
08/27/2009, 01:01
|
#2
|
elite*gold: 0
Join Date: Nov 2006
Posts: 160
Received Thanks: 15
|
log it
|
|
|
08/27/2009, 01:14
|
#3
|
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
|
type is?
|
|
|
08/27/2009, 01:15
|
#4
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Provide me with the method to do so. The methods I know are:
1) Hooking - Not an option because I'm only competent in C#.
2) Proxy - When I tried, I couldn't figure out the encryption.
Edit: Type: 1017
|
|
|
08/27/2009, 13:14
|
#5
|
elite*gold: 0
Join Date: Jun 2009
Posts: 787
Received Thanks: 314
|
Drop me a PM and when I get back late tonight ~12-14 hours from now I'll hook you up with my C++ hook-based proxy.
(Source included)
You don't really have to do much to log packets except check their type and dump them to the console, lol.
If its a 0x3F9(1017 in dec) packet, it look's like it's probably a status flag (I really don't know, lol), can you provide examples of the unknown fields, or all they all 0?
|
|
|
08/27/2009, 15:37
|
#6
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Offset 8 = 1
Offset 12 = 26
Offset 16/17 = 2080
So far the members that I've added to MSN just don't reply but sure, PM sent.
|
|
|
08/28/2009, 17:12
|
#7
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Still looking for this.
|
|
|
08/28/2009, 17:22
|
#8
|
elite*gold: 0
Join Date: Jun 2009
Posts: 787
Received Thanks: 314
|
Offset 8 = The number of 'updates' in the packet. 0x3F9 packets can carry multiple updates  . In this case it's one.
Offset 12 = The type of 'update.' Can be HP, MP, Stamina, Mesh, in this case it's Status flag. This is how the client determines what to update.
Offset 16 = The value of the update. In this case it's the statusflag of the entity.
it's 0x800 | 0x20. So the status flag for 'fade' is 0x800 and 0x20 is the 'dead' status.
|
|
|
08/28/2009, 21:20
|
#9
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Quote:
Originally Posted by _tao4229_
Offset 8 = The number of 'updates' in the packet. 0x3F9 packets can carry multiple updates  . In this case it's one.
Offset 12 = The type of 'update.' Can be HP, MP, Stamina, Mesh, in this case it's Status flag. This is how the client determines what to update.
Offset 16 = The value of the update. In this case it's the statusflag of the entity.
it's 0x800 | 0x20. So the status flag for 'fade' is 0x800 and 0x20 is the 'dead' status.
|
Great, so by your explanation I have the correct info... why aren't the monsters fading when I send it? My packet looks like this:
data[0] = ToByte(size);
data[1] = ToByte(size, 8);
data[2] = ToByte(type);
data[3] = ToByte(type, 8);
data[4] = ToByte(UID);
data[5] = ToByte(UID, 8);
data[6] = ToByte(UID, 16);
data[7] = ToByte(UID, 24);
data[8] = ToByte(1); // number of updates
data[12] = ToByte(26); // type of update
data[16] = ToByte(2080); // status flag
data[17] = ToByte(2080, 8);
Seal(ref data); // appends TQ seal
|
|
|
08/28/2009, 22:05
|
#10
|
elite*gold: 0
Join Date: Jun 2009
Posts: 787
Received Thanks: 314
|
Last value should be a dword (4 bytes), and the structure could have changed, what patch is this?
|
|
|
08/28/2009, 22:17
|
#11
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
Patch 5095. That structure is from 5117, I used it because I can't get 5118+.
|
|
|
08/29/2009, 00:23
|
#12
|
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
|
your wrong what causes the monster to fade fyi
it's a combination of both a 3fe and 3e9 (3fe and 2721 now I believe)
|
|
|
08/29/2009, 00:58
|
#13
|
elite*gold: 20
Join Date: Apr 2008
Posts: 2,281
Received Thanks: 913
|
Quote:
Originally Posted by InfamousNoone
your wrong what causes the monster to fade fyi
it's a combination of both a 3fe and 3e9 (3fe and 2721 now I believe)
|
Well, I know you're right about 0x3FE.
But 0x3E9, the Create Character packet? I just don't see it..
|
|
|
08/29/2009, 01:24
|
#14
|
elite*gold: 0
Join Date: Dec 2007
Posts: 108
Received Thanks: 42
|
I assume he made a typo with the "e" and f" (should be 0x3F9, the packet type that I initially asked about). I understand that fading is a combination of the attack packet (where offset 20 = 14, usually this would be the attack type) and this 0x3F9 packet. I'm not sure where the 2721 comes in though.
|
|
|
08/29/2009, 04:28
|
#15
|
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
|
Code:
RequestAttackPacket Death = RequestAttackPacket.Create();
// ...
if (Attacker != null)
{
if (Attacker.EntityFlag == EntityFlag.Player)
{
AttackerClient = Attacker.Owner as GameClient;
MAttackDataPtr = (MAttackData*)AttackerClient.MAttackDataPtr.Addr;
}
Death.UID = Attacker.UID;
Death.AtkType = AttackID.Death;
}
// ...
// ...
// ...
if (Opponent.Dead)
{
Death.OpponentUID = Opponent.UID;
Death.X = Opponent.X;
Death.Y = Opponent.Y;
Death.KilledMonster = (Opponent.EntityFlag == EntityFlag.Monster || Opponent.EntityFlag == EntityFlag.Pet);
if (AttackerClient != null)
SucessfulPlayerKill(AttackerClient, &Death);
SendRangePacket.Add(Opponent, Kernel.ViewDistance, 0, Kernel.ToBytes(&Death), null);
}
Code:
/// <summary>
/// Notifies that this instance of a monster has died.
/// </summary>
/// <param name="Killer">The entity that killed this monster.</param>
/// <param name="Delay">The delay time before sending the remove entity packet.</param>
public virtual void Kill(IBaseEntity Killer, TIME Delay)
{
Entity.Dead = true;
CanRevive = TIME.Now.AddMinutes(1);
RemoveTime = Delay;
Status = MonsterStatus.Respawning;
if (Spawn.Monsters.Length > 1)
{
Spawn.MembersDead++;
if (Spawn.MembersDead == Spawn.Monsters.Length)
{
Spawn.ReviveGeneration();
}
}
this.Entity.Spawn.StatusFlag |= StatusFlag.Ghost;
this.Entity.Spawn.StatusFlag |= StatusFlag.BlackName;
UpdatePacket update = UpdatePacket.Create();
update.ID = UpdateID.RaiseFlag;
update.BigValue = this.Entity.StatusFlag;
update.UID = this.Entity.UID;
SendRangePacket.Add(this.Entity, Kernel.ViewDistance, 0, Kernel.ToBytes(&update), null);
DataPacket remove = DataPacket.Create();
remove.UID = this.Entity.UID;
remove.ID = DataID.RemoveEntity;
SendRangePacket.Add(this.Entity, Kernel.ViewDistance, 0, Kernel.ToBytes(&remove), ConquerCallbackKernel.CommonRemoveScreen, Delay);
if ((Settings & MonsterSettings.DropItemsOnDeath) == MonsterSettings.DropItemsOnDeath)
{
if (Killer.EntityFlag == EntityFlag.Player)
DropRewards(Killer.UID);
else
DropRewards(0);
}
Spawn.CollectionOwner.DMap.SetMonsterOnTile(this.Entity.X, this.Entity.Y, false);
}
when the remove entity packet gets sent the monster will fade and burn. the 'ghost/dead' status makes it unclickable (the monster).
|
|
|
Similar Threads
|
Metallica - Fade To Black Cover
05/23/2010 - Music - 2 Replies
Hi guys,
me and my friend made a cover of this song on youtube... It's not perfect but we had a lot fun recording it! Hope you like it =)
YouTube - Metallica - Fade To Black Cover
Grtz
|
All times are GMT +1. The time now is 07:00.
|
|