عرض مشاركة واحدة
قديم 2020-04-01, 04:05 AM
المشاركة 5
Tyranny-Team's
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: بعد اذنكو عايز اخلي الكينج مياخدش البرنس 1 هت وياخدو 2 هت
للاسف ولله معرفشي بس جرب كدا اعمل دي

هتخوش علي كلاس nobility.cs

هتمسح كل الي فيه وتضيف دا


كود:
using system;
using system.linq;
using system.collections.generic;
using mr_panda.network.gamepackets;
using system.io;


namespace 
mr_panda.game.conquerstructures
{
    public class 
nobility : Mr_panda.network.writer
    
{


        public static 
ulong maxdonation = 0;
        public static 
ulong maxdonation1 = 0;
        public static 
ulong maxdonation2 = 0;
        public static 
safedictionary<uint, nobilityinformation> board = new safedictionary<uint, nobilityinformation>(10000);
        public static list<
nobilityinformation> boardlist = new list<nobilityinformation>(10000);
        public static 
void handle(nobilityinfo information, client.gamestate client)
        {
            if (
information.type == nobilityinfo.donate)
                return;

            switch (
information.type)
            {
                case 
nobilityinfo.donate:
                    {
                        if (
client.trade.intrade)
                            return;
                        if (
client.player.donatetime)
                            return;
                        
ulong silvers = information.dwparam;
                        
bool newdonator = false;
                        
client.nobilityinformation.gender = (byte)(client.player.body % 10);
                        if (
client.nobilityinformation.donation == 0)
                            
newdonator = true;
                        if (
information.moneytype == 1)
                        {
                            
ulong cps = silvers / 50000;
                            if (
client.player.conquerpoints >= 10000)
                            {
                                
client.player.conquerpoints -= 10000;
                                
client.nobilityinformation.donation += silvers;
                            }
                        }
                        else
                        {
                            if (
client.player.money >= silvers)
                            {
                                
client.player.money -= (uint)silvers;
                                
client.nobilityinformation.donation += silvers;
                            }
                        }

                        if (!
board.containskey(client.player.uid) && client.nobilityinformation.donation == silvers && newdonator)
                        {
                            
board.add(client.player.uid, client.nobilityinformation);
                            try
                            {
                                
database.nobilitytable.insertnobilityinformation(client.nobilityinformation);
                            }
                            catch
                            {
                                
database.nobilitytable.updatenobilityinformation(client.nobilityinformation);
                            }
                        }
                        else
                        {
                            
database.nobilitytable.updatenobilityinformation(client.nobilityinformation);
                        }
                        
sort(client.player.uid);
                        break;
                    }
                case 
nobilityinfo.list:
                    {
                        
byte[] packet = new byte[600 + 8];
                        
network.writer.writeuint16(600, 0, packet);
                        
network.writer.writeuint16(2064, 2, packet);
                        
network.writer.writeuint16(2, 4, packet);
                        
network.writer.writeuint16(5, 10, packet);
                        
network.writer.writeuint16(20, 12, packet);
                        
int offset = 120;
                        for (
int i = (int)(information.wparam1 * 10); i < information.wparam1 * 10 + 10 && i < boardlist.count; i++)
                        {
                            var 
nob = boardlist[i];
                            
network.writer.writeuint32(nob.entityuid, offset, packet);
                            
offset += 4;
                            if (
kernel.gamepool.containskey(nob.entityuid))
                            {
                                
network.writer.writeuint32(1, offset, packet);
                                
offset += 4;
                                
network.writer.writeuint32(nob.mesh, offset, packet);
                                
offset += 4;
                            }
                            else
                            {
                                
offset += 8;
                            }
                            
network.writer.writestring(nob.name, offset, packet);
                            
offset += 20;
                            
network.writer.writeuint64(nob.donation, offset, packet);
                            
offset += 8;
                            
network.writer.writeuint32((uint)nob.rank, offset, packet);
                            
offset += 4;
                            
network.writer.writeuint32((uint)i, offset, packet);
                            
offset += 4;
                        }
                        
client.send(packet);
                        break;
                    }
            }
        }
        public static 
void donate(ulong silvers, client.gamestate client, bool npc = false)
        {
            if (
npc == false)
                return;
            
bool newdonator = false;
            
client.nobilityinformation.gender = (byte)(client.player.body % 10);
            if (
client.nobilityinformation.donation == 0)
                
newdonator = true;

            
client.nobilityinformation.donation += silvers;

            if (!
board.containskey(client.player.uid) && client.nobilityinformation.donation == silvers && newdonator)
            {
                
board.add(client.player.uid, client.nobilityinformation);
                try
                {
                    
database.nobilitytable.insertnobilityinformation(client.nobilityinformation);
                }
                catch
                {
                    
database.nobilitytable.updatenobilityinformation(client.nobilityinformation);
                }
            }
            else
            {
                
database.nobilitytable.updatenobilityinformation(client.nobilityinformation);
            }
            
sort(client.player.uid);
        }
        public static 
void sort(uint updateuid)
        {
            
safedictionary<uint, nobilityinformation> sortedboard = new safedictionary<uint, nobilityinformation>();

            
int place = 0;
            foreach (
nobilityinformation entry in board.values.orderbydescending((p) => p.donation))
            {
                
client.gamestate client = null;
                try
                {
                    
int previousplace = entry.position;
                    
entry.position = place;
                    
nobilityrank rank = nobilityrank.serf;

                    if (
place >= 10000)
                    {
                        if (
entry.donation >= 200000)
                        {
                            
rank = nobilityrank.earl;
                        }
                        else if (
entry.donation >= 100000)
                        {
                            
rank = nobilityrank.baron;
                        }
                        else if (
entry.donation >= 300000)
                        {
                            
rank = nobilityrank.knight;
                        }
                    }
                    else
                    {
                        if (
place < 10)
                        {
                            
rank = nobilityrank.king;
                            if (
place < (10))
                            {
                                
maxdonation = entry.donation;
                            }
                        }
                        else if (
place < 20)
                        {
                            
rank = nobilityrank.prince;
                            if (
place < 20)
                            {
                                
maxdonation1 = entry.donation;
                            }
                        }
                        else
                        {
                            if (
place < 9999)
                            {
                            }
                            
rank = nobilityrank.duke;
                            if (
place < (9999))
                            {
                                
maxdonation2 = entry.donation;
                            }
                        }
                    }
                    var 
oldrank = entry.rank;
                    
entry.rank = rank;
                    if (
kernel.gamepool.trygetvalue(entry.entityuid, out client))
                    {
                        
bool updatetheclient = false;
                        if (
oldrank != rank)
                        {
                            
updatetheclient = true;
                            if (
rank == nobilityrank.baron)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has the baron in pharaohs-eu ", system.drawing.color.white, message.topleft), program.values);
                            }
                            if (
rank == nobilityrank.earl)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has the earl in pharaohs-eu ", system.drawing.color.white, message.topleft), program.values);
                            }
                            if (
rank == nobilityrank.duke)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has the duke in pharaohs-eu ", system.drawing.color.white, message.center), program.values);
                            }
                            if (
rank == nobilityrank.prince)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has the prince in pharaohs-eu ", system.drawing.color.white, message.center), program.values);
                            }
                            if (
rank == nobilityrank.king)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has become the new king/queen in pharaohs-eu ", system.drawing.color.white, message.center), program.values);
                            }
                            if (
rank == nobilityrank.knight)
                            {
                                
kernel.sendworldmessage(new message(" congratulation " + client.player.name + " has become a knight by in pharaohs-eu ", system.drawing.color.white, message.topleft), program.values);
                            }
                        }
                        else
                        {
                            if (
previousplace != place)
                            {
                                
updatetheclient = true;
                            }
                        }
                        if (
updatetheclient || client.player.uid == updateuid)
                        {
                            
nobilityinfo update = new nobilityinfo(true);
                            
update.type = nobilityinfo.icon;
                            
update.dwparam = entry.entityuid;
                            
update.updatestring(entry);
                            
client.sendscreen(update, true);
                            
client.player.nobilityrank = entry.rank;
                        }
                    }
                    
sortedboard.add(entry.entityuid, entry);
                    
place++;
                }
                catch { }
            }
            
board = sortedboard;
            
lock (boardlist)
                
boardlist = board.values.tolist();
        }
    }
    public class 
nobilityinformation
    
{
        public 
string name;
        public 
uint entityuid;
        public 
uint mesh;
        public 
ulong donation;
        public 
byte gender;
        public 
int position;
        public 
nobilityrank rank;
        public 
bool king;
        public 
datetime kingdays;
    }

    public 
enum nobilityrank : Byte
    
{
        
serf = 0,
        
knight = 1,
        
baron = 3,
        
earl = 5,
        
duke = 7,
        
prince = 9,
        
king = 12
    
}
} 

هتغير اسم البروكجت mr_panda بي اسم البروجكت بتاعك
ولو جالك ايرور في player خليها entity

جرب كدا وقولي
بس بصراحه انا شايف انو مفيش اي علاقه بينو وبين الأتاك