احصائياتى

الردود
4

المشاهدات
865
 
Hazem
.:: المدير العام::.

    متواجد  الان

المشاركات
2,314

+التقييم
0.84

تاريخ التسجيل
Apr 2019

الاقامة
Egypt

نظام التشغيل
windows 7

رقم العضوية
1
2019-07-11, 10:25 AM
المشاركة 1
2019-07-11, 10:25 AM
المشاركة 1
افتراضي اضافه رنك الورد

السلام عليكم ورحمة الله وبركاته
في عضو نزل مشكله عن حكايه رنك الورد انه مش شغال
فدلوقتي انضيفه مع بعض
افتح كلاس Flowers.cs
وبدله بده كله

كود:
using System;
using System.Linq;
using System.Text;
using code.Client;
using System.Collections.Generic;
using code.Network.GamePackets;
using System.Collections.Concurrent;
using code.Rangers.Inner;

namespace 
code.Game.Features
{
    public 
unsafe class Flowers
    
{
        public 
enum Effect : byte
        
{
            
None = 0,

            
Rouse = 1,
            
Lilies = 2,
            
Orchids = 3,
            
Tulips = 4,

            
Kiss = 1,
            
love = 2,
            
Tins = 3,
            
Jade = 4,
        }
        public 
enum FlowersT : byte
        
{
            
Rouse = 0,
            
Lilies = 1,
            
Orchids = 2,
            
Tulips = 3,

            
Kiss = 4,
            
love = 5,
            
Tins = 6,
            
Jade = 7,
        }

        public 
Flowers()
        {
        }
        public 
Flowers(uint _UID, string name)
        {
            
UID = _UID;
            
Name = name;
        }
        public 
uint UID;
        public 
uint aFlower = 1;
        public 
uint SendDay = 0;
        public 
string Name = "";

        public 
int SendScreenValue(FlowersT typ, int rak)
        {
            if (
rak == 0 || rak > 100)
                return 
0;
            return (int)(
30000002 + (uint)(100 * (byte)typ) + GetRank(rak));
        }
        public 
ushort GetRank(int rank)
        {
            if (
rank == 1)
                return 
0;
            if (
rank == 2)
                return 
10000;
            if (
rank == 3)
                return 
20000;
            if (
rank > 3)
                return 
30000;
            return 
0;
        }
        public 
int BoySendScreenValue(FlowersT typ, int rak)
        {
            
int ret = 0;
            if (
rak == -1) return 0;
            if (
rak > 100) return 0;
            
ret = (int)(30000402 + (uint)(100 * (byte)typ));
            return 
ret;
        }

        public 
int RankRoses = 0;
        public 
int RankLilies = 0;//max 10 start with -1.
        
public int RankOrchids = 0;//max 10 start with -1.
        
public int RankTuilps = 0;//max 10 start with -1.

        
public uint RedRoses;//kiss
        
public uint RedRoses2day;
        public 
uint Lilies;//love
        
public uint Lilies2day;
        public 
uint Orchads;//wine
        
public uint Orchads2day;
        public 
uint Tulips;//jade
        
public uint Tulips2day;

        public 
override string ToString()
        {
            return 
UID + "#"
                
+ Name + "#"
                
+ RedRoses + "#"
                
+ RedRoses2day + "#"
                
+ Lilies + "#"
                
+ Lilies2day + "#"
                
+ Orchads + "#"
                
+ Orchads2day + "#"
                
+ Tulips + "#"
                
+ Tulips2day + "#"
                
+ SendDay + "#"
                
+ aFlower + "#"
                
+ 0 + "#"
                
+ 0 + "#"
                
+ 0 + "#"
                
+ 0 + "#"
                
+ 0 + "#";
        }
        public 
void Read(string aLine)
        {
            if (
aLine == "" || aLine == null) return;
            
string[] line = aLine.Split('#');
            
UID = uint.Parse(line[0]);
            
Name = line[1];
            
RedRoses = uint.Parse(line[2]);
            
RedRoses2day = uint.Parse(line[3]);
            
Lilies = uint.Parse(line[4]);
            
Lilies2day = uint.Parse(line[5]);
            
Orchads = uint.Parse(line[6]);
            
Orchads2day = uint.Parse(line[7]);
            
Tulips = uint.Parse(line[8]);
            
Tulips2day = uint.Parse(line[9]);
            
SendDay = uint.Parse(line[10]);
            
aFlower = uint.Parse(line[11]);
            
Reset();
        }
        public 
void Reset()
        {
            if (
SendDay != DateTime.Now.Day)
            {
                
RedRoses2day = Lilies2day = Orchads2day = Tulips2day = 0;
                
aFlower = 1;
                
SendDay = (uint)DateTime.Now.Day;
            }
        }

        public static 
ConcurrentDictionary<uint, Flowers> Flowers_Poll = new ConcurrentDictionary<uint, Flowers>();
        public static 
ConcurrentDictionary<uint, Flowers> BoyFlowers = new ConcurrentDictionary<uint, Flowers>();

        public static 
Flowers[] KissTop100 = new Flowers[0];
        public static 
Flowers[] LoveTop100 = new Flowers[0];
        public static 
Flowers[] TineTop100 = new Flowers[0];
        public static 
Flowers[] JadeTop100 = new Flowers[0];

        public static 
Flowers[] RedRousesTop100 = new Flowers[0];
        public static 
Flowers[] LiliesTop100 = new Flowers[0];
        public static 
Flowers[] OrchidsTop100 = new Flowers[0];
        public static 
Flowers[] TulipsTop100 = new Flowers[0];

        public static 
object RouseLock = new object();
        public static 
object LilisLock = new object();
        public static 
object OrchidsLock = new object();
        public static 
object TulipsLock = new object();

        public static 
object KissLock = new object();
        public static 
object LoveLock = new object();
        public static 
object TineLock = new object();
        public static 
object JadeLock = new object();

        public static List<
Flowers> RankKiss = new List<Flowers>();
        public static List<
Flowers> RankLove = new List<Flowers>();
        public static List<
Flowers> RankTine = new List<Flowers>();
        public static List<
Flowers> RankJade = new List<Flowers>();

        public static List<
Flowers> Rankrose = new List<Flowers>();
        public static List<
Flowers> Ranklili = new List<Flowers>();
        public static List<
Flowers> Rankorchid = new List<Flowers>();
        public static List<
Flowers> RankTulips = new List<Flowers>();

        public static 
void CulculateRankJade(Flowers afflow)
        {
            
lock (JadeLock)
            {
                try
                {
                    if (!
RankJade.Contains(afflow))
                        
RankJade.Add(afflow);
                    var 
data = RankJade.ToArray();

                    Array.
Sort(data, (c1, c2) => { return c2.Tulips.CompareTo(c1.Tulips); });

                    var 
room = data.ToArray();

                    List<
Flowers> backUpd = new List<Flowers>();

                    
int x = 1;
                    foreach (
Flowers flow in room)
                    {
                        if (
flow.Tulips == 0) continue;
                        if (
x < 100)
                        {

                            
flow.RankTuilps = x;
                            
backUpd.Add(flow);
                        }
                        else
                            
flow.RankTuilps = 0;
                        
x++;
                    }
                    
lock (JadeTop100)
                    {
                        
RankJade = new List<Flowers>(backUpd);
                        
JadeTop100 = backUpd.ToArray();
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
        }
        public static 
void CulculateRankTine(Flowers afflow)
        {
            
lock (TineLock)
            {
                try
                {
                    if (!
RankTine.Contains(afflow))
                        
RankTine.Add(afflow);
                    var 
data = RankTine.ToArray();

                    Array.
Sort(data, (c1, c2) => { return c2.Orchads.CompareTo(c1.Orchads); });

                    var 
room = data.ToArray();

                    List<
Flowers> backUpd = new List<Flowers>();

                    
int x = 1;
                    foreach (
Flowers flow in room)
                    {
                        if (
flow.Orchads == 0) continue;
                        if (
x < 100)
                        {

                            
flow.RankOrchids = x;
                            
backUpd.Add(flow);
                        }
                        else
                            
flow.RankOrchids = 0;
                        
x++;
                    }
                    
lock (TineTop100)
                    {
                        
RankTine = new List<Flowers>(backUpd);
                        
TineTop100 = backUpd.ToArray();
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
        }
        public static 
void CulculateRankLove(Flowers afflow)
        {
            
lock (LoveLock)
            {
                try
                {
                    if (!
RankLove.Contains(afflow))
                        
RankLove.Add(afflow);
                    var 
data = RankLove.ToArray();

                    Array.
Sort(data, (c1, c2) => { return c2.Lilies.CompareTo(c1.Lilies); });

                    var 
room = data.ToArray();

                    List<
Flowers> backUpd = new List<Flowers>();

                    
int x = 1;
                    foreach (
Flowers flow in room)
                    {
                        if (
flow.Lilies == 0) continue;
                        if (
x < 100)
                        {
                            
flow.RankLilies = x;
                            
backUpd.Add(flow);
                        }
                        else
                            
flow.RankLilies = 0;
                        
x++;
                    }
                    
lock (LoveTop100)
                    {
                        
RankLove = new List<Flowers>(backUpd);
                        
LoveTop100 = backUpd.ToArray();
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
        }
        public static 
void CulculateRankKiss(Flowers afflow)
        {
            
lock (KissLock)
            {
                try
                {
                    if (!
RankKiss.Contains(afflow))
                        
RankKiss.Add(afflow);
                    var 
data = RankKiss.ToArray();

                    Array.
Sort(data, (c1, c2) => { return c2.RedRoses.CompareTo(c1.RedRoses); });

                    var 
room = data.ToArray();

                    List<
Flowers> backUpd = new List<Flowers>();

                    
int x = 1;
                    foreach (
Flowers flow in room)
                    {
                        if (
flow.RedRoses == 0) continue;
                        if (
x < 100)
                        {

                            
flow.RankRoses = x;
                            
backUpd.Add(flow);
                        }
                        else
                            
flow.RankRoses = 0;
                        
x++;
                    }
                    
lock (KissTop100)
                    {
                        
RankKiss = new List<Flowers>(backUpd);
                        
KissTop100 = backUpd.ToArray();
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
        }

        public static 
void CulculateRankRouse(Flowers afflow)
        {
            
lock (RouseLock)
            {
                try
                {
                    if (!
Rankrose.Contains(afflow))
                        
Rankrose.Add(afflow);
                    var 
data = Rankrose.ToArray();

                    Array.
Sort(data, (c1, c2) => { return c2.RedRoses.CompareTo(c1.RedRoses); });

                    var 
room = data.ToArray();

                    List<
Flowers> backUpd = new List<Flowers>();

                    
int x = 1;
                    foreach (
Flowers flow in room)
                    {
                        if (
flow.RedRoses == 0) continue;
                        if (
x < 100)
                        {
                            
flow.RankRoses = x;
                            
backUpd.Add(flow);
                        }
                        else
                        {
                            
flow.RankRoses = 0;
                        }

                        
x++;
                    }
                    
lock (RedRousesTop100)
                    {
                        
Rankrose = new List<Flowers>(backUpd);
                        
RedRousesTop100 = backUpd.ToArray();
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
        }
        public static 
void CulculateRankLilies(Flowers afflow)
        {
            
lock (LilisLock)
            {
                if (!
Ranklili.Contains(afflow))
                    
Ranklili.Add(afflow);
                var 
data = Ranklili.ToArray();

                Array.
Sort(data, (c1, c2) => { return c2.Lilies.CompareTo(c1.Lilies); });

                
//IEnumerable<Flowers> query = data.OrderBy(redrous => redrous.Tulips);

                //var room = query.ToArray();
                
var room = data.ToArray();
                List<
Flowers> backUpd = new List<Flowers>();

                
int x = 1;
                foreach (
Flowers flow in room)
                {
                    if (
flow.Lilies == 0) continue;
                    if (
x < 100)
                    {

                        
flow.RankLilies = x;
                        
backUpd.Add(flow);
                    }
                    else
                    {
                        
flow.RankLilies = 0;
                    }

                    
x++;
                }
                
lock (LiliesTop100)
                {
                    
Ranklili = new List<Flowers>(backUpd);
                    
LiliesTop100 = backUpd.ToArray();
                }
            }
        }
        public static 
void CulculateRankOrchids(Flowers afflow)
        {
            
lock (OrchidsLock)
            {
                if (!
Rankorchid.Contains(afflow))
                    
Rankorchid.Add(afflow);
                var 
data = Rankorchid.ToArray();

                Array.
Sort(data, (c1, c2) => { return c2.Orchads.CompareTo(c1.Orchads); });

                
//IEnumerable<Flowers> query = data.OrderBy(redrous => redrous.Tulips);

                //var room = query.ToArray();
                
var room = data.ToArray();

                List<
Flowers> backUpd = new List<Flowers>();

                
int x = 1;
                foreach (
Flowers flow in room)
                {
                    if (
flow.Orchads == 0) continue;
                    if (
x < 100)
                    {
                        
flow.RankOrchids = x;
                        
backUpd.Add(flow);
                    }
                    else
                    {
                        
flow.RankOrchids = 0;

                    }

                    
x++;
                }
                
lock (OrchidsTop100)
                {
                    
Rankorchid = new List<Flowers>(backUpd);
                    
OrchidsTop100 = backUpd.ToArray();
                }
            }
        }
        public static 
void CulculateRankTulips(Flowers afflow)
        {
            
lock (TulipsLock)
            {
                if (!
RankTulips.Contains(afflow))
                    
RankTulips.Add(afflow);
                var 
data = RankTulips.ToArray();

                Array.
Sort(data, (c1, c2) => { return c2.Tulips.CompareTo(c1.Tulips); });

                var 
room = data.ToArray();

                List<
Flowers> backUpd = new List<Flowers>();

                
int x = 1;
                foreach (
Flowers flow in room)
                {
                    if (
flow.Tulips == 0) continue;
                    if (
x < 100)
                    {
                        
flow.RankTuilps = x;
                        
backUpd.Add(flow);
                    }
                    else
                    {
                        
flow.RankTuilps = 0;
                    }

                    
x++;
                }
                
lock (TulipsTop100)
                {
                    
RankTulips = new List<Flowers>(backUpd);
                    
TulipsTop100 = backUpd.ToArray();
                }
            }
        }

        public static 
void MsgRank(byte[] packet, GameState client)
        {
            
MsgRank ranking = new MsgRank(false, 0);
            
ranking.Deserialize(packet);
            switch (
ranking.Mode)
            {
                case 
6://Prestige
                    
{
                        foreach (var 
c in Kernel.GamePool.Values)
                        {
                            
PerfectionManager.CalcAndAdd(c);
                        }
                        
PerfectionManager.ShowRank(ranking, client);
                        var 
index = new byte[11] { 0, 15, 25, 45, 55, 65, 75, 85, 135, 145, 165 };
                        
EntityRank[] Chars = new EntityRank[11];
                        for (
int i = 0; i < Chars.Length; i++)
                        {
                            if (
i == 0)
                                
Chars[i] = PerfectionManager.Ranking.Values.OrderByDescending(e => e.Prestige).ThenByDescending(x => x.Class).ThenByDescending(x => x.Level).ThenBy(x => x.UID).FirstOrDefault();
                            else 
Chars[i] = PerfectionManager.Ranking.Values.Where(x => x.Class >= (index[i] - 5) && x.Class <= index[i]).OrderByDescending(x => x.Prestige).ThenByDescending(x => x.Level).ThenBy(x => x.UID).FirstOrDefault();

                        }
                        
byte count = 0;
                        foreach (var 
zz in Chars) if (zz != null) count++;
                        var 
nRanking = new MsgRank(true, count);
                        
nRanking.Mode = 6;
                        
nRanking.Count = count;
                        for (
byte z = 0; z < Chars.Length; z++)
                        {
                            var 
Entity = Chars[z];
                            if (
Entity == null) continue;
                            
nRanking.Append2((uint)(z + 1), (uint)Entity.Prestige, Entity.UID, Entity.Name, Entity.Level, Entity.Class, Entity.Mesh, true);
                        }
                        
client.Send(nRanking);
                        break;
                    }
                case 
Network.GamePackets.MsgRank.Ranking:
                    {
                        if (
ranking.RankingType == Network.GamePackets.MsgRank.InnerPower)
                        {
                            
ushort page = ranking.Page;
                            
InnerPower[] list = null;
                            
Func<InnerPower, uint> select = null;
                            list = 
InnerPower.InnerPowerRank.GetRankingList();
                            
select = (inner) => { return inner.TotalScore; };
                            if (list.
Length < page * 10) return;
                            
uint count = (uint)Math.Min(list.Length - page * 10, 10);
                            var 
nRanking = new Network.GamePackets.MsgRank(true);
                            
nRanking.Mode = Network.GamePackets.MsgRank.Ranking;
                            
nRanking.RankingType = ranking.RankingType;
                            
nRanking.Page = page;
                            
nRanking.RegisteredCount = (ushort)list.Length;
                            
int rank = (int)page * 10;
                            for (
int i = rank; i < rank + count; i++)
                            {
                                var 
current = list[i];
                                
nRanking.Append((uint)(i + 1), (uint)select(current), current.UID, current.Name);
                            }
                            
client.Send(nRanking);
                        }
                        if (
ranking.RankingType >= Network.GamePackets.MsgRank.DragonChi && ranking.RankingType <= Network.GamePackets.MsgRank.TurtleChi)
                            
MsgTrainingVitality.ShowGenericRanking(ranking, client);
                        else if (
ranking.RankingType >= Network.GamePackets.MsgRank.RoseFairy && ranking.RankingType <= Network.GamePackets.MsgRank.TulipFairy)
                            
MsgTrainingVitality.ShowGenericRanking2(ranking, client);
                        else if (
ranking.RankingType >= Network.GamePackets.MsgRank.Kiss && ranking.RankingType <= Network.GamePackets.MsgRank.Jade)
                            
MsgTrainingVitality.ShowGenericRanking2(ranking, client);
                        if (
ranking.RankingType >= Network.GamePackets.MsgRank.Prestige && ranking.RankingType <= Network.GamePackets.MsgRank.Prestige + 10)
                        {
                            switch (
ranking.Mode)
                            {
                                case 
Network.GamePackets.MsgRank.Ranking:
                                    {
                                        foreach (var 
c in Kernel.GamePool.Values)
                                        {
                                            
PerfectionManager.CalcAndAdd(c);
                                        }
                                        
PerfectionManager.ShowRank(ranking, client);
                                        return;
                                    }
                            }
                            return;
                        }
                        break;
                    }

                case 
Network.GamePackets.MsgRank.QueryCount:
                    {
                        if (
ranking.RankingType == 70000000)
                        {
                            if (
client.Player.InnerPower != null)
                            {
                                
MsgRank genericRanking3 = new MsgRank(true, 1);
                                
genericRanking3.Mode = 2;
                                
genericRanking3.RankingType = ranking.RankingType;
                                
genericRanking3.Count = 1;
                                
genericRanking3.Append((uint)client.Player.InnerPower.Rank, client.Player.InnerPower.TotalScore, client.Player.UID, client.Player.Name);
                                
client.Send(genericRanking3.ToArray());
                            }
                            return;
                        }
                        
/* if (ranking.RankingType == Network.GamePackets.MsgRank.Prestige)
                         {
                             if (client.Player.Prestige > 1)
                             {
                                 MsgRank genericRanking3 = new MsgRank(true, 1);
                                 genericRanking3.Mode = 2;
                                 genericRanking3.RankingType = ranking.RankingType;
                                 genericRanking3.Count = 1;
                                 genericRanking3.Append((uint)PerfectionManager.GetRank(client, ranking.RankingType), (uint)client.Player.Prestige, client.Player.UID, client.Player.Name);
                                 client.Send(genericRanking3.ToArray());
                             }
                             return;
                         }
                         if (ranking.RankingType >= Network.GamePackets.MsgRank.PrestigeTrojan && ranking.RankingType <= Network.GamePackets.MsgRank.Prestigewing)
                         {
                             if (client.Player.Prestige > 1)
                             {
                                 MsgRank genericRanking3 = new MsgRank(true, 1);
                                 genericRanking3.Mode = 2;
                                 genericRanking3.RankingType = ranking.RankingType;
                                 genericRanking3.Count = 1;
                                 genericRanking3.Append((uint)PerfectionManager.GetRank(client, ranking.RankingType), (uint)client.Player.Prestige, client.Player.UID, client.Player.Name);
                                 client.Send(genericRanking3.ToArray());
                             }
                             return;
                         }*/
                        
if (Flowers.IsGirl((uint)client.Player.Body))
                        {
                            if (
client.Player.MyFlowers != null)
                            {
                                
int num61 = -1;
                                
uint num62 = Flowers.CreateMyRank(client, out num61);
                                
packet[4] = 5;
                                
client.Send(packet);
                                
client.Player.FlowerRank = (uint)client.Player.MyFlowers.SendScreenValue((Game.Features.Flowers.FlowersT)num62, num61);
                                
MsgRank genericRanking2 = new MsgRank(true, 1u);
                                
genericRanking2.Mode = 2u;
                                
genericRanking2.RankingType = client.Player.FlowerRank;
                                
genericRanking2.Count = 1u;
                                
int rank = num61;
                                if (
client.Player.MyFlowers.RankRoses < 100 && client.Player.MyFlowers.RankRoses > 0)
                                {
                                    
genericRanking2.RankingType = Network.GamePackets.MsgRank.RoseFairy;
                                    
genericRanking2.Append((uint)client.Player.MyFlowers.RankRoses, client.Player.MyFlowers.RedRoses, client.Player.UID, client.Player.Name);
                                    
client.Send(genericRanking2.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankLilies < 100 && client.Player.MyFlowers.RankLilies > 0)
                                {
                                    
genericRanking2.Reset();
                                    
genericRanking2.RankingType = Network.GamePackets.MsgRank.LilyFairy;
                                    
genericRanking2.Append((uint)client.Player.MyFlowers.RankLilies, client.Player.MyFlowers.Lilies, client.Player.UID, client.Player.Name);
                                    
client.Send(genericRanking2.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankOrchids < 100 && client.Player.MyFlowers.RankOrchids > 0)
                                {
                                    
genericRanking2.Reset();
                                    
genericRanking2.RankingType = Network.GamePackets.MsgRank.OrchidFairy;
                                    
genericRanking2.Append((uint)client.Player.MyFlowers.RankOrchids, client.Player.MyFlowers.Orchads, client.Player.UID, client.Player.Name);
                                    
client.Send(genericRanking2.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankTuilps < 100 && client.Player.MyFlowers.RankTuilps > 0)
                                {
                                    if (
client.Player.MyFlowers.RankTuilps == 1 && !client.Player.TulipsWing)
                                    {
                                        
//client.TitleStorage.Add(6005, 6005, false);
                                        
if (client.Player.EquippedWing == 0)
                                            new 
TitleStorage().AddTitle(client, 6005, 6005, true);
                                        else
                                            new 
TitleStorage().AddTitle(client, 6005, 6005, false);
                                        
client.Player.TulipsWing = true;
                                    }
                                    
//Mrali
                                    
genericRanking2.Reset();
                                    
genericRanking2.RankingType = Network.GamePackets.MsgRank.TulipFairy;
                                    
genericRanking2.Append((uint)client.Player.MyFlowers.RankTuilps, client.Player.MyFlowers.Tulips, client.Player.UID, client.Player.Name);
                                    
client.Send(genericRanking2.ToArray());
                                }
                                
packet[4] = 5;
                                
client.Send(packet);
                                break;
                            }
                            break;
                        }
                        else
                        {
                            if (
client.Player.MyFlowers != null)
                            {
                                
MsgRank genericRanking3 = new MsgRank(true, 1u);
                                
genericRanking3.Mode = 2u;
                                
genericRanking3.RankingType = 30000402u;
                                
genericRanking3.Count = 1u;
                                if (
client.Player.MyFlowers.RankRoses < 100 && client.Player.MyFlowers.RankRoses > 0)
                                {
                                    
genericRanking3.Append((uint)client.Player.MyFlowers.RankRoses, client.Player.MyFlowers.RedRoses, client.Player.UID, client.Player.Name);
                                    
client.Send(genericRanking3.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankLilies < 100 && client.Player.MyFlowers.RankLilies > 0)
                                {
                                    
genericRanking3.Reset();
                                    
genericRanking3.Append((uint)client.Player.MyFlowers.RankLilies, client.Player.MyFlowers.Lilies, client.Player.UID, client.Player.Name);
                                    
genericRanking3.RankingType = 30000502u;
                                    
client.Send(genericRanking3.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankOrchids < 100 && client.Player.MyFlowers.RankOrchids > 0)
                                {
                                    
genericRanking3.Reset();
                                    
genericRanking3.Append((uint)client.Player.MyFlowers.RankOrchids, client.Player.MyFlowers.Orchads, client.Player.UID, client.Player.Name);
                                    
genericRanking3.RankingType = 30000602u;
                                    
client.Send(genericRanking3.ToArray());
                                }
                                if (
client.Player.MyFlowers.RankTuilps < 100 && client.Player.MyFlowers.RankTuilps > 0)
                                {
                                    
genericRanking3.Reset();
                                    
genericRanking3.Append((uint)client.Player.MyFlowers.RankTuilps, client.Player.MyFlowers.Tulips, client.Player.UID, client.Player.Name);
                                    
genericRanking3.RankingType = 30000702u;
                                    
client.Send(genericRanking3.ToArray());
                                }
                                
packet[4] = 5;
                                
client.Send(packet);
                                break;
                            }
                        }
                        break;
                    }
                
/*case Network.GamePackets.MsgRank.TotemRank:
                    {
                        PerfectionManager.ShowHighWall(ranking, client);
                        break;
                    } */
                
default:
                    if (
client.Account.State == Database.AccountTable.AccountState.Administrator)
                        
client.Send("Unknown RankID : " + ranking.Mode); break;
            }

        }
        public static 
void MsgFlower(Client.GameState client, byte[] packet)
        {
            
byte typ1 = packet[4];
            
uint Target = BitConverter.ToUInt32(packet, 8);
            
uint ITEM_UID = BitConverter.ToUInt32(packet, 12);
            if (
IsBoy(client.Player.Body) && typ1 == 0)//boy send
            
{
                switch (
ITEM_UID)
                {
                    case 
0://send my flower
                        
{
                            if (
client.Player.MyFlowers.aFlower == 0) break;
                            
Client.GameState target_client;
                            if (
Kernel.GamePool.TryGetValue(Target, out target_client))
                            {
                                if (!
IsGirl(target_client.Player.Body)) return;
                                
client.Player.MyFlowers.aFlower = 0;
                                
client.Player.MyFlowers.SendDay = (uint)DateTime.Now.Day;
                                
target_client.Player.MyFlowers.RedRoses2day += 1;
                                
target_client.Player.MyFlowers.RedRoses += 1;
                                
SendFlower flow = new SendFlower();
                                
flow.Typing = 0;
                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Tulips;
                                
flow.Amount = 1;
                                
flow.SenderName = client.Player.Name;
                                
flow.ReceiverName = target_client.Player.Name;
                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Rouse;
                                
client.SendScreen(flow.ToArray(), true);
                            }
                            break;
                        }
                    default:
                        {
                            
Network.GamePackets.MsgItemInfo Item = null;
                            if (
client.Inventory.TryGetItem(ITEM_UID, out Item))
                            {
                                
Client.GameState target_client;
                                if (
Kernel.GamePool.TryGetValue(Target, out target_client))
                                {
                                    if (!
IsGirl(target_client.Player.Body)) return;
                                    
uint Amount = Item.ID % 1000;
                                    
SendFlower flow = new SendFlower();
                                    
flow.Typing = typ1;
                                    
flow.Amount = Amount;
                                    
flow.SenderName = client.Player.Name;
                                    
flow.ReceiverName = target_client.Player.Name;
                                    switch (
GetFlowerTyp(Item.ID))
                                    {
                                        case (
byte)Game.Features.Flowers.FlowersT.Rouse:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Rouse;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Rouse;
                                                
target_client.Player.MyFlowers.RedRoses2day += Amount;
                                                
target_client.Player.MyFlowers.RedRoses += Amount;
                                                if (
Game.Features.Flowers.RedRousesTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.RedRousesTop100[98].RedRoses <= target_client.Player.MyFlowers.RedRoses)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankRouse(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankRouse(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Lilies:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Lilies;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Lilies;
                                                
target_client.Player.MyFlowers.Lilies2day += Amount;
                                                
target_client.Player.MyFlowers.Lilies += Amount;
                                                if (
Game.Features.Flowers.LiliesTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.LiliesTop100[98].Lilies <= target_client.Player.MyFlowers.Lilies)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankLilies(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankLilies(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Orchids:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Orchids;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Orchids;

                                                
target_client.Player.MyFlowers.Orchads2day += Amount;
                                                
target_client.Player.MyFlowers.Orchads += Amount;
                                                if (
Game.Features.Flowers.OrchidsTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.OrchidsTop100[98].Orchads <= target_client.Player.MyFlowers.Orchads)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankOrchids(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankOrchids(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Tulips:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Tulips;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Tulips;

                                                
target_client.Player.MyFlowers.Tulips2day += Amount;
                                                
target_client.Player.MyFlowers.Tulips += Amount;
                                                if (
Game.Features.Flowers.TulipsTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.TulipsTop100[98].Tulips <= target_client.Player.MyFlowers.Tulips)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankTulips(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankTulips(target_client.Player.MyFlowers);
                                                break;
                                            }
                                    }
                                    
client.Inventory.Remove(Item, Enums.ItemUse.Remove);
                                    
client.SendScreen(flow.ToArray(), true);
                                }
                            }
                            break;
                        }
                }
            }
            else if (
IsGirl(client.Player.Body) && typ1 == 1)//girl send
            
{
                switch (
ITEM_UID)
                {
                    case 
0://curent flower
                        
{
                            if (
client.Player.MyFlowers.aFlower == 0)
                                return;
                            
Client.GameState target_client;
                            if (
Kernel.GamePool.TryGetValue(Target, out target_client))
                            {
                                if (!
IsBoy(target_client.Player.Body)) return;
                                
client.Player.MyFlowers.aFlower = 0;
                                
client.Player.MyFlowers.SendDay = (uint)DateTime.Now.Day;
                                
target_client.Player.MyFlowers.RedRoses += 1;
                                
target_client.Player.MyFlowers.RedRoses2day += 1;
                                
SendFlower flow = new SendFlower();
                                
flow.Typing = 1;
                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Kiss;
                                
flow.Amount = 1;
                                
flow.SenderName = client.Player.Name;
                                
flow.ReceiverName = target_client.Player.Name;
                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Kiss;
                                
client.SendScreen(flow.ToArray(), true);
                            }
                            break;
                        }
                    default:
                        {
                            
MsgItemInfo Item = null;
                            if (
client.Inventory.TryGetItem(ITEM_UID, out Item))
                            {
                                
Client.GameState target_client = null;
                                if (
Kernel.GamePool.TryGetValue(Target, out target_client))
                                {
                                    if (!
IsBoy(target_client.Player.Body)) return;
                                    
uint Amount = Item.ID % 1000;
                                    
SendFlower flow = new SendFlower();
                                    
flow.Typing = 1;
                                    
flow.Amount = Amount;
                                    
flow.SenderName = client.Player.Name;
                                    
flow.ReceiverName = target_client.Player.Name;
                                    switch (
GetFlowerTyp(Item.ID))
                                    {
                                        case (
byte)Game.Features.Flowers.FlowersT.Rouse:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Kiss;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Kiss;

                                                
target_client.Player.MyFlowers.RedRoses2day += Amount;
                                                
target_client.Player.MyFlowers.RedRoses += Amount;
                                                if (
Game.Features.Flowers.KissTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.KissTop100[98].RedRoses <= target_client.Player.MyFlowers.RedRoses)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankKiss(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankKiss(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Lilies:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.love;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.love;

                                                
target_client.Player.MyFlowers.Lilies2day += Amount;
                                                
target_client.Player.MyFlowers.Lilies += Amount;
                                                if (
Game.Features.Flowers.LoveTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.LoveTop100[98].Lilies <= target_client.Player.MyFlowers.Lilies)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankLove(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankLove(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Orchids:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Tins;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Tins;

                                                
target_client.Player.MyFlowers.Orchads2day += Amount;
                                                
target_client.Player.MyFlowers.Orchads += Amount;
                                                if (
Game.Features.Flowers.TineTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.TineTop100[98].Orchads <= target_client.Player.MyFlowers.Orchads)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankTine(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankTine(target_client.Player.MyFlowers);
                                                break;
                                            }
                                        case (
byte)Game.Features.Flowers.FlowersT.Tulips:
                                            {
                                                
flow.Effect = (byte)Game.Features.Flowers.Effect.Jade;
                                                
flow.FType = (byte)Game.Features.Flowers.FlowersT.Jade;

                                                
target_client.Player.MyFlowers.Tulips2day += Amount;
                                                
target_client.Player.MyFlowers.Tulips += Amount;
                                                if (
Game.Features.Flowers.JadeTop100.Length > 98)
                                                {
                                                    if (
Game.Features.Flowers.JadeTop100[98].Tulips <= target_client.Player.MyFlowers.Tulips)
                                                    {
                                                        
Game.Features.Flowers.CulculateRankJade(target_client.Player.MyFlowers);
                                                    }
                                                }
                                                else 
Game.Features.Flowers.CulculateRankJade(target_client.Player.MyFlowers);
                                                break;
                                            }
                                    }
                                    
client.Inventory.Remove(Item, Enums.ItemUse.Remove);
                                    
client.SendScreen(flow.ToArray(), true);
                                }
                            }
                            break;
                        }
                }
            }
        }
        public static 
uint CreateMyRank(Client.GameState client, out int rank)
        {
            List<
ClientRank> FRanks = new List<ClientRank>()
            {
           new 
ClientRank(){Rank = (uint)client.Player.MyFlowers.RankLilies, Amount = client.Player.MyFlowers.Lilies}
           ,   new 
ClientRank(){Rank = (uint)client.Player.MyFlowers.RankOrchids, Amount = client.Player.MyFlowers.Orchads}
           ,   new 
ClientRank(){Rank = (uint)client.Player.MyFlowers.RankRoses, Amount = client.Player.MyFlowers.RedRoses}
           ,   new 
ClientRank(){Rank = (uint)client.Player.MyFlowers.RankTuilps, Amount = client.Player.MyFlowers.Tulips}
            };
            var array = 
FRanks.Where((f1) => f1.Rank != 0).ToArray();
            Array.
Sort(array, (f1, f2) =>
            {
                
int n_rank = f1.Rank.CompareTo(f2.Rank);

                if (
f2.Rank == f1.Rank)
                    return 
f2.Amount.CompareTo(f1.Amount);
                return 
n_rank;
            });
            if (array != 
null && array.Length > 0)
            {
                
ClientRank BestRank = array[0];
                if (
BestRank.Rank != 0)
                {
                    
rank = (int)BestRank.Rank;
                    if (
client.Player.MyFlowers.RankLilies == BestRank.Rank && client.Player.MyFlowers.Lilies == BestRank.Amount)
                        return (
byte)Game.Features.Flowers.FlowersT.Lilies;
                    if (
client.Player.MyFlowers.RankOrchids == BestRank.Rank && client.Player.MyFlowers.Orchads == BestRank.Amount)
                        return (
byte)Game.Features.Flowers.FlowersT.Orchids;
                    if (
client.Player.MyFlowers.RankRoses == BestRank.Rank && client.Player.MyFlowers.RedRoses == BestRank.Amount)
                        return (
byte)Game.Features.Flowers.FlowersT.Rouse;
                    if (
client.Player.MyFlowers.RankTuilps == BestRank.Rank && client.Player.MyFlowers.Tulips == BestRank.Amount)
                        return (
byte)Game.Features.Flowers.FlowersT.Tulips;
                }
            }
            
rank = 0;
            return 
0;
        }
        public static 
uint GetFlowerTyp(uint ID)
        {
            if (
ID >= 751001 && ID <= 751999 || ID >= 755001 && ID <= 755999)
                return (
uint)Game.Features.Flowers.FlowersT.Rouse;
            if (
ID >= 752001 && ID <= 752999 || ID >= 756001 && ID <= 756999)
                return (
uint)Game.Features.Flowers.FlowersT.Lilies;
            if (
ID >= 753001 && ID <= 753999 || ID >= 757001 && ID <= 757999)
                return (
uint)Game.Features.Flowers.FlowersT.Orchids;
            if (
ID >= 754001 && ID <= 754999 || ID >= 758001 && ID <= 758999)
                return (
uint)Game.Features.Flowers.FlowersT.Tulips;
            return 
0;
        }
        public static 
bool IsBoy(uint mesh)
        {
            return 
mesh == 1005 || mesh == 1006;
        }
        public static 
bool IsGirl(uint mesh)
        {
            return 
mesh == 2005 || mesh == 2006;
        }
        public class 
ClientRank
        
{
            public 
uint Rank;
            public 
uint Amount;
        }
    }
} 

الكود دا المسئول عن اللد والبنت لو مش عاوز تغير الكلاس بدلو بالى عندك فى الكلاس

كود:
        public static bool IsBoy(uint mesh)

        {

            return 
mesh == 1005 || mesh == 1006;

        }

        public static 
bool IsGirl(uint mesh)

        {

            return 
mesh == 2005 || mesh == 2006;

        } 

طبعا ده ابجريد ال 3d لو 2d انت اتغيره حسب الابجريد والرقم بتاع البنت والولد
افتح كلاس
SendFlower.cs
بدل بده

كود:
using System.Text;
using code.Game.Features;

namespace 
code.Network.GamePackets
{
    public 
unsafe class SendFlower : Writer
    
{
        private 
byte[] Packet;
        public 
SendFlower()
        {
            
Packet = new byte[68];
            
WriteUInt16(60, 0, Packet);
            
WriteUInt16(1150, 2, Packet);
        }
        public 
uint Typing
        
{
            
get { return BitConverter.ToUInt32(Packet, 4); }
            
set { WriteUInt32(value, 4, Packet); }
        }
        public 
string SenderName
        
{
            
get { return Encoding.ASCII.GetString(Packet, 16, 16); }
            
set { WriteString(value, 16, Packet); }
        }
        public 
string ReceiverName
        
{
            
get { return Encoding.ASCII.GetString(Packet, 32, 16); }
            
set { WriteString(value, 32, Packet); }
        }
        public 
uint Amount
        
{
            
get { return BitConverter.ToUInt32(Packet, 48); }
            
set { WriteUInt32(value, 48, Packet); }
        }
        public 
uint FType
        
{
            
get { return BitConverter.ToUInt32(Packet, 52); }
            
set { WriteUInt32(value, 52, Packet); }
        }
        public 
uint Effect
        
{
            
get { return BitConverter.ToUInt32(Packet, 56); }
            
set { WriteUInt32(value, 56, Packet); }
        }
        public 
void Apprend(Flowers flowers)
        {
            
WriteUInt32(flowers.RedRoses, 16, Packet);
            
WriteUInt32(flowers.RedRoses2day, 20, Packet);
            
WriteUInt32(flowers.Lilies, 24, Packet);
            
WriteUInt32(flowers.Lilies2day, 28, Packet);
            
WriteUInt32(flowers.Orchads, 32, Packet);
            
WriteUInt32(flowers.Orchads2day, 36, Packet);
            
WriteUInt32(flowers.Tulips, 40, Packet);
            
WriteUInt32(flowers.Tulips2day, 44, Packet);
        }
        public 
byte[] ToArray()
        {
            return 
Packet;
        }
    }
} 

وصور الرنك اهو



قديم 2019-07-11, 11:23 AM
المشاركة 2
virus7x
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: اضافه رنك الورد


جميل


قديم 2019-07-11, 11:27 AM
المشاركة 3
virus7x
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: اضافه رنك الورد


جميل


قديم 2019-07-11, 11:33 AM
المشاركة 4
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: اضافه رنك الورد
الله ينور

قديم 2019-07-11, 03:44 PM
المشاركة 5
MohamedModyAdel
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافه رنك الورد
جميل جدا


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: اضافه رنك الورد
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
اضافه ال house Hazem تطوير سيرفرات كونكر 16 2021-01-21 05:44 PM
اضافه Hassan Emprator مشكلات السيرفيرات كونكر الشخصيه 2 2019-07-30 05:08 PM
مطلوب رنك الورد Adel Abd El Hay مشكلات السيرفيرات كونكر الشخصيه 1 2019-07-13 10:44 AM
حل مشكله رنك الورد مش بيسيف Hazem تطوير سيرفرات كونكر 0 2019-05-31 09:45 PM
شرح اضافه وحش BoS abuhaneen مشكلات السيرفيرات كونكر الشخصيه 17 2019-05-31 01:34 AM


الساعة الآن 01:15 PM