|
You last visited: Today at 03:56
Advertisement
Need Help In ArtisanWand
Discussion on Need Help In ArtisanWand within the CO2 Private Server forum part of the Conquer Online 2 category.
08/13/2014, 15:25
|
#1
|
elite*gold: 0
Join Date: Jun 2014
Posts: 127
Received Thanks: 0
|
Need Help In ArtisanWand
Need Help in ArtisanWand Not Functionally will where to look for this Code.
|
|
|
08/13/2014, 23:00
|
#2
|
elite*gold: 0
Join Date: Feb 2006
Posts: 726
Received Thanks: 271
|
packet 1010 off the top of my head, don't remember what type exactly....
|
|
|
08/13/2014, 23:21
|
#3
|
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
|
Packet structure may be different, Idk if it has ever changed.
Code:
//Project by BaussHacker aka. L33TS
using System;
namespace ProjectX_V3_Game.Packets.Item
{
/// <summary>
/// Description of Improve.
/// </summary>
public class Improve
{
public static void Handle(Entities.GameClient client, ItemPacket packet)
{
if (client.Booth != null)
return;
if (!client.Alive)
return;
if (!client.Inventory.ContainsByUID(packet.UID) && client.Inventory.ContainsByUID(packet.Data1))
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
client.Send(msg);
return;
}
Data.ItemInfo ToUpgrade = client.Inventory.GetItemByUID(packet.UID);
if (ToUpgrade.CurrentDura < ToUpgrade.MaxDura)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_LOW_DURA))
client.Send(msg);
return;
}
Data.ItemInfo Dragonball = client.Inventory.GetItemByUID(packet.Data1);
if (Dragonball == null || ToUpgrade == null)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
client.Send(msg);
return;
}
if (ToUpgrade.IsGarment() || ToUpgrade.IsArrow() || ToUpgrade.IsBottle() ||
ToUpgrade.IsSteed() || ToUpgrade.IsMisc())
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_INVALID_UPGRADE))
client.Send(msg);
return;
}
if (ToUpgrade.Quality >= 9)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_SUPER))
client.Send(msg);
return; // super
}
if (Dragonball.ItemID != 1088000)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(
client.Name,
string.Format(Core.MessageConst.ITEM_AMOUNT_FAIL, "Dragonball's")))
client.Send(msg);
return;
}
uint NewID = ToUpgrade.ItemID;
if (ToUpgrade.Quality >= 6)
NewID = (ToUpgrade.ItemID + 1);
else
{
while ((NewID % 10) < 6)
{
NewID++;
}
}
if (Core.Kernel.ItemInfos.Contains(NewID))
{
Data.ItemInfo newItem;
if (Core.Kernel.ItemInfos.TrySelect(NewID, out newItem))
{
if (newItem.Quality > ToUpgrade.Quality && newItem.Name == ToUpgrade.Name)
{
if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.QualityUpgradeChance))
{
Data.ItemInfo NewUpgradedItem = newItem.Copy();
NewUpgradedItem.SetStats(ToUpgrade);
client.Inventory.RemoveItemByUID(ToUpgrade.UID);
client.Inventory.RemoveItemByUID(Dragonball.UID);
if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.FirstSocketChance) &&
NewUpgradedItem.Gem1 == Enums.SocketGem.NoSocket)
{
NewUpgradedItem.Gem1 = Enums.SocketGem.EmptySocket;
}
else if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.SecondSocketChance) &&
NewUpgradedItem.Gem2 == Enums.SocketGem.NoSocket)
{
NewUpgradedItem.Gem2 = Enums.SocketGem.EmptySocket;
}
client.Inventory.AddItem(NewUpgradedItem);
}
}
}
}
}
}
}
Code:
//Project by BaussHacker aka. L33TS
using System;
namespace ProjectX_V3_Game.Packets.Item
{
/// <summary>
/// Description of Uplev.
/// </summary>
public class Uplev
{
public static void Handle(Entities.GameClient client, ItemPacket packet)
{
if (client.Booth != null)
return;
if (!client.Alive)
return;
if (!client.Inventory.ContainsByUID(packet.UID) && client.Inventory.ContainsByUID(packet.Data1))
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
client.Send(msg);
return;
}
Data.ItemInfo ToUpgrade = client.Inventory.GetItemByUID(packet.UID);
if (ToUpgrade.CurrentDura < ToUpgrade.MaxDura)
return;
Data.ItemInfo Meteor = client.Inventory.GetItemByUID(packet.Data1);
if (Meteor == null || ToUpgrade == null)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
client.Send(msg);
return;
}
if (ToUpgrade.IsGarment() || ToUpgrade.IsArrow() || ToUpgrade.IsBottle() ||
ToUpgrade.IsSteed() || ToUpgrade.IsMisc())
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_INVALID_UPGRADE))
client.Send(msg);
return;
}
if (ToUpgrade.RequiredLevel >= 120)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_MAX_LEVEL))
client.Send(msg);
return; // max level
}
if (Meteor.ItemID != 1088001 && Meteor.ItemID != 1088002)
{
using (var msg = Packets.Message.MessageCore.CreateSystem(
client.Name,
string.Format(Core.MessageConst.ITEM_AMOUNT_FAIL, "Meteor- or Meteortear's")))
client.Send(msg);
return;
}
uint NewID = ToUpgrade.ItemID + 10;
int loop = 4;
while (!Core.Kernel.ItemInfos.Contains(NewID))
{
NewID += 10;
loop--;
if (loop <= 0)
break;
}
if (Core.Kernel.ItemInfos.Contains(NewID))
{
Data.ItemInfo newItem;
if (Core.Kernel.ItemInfos.TrySelect(NewID, out newItem))
{
if (newItem.RequiredLevel > ToUpgrade.RequiredLevel && newItem.TypeName == ToUpgrade.TypeName)
{
if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.LevelUpgradeChance))
{
Data.ItemInfo NewUpgradedItem = newItem.Copy();
NewUpgradedItem.SetStats(ToUpgrade);
client.Inventory.RemoveItemByUID(ToUpgrade.UID);
client.Inventory.RemoveItemByUID(Meteor.UID);
if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.FirstSocketChance) &&
NewUpgradedItem.Gem1 == Enums.SocketGem.NoSocket)
{
NewUpgradedItem.Gem1 = Enums.SocketGem.EmptySocket;
}
else if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.SecondSocketChance) &&
NewUpgradedItem.Gem2 == Enums.SocketGem.NoSocket)
{
NewUpgradedItem.Gem2 = Enums.SocketGem.EmptySocket;
}
client.Inventory.AddItem(NewUpgradedItem);
}
}
}
}
}
}
}
Code:
//Project by BaussHacker aka. L33TS
using System;
using ProjectX_V3_Lib.Network;
namespace ProjectX_V3_Game.Packets
{
/// <summary>
/// Client -> Server
/// Server -> Client
/// </summary>
public class ItemPacket : DataPacket
{
public ItemPacket()
: base(92, Packets.PacketType.ItemPacket)
{
}
public ItemPacket(DataPacket inPacket)
: base(inPacket)
{
}
/// <summary>
/// Gets the item action.
/// </summary>
public Enums.ItemAction Action
{
get { return (Enums.ItemAction)ReadUInt32(12); }
set { WriteUInt32((uint)value, 12); }
}
public uint UID
{
get { return ReadUInt32(4); }
set { WriteUInt32(value, 4); }
}
public uint Data1
{
get { return ReadUInt32(8); }
set { WriteUInt32(value, 8); }
}
public uint Data2
{
get { return ReadUInt32(20); }
set { WriteUInt32(value, 20); }
}
/// <summary>
/// Offset [8/0x08]
/// </summary>
public ushort Data1Low
{
get { return (ushort)Data1; }
set { Data1 = (uint)((Data1High << 16) | value); }
}
/// <summary>
/// Offset [10/0x0a]
/// </summary>
public ushort Data1High
{
get { return (ushort)(Data1 >> 16); }
set { Data1 = (uint)((value << 16) | Data1Low); }
}
public void SetGears(Data.Equipments equips)
{
if (equips.Contains(Enums.ItemLocation.Head))
WriteUInt32(equips[Enums.ItemLocation.Head].UID, 32);
if (equips.Contains(Enums.ItemLocation.Necklace))
WriteUInt32(equips[Enums.ItemLocation.Necklace].UID, 36);
if (equips.Contains(Enums.ItemLocation.Armor))
WriteUInt32(equips[Enums.ItemLocation.Armor].UID, 40);
if (equips.MaskedRightHand != null)
WriteUInt32(equips.MaskedRightHand.UID, 44);
else if (equips.Contains(Enums.ItemLocation.WeaponR))
WriteUInt32(equips[Enums.ItemLocation.WeaponR].UID, 44);
if (equips.MaskedLeftHand != null)
WriteUInt32(equips.MaskedLeftHand.UID, 48);
else if (equips.Contains(Enums.ItemLocation.WeaponL))
WriteUInt32(equips[Enums.ItemLocation.WeaponL].UID, 48);
if (equips.Contains(Enums.ItemLocation.Ring))
WriteUInt32(equips[Enums.ItemLocation.Ring].UID, 52);
if (equips.Contains(Enums.ItemLocation.Bottle))
WriteUInt32(equips[Enums.ItemLocation.Bottle].UID, 56);
if (equips.Contains(Enums.ItemLocation.Boots))
WriteUInt32(equips[Enums.ItemLocation.Boots].UID, 60);
if (equips.MaskedGarment != null)
WriteUInt32(equips.MaskedGarment.UID, 64);
else if (equips.Contains(Enums.ItemLocation.Garment))
WriteUInt32(equips[Enums.ItemLocation.Garment].UID, 64);
// if (equips.Contains(Enums.ItemLocation.Fan))
// WriteUInt32(equips[Enums.ItemLocation.Fan].UID, 68);
// if (equips.Contains(Enums.ItemLocation.Tower))
//WriteUInt32(equips[Enums.ItemLocation.Tower].UID, 72);
if (equips.Contains(Enums.ItemLocation.SteedArmor))
WriteUInt32(equips[Enums.ItemLocation.SteedArmor].UID, 76);
else if (equips.Contains(Enums.ItemLocation.Steed))
WriteUInt32(equips[Enums.ItemLocation.Steed].UID, 76);
//if (equips.Contains(Enums.ItemLocation.Head))
// WriteUInt32(equips[Enums.ItemLocation.Head].UID, 80);
}
/// <summary>
/// Handling the ItemPacket.
/// </summary>
/// <param name="client">The client.</param>
/// <param name="packet">The packet.</param>
public static void Handle(Entities.GameClient client, DataPacket packet)
{
using (var item = new ItemPacket(packet))
{
if (item.Action != Enums.ItemAction.Ping)
{
if (client.Trade.Trading)
return;
}
switch (item.Action)
{
#region Ping : 27
case Enums.ItemAction.Ping:
Item.Ping.Handle(client, item);
break;
#endregion
#region Drop : 37
case Enums.ItemAction.Drop:
Item.Drop.Handle(client, item);
break;
#endregion
#region Buy : 1
case Enums.ItemAction.Buy:
Item.Buy.Handle(client, item);
break;
#endregion
#region Sell : 2
case Enums.ItemAction.Sell:
Item.Sell.Handle(client, item);
break;
#endregion
#region Use
case Enums.ItemAction.Use:
Item.Use.Handle(client, item);
break;
#endregion
#region Unequip : ?
case Enums.ItemAction.Unequip:
Item.Unequip.Handle(client, item);
break;
#endregion
#region Improve : ?
case Enums.ItemAction.Improve:
Item.Improve.Handle(client, item);
break;
#endregion
#region Uplev : ?
case Enums.ItemAction.Uplev:
Item.Uplev.Handle(client, item);
break;
#endregion
#region ActivateAccessory : ?
case Enums.ItemAction.ActivateAccessory:
Item.ActivateAccessory.Handle(client, item);
break;
#endregion
#region QueryMoneySaved : ?
case Enums.ItemAction.QueryMoneySaved:
Item.QueryMoneySaved.Handle(client, item);
break;
#endregion
#region SaveMoney : ?
case Enums.ItemAction.SaveMoney:
Item.SaveMoney.Handle(client, item);
break;
#endregion
#region DrawMoney : ?
case Enums.ItemAction.DrawMoney:
Item.DrawMoney.Handle(client, item);
break;
#endregion
#region Bless : ?
case Enums.ItemAction.Bless:
Item.Bless.Handle(client, item);
break;
#endregion
#region BoothAdd : ?
case Enums.ItemAction.BoothAdd:
Item.BoothAdd.Handle(client, item);
break;
#endregion
#region BoothAddCP : ?
case Enums.ItemAction.BoothAddCP:
Item.BoothAddCP.Handle(client, item);
break;
#endregion
#region BoothBuy : ?
case Enums.ItemAction.BoothBuy:
Item.BoothBuy.Handle(client, item);
break;
#endregion
#region BoothDelete : ?
case Enums.ItemAction.BoothDelete:
Item.BoothDelete.Handle(client, item);
break;
#endregion
#region BoothDelete : ?
case Enums.ItemAction.BoothQuery:
Item.BoothQuery.Handle(client, item);
break;
#endregion
#region default
default:
Console.WriteLine("Unhandled item packet: {0} User: {1}", item.Action, client.Name);
break;
#endregion
}
}
}
}
}
Code:
//Project by BaussHacker aka. L33TS
using System;
namespace ProjectX_V3_Game.Enums
{
/// <summary>
/// The different types of actions ItemPacket handles.
/// </summary>
public enum ItemAction : uint
{
/// <summary>
/// [00]
/// </summary>
None = 0,
/// <summary>
/// [01]
/// </summary>
Buy = 1,
/// <summary>
/// [02]
/// </summary>
Sell = 2,
/// <summary>
/// [03]
/// </summary>
Remove = 3,
/// <summary>
/// [04]
/// </summary>
Use = 4,
/// <summary>
/// [05]
/// </summary>
Equip = 5,
/// <summary>
/// [06]
/// </summary>
Unequip = 6,
/// <summary>
/// [07]
/// </summary>
SplitItem = 7,
/// <summary>
/// [08]
/// </summary>
CombineItem = 8,
/// <summary>
/// [09]
/// </summary>
QueryMoneySaved = 9,
/// <summary>
/// [10]
/// </summary>
SaveMoney = 10,
/// <summary>
/// [11]
/// </summary>
DrawMoney = 11,
/// <summary>
/// [12]
/// </summary>
DropMoney = 12,
/// <summary>
/// [13]
/// </summary>
SpendMoney = 13,
/// <summary>
/// [14]
/// </summary>
Repair = 14,
/// <summary>
/// [15]
/// </summary>
RepairAll = 15,
/// <summary>
/// [16]
/// </summary>
Ident = 16,
/// <summary>
/// [17]
/// </summary>
Durability = 17,
/// <summary>
/// [18]
/// </summary>
DropEquipment = 18,
/// <summary>
/// [19]
/// </summary>
Improve = 19,
/// <summary>
/// [20]
/// </summary>
Uplev = 20,
/// <summary>
/// [21]
/// </summary>
BoothQuery = 21,
/// <summary>
/// [22]
/// </summary>
BoothAdd = 22,
/// <summary>
/// [23]
/// </summary>
BoothDelete = 23,
/// <summary>
/// [24]
/// </summary>
BoothBuy = 24,
/// <summary>
/// [25]
/// </summary>
SynchroAmount = 25,
/// <summary>
/// [26]
/// </summary>
Fireworks = 26,
/// <summary>
/// [27]
/// </summary>
Ping = 27,
/// <summary>
/// [28]
/// </summary>
Enchant = 28,
/// <summary>
/// [29]
/// </summary>
BoothAddCP = 29,
/// <summary>
/// [33]
/// </summary>
PkItemRedeem = 33,
/// <summary>
/// [37]
/// </summary>
Drop = 37,
Bless = 40,
ActivateAccessory = 41,
SocketEquipment = 43,
/// <summary>
/// [46]
/// </summary>
DisplayGears = 46,
/// <summary>
/// [52]
/// </summary>
RequestItemTooltip = 52,
}
}
ItemPacket = 1009
Old af codes lmfaooo.
|
|
|
All times are GMT +1. The time now is 03:56.
|
|