Likely you're populating the equipment packet wrong.
In newer patch clients the server sends a list of UIDs to the client to tell them which items are equipped in which slots. You're likely writing the wrong equipment to the wrong offset if your right wep is showing as left and vice versa.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Conquer_Online_Server.Client; using Conquer_Online_Server.Interfaces;
namespace Conquer_Online_Server.Network.GamePackets { public class ClientEquip : Interfaces.IPacket { private Byte[] mData;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conquer_Online_Server.Client;
using Conquer_Online_Server.Interfaces;
namespace Conquer_Online_Server.Network.GamePackets
{
public class ClientEquip : Interfaces.IPacket
{
private Byte[] mData;
public ClientEquip(GameState c)
{
this.mData = new Byte[88 + 8];
Writer.WriteUInt16((UInt16)(this.mData.Length - 8), 0, mData);
Writer.WriteUInt16((UInt16)1009, 2, mData);
Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, mData);
Writer.WriteUInt16((UInt16)0x2E, 16, mData);
DoEquips(c);
}
public void DoEquips(GameState client)
{
if (client.Equipment == null) return;
ConquerItem[] Items = client.Equipment.Objects;
Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, mData);
Writer.WriteUInt32(client.Entity.UID, 8, mData);
AlternativeEquipment = client.AlternateEquipment;
foreach (var Item in client.Equipment.Objects)
{
if (Item == null)
continue;
if (Item.IsWorn)
{
switch (Item.Position)
{
#region Equipment
case ConquerItem.Head:
this.Helm = Item.UID; break;
case ConquerItem.Necklace:
this.Necklace = Item.UID;
break;
case ConquerItem.Armor:
this.Armor = Item.UID;
break;
case ConquerItem.RightWeapon:
this.RHand = Item.UID;
break;
case ConquerItem.LeftWeapon:
this.LHand = Item.UID;
break;
case ConquerItem.Ring:
this.Ring = Item.UID;
break;
case ConquerItem.Boots:
this.Boots = Item.UID;
break;
case ConquerItem.Garment:
this.Garment = Item.UID;
break;
case ConquerItem.Bottle:
this.Talisman = Item.UID; break;
case ConquerItem.RightWeaponAccessory:
AccessoryOne = Item.UID;
break;
case ConquerItem.LeftWeaponAccessory:
AccessoryTwo = Item.UID;
break;
case ConquerItem.SteedArmor:
SteedArmor = Item.UID;
break;
case ConquerItem.SteedCrop:
SteedTalisman = Item.UID;
break;
#endregion
#region AlternateEquipment
case ConquerItem.AlternateArmor:
Armor = Item.UID;
break;
case ConquerItem.AlternateHead:
Helm = Item.UID;
break;
case ConquerItem.AlternateNecklace:
Necklace = Item.UID;
break;
case ConquerItem.AlternateRing:
Ring = Item.UID;
break;
case ConquerItem.AlternateBoots:
Boots = Item.UID;
break;
case ConquerItem.AlternateBottle:
Talisman = Item.UID;
break;
case ConquerItem.AlternateGarment:
this.Garment = Item.UID;
break;
case ConquerItem.AlternateLeftWeapon:
LHand = Item.UID;
break;
case ConquerItem.AlternateRightWeapon:
RHand = Item.UID;
break;
#endregion
}
}
}
if (!client.Equipment.Free((byte)ConquerItem.Armor)) if (client.ArmorLook > 0) Garment = Armor = uint.MaxValue - 1;
if (!client.Equipment.Free((byte)ConquerItem.Head)) if (client.HeadgearLook > 0) Helm = uint.MaxValue - 2;
if (!client.Equipment.Free((byte)ConquerItem.RightWeapon)) if (client.WeaponLook > 0) RHand = uint.MaxValue - 3;
if (!client.Equipment.Free((byte)ConquerItem.LeftWeapon)) if (client.WeaponLook2 > 0) LHand = uint.MaxValue - 4;
}
public void Deserialize(byte[] buffer) { this.mData = buffer; }
public byte[] ToArray()
{ return mData; }
public void Send(Client.GameState client) { client.Send(mData); }
public bool AlternativeEquipment
{
get { return this.mData[12] == 1 ? true : false; }
set { this.mData[12] = value ? (byte)1 : (byte)0; }
}
public UInt32 Helm
{
get { return BitConverter.ToUInt32(this.mData, 36); }
set { Writer.WriteUInt32(value, 36, mData); }
}
public UInt32 Necklace
{
get { return BitConverter.ToUInt32(this.mData, 40); }
set { Writer.WriteUInt32(value, 40, mData); }
}
public UInt32 Armor
{
get { return BitConverter.ToUInt32(this.mData, 44); }
set { Writer.WriteUInt32(value, 44, mData); }
}
public UInt32 RHand
{
get { return BitConverter.ToUInt32(this.mData, 48); }
set { Writer.WriteUInt32(value, 48, mData); }
}
public UInt32 LHand
{
get { return BitConverter.ToUInt32(this.mData, 52); }
set { Writer.WriteUInt32(value, 52, mData); }
}
public UInt32 Ring
{
get { return BitConverter.ToUInt32(this.mData, 56); }
set { Writer.WriteUInt32(value, 56, mData); }
}
public UInt32 Talisman
{
get { return BitConverter.ToUInt32(this.mData, 60); }
set { Writer.WriteUInt32(value, 60, mData); }
}
public UInt32 Boots
{
get { return BitConverter.ToUInt32(this.mData, 64); }
set { Writer.WriteUInt32(value, 64, mData); }
}
public UInt32 Garment
{
get { return BitConverter.ToUInt32(this.mData, 68); }
set { Writer.WriteUInt32(value, 68, mData); }
}
public uint AccessoryOne
{
get { return BitConverter.ToUInt32(mData, 72); }
set { Writer.WriteUInt32(value, 72, mData); }
}
public uint AccessoryTwo
{
get { return BitConverter.ToUInt32(mData, 76); }
set { Writer.WriteUInt32(value, 76, mData); }
}
public UInt32 SteedArmor
{
get { return BitConverter.ToUInt32(this.mData, 80); }
set { Writer.WriteUInt32(value, 80, mData); }
}
public UInt32 SteedTalisman
{
get { return BitConverter.ToUInt32(this.mData, 84); }
set { Writer.WriteUInt32(value, 84, mData); }
}
}
}
I don't understand why some of your integers are written as hex and some are written as actual numerals. You're making typecasting stupid. And un needed.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conquer_Online_Server.Client;
using Conquer_Online_Server.Interfaces;
namespace Conquer_Online_Server.Network.GamePackets
{
public class ClientEquip : Interfaces.IPacket
{
private Byte[] mData;
Item Position on Inventory 04/25/2013 - Flyff Private Server - 2 Replies anyone can help me on how to fix the position of the item on Inventory
Here's the picture:
http://img7.imageshack.us/img7/94/kantot.png
Thanks in Advance :handsdown: :handsdown:
[Suche] Komplette item.eix/epk, icon.eix/epk, item proto und item list 12/25/2010 - Metin2 Private Server - 6 Replies Hey =)
Wie die Überschrift schon sagt, suche ich eine komplette item.eix/epk, icon.eix/epk, item proto und item list am liebsten noch von den Waffen von .darki und den ganzen neuen Rüstungen/Schilden/Helmen, da ich überhaupt nicht weiß wie man dass zB mit der item proto macht und wenn ich sie einfach nur ersetze, wie zB durch die "Waffen" item proto von .darki sind die ganzen neuen Rüstungen weg ....
Ich hoffe irgendjemand könnte das machen, weil es bestimmt nicht nur für mich hilfreich ist...
[Request]Getting item info of an item on a position 06/02/2009 - CO2 Private Server - 0 Replies I can`t figure this out. I`m using CoEmuV2, btw. I thought that it could be done with SQL but... I suck at SQL ^.^. Sooo... could anyone help me out?
I`m trying to get the item information (level, +, quality, etc.) on an Equipement position, like 4 (Right Hand).
item position tauschen 08/05/2008 - Kal Online - 27 Replies wie kann ich die item slots untereinander tauwcne sprich slot 1 rev stones slot 6 meds wie kann ich die tauschen per uce???