Originally Posted by teroareboss1
Here all:
Code:
#region Flower
public static void AddFlowers(Client.GameState client, byte[] packet )
{
if (packet[4] == 2)
{
if (client.Entity.MyFlowers != null)
{
Game.Struct.Flowers F = client.Entity.MyFlowers;
// string ToSend = " " + F.RedRoses.ToString() + " " + F.RedRoses2day.ToString() + " " + F.Lilies.ToString() + " " + F.Lilies2day.ToString() + " ";
// ToSend += F.Orchads.ToString() + " " + F.Orchads2day.ToString() + " " + F.Tulips.ToString() + " " + F.Tulips2day.ToString();
Network.GamePackets.FlowerPacket flow = new FlowerPacket(F);
client.Send(flow.ToArray());
int mybestcount = 0;
if (F.Lilies > mybestcount)
mybestcount = F.Lilies;
if (F.Orchads > mybestcount)
mybestcount = F.Orchads;
if (F.RedRoses > mybestcount)
mybestcount = F.RedRoses;
if (F.Tulips > mybestcount)
mybestcount = F.Tulips;
if (F.Lilies == mybestcount)
{
if(mybestcount >= ServerBase.Kernel.MaxLilies)
{
client.Entity.ActualMyTypeFlower = 30010102;
FlowerSpawn fl = new FlowerSpawn("1", client.Entity.Name, F.Lilies.ToString(), client.Entity.UID.ToString(), 30000102);
client.Send(fl.ThePacket());
ServerBase.Kernel.MaxLilies = (uint)mybestcount;
}
}
if (F.Orchads == mybestcount)
{if(mybestcount >= ServerBase.Kernel.MaxOrchads)
{
client.Entity.ActualMyTypeFlower = 30010202;
FlowerSpawn fl = new FlowerSpawn("1", client.Entity.Name, F.Orchads.ToString(), client.Entity.UID.ToString(), 30000202);
client.Send(fl.ThePacket());
ServerBase.Kernel.MaxOrchads = (uint)mybestcount;
}
}
if (F.RedRoses == mybestcount)
{
if (mybestcount >= ServerBase.Kernel.MaxRoses)
{
client.Entity.ActualMyTypeFlower = 30010002;
FlowerSpawn fl = new FlowerSpawn("1", client.Entity.Name, F.RedRoses.ToString(), client.Entity.UID.ToString(), 30000002);
client.Send(fl.ThePacket());
ServerBase.Kernel.MaxRoses = (uint)mybestcount;
}
}
if (F.Tulips == mybestcount)
{
if (mybestcount >= ServerBase.Kernel.MaxTulips)
{
client.Entity.ActualMyTypeFlower = 30010302;
FlowerSpawn fl = new FlowerSpawn("1", client.Entity.Name, F.Tulips.ToString(), client.Entity.UID.ToString(), 30000302);
client.Send(fl.ThePacket());
} ServerBase.Kernel.MaxTulips = (uint)mybestcount;
}
}
else
{
client.Entity.MyFlowers = new Conquer_Online_Server.Game.Struct.Flowers();
Game.Struct.Flowers F = client.Entity.MyFlowers;
Network.GamePackets.FlowerPacket flow = new FlowerPacket(F);
client.Send(flow.ToArray());
Database.Flowers.SaveFlowerRank(client);
}
byte[] packe2nd = new byte[24]
{
0x10, 0x00 , 0x7F , 0x04 , 0x05 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
, 0x54 , 0x51 , 0x53 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72
};
client.Send(packe2nd);
}
}
public static void SendFlowers(Client.GameState client, byte[] packet)
{
uint TargetID = BitConverter.ToUInt32(packet, 8);
int Flowers = BitConverter.ToUInt16(packet, 20);
int Type = packet[24];
if (Flowers == 1)
{
if (client.Entity.AddFlower == 0)
{
client.Send(new Network.GamePackets.Message("Sorry, but you send the flower today! ", System.Drawing.Color.White, Message.Center));
return;
}
}
bool change = false;
if (ServerBase.Kernel.GamePool.ContainsKey(TargetID))
{
Client.GameState Cclient = ServerBase.Kernel.GamePool[TargetID];
if (Conquer_Online_Server.ServerBase.Kernel.AllFlower.ContainsKey(Cclient.Entity.UID))
{
if (Cclient.Entity.Body.ToString().EndsWith("3") || Cclient.Entity.Body.ToString().EndsWith("4"))
return;
byte[] packe2nd2 = new byte[24]
{
0x10, 0x00 , 0x7F , 0x04 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
, 0x54 , 0x51 , 0x53 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72
};
Cclient.Send(packe2nd2);
Game.Struct.Flowers F = Conquer_Online_Server.ServerBase.Kernel.AllFlower[Cclient.Entity.UID];
switch (Type)
{
case 0:
{
string It = "751";
if (Flowers == 1)
It += "001";
else if (Flowers == 3)
It += "003";
else if (Flowers == 9)
It += "009";
else if (Flowers == 99)
It += "099";
else if (Flowers == 999)
It += "999";
if (client.Inventory.Contains(uint.Parse(It), 1))
client.Inventory.Remove(uint.Parse(It), 1);
client.Send(packet);
F.RedRoses += Flowers;
F.RedRoses2day += Flowers;
//if (F.RedRoses > 100000)
// Cclient.Entity.FlowerSend = "TakeOnRoseSuit";
Cclient.Entity.MyFlowers = Conquer_Online_Server.ServerBase.Kernel.AllFlower[Cclient.Entity.UID];
Cclient.Send(packet);
int mybestcount = 0;
if (F.Lilies > mybestcount)
mybestcount = F.Lilies;
if (F.Orchads > mybestcount)
mybestcount = F.Orchads;
if (F.RedRoses > mybestcount)
mybestcount = F.RedRoses;
if (F.Tulips > mybestcount)
mybestcount = F.Tulips;
if (F.RedRoses == mybestcount)
{
if(F.RedRoses >= ServerBase.Kernel.MaxRoses)
{
Cclient.Entity.ActualMyTypeFlower = 30010002;
Cclient.Send(new FlowerSpawn("1", Cclient.Entity.Name, F.RedRoses.ToString(), Cclient.Entity.UID.ToString(), 30000002).ThePacket());
ServerBase.Kernel.MaxRoses = (uint)F.RedRoses;
change = true;
}
}
break;
}
case 1:
{
string It = "752";
if (Flowers == 1)
It += "001";
else if (Flowers == 3)
It += "003";
else if (Flowers == 9)
It += "009";
else if (Flowers == 99)
It += "099";
else if (Flowers == 999)
It += "999";
if (client.Inventory.Contains(uint.Parse(It), 1))
client.Inventory.Remove(uint.Parse(It), 1);
client.Send(packet);
F.Lilies += Flowers;
F.Lilies2day += Flowers;
//if (F.Lilies > 100000)
// Cclient.Entity.FlowerSend = "TakeOnLilySuit";
Cclient.Entity.MyFlowers = Conquer_Online_Server.ServerBase.Kernel.AllFlower[Cclient.Entity.UID];
Cclient.Send(packet);
int mybestcount = 0;
if (F.Lilies > mybestcount)
mybestcount = F.Lilies;
if (F.Orchads > mybestcount)
mybestcount = F.Orchads;
if (F.RedRoses > mybestcount)
mybestcount = F.RedRoses;
if (F.Tulips > mybestcount)
mybestcount = F.Tulips;
if (F.Lilies == mybestcount)
{
if(F.RedRoses >= ServerBase.Kernel.MaxLilies)
{
Cclient.Entity.ActualMyTypeFlower = 30010102;
FlowerSpawn fl = new FlowerSpawn("1", Cclient.Entity.Name, F.Lilies.ToString(), Cclient.Entity.UID.ToString(), 30000102);
Cclient.Send(fl.ThePacket());
ServerBase.Kernel.MaxLilies = (uint)F.RedRoses;
change = true;
}
}
break;
}
case 2:
{
string It = "753";
if (Flowers == 1)
It += "001";
else if (Flowers == 3)
It += "003";
else if (Flowers == 9)
It += "009";
else if (Flowers == 99)
It += "099";
else if (Flowers == 999)
It += "999";
if (client.Inventory.Contains(uint.Parse(It), 1))
client.Inventory.Remove(uint.Parse(It), 1);
client.Send(packet);
F.Orchads += Flowers;
F.Orchads2day += Flowers;
//if (F.Orchads> 100000)
// Cclient.Entity.FlowerSend = "TakeOnOrchisSuit";
Cclient.Entity.MyFlowers = Conquer_Online_Server.ServerBase.Kernel.AllFlower[Cclient.Entity.UID];
Cclient.Send(packet);
int mybestcount = 0;
if (F.Lilies > mybestcount)
mybestcount = F.Lilies;
if (F.Orchads > mybestcount)
mybestcount = F.Orchads;
if (F.RedRoses > mybestcount)
mybestcount = F.RedRoses;
if (F.Tulips > mybestcount)
mybestcount = F.Tulips;
if (F.Orchads == mybestcount)
{
if(F.Orchads >= ServerBase.Kernel.MaxOrchads)
{
Cclient.Entity.ActualMyTypeFlower = 30010202;
FlowerSpawn fl = new FlowerSpawn("1", Cclient.Entity.Name, F.Orchads.ToString(), Cclient.Entity.UID.ToString(), 30000202);
Cclient.Send(fl.ThePacket());
ServerBase.Kernel.MaxOrchads = (uint)F.Orchads;
change = true;
}
}
break;
}
case 3:
{
string It = "754";
if (Flowers == 1)
It += "001";
else if (Flowers == 3)
It += "003";
else if (Flowers == 9)
It += "009";
else if (Flowers == 99)
It += "099";
else if (Flowers == 999)
It += "999";
if (client.Inventory.Contains(uint.Parse(It), 1))
client.Inventory.Remove(uint.Parse(It), 1);
client.Send(packet);
F.Tulips += Flowers;
F.Tulips2day += Flowers;
//if (F.Tulips > 100000)
// Cclient.Entity.FlowerSend = "TakeOnTulipSuit";
Cclient.Entity.MyFlowers = Conquer_Online_Server.ServerBase.Kernel.AllFlower[Cclient.Entity.UID];
Cclient.Send(packet);
int mybestcount = 0;
if (F.Lilies > mybestcount)
mybestcount = F.Lilies;
if (F.Orchads > mybestcount)
mybestcount = F.Orchads;
if (F.RedRoses > mybestcount)
mybestcount = F.RedRoses;
if (F.Tulips > mybestcount)
mybestcount = F.Tulips;
if (F.Tulips == mybestcount)
{
if(F.Tulips >= ServerBase.Kernel.MaxTulips)
{
Cclient.Entity.ActualMyTypeFlower = 30010302;
FlowerSpawn fl = new FlowerSpawn("1", Cclient.Entity.Name, F.Tulips.ToString(), Cclient.Entity.UID.ToString(), 30000302);
Cclient.Send(fl.ThePacket());
ServerBase.Kernel.MaxTulips = (uint)F.Tulips;
change = true;
}
}
break;
}
}
if (Flowers == 1)
client.Entity.AddFlower = 0;
//client.Send(new FlowerSpawn2(Cclient.Entity.UID.ToString()).ThePacket());
string name = client.Entity.Name + " " + Cclient.Entity.Name + " " + Flowers + " " + Type + "";
byte[] Buffer = new byte[68];
Network.Writer.WriteUInt16((ushort)(60), 0, Buffer);
Network.Writer.WriteUInt16(1150, 2, Buffer);
Network.Writer.WriteUInt32((uint)Flowers, 48, Buffer);
Network.Writer.WriteUInt32((uint)Type, 56, Buffer);//52
for (int i = 0; i < client.Entity.Name.Length; i++)
{
try
{
Buffer[16 + i] = Convert.ToByte(client.Entity.Name[i]);
}
catch { }
}
for (int i = 0; i < Cclient.Entity.Name.Length; i++)
{
try
{
Buffer[32 + i] = Convert.ToByte(Cclient.Entity.Name[i]);
}
catch { }
}
Cclient.Send(Buffer);
if (Flowers == 1)
client.Send(Buffer);
//clienSend(new FlowerSpawn2(Cclient.Entity.UID.ToString()).ThePacket());
Network.GamePackets._String strgp = new Network.GamePackets._String(true);
strgp.Texts.Add("NEW-flower-r-1");
strgp.TextsCount = 1;
strgp.Type = 10;
strgp.UID = client.Entity.UID;
client.Screen.Reload(strgp);
strgp.UID = Cclient.Entity.UID;
Cclient.Screen.Reload(strgp);
Network.GamePackets.FlowerPacket flow = new FlowerPacket(F);
Cclient.Send(flow.ToArray());
Database.Flowers.SaveFlowerRank(Cclient);
if(change)
{
byte[] packe2nd = new byte[24]
{
0x10, 0x00 , 0x7F , 0x04 , 0x05 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
, 0x54 , 0x51 , 0x53 , 0x65 , 0x72 , 0x76 , 0x65 , 0x72
};
Cclient.Send(packe2nd);
}
}
}
}
#endregion
SpawnCharacter
Code:
public uint ActualMyTypeFlower
{
get { return f_flower; }
set
{
//30010202 orchids
//30010002 rouse
//30010102 lilyes
//30010302 orchids
f_flower = value;
WriteUInt32(value, 113, SpawnPacket);//91
}
}
FlowerPacket
Code:
public class FlowerPacket : Writer
{
private byte[] Buffer;
public FlowerPacket(Game.Struct.Flowers Flower)
{
Buffer = new byte[8 + 56];
WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
WriteUInt16(1150, 2, Buffer);
Buffer[4] = 1;
WriteUInt32((uint)Flower.RedRoses, 16, Buffer);
WriteUInt32((uint)Flower.RedRoses2day, 20, Buffer);
WriteUInt32((uint)Flower.Lilies, 24, Buffer);
WriteUInt32((uint)Flower.Lilies2day, 28, Buffer);
WriteUInt32((uint)Flower.Orchads, 32, Buffer);
WriteUInt32((uint)Flower.Orchads2day, 36, Buffer);
WriteUInt32((uint)Flower.Tulips, 40, Buffer);
WriteUInt32((uint)Flower.Tulips2day, 44, Buffer);
}
public void Deserialize(byte[] buffer)
{
Buffer = buffer;
}
public byte[] ToArray()
{
return Buffer;
}
}
FlowerSpawn//just you icon
Code:
public class FlowerSpawn : Writer
{
byte[] Buffer;
public FlowerSpawn(string Type, string name, string Flowers, string UID, uint FlowerID)
{
string send = Type + " " + Flowers + " " + UID + " " + UID + " " + name + " " + name + "";
Buffer
= new byte[88];//18
WriteUInt16((byte)(80), 0, Buffer);
WriteUInt16(1151, 2, Buffer);
Buffer[4] = 2;
WriteUInt32(FlowerID, 8, Buffer);
Buffer[16] = 1;
Buffer[24] = 1;
Buffer[32] = 1;
WriteUInt32(uint.Parse(UID), 40, Buffer);
WriteUInt32(uint.Parse(UID), 44, Buffer);
//Buffer[17] = 1;//13
// Buffer[18] = (byte)(send.Length & 255);
for (int i = 0; i < send.Length; i++)
{
try
{
Buffer[48 + i] = Convert.ToByte(send[i]);
Buffer[48 + i + 16] = Convert.ToByte(send[i]);
}
catch { }
}
}
public byte[] ThePacket()
{
return Buffer;
}
}
|