You ppl need to be careful with pastebin code.
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
hhhhhhhhhhhhhhhhhhhhhhhhh
have fun
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
FULLY WORK!!!
[Only registered and activated users can see links. Click Here To Register...]Quote:
This is my Item Lock that NOONE has, so don't release it.
Search for:
public void Send(Main.GameClient GC, bool Stats)
Replace the whole void with:
public void Send(Main.GameClient GC, bool Stats)
{
if (HeadGear.ID != 0) GC.AddSend(Packets.AddItem(HeadGear, 1));
if (Necklace.ID != 0) GC.AddSend(Packets.AddItem(Necklace, 2));
if (Armor.ID != 0) GC.AddSend(Packets.AddItem(Armor, 3));
if (RightHand.ID != 0) GC.AddSend(Packets.AddItem(RightHand, 4));
if (LeftHand.ID != 0) GC.AddSend(Packets.AddItem(LeftHand, 5));
if (Ring.ID != 0) GC.AddSend(Packets.AddItem(Ring, 6));
if (Gourd.ID != 0) GC.AddSend(Packets.AddItem(Gourd, 7));
if (Boots.ID != 0) GC.AddSend(Packets.AddItem(Boots, 8));
if (Garment.ID != 0) GC.AddSend(Packets.AddItem(Garment, 9));
if (Fan.ID != 0) GC.AddSend(Packets.AddItem(Fan, 10));
if (Tower.ID != 0) GC.AddSend(Packets.AddItem(Tower, 11));
if (Steed.ID != 0) GC.AddSend(Packets.AddItem(Steed, 12));
if (HeadGear.ID != 0 && HeadGear.Locked == 2)
GC.AddSend(Packets.ItemLock(HeadGear.UID, 1, 2, HeadGear.LockedDays));
if (Necklace.ID != 0 && Necklace.Locked == 2)
GC.AddSend(Packets.ItemLock(Necklace.UID, 1, 2, Necklace.LockedDays));
if (Armor.ID != 0 && Armor.Locked == 2)
GC.AddSend(Packets.ItemLock(Armor.UID, 1, 2, Armor.LockedDays));
if (RightHand.ID != 0 && RightHand.Locked == 2)
GC.AddSend(Packets.ItemLock(RightHand.UID, 1, 2, RightHand.LockedDays));
if (LeftHand.ID != 0 && LeftHand.Locked == 2)
GC.AddSend(Packets.ItemLock(LeftHand.UID, 1, 2, LeftHand.LockedDays));
if (Ring.ID != 0 && Ring.Locked == 2)
GC.AddSend(Packets.ItemLock(Ring.UID, 1, 2, Ring.LockedDays));
if (Gourd.ID != 0 && Gourd.Locked == 2)
GC.AddSend(Packets.ItemLock(Gourd.UID, 1, 2, Gourd.LockedDays));
if (Boots.ID != 0 && Boots.Locked == 2)
GC.AddSend(Packets.ItemLock(Boots.UID, 1, 2, Boots.LockedDays));
if (Garment.ID != 0 && Garment.Locked == 2)
GC.AddSend(Packets.ItemLock(Garment.UID, 1, 2, Garment.LockedDays));
if (Fan.ID != 0 && Fan.Locked == 2)
GC.AddSend(Packets.ItemLock(Fan.UID, 1, 2, Fan.LockedDays));
if (Tower.ID != 0 && Tower.Locked == 2)
GC.AddSend(Packets.ItemLock(Tower.UID, 1, 2, Tower.LockedDays));
if (Steed.ID != 0 && Steed.Locked == 2)
GC.AddSend(Packets.ItemLock(Steed.UID, 1, 2, Steed.LockedDays));
if (Stats)
{
GC.MyChar.EquipStats(1, true);
GC.MyChar.EquipStats(2, true);
GC.MyChar.EquipStats(3, true);
GC.MyChar.EquipStats(4, true);
GC.MyChar.EquipStats(5, true);
GC.MyChar.EquipStats(6, true);
GC.MyChar.EquipStats(7, true);
GC.MyChar.EquipStats(8, true);
GC.MyChar.EquipStats(9, true);
GC.MyChar.EquipStats(10, true);
GC.MyChar.EquipStats(11, true);
GC.MyChar.EquipStats(12, true);
GC.MyChar.LoadedEquipmentHPAdd = true;
}
}
Search for:
public bool locked;
Replace that with:
public byte Locked;
public uint LockedDays;
Search for:
public static COPacket Movement(uint UID, byte Dir)
{
byte[] Packet = new byte[8 + 16];
COPacket P = new COPacket(Packet);
P.WriteInt16((ushort)(Packet.Length - 8));
P.WriteInt16((ushort)10005);
P.WriteInt32((byte)(Dir + 8 * Program.Rnd.Next(7)));
P.WriteInt32(UID);
P.WriteInt32((uint)Environment.TickCount);
return P;
}
Above that add:
public static COPacket ItemLock(uint ItemID, byte Value1, byte Value2, uint Value3)
{
byte[] Packet = new byte[8 + 16];
COPacket P = new COPacket(Packet);
P.WriteInt16((ushort)(Packet.Length - 8));
P.WriteInt16((ushort)2048);
P.WriteInt32(ItemID);
P.WriteByte(Value1);
P.WriteByte(Value2);
P.WriteInt32(Value3);
return P;
}
Search for:
case 2064:
Above that add:
case 2048:
{
uint UID;
fixed (byte* p = Data)
UID = *((uint*)(p + 4));
switch (Data[8])
{
case 0:
{
Item I = GC.MyChar.FindInvItem(UID);
if (I.ID != 0)
{
if (I.Locked != 1)
{
GC.MyChar.Inventory.Remove(I);
I.Locked = 1;
GC.AddSend(Packets.ItemLock(UID, 1, I.Locked, I.LockedDays));
GC.MyChar.Inventory.Add(I);
}
else
GC.LocalMessage(2005, "The item is already locked.");
}
break;
}
case 1:
{
Item I = GC.MyChar.FindInvItem(UID);
if (I.ID != 0)
{
if (I.Locked == 1)
{
GC.MyChar.Inventory.Remove(I);
DateTime datetounlock = DateTime.Now;
datetounlock = datetounlock.AddDays(7);
I.LockedDays = Convert.ToUInt32(datetounlock.ToString("yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture) );
I.Locked = 2;
GC.AddSend(Packets.ItemLock(UID, 1, I.Locked, I.LockedDays));
GC.MyChar.Inventory.Add(I);
}
}
break;
}
}
break;
}
Last, replace your whole Teleport.cs with this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NewestCOServer.PacketHandling
{
public class Teleport
{
public static void Handle(Main.GameClient GC, byte[] Data)
{
if (!GC.LoginDataSent)
{
GC.AddSend(Packets.Packet1012Time(GC.MyChar.Entity ID));
GC.AddSend(Packets.GeneralData(GC.MyChar.Loc.Map, GC.MyChar.Loc.Map, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x4a));
GC.AddSend(Packets.GeneralData(GC.MyChar.EntityID, 0xffffffff, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 0x68));
if (GC.MyChar.Loc.Map == 1036)
GC.AddSend(Packets.MapStatus(GC.MyChar.Loc.Map, 30));
else
GC.AddSend(Packets.MapStatus(GC.MyChar.Loc.Map, 32));
foreach (Game.Item I in GC.MyChar.Inventory)
{
GC.AddSend(Packets.AddItem(I, 0));
if (I.Locked == 2)
GC.AddSend(Packets.ItemLock(I.UID, 1, 2, I.LockedDays));
}
GC.MyChar.Equips.Send(GC, true);
foreach (Game.Prof P in GC.MyChar.Profs.Values)
GC.AddSend(Packets.Prof(P));
foreach (Game.Skill S in GC.MyChar.Skills.Values)
GC.AddSend(Packets.Skill(S));
if (GC.MyChar.MyGuild != null)
{
GC.AddSend(Packets.GuildInfo(GC.MyChar.MyGuild, GC.MyChar));
GC.AddSend(Packets.String(GC.MyChar.MyGuild.GuildI D, (byte)Game.StringType.GuildName, GC.MyChar.MyGuild.GuildName));
}
foreach (Features.Guild G in Features.Guilds.AllTheGuilds.Values)
GC.AddSend(Packets.String(G.GuildID, (byte)Game.StringType.GuildName, G.GuildName));
GC.MyChar.PKPoints = GC.MyChar.PKPoints;
GC.MyChar.Nobility.Rank = GC.MyChar.Nobility.Rank;
GC.LocalMessage(2000, "Welcome to NewestCOServer");
GC.LocalMessage(2000, "Enjoy.");
if (Game.World.KOBoard[0].Name == GC.MyChar.Name)
GC.LocalMessage(2000, "You are the 1st place on the KO board, you gain 2 times more exp than others.");
if (Game.World.CurrentBC.Message != null)
GC.AddSend(Packets.ChatMessage(GC.MessageID, Game.World.CurrentBC.Name, "ALL", Game.World.CurrentBC.Message, 2500, 0));
}
}
}
}
Done.
Remember, do not release this.
hhhhhhhhhhhhhhhhhhhhhhhhh
have fun