كونكر عرب

كونكر عرب (https://conquer-arab.com/index.php)
-   مشكلات السيرفيرات كونكر الشخصيه (https://conquer-arab.com/forumdisplay.php?f=12)
-   -   يا رجاله بالله حل يا ليدر (https://conquer-arab.com/showthread.php?t=4265)

abdocoder 2020-04-04 10:00 PM

يا رجاله بالله حل يا ليدر
 
صلوا علي النبي
دلوقتي انا داخل في كلان
وحرب الكلان اشتغل
دخلت اضرب ف البولا
مكنتش بتضرب بس صلحتها
تمام ؟! تمام.
طيب ايه المشكلة
المشكلة ان المفروض لما اضرب البولا والدم بتاعها يخلص
المفروض يظهر اسم الكلان بتاعي فوق البولا
ومينفعش اضربها طول ما اسمي موجود عليها
طيب امال ايه المشكلة يا عم ؟؟ هقولك.
المشكلة ان مهما خلصت دمها الاسم الي عليها بيتجدد كأن الي ضرب البولا في نفس الكلان الي كان ضاربينها قبل كدا
بمعني مهما قتلت البولا مبيظهرش اسمك عليها بيظهر الاسم الي كان موجود وانت بتضرب فيها من الاول
أيه الحل

ElSaher 2020-04-04 10:48 PM

رد: يا رجاله بالله حل يا ليدر
 
امسح كلاس Clan من عندك وتضيف دا

كود PHP:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using Mr_Panda.Client;
using Mr_Panda.Database;
using Mr_Panda.Interfaces;
using Mr_Panda.Network;
using Mr_Panda.Network.GamePackets;
using Mr_Panda.Game;

namespace 
Mr_Panda
{
    public class 
Clan : Writer, IPacket
    
{
        private 
Byte[] mData;
        private 
Int32 Position = 17;
        private 
UInt32 mLeader, mFund, mAllyRequest;
        private 
String mName, mInfo, mAnnouncement;
        private 
Byte mLevel, mBPTower;
        public 
Client.GameState client;
        public 
UInt32 WarScore = 0;
        public 
bool PoleKeeper = false;

        private 
Dictionary<UInt32, ClanMember> mMembers;
        private 
Dictionary<UInt32, Clan> mAllies, mEnemies;

        public 
Clan(UInt32 leaderid, UInt32 clanid, String clanname, String leadername)
        {
            
LeaderId = leaderid;

            
mMembers = new Dictionary<UInt32, ClanMember>();
            
mAllies = new Dictionary<UInt32, Clan>();
            
mEnemies = new Dictionary<UInt32, Clan>();


            
mData = new byte[141 + (Byte)(clanname.Length + leadername.Length) + 8];
            
WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
            
WriteUInt16((UInt16)1312, 2, mData);

            
ID = clanid;
            
Name = clanname;
        }
        public 
Clan()
        {
            
mData = new byte[141 + 8];
            
WriteUInt16((UInt16)(mData.Length - 8), 0, mData);
            
WriteUInt16((UInt16)1312, 2, mData);
        }
        public 
UInt32 LeaderId
        
{
            
get { return mLeader; }
            
set { mLeader = value; }
        }
        public 
Types Type
        
{
            
get { return (Types)BitConverter.ToUInt32(mData, 4); }
            
set { WriteByte((Byte)value, 4, mData); }
        }
        public 
UInt32 ID
        
{
            
get { return BitConverter.ToUInt32(mData, 8); }
            
set { WriteUInt32((UInt32)value, 8, mData); }
        }
        public 
Byte Offset16
        
{
            
get { return mData[16]; }
            
set { mData[16] = value; }
        }
        public 
Byte Offset17
        
{
            
get { return mData[17]; }
            
set { mData[17] = value; }
        }
        public 
String Offset18String
        
{
            
get { return Program.Encoding.GetString(mData, 18, mData[17]).Trim(new Char[] { '\0' }); }
            
set { WriteString(value, 18, mData); }
        }
        public 
String Name
        
{
            
get { return mName; }
            
set { mName = value; }
        }

        private 
string leaderName;
        public 
bool CalnWar;
        public 
string LeaderName
        
{
            
get
            
{
                return 
leaderName;
            }
            
set
            
{
                
leaderName = value;
                
Writer.WriteString(value, 32, mData);
            }
        }
        public 
UInt32 Fund
        
{
            
get { return mFund; }
            
set { mFund = value; }
        }
        public 
Byte Level
        
{
            
get { return mLevel; }
            
set { mLevel = value; }
        }
        public 
Byte BPTower
        
{
            
get { return mBPTower; }
            
set { mBPTower = value; }
        }
        public 
String Announcement
        
{
            
get { return mAnnouncement; }
            
set { mAnnouncement = value; }
        }
        public 
String Info
        
{
            
get { return mInfo; }
            
set { mInfo = value; }
        }
        public 
UInt32 AllyRequest
        
{
            
get { return mAllyRequest; }
            
set { mAllyRequest = value; }
        }

        public 
void Build(GameState c, Types type)
        {
            
this.Type = type;
            switch (
type)
            {
                case 
Types.Info:
                    {
                        
ClanMember member;
                        if (
Members.TryGetValue(c.Player.UID, out member))
                        {
                            
Info = System.String.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11}"
                                
, ID, mMembers.Count(), 0, Fund, Level - 1, Convert.ToByte(c.Player.ClanRank), 0, BPTower, 0, 0, 0, member.Donation);

                            
Offset16 = 6;

                            
WriteStringWithLength(Info, Position, mData);
                            
Position += Info.Length;
                            
Position++;

                            
WriteStringWithLength(Name, Position, mData);
                            
Position += Name.Length;
                            
Position++;

                            
WriteStringWithLength(LeaderName, Position, mData);
                            
Position += LeaderName.Length;
                            
Position++;

                            
string text2 = "0 0 0 0 0 0 0";
                            
Writer.WriteStringWithLength(text2, Position, mData);
                            
ClanWarArena.ClientWar clientWar;
                            if (
ClanWarArena.GetMyWar(this.ID, out clientWar))
                            {
                                
string dominationMap = clientWar.DominationMap;
                                
Position += text2.Length;
                                
Position++;
                                
Writer.WriteStringWithLength(dominationMap, Position, mData);
                                
string curentMap = clientWar.CurentMap;
                                
Position += dominationMap.Length;
                                
Position++;
                                
Writer.WriteStringWithLength(curentMap, Position, mData);
                            }
                            
Position = 17;
                        }
                        break;
                    }
                case 
Types.MyClan:
                    {
                        
string text = "0 0 0 0 0 0 0";
                        
ClanWarArena.ClientWar clientWar;
                        if (
ClanWarArena.GetMyWar(this.ID, out clientWar))
                        {
                            
text = string.Concat(new object[]{"1 ",
                        
clientWar.OccupationDays," ",
                        
clientWar.Reward," ",
                        
clientWar.NextReward," 0 0 0"});
                        }
                        
this.Offset16 = 1;
                        
this.Offset17 = (byte)text.Length;
                        
Writer.WriteString(text, 18, this.mData);
                        break;
                    }
            }
        }
        private static 
void UpdateData(Client.GameState client, string column, object value)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
                
cmd.Update("clans").Set(column, value).Where("identifier", client.Player.ClanId)
                    .
Execute();
        }
        public 
void Save(Client.GameState client, String row, UInt16 value)
        {
            
UpdateData(client, row, value);
        }
        public 
void Save(Client.GameState client, String row, Byte value)
        {
            
UpdateData(client, row, value);
        }
        public 
void Save(Client.GameState client, String row, String value)
        {
            
UpdateData(client, row, value);
        }
        public 
void Save(Client.GameState client, String row, UInt32 value)
        {
            
UpdateData(client, row, value);
        }
        public 
UInt32 GetClanId(String name)
        {
            
lock (Kernel.Clans)
            {
                foreach (
Clan clans in Kernel.Clans.Values)
                {
                    if (
clans.Name == name)
                        return 
clans.ID;
                }
            }
            return 
0;
        }
        public 
Dictionary<UInt32, ClanMember> Members { get { return this.mMembers; } }
        public 
Dictionary<UInt32, Clan> Allies { get { return this.mAllies; } }
        public 
Dictionary<UInt32, Clan> Enemies { get { return this.mEnemies; } }

        public 
void InfoToMembers()
        {
            
GameState mem;
            foreach (
ClanMember member in this.Members.Values)
            {
                if (
Kernel.GamePool.TryGetValue(member.Identifier, out mem))
                {
                    
mem.Player.GetClan.Build(mem, Types.Info);
                    
mem.Send(mem.Player.GetClan.ToArray());
                    
mem.Send(new ClanMembers(mem.Player.GetClan).ToArray());

                }
            }
        }
        public 
void SendMessage(IPacket packet)
        {
            
GameState mem;
            foreach (
ClanMember member in this.Members.Values)
            {
                if (
Kernel.GamePool.TryGetValue(member.Identifier, out mem))
                    
mem.Send(packet);
            }
        }
        public static 
void nobmas(Client.GameState client)
        {
            
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + "Donation To " + client.NobilityInformation.Rank + " in Nobility Rank!", System.Drawing.Color.White, 2011), Program.Values);
        }
        public static 
UInt32 NextClanId
        
{
            
get
            
{
                
UInt32 start = 600;
                while (
Kernel.Clans.ContainsKey(start))
                    
start++;
                return 
start;
            }
        }
        public static 
Boolean ValidName(String name)
        {
            if (
name.Length < 1 || name.Length > 35) return false;
            foreach (
Clan clans in Kernel.Clans.Values)
                if (
clans.Name == name)
                    return 
false;
            return 
true;
        }
        public 
void AddRelation(UInt32 Relative, ClanRelations.RelationTypes type)
        {
            try
            {
                
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("clanrelation"))
                    
cmd.Insert("id", ID).Insert("clanid", ID).Insert("associatedid", Relative).Insert("type", (byte)type).Execute();
            }
            catch
            {
            }
        }
        public 
void DeleteRelation(UInt32 Relative, ClanRelations.RelationTypes type)
        {
            try
            {
                
using (var cmd = new MySqlCommand(MySqlCommandType.DELETE))
                    
cmd.Delete("clanrelation", "clanid", ID).And("associatedid", Relative)
                        .And(
"type", (byte)type).Execute();
            }
            catch
            {
            }
        }
        public 
void Join(GameState c)
        {
            
c.Player.ClanId = ID;
            
c.Player.ClanRank = Ranks.Member;
            
c.Player.ClanName = Name;
            
Database.EntityTable.UpdateClanID(c);
            
Database.EntityTable.UpdateClanRank(c);

            
Members.Add(c.Player.UID, new ClanMember()
            {
                Class = 
c.Player.Class,
                
Donation = 0,
                
Identifier = c.Player.UID,
                
Level = c.Player.Level,
                
Name = c.Player.Name,
                
Rank = c.Player.ClanRank
            
});

            
Build(c, Types.Info);
            
c.Send(this);

            
c.Player.Teleport(c.Player.MapID, c.Player.X, c.Player.Y);

            
SendMessage(new Message(System.String.Format("{0} Has Joined the Clan!", c.Player.Name), Color.Red, Message.Clan));
        }
        public static 
void CreateClan(GameState c, String cname)
        {
            
UInt32 id = NextClanId;
            
Clan clan = new Clan(c.Player.UID, id, cname, c.Player.Name);
            
clan.Fund = 250000;
            
clan.ID = id;
            
clan.BPTower = 0;
            
clan.Level = 1;
            
clan.Name = cname;
            
clan.LeaderName = c.Player.Name;

            
clan.Members.Add(c.Player.UID, new ClanMember()
            {
                Class = 
c.Player.Class,
                
Donation = 250000,
                
Identifier = c.Player.UID,
                
Level = c.Player.Level,
                
Name = c.Player.Name,
                
Rank = Ranks.ClanLeader
            
});

            
Kernel.Clans.Add(id, clan);

            
Kernel.SendWorldMessage(new Message(System.String.Format("{0} has succesfully set up a new Clan {1}", c.Player.Name, cname), Color.Red,
                    
Message.TopLeft));

            
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT))
                
cmd.Insert("clans").Insert("identifier", id)
                    .
Insert("leaderid", clan.LeaderId).Insert("name", clan.Name)
                    .
Insert("fund", clan.Fund).Insert("announcement", "")
                    .
Insert("BPTower", clan.BPTower).Insert("Level", clan.Level)
                    .
Insert("LeaderName", c.Player.Name).Insert("polekeeper", 0).Execute();

            
c.Player.ClanId = id;
            
c.Player.ClanRank = Ranks.ClanLeader;
            
Database.EntityTable.UpdateClanID(c);
            
Database.EntityTable.UpdateClanRank(c);
            
c.Player.ClanName = cname;
            
clan.Build(c, Types.Info);
            
c.Send(clan);
            
c.SendScreen(c.Player.SpawnPacket, true);
        }
        public static 
void LoadClans()
        {
            
Dictionary<uint, Dictionary<uint, ClanMember>> dict = new Dictionary<uint, Dictionary<uint, ClanMember>>();

            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("entities").Where("clanid", 0, true))
            
using (var reader = cmd.CreateReader())
            {
                while (
reader.Read())
                {
                    
uint clanId = reader.ReadUInt32("clanid");
                    
ClanMember mem = new ClanMember()
                    {
                        
UID = reader.ReadUInt32("Uid"),
                        
Identifier = reader.ReadUInt32("Uid"),
                        Class = 
reader.ReadByte("Class"),
                        
Donation = reader.ReadUInt32("ClanDonation"),
                        
Level = reader.ReadByte("Level"),
                        
Name = reader.ReadString("Name"),
                        
Rank = (Ranks)reader.ReadByte("ClanRank"),
                    };
                    if (!
dict.ContainsKey(clanId)) dict.Add(clanId, new Dictionary<uint, ClanMember>());
                    
dict[clanId].Add(mem.UID, mem);
                }
            }
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("clans"))
            
using (var reader = cmd.CreateReader())
            {
                while (
reader.Read())
                {
                    
UInt32 HeroId = reader.ReadUInt32("LeaderId");
                    
Clan c = new Clan(HeroId, reader.ReadUInt32("Identifier"), reader.ReadString("Name"), reader.ReadString("LeaderName"));
                    {
                        
c.Announcement = reader.ReadString("Announcement");
                        
c.BPTower = reader.ReadByte("BPTower");
                        
c.ID = reader.ReadUInt32("Identifier");
                        
c.Fund = reader.ReadUInt32("Fund");
                        
c.LeaderId = reader.ReadUInt32("LeaderId");
                        
c.Level = reader.ReadByte("Level");
                        
c.LeaderName = reader.ReadString("LeaderName");
                        
c.PoleKeeper = reader.ReadBoolean("PoleKeeper");
                    }
                    
Kernel.Clans.Add(c.ID, c);
                    if (
dict.ContainsKey(c.ID))
                        
c.mMembers = dict[c.ID];
                    else
                        
c.mMembers = new Dictionary<uint, ClanMember>();
                }
            }
            foreach (
Clan c in Kernel.Clans.Values)
            {
                
c.LoadAssociates();
            }
        }
        public static 
void DisbandClan(GameState c)
        {
            
byte[] Packet = new byte[90];
            
Writer.WriteUInt16(82, 0, Packet);
            
Writer.WriteUInt16(1312, 2, Packet);
            
Writer.WriteUInt32(23, 4, Packet);
            
Writer.WriteUInt32(c.Player.UID, 8, Packet);
            if (
c.Team != null)
                
c.Team.GetClanShareBp(c);
            
Database.EntityTable.RemoveClan(c);
            
using (var cmd = new MySqlCommand(MySqlCommandType.DELETE))
                
cmd.Delete("clans", "leaderid", c.Player.UID).Execute();

            foreach (var 
h in c.Player.GetClan.Members.Values)
            {
                var 
hero = Program.Values.SingleOrDefault(x => x.Player.UID == h.Identifier);
                if (
hero != null)
                {
                    
hero.Player.ClanRank = Clan.Ranks.None;
                    
hero.Player.ClanName = "";
                    
hero.Player.ClanId = 0;
                    
hero.Send(Packet);
                    
hero.SendScreenSpawn(hero.Player, true);
                }
            }
            
Kernel.Clans.Remove(c.Player.ClanId);
        }
        public static 
void SaveClan(Clan clan)
        {
            
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE);
            
cmd.Update("Clans").Set("Fund", clan.Fund).Set("Level", clan.Level)
                .
Set("Bulletin", clan.Announcement).Set("Leader", clan.leaderName).Where("ClanID", clan.ID).Execute();
        }
        public static 
void TransferClan(string name)
        {
            
MySqlCommand cmd3 = new MySqlCommand(MySqlCommandType.UPDATE);
            
cmd3.Update("entities")
                .
Set("ClanRank", 100).Where("Name", name).Execute();
        }
        private 
void LoadAssociates()
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("clanrelation").Where("clanid", this.ID))
            
using (var reader = cmd.CreateReader())
            {
                while (
reader.Read())
                {
                    
UInt32 AssociateId = reader.ReadUInt32("AssociatedId");
                    
ClanRelations.RelationTypes Type = (ClanRelations.RelationTypes)(reader.ReadUInt32("Type"));
                    
Clan c;
                    if (
Kernel.Clans.TryGetValue(AssociateId, out c))
                    {
                        if (
Type == ClanRelations.RelationTypes.Allies)
                            
this.Allies.Add(AssociateId, c);
                        else
                            
this.Enemies.Add(AssociateId, c);
                    }
                }
            }
        }
        public 
enum Types : byte
        
{
            
Info = 1,
            
Members = 4,
            
Recruit = 9,
            
AcceptRecruit = 10,
            
Join = 11,
            
AcceptJoinRequest = 12,
            
AddEnemy = 14,
            
DeleteEnemy = 15,
            
AddAlly = 17,
            
AcceptAlliance = 18,
            
DeleteAlly = 20,
            
TransferLeader = 21,
            
Kick = 22,
            
Quit = 23,
            
Announce = 24,
            
SetAnnouncement = 25,
            
Dedicate = 26,
            
MyClan = 29
        
}
        public 
enum Ranks : ushort
        
{
            
ClanLeader = 100,
            
Spouse = 11,
            
Member = 10,
            
None = 0
        
}
        public 
void Send(GameState client) { client.Send(mData); }
        public 
byte[] ToArray() { return mData; }
        public 
void Deserialize(byte[] buffer) { mData = buffer; }

        public 
void SendClanShareBp(uint leaderUID, uint BpShare, Client.GameState client)
        {
            
Network.GamePackets.Update update = new Network.GamePackets.Update(true) { UID = client.Player.UID };
            
update.Append(Network.GamePackets.Update.ClanShareBp, leaderUID);
            
//update.Append4(Network.GamePackets.Update.ClanShareBp, BpShare);
            
client.Send(update.ToArray());

        }
    }
} 


abdocoder 2020-04-04 10:54 PM

رد: يا رجاله بالله حل يا ليدر
 
انا عندي كلاس كلان 1 و كلاس كلان 2 احطو في انهي كلاس

midoazoz 2020-04-04 10:58 PM

رد: يا رجاله بالله حل يا ليدر
 
يا عم متمسح حرب الكلان كلها وضيفها من اول وجديد من سورس شغال فيه ومفيش اكتر منهم بعدين انت بتقول في كلاس 1 و 2 يعني معكوك فيها انت امسحهم وضيفها من الاول كلها الموضوع سهل اووي

ahmedfathy 2020-04-04 11:00 PM

رد: يا رجاله بالله حل يا ليدر
 
كلمني فيس بوك الحل سهل جدآ وانا همسحلك الكلان خالص وضفهولك من الاول علي نضيف عشان 100 في ال 100 في مشاكل تاني عندك في الحرب نفسها


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

مرحبا بكم في منتدي اكواد لتطوير الالعاب
new notificatio by 9adq_ala7sas