Register for your free account! | Forgot your password?

You last visited: Today at 13:49

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



nobility

Discussion on nobility within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2007
Posts: 17
Received Thanks: 0
nobility

anyone know how to set my nobility only able to donate with gold without cps , my source is 5732 and this is the nobility.cs incase u need it to help me..

Code:
using System;
using System.Linq;
using System.Collections.Generic;
using ShekoProject.Network.GamePackets;
using System.IO;
using KinSocket;

namespace ShekoProject.Game.ConquerStructures
{
    public class Nobility
    {
        public static ulong MaxDonation = 0;
        public static ulong MaxDonation1 = 0;
        public static ulong MaxDonation2 = 0;
        public static ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks GetFemale(ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks rank)
        {
            switch (rank)
            {
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Knight:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Lady;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Lady:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baroness:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Countess:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Dutchess:
                    return rank;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baron:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baroness;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Earl:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Countess;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Duke:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Dutchess;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Prince:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Princess;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.King:
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Queen;
            }
            return rank;
        }

        public static ulong GetMinimumDonation(ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks Rank)
        {
            switch (Rank)
            {
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Knight:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Lady:
                    return 0x1c9c380L;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baron:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baroness:
                    return 0x5f5e100L;

                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Earl:
                case ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Countess:
                    return 0xbebc200L;
            }
            return MinimumDonationFor(Rank);
        }

        public static SafeDictionary<uint, NobilityInformation> Board = new SafeDictionary<uint, NobilityInformation>(10000);
        public static List<NobilityInformation> BoardList = new List<NobilityInformation>(10000);
        public static ulong MinimumDonationFor(ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks Rank)
        {
            ulong num = 0L;
            for (int c = 0; c < BoardList.Count; c++)
            {


                sbyte place = 0;
                ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks commoner = ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Commoner;
                uint identifier = BoardList[c].EntityUID;
                ulong donation = BoardList[c].Donation;
                GetNobilityStats(identifier, donation, ref place, ref commoner);
                if ((commoner == Rank) && ((donation < num) || (num == 0L)))
                {
                    num = donation;
                }

            }
            return (num + ((ulong)1L));
        }
        public static void GetNobilityStats(uint Identifier, ulong Donation, ref sbyte Place, ref ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks Rank)
        {
            sbyte place = 0;
            ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks commoner = ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Commoner;
            for (int c = 0; c < 50; c++)
            {

                if (BoardList[c].EntityUID == Identifier)
                {
                    break;
                }
                // if (place < 3000)
                {
                    place = (sbyte)(place + 1);
                }
            }

            //Place = (place < 3000) ? place : ((sbyte)(-1));
            if (Donation == 0L)
            {
                Place = -1;
            }
            commoner = GetRanking(Donation, place);
            Rank = commoner;
        }
        public static ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks GetRanking(ulong Donation, sbyte Place)
        {
            if ((Donation != 0L) && (Place >= 0))
            {
                if ((Place < Database.rates.king) && (Donation > 0L))
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.King;
                }
                if ((Place < 0x12) && (Donation > 0L))
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Prince;
                }
                if ((Place < 0x35) && (Donation > 0L))
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Duke;
                }
                if (Donation >= 0xbebc200L)
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Earl;
                }
                if (Donation >= 0x5f5e100L)
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Baron;
                }
                if (Donation >= 0x1c9c380L)
                {
                    return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Knight;
                }
            }
            return ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks.Commoner;
        }
        public static void Handle(NobilityInfo information, Client.GameState client)
        {
            switch (information.Type)
            {

                case NobilityInfo.Donate:
                    {

                        if (client.Trade.InTrade)
                            return;
                        if (client.Entity.MapID == 3031)
                            return;
                        uint silvers = information.dwParam;
                        bool newDonator = false;
                        if (client.NobilityInformation.Donation == 0)
                            newDonator = true;
                        if (client.Entity.Money < information.dwParam)
                        {
                            uint cps = silvers / 50000;
                            if (client.Entity.ConquerPoints >= 500000)
                            {
                                if (client.Entity.NobalityDonation == client.NobilityInformation.Donation)
                                {
                                    client.Entity.ConquerPoints -= 500000;
                                    Database.EntityTable.UpdateCps(client);
                                    client.NobilityInformation.Donation += silvers;
                                    client.Entity.NobalityDonation += silvers;
                                    Database.EntityTable.UpdateDonation(client);
                                }
                                else
                                {
                                    if (client.Entity.NobalityDonation > client.NobilityInformation.Donation)
                                    {
                                        client.Entity.ConquerPoints -= 500000;
                                        Database.EntityTable.UpdateCps(client);
                                        client.Entity.NobalityDonation += silvers;
                                        client.NobilityInformation.Donation = client.Entity.NobalityDonation;
                                        Database.EntityTable.UpdateDonation(client);
                                    }
                                    else
                                    {
                                        if (client.Entity.NobalityDonation < client.NobilityInformation.Donation)
                                        {
                                            client.Entity.ConquerPoints -= 500000;
                                            Database.EntityTable.UpdateCps(client);
                                            client.NobilityInformation.Donation += silvers;
                                            client.Entity.NobalityDonation = client.NobilityInformation.Donation;
                                            Database.EntityTable.UpdateDonation(client);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (client.Entity.Money >= silvers)
                            {
                                /*if (client.Entity.NobalityDonation == client.NobilityInformation.Donation)
                                {
                                    client.Entity.Money -= silvers;
                                    client.NobilityInformation.Donation += silvers;
                                    client.Entity.NobalityDonation += silvers;
                                    Database.EntityTable.UpdateDonation(client);
                                }
                                else
                                {
                                    if (client.Entity.NobalityDonation > client.NobilityInformation.Donation)
                                    {
                                        client.Entity.Money -= silvers;
                                        client.Entity.NobalityDonation += silvers;
                                        client.NobilityInformation.Donation = client.Entity.NobalityDonation;
                                        Database.EntityTable.UpdateDonation(client);
                                    }
                                    else
                                    {
                                        if (client.Entity.NobalityDonation < client.NobilityInformation.Donation)
                                        {
                                            client.Entity.Money -= silvers;
                                            client.NobilityInformation.Donation += silvers;
                                            client.Entity.NobalityDonation = client.NobilityInformation.Donation;
                                            Database.EntityTable.UpdateDonation(client);
                                        }
                                    }
                                }*/
                            }
                        }

                        if (!Board.ContainsKey(client.Entity.UID) && newDonator)
                        {
                            Board.Add(client.Entity.UID, client.NobilityInformation);
                            try
                            {
                                Database.NobilityTable.InsertNobilityInformation(client.NobilityInformation);
                            }
                            catch
                            {
                                Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                            }
                        }
                        else
                        {
                            Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                        }
                        Sort(client.Entity.UID);

                        Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "You've donated " + silvers + " Silver. Your total donation is " + client.NobilityInformation.Donation + " silver. You rank at " + client.NobilityInformation.Position + " place in the Donation Ranking.");
                        npc.OptionID = 255;
                        client.Send(npc.ToArray());
                        //return;

                        break;
                    }
                case NobilityInfo.List:
                    {
                        byte Count = 0;
                        MemoryStream strm = new MemoryStream();
                        BinaryWriter wtr = new BinaryWriter(strm);
                        wtr.Write((ushort)0);
                        wtr.Write((ushort)2064);
                        wtr.Write((uint)NobilityInfo.List);
                        wtr.Write((ushort)information.wParam1);
                        wtr.Write((ushort)5);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        wtr.Write((uint)0);
                        for (int i = (int)(information.wParam1 * 10); i < information.wParam1 * 10 + 10; i++)
                        {
                            if (BoardList.Count > i)
                            {
                                Count++;
                                wtr.Write((uint)BoardList[i].EntityUID);
                                wtr.Write((uint)BoardList[i].Gender);
                                wtr.Write((uint)BoardList[i].Mesh);
                                for (int c = 0; c < 20; c++)
                                {
                                    if (BoardList[i].Name.Length > c)
                                        wtr.Write((byte)(BoardList[i].Name[c]));
                                    else
                                        wtr.Write((byte)(0));
                                }
                                wtr.Write((ulong)BoardList[i].Donation);
                                wtr.Write((uint)BoardList[i].Rank);
                                wtr.Write((uint)BoardList[i].Position);
                            }
                        }
                        int packetlength = (int)strm.Length;
                        strm.Position = 0;
                        wtr.Write((ushort)packetlength);
                        strm.Position = strm.Length;
                        wtr.Write(System.Text.Encoding.ASCII.GetBytes("TQServer"));
                        strm.Position = 0;
                        byte[] buf = new byte[strm.Length];
                        strm.Read(buf, 0, buf.Length);
                        Network.Writer.WriteUInt32(Count, 12, buf);
                        client.Send(buf);

                        information.Type = NobilityInfo.NextRank;
                        ulong value = 0;
                        information.dwParam2 = 0;
                        if (client.NobilityInformation.Rank == NobilityRank.Prince)
                            value = (ulong)(BoardList[02].Donation - client.NobilityInformation.Donation + 1);
                        if (client.NobilityInformation.Rank == NobilityRank.Duke)
                            value = (ulong)(BoardList[14].Donation - client.NobilityInformation.Donation + 1);
                        if (client.NobilityInformation.Rank == NobilityRank.Earl)
                            value = (ulong)(BoardList[49].Donation - client.NobilityInformation.Donation + 1);
                        Network.Writer.WriteUInt64(value, 8, information.ToArray());
                        information.dwParam3 = 60;
                        information.dwParam4 = uint.MaxValue;
                        client.Send(information);
                        break;
                    }
                case NobilityInfo.NextRank:
                    {
                        ShekoProject.Network.GamePackets.nobility.NobilityIcon icon = new ShekoProject.Network.GamePackets.nobility.NobilityIcon(0xa8)
                        {
                            Type = ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityTypes.Minimum
                        };
                        for (int i = 1; i < 12; i += 2)
                        {
                            if (i == 11)
                            {
                                i++;
                            }
                            ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks rank = (ShekoProject.Network.GamePackets.nobility.NobilityIcon.NobilityRanks)i;
                            icon.AddMinimum(rank, Nobility.GetMinimumDonation(rank));
                        }
                        client.Send((byte[])icon);
                        break;
                    }

            }
        }

        public static void Sort(uint updateUID)
        {
            SortedDictionary<ulong, SortEntry<uint, NobilityInformation>> sortdict = new SortedDictionary<ulong, SortEntry<uint, NobilityInformation>>();

            foreach (NobilityInformation info in Board.Values)
            {
                if (sortdict.ContainsKey(info.Donation))
                {
                    SortEntry<uint, NobilityInformation> entry = sortdict[info.Donation];
                    entry.Values.Add(info.EntityUID, info);
                }
                else
                {
                    SortEntry<uint, NobilityInformation> entry = new SortEntry<uint, NobilityInformation>();
                    entry.Values = new Dictionary<uint, NobilityInformation>();
                    entry.Values.Add(info.EntityUID, info);
                    sortdict.Add(info.Donation, entry);
                }
            }

            SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>(1000000);
            sortedBoard.Clear();
            int Place = 0;
            foreach (KeyValuePair<ulong, SortEntry<uint, NobilityInformation>> entries in sortdict.Reverse())
            {
                foreach (KeyValuePair<uint, NobilityInformation> value in entries.Value.Values)
                {
                    Client.GameState client = null;
                    try
                    {
                        int previousPlace = value.Value.Position;
                        value.Value.Position = Place;
                        NobilityRank Rank = NobilityRank.Serf;

                        if (Place > 100)
                        {
                            if (value.Value.Donation >= 200000000)
                            {
                                Rank = NobilityRank.Earl;
                            }
                            else if (value.Value.Donation >= 100000000)
                            {
                                Rank = NobilityRank.Baron;
                            }
                            else if (value.Value.Donation >= 30000000)
                            {
                                Rank = NobilityRank.Knight;
                            }
                        }
                        else if (Place < Database.rates.king)
                        {
                            Rank = NobilityRank.King;
                            if (Place < (Database.rates.king - (Database.rates.king - 1)))
                            {
                                MaxDonation = value.Value.Donation;
                            }
                        }
                        else if (Place < Database.rates.prince)
                        {
                            Rank = NobilityRank.Prince;
                            if (Place < (Database.rates.king + 2))
                            {
                                MaxDonation1 = value.Value.Donation;
                            }
                        }
                        else
                        {

                            Rank = NobilityRank.Duke;
                            if (Place < (Database.rates.prince + 2))
                            {
                                MaxDonation2 = value.Value.Donation;
                            }
                        }
                        var oldRank = value.Value.Rank;
                        value.Value.Rank = Rank;
                        if (ServerBase.Kernel.GamePool.TryGetValue(value.Key, out client))
                        {
                            bool updateTheClient = false;
                            if (oldRank != Rank)
                            {
                                updateTheClient = true;
                                if (Rank == NobilityRank.Baron)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " Donation To Baron in Nobility Rank.", System.Drawing.Color.White, Message.TopLeft), ServerBase.Kernel.GamePool.Values);
                                }
                                if (Rank == NobilityRank.Earl)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " Donation To Earl in Nobility Rank.", System.Drawing.Color.White, Message.TopLeft), ServerBase.Kernel.GamePool.Values);
                                }
                                if (Rank == NobilityRank.Duke)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " Donation To Duke in Nobility Rank.", System.Drawing.Color.White, Message.Center), ServerBase.Kernel.GamePool.Values);
                                }
                                if (Rank == NobilityRank.Prince)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " Donation To Prince in Nobility Rank.", System.Drawing.Color.White, Message.Center), ServerBase.Kernel.GamePool.Values);
                                }
                                if (Rank == NobilityRank.King)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " has become the new King/Queen in " + Database.rates.servername + "!", System.Drawing.Color.White, Message.Center), ServerBase.Kernel.GamePool.Values);
                                }
                                if (Rank == NobilityRank.Knight)
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " Donation To Knight in Nobility Rank.", System.Drawing.Color.White, Message.TopLeft), ServerBase.Kernel.GamePool.Values);
                                }
                            }
                            else
                            {
                                if (previousPlace != Place)
                                {
                                    updateTheClient = true;
                                }
                            }
                            if (updateTheClient || client.Entity.UID == updateUID)
                            {
                                NobilityInfo update = new NobilityInfo(true);
                                update.Type = NobilityInfo.Icon;
                                update.dwParam = value.Key;
                                update.UpdateString(value.Value);
                                client.SendScreen(update, true);
                                client.Entity.NobilityRank = value.Value.Rank;
                            }
                        }
                        sortedBoard.Add(value.Key, value.Value);
                        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 enum NobilityRank : byte
    {
        Serf = 0,
        Knight = 1,
        Baron = 3,
        Earl = 5,
        Duke = 7,
        Prince = 9,
        King = 12
    }
}
Eduardo0102 is offline  
Old 11/11/2013, 11:44   #2
 
elite*gold: 0
Join Date: May 2011
Posts: 648
Received Thanks: 413
remove this

if (client.Entity.ConquerPoints >= 500000)
{
if (client.Entity.NobalityDonation == client.NobilityInformation.Donation)
{
client.Entity.ConquerPoints -= 500000;
Database.EntityTable.UpdateCps(client);
client.NobilityInformation.Donation += silvers;
client.Entity.NobalityDonation += silvers;
Database.EntityTable.UpdateDonation(client);
}
else
{
if (client.Entity.NobalityDonation > client.NobilityInformation.Donation)
{
client.Entity.ConquerPoints -= 500000;
Database.EntityTable.UpdateCps(client);
client.Entity.NobalityDonation += silvers;
client.NobilityInformation.Donation = client.Entity.NobalityDonation;
Database.EntityTable.UpdateDonation(client);
}
else
{
if (client.Entity.NobalityDonation < client.NobilityInformation.Donation)
{
client.Entity.ConquerPoints -= 500000;
Database.EntityTable.UpdateCps(client);
client.NobilityInformation.Donation += silvers;
client.Entity.NobalityDonation = client.NobilityInformation.Donation;
Database.EntityTable.UpdateDonation(client);
}
}
}
}
}
else
Y u k i is offline  
Old 11/11/2013, 12:16   #3
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 946
Not to be mean, but I don't think you should be working on a source if you can't figure that out. Maybe start out by actually learning to program in C#, at least the basics.
Super Aids is offline  
Old 11/11/2013, 14:36   #4
 
turk55's Avatar
 
elite*gold: 130
Join Date: Oct 2007
Posts: 1,652
Received Thanks: 701
I didn't expect a source to be a number ? o.o

Super Aids is right, you should atleast learn the basic and move on to the part where you actually understand what is written, otherwise you will be stuck all the time.

You might get an answer this time, but what about next time or the times following next?
turk55 is offline  
Old 11/11/2013, 19:26   #5
 
elite*gold: 0
Join Date: Oct 2006
Posts: 110
Received Thanks: 67
Who in the hell thinks it is a good idea to use hex numbers for variables like donation? o.O
hadeset is offline  
Old 11/11/2013, 20:23   #6
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 946
Quote:
Originally Posted by hadeset View Post
Who in the hell thinks it is a good idea to use hex numbers for variables like donation? o.O
The source is one of those Egy sources that have been reflected, so everything is in hex
Super Aids is offline  
Old 11/12/2013, 16:04   #7
 
elite*gold: 0
Join Date: Oct 2006
Posts: 110
Received Thanks: 67
Quote:
Originally Posted by Super Aids View Post
The source is one of those Egy sources that have been reflected, so everything is in hex
Makes sense. :P
hadeset is offline  
Reply


Similar Threads Similar Threads
nobility
04/19/2010 - CO2 Private Server - 6 Replies
any know know which file has to be changed to make it that everyone can be a king/queen if though donate enough?
Help nobility npc
07/24/2009 - CO2 Private Server - 9 Replies
i need help to repair the npc for nobility in CoMy source who can help me ? thanks
how can i put nobility
05/31/2009 - CO2 Private Server - 1 Replies
how can i put nobilty in CoEmu do i need to code it?
[NobilitY]
05/05/2009 - CO2 Private Server - 8 Replies
Can anyone please post here how to add nobility rank or somehting like nobility in LOFT / 5017
[Help]Nobility
05/01/2009 - CO2 Private Server - 2 Replies
I'm looking for a tutorial to the nobility on my server! Thanks to you get what I want!



All times are GMT +2. The time now is 13:49.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.