منتدي اكواد

منتدي اكواد (https://code.vpscairo.com/index.php)
-   تطوير سيرفرات كونكر (https://code.vpscairo.com/forumdisplay.php?f=11)
-   -   موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك (https://code.vpscairo.com/showthread.php?t=2844)

zezonever 2019-11-08 10:30 PM

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

اخوتي الكرام النهارده موضوعنا بسيطه بس ركز شويه معايا تمام
النهارده هتكلم عن موضوع الكابشر فلاج واضح ان في سورسات كثير ع النت خربان زي مثلا
العلم مش بيستلم اول حاجه البونتات مش شغاله فيه ناس كثير مش بتستعمل الحرب دي علشان بايظه
انا دخلت في المنتدي ملقتش حل لموضوع ده فا قولت انزله انا وافيد الناس زي ما انا بستفاد منكم طبعا في حجات :emoji11:
احنا هنشتغل النهارده ع 7 ملفات الاضافه كامله مني انا وبس والله اعلم بقا بغيري بس انا ضمنها علشان مشغلي في السورس بتاعي
اولا هنفتح البروكيت وصلي علي النبي بقا كده في قلبك هندخل اولا ع ملف Npc دي اول اضافه
هنضيف هنا دول عموما هو شغال كل يوم تمام :]
كود PHP:

#region Reward CTF
                                
case 8713:
                                    {
                                        switch (
npcRequest.OptionID)
                                        {
                                            case 
0:
                                                {
                                                    
dialog.Text("Just The Guild Leader will receive the CTF Reward?");
                                                    
dialog.Option("CTF area."2);
                                                    
dialog.Option("I See."255);
                                                    
dialog.Avatar(83);
                                                    
dialog.Send();
                                                    break;
                                                }
                                            case 
2:
                                                {
                                                    if (
client.Player.Level >= 120)
                                                        if (
CaptureTheFlag.IsWar)
                                                        {
                                                            
Program.World.CTF.SignUp(client);
                                                        }
                                                        else
                                                        {
                                                            
dialog.Text("The CTF is not on going at this time. The Ctf Will start EveryDay at 19:00 .");
                                                            
dialog.Option("Oh."255);
                                                            
dialog.Send();
                                                        }
                                                    else
                                                    {
                                                        
dialog.Text("You Should Level 140 and SecondReborn .");
                                                        
dialog.Option("Oh."255);
                                                        
dialog.Send();
                                                    }
                                                    break;
                                                }
                                            case 
3:
                                                {
                                                    if (
client.Guild != null)
                                                    {
                                                        if (
client.AsMember != null)
                                                        {
                                                            if (
client.AsMember.Rank == Enums.GuildMemberRank.GuildLeader)
                                                            {
                                                                
uint Reaward = (uint)(client.Guild.CTFReward 100);
                                                                if (
Reaward != 0)
                                                                {
                                                                    
byte[] messaje = new Network.GamePackets.Message("The Guild Leader " client.Player.Name " of " client.Guild.Name " Receive the CTFReward 100  cps"System.Drawing.Color.RedNetwork.GamePackets.Message.System).ToArray();

                                                                    
client.Player.ConquerPoints += 100;
                                                                    
client.Guild.CTFReward 0;
                                                                    
Database.GuildTable.SaveCTFReward(client.Guild);
                                                                    foreach (var 
clients in Kernel.GamePool.Values)
                                                                    {
                                                                        
client.Send(messaje);
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    
dialog.Text("You Guild Not Have CTF Points ");
                                                                    
dialog.Option("Oh Sorry."255);
                                                                    
dialog.Avatar(83);
                                                                    
dialog.Send();
                                                                }
                                                            }
                                                            else
                                                            {
                                                                
dialog.Text("Just The Guild Leader will receive the CTF Reward ");
                                                                
dialog.Option("Oh Sorry."255);
                                                                
dialog.Avatar(83);
                                                                
dialog.Send();
                                                            }
                                                            break;
                                                        }
                                                    }
                                                    break;
                                                }
                                        }
                                        break;
                                    }
                                
#endregion 

بعدها نفتح ملف World.cs نضيف دول
كود PHP:

#region Capture the flag
            
if (Now64.DayOfWeek == DayOfWeek.Saturday || Now64.DayOfWeek == DayOfWeek.Sunday || Now64.DayOfWeek == DayOfWeek.Monday || Now64.DayOfWeek == DayOfWeek.Tuesday || Now64.DayOfWeek == DayOfWeek.Wednesday || Now64.DayOfWeek == DayOfWeek.Thursday)
            {
                if (
Copra_Times.Start.CTF && !CaptureTheFlag.IsWar)
                {
                    
CaptureTheFlag.IsWar true;
                    
CaptureTheFlag.StartTime DateTime.Now;
                    foreach (var 
guild in Kernel.Guilds.Values)
                    {
                        
guild.CTFFlagScore 0;
                        
guild.CTFPoints 0;
                    }
                    foreach (
Client.GameState client in Kernel.GamePool.Values)
                    {
                        if (
client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Player.Dead)
                        {
                            
EventAlert alert = new EventAlert
                            
{
                                
StrResID 10539,
                                
Countdown 60,
                                
UK12 1
                            
};
                            
client.Player.StrResID 10539;
                            
client.Send(alert);
                        }
                    }
                }
            }
            if (
CaptureTheFlag.IsWar && CTF != null)
            {
                
Program.World.CTF.SendUpdates();
                if (
Now64 CaptureTheFlag.StartTime.AddHours(1))
                {
                    
CaptureTheFlag.IsWar false;
                    
CaptureTheFlag.Close();
                }
            }
            if (
CTF != null)
                
CTF.SpawnFlags();
            
#endregion 

دلوقتي ندخل ع ملف PacketHandler.cs نضيف الحجات دي

كود PHP:

#region CTF
                
case 1063:
                    {
                        
                        
byte typ packet[4];
                        switch (
typ)
                        {
                            case 
0:
                                {
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    if (!
CaptureTheFlag.IsWar)
                                    {
                                        
CaptureTheFlag.CTFGuildsRank(clientpacket);
                                    }
                                    else
                                    {
                                        
CaptureTheFlag.CTFExpolitsRank(clientpacket);
                                    }
                                    break;
                                }
                            case 
1:
                                {
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;

                                    
CaptureTheFlag.CTFExpolitsRank2(clientpacket);
                                    break;
                                }
                            case 
3:
                                {
                                    
uint setCTFCps BitConverter.ToUInt32(packet18);
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    if (
client.Guild.ConquerPointFund setCTFCps)
                                    {
                                        
client.Guild.ConquerPointFund -= setCTFCps;
                                        
client.Guild.CTFdonationCPsold += setCTFCps;
                                        
Database.GuildTable.SaveFunds(client.Guild);
                                    }
                                    goto case 
0;
                                }
                            case 
4:
                                {
                                    
uint setCTFMoney BitConverter.ToUInt32(packet22);
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    if (
client.Guild.SilverFund setCTFMoney)
                                    {
                                        
client.Guild.SilverFund -= setCTFMoney;
                                        
client.Guild.CTFdonationSilverold += setCTFMoney;
                                        
Database.GuildTable.SaveFunds(client.Guild);
                                    }
                                    goto case 
0;

                                }
                            case 
5:
                                {
                                    
uint setCTFCps BitConverter.ToUInt32(packet18);
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    if (
client.Guild.ConquerPointFund setCTFCps)
                                    {
                                        
client.Guild.ConquerPointFund -= setCTFCps;
                                        
client.Guild.CTFdonationCPsold += setCTFCps;
                                        
Database.GuildTable.SaveFunds(client.Guild);
                                    }

                                    
uint setCTFMoney BitConverter.ToUInt32(packet22);

                                    if (
client.Guild.SilverFund setCTFMoney)
                                    {
                                        
client.Guild.SilverFund -= setCTFMoney;
                                        
client.Guild.CTFdonationSilverold += setCTFMoney;
                                        
Database.GuildTable.SaveFunds(client.Guild);
                                    }
                                    goto case 
0;
                                }
                            case 
8:
                                {
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    
CaptureTheFlag.CTFGuildsRank2(clientpacket);
                                    break;
                                }
                            case 
9:
                                {
                                    if (
client.Guild == null || client.AsMember == null)
                                        break;
                                    if (
CaptureTheFlag.IsWar)
                                    {
                                        new 
CaptureTheFlag.CTF_Rank(client).Send(client);
                                    }
                                    else
                                    {
                                        
CaptureTheFlag.CTFsRank(clientpacket);
                                    }
                                    break;
                                }

                        }
                        break;
                    }
                case 
2224:
                    {
                        if (
packet[4] == 7)//2
                            
client.Send(Program.World.CTF.generateCTFRanking());

                        if (
CaptureTheFlag.IsWar)
                        {
                            
byte[] p773 = new byte[] { 6001768110001000000000000000000000000000000000000000000000000000848183101114118101114 };
                            
client.Send(p773);
                        }
                        else
                            
client.Send(packet);
                        break;
                    }
                
#endregion 

زي ما احنا في الباكت هنديل هندول ع الملف ده
كود PHP:

if (client.Player.InteractionInProgress && client.Player.InteractionSet

فوقه ع دول هنحط ده
كود PHP:

if (client.Player.MapID == CaptureTheFlag.MapID)
                            
CheckForFlag(client);
                        
client.SendScreen(generalDatatrue);
                        
client.Screen.Reload(generalData); 

زي ما احنا في الباكت هندل هندول ع الكود ده
كود PHP:

if (client.Player.InteractionInProgress

فوقه ع طول هنضيف ده
كود PHP:

if (client.Player.MapID == CaptureTheFlag.MapID)
                
CheckForFlag(client);

            
client.SendScreen(groundMovementtrue);
            
client.Screen.Reload(groundMovement); 

زي ما احنا ندور ع الكود ده
كود PHP:

static void GetSurroundings(Client.GameState client

فوق القوس نضيف الكود ده
كود PHP:

if (client.Player.PreviousMapID == CaptureTheFlag.MapID)
                
Program.World.CTF.CloseList(client); 

ندخل ع ال بعده يا صحبي نفتح ملف Handel.cs ونضيف دول
هندول ع الكود ده
كود PHP:

attacker.Owner.IncreaseSpellExperience(damagespell.ID); 

بعد القوسين من الكود ده هنضيف ده
كود PHP:

if (attacked.UID == 123456)
            {
            }

            if (
attacker.MapID == CaptureTheFlag.MapID)
                if (
attacker.GuildID != && Program.World.CTF.Bases[attacked.UID].CapturerID != attacker.GuildID)
                {
                    
Program.World.CTF.AddScore(damageattacker.Owner.Guildattacked);
                } 

زي ما احنا في الهنديل هندور ع الكود ده
كود PHP:

if (Database.GuildCondutors.GuildConductors.ContainsKey(attacked.UID)) 

تحته هنضيف دول
كود PHP:

if (attacker.MapID == CaptureTheFlag.MapID)
            {
                if (
Program.World.CTF.Bases.ContainsKey(attacked.UID))
                {
                    var 
_base Program.World.CTF.Bases[attacked.UID];
                    if (
_base.CapturerID == attacker.GuildID)
                        return 
false;
                }
                return 
true;
            }
            if (
attacked.UID == 123456)
                if (
attacked.Hitpoints 0)
                    return 
true;
                else return 
false

تمام كده هنفتح ملف CaptureTheFlag هنمسح كل ال في الملف ده وهنضيف الاكواد دي كلها
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BlackBlock.Network.GamePackets;
using BlackBlock.Client;
using System.Collections.Concurrent;
using BlackBlock.Game.ConquerStructures.Society;
using BlackBlock.Network;
using BlackBlock.Database;

namespace 
BlackBlock.Game
{
    public class 
CaptureTheFlag
    
{
        public class 
CTF_Rank Writer
        
{
            private 
byte[] Packet;
            public 
CTF_Rank(GameState client)
            {
                
this.Packet = new byte[354];
                
Writer.WriteUInt16(3460this.Packet);
                
Writer.WriteUInt16(10632this.Packet);
                
this.Packet[4] = 9;
                
this.Packet[6] = 1;
                
this.Packet[14] = 8;
                
Writer.WriteUInt32(client.Guild.CTFPoints18this.Packet);
            }
            public 
void Send(GameState client)
            {
                
client.Send(this.ToArray());
            }
            public 
byte[] ToArray()
            {
                
ushort num 30;
                
Guild[] array = (
                    
from p in Kernel.Guilds.Values
                    where p
.CTFPoints != 0u
                    orderby p
.CTFPoints descending
                    select p
).ToArray<Guild>();
                if (array != 
null)
                {
                    
byte b 0;
                    while ((int)
< array.Length && != 9)
                    {
                        
Writer.WriteString(array[(int)b].Name, (int)numthis.Packet);
                        
num += 16;
                        
Writer.WriteUInt32(array[(int)b].CTFPoints, (int)numthis.Packet);
                        
num += 4;
                        
Writer.WriteUInt32(array[(int)b].MemberCount, (int)numthis.Packet);
                        
num += 4;
                        
Writer.WriteUInt64((ulong)array[(int)b].CTFdonationSilverold, (int)numthis.Packet);
                        
num += 8;
                        
Writer.WriteUInt32(array[(int)b].CTFdonationCPsold, (int)numthis.Packet);
                        
num += 4;
                        
+= 1;
                    }
                }
                return 
this.Packet;
            }
        }
        public class 
Base
        
{
            public 
SobNpcSpawn Flag;
            public 
ConcurrentDictionary<uintuintScores;
            public 
uint CapturerID;

            public 
Base(SobNpcSpawn flag)
            {
                
Flag flag;
                
Scores = new ConcurrentDictionary<uintuint>();
                
CapturerID 0;
            }

            public 
void Capture()
            {
                if (
Scores.Count == 0Scores.Add((uint)0, (uint)0);
                
uint guildId Scores.OrderByDescending(=> p.Value).FirstOrDefault().Key;
                
CapturerID guildId;
                var 
guild Kernel.Guilds[guildId];
                
Flag.Name guild.Name;
                
Flag.Hitpoints Flag.MaxHitpoints;
                
Kernel.SendScreen(FlagFlag);
                foreach (var 
Entity in Program.Values)
                {
                    if (
Entity.Player.MapID == MapID)
                    {
                        
Entity.Send(generatePacket2(5, (Flag.UID 20570)));
                    }
                }
                
Scores.Clear();
            }
        }
        public const 
ushort MapID 2057;

        private 
Map Map;
        public 
Dictionary<uintBaseBases;
        public static 
bool IsWar;
        public static 
DateTime StartTime;

        public 
CaptureTheFlag()
        {
            
Database.DMaps.LoadMap(2057);
            
Bases = new Dictionary<uintBase>();
            if (!
Kernel.Maps.ContainsKey((int)2057L))
            {
                new 
Map(MapIDDMaps.MapPaths[MapID]);
            }
            
Map Kernel.Maps[MapID];
            foreach (var 
npc in Map.Npcs.Values)
                if (
npc is SobNpcSpawn)
                    
Bases.Add(npc.UID, new Base((SobNpcSpawn)npc));
            
SpawnFlags();
        }

        public 
void SpawnFlags()
        {
            
int toAdd 60 Map.StaticEntities.Count;
            for (
int i toAdd0i--)
            {
                var 
coords Map.RandomCoordinates();
                
StaticEntity entity = new StaticEntity((uint)(coords.Item1 1000 coords.Item2), coords.Item1coords.Item2MapID);
                
entity.DoFlag();
                
Map.AddStaticEntity(entity);
            }
        }

        public 
bool SignUp(GameState client)
        {
            if (
client.Player.GuildID == 0) return false;
            if (
client.Guild == null) return false;
            var 
coords Map.RandomCoordinates(48236727);
            
client.Player.Teleport(MapIDcoords.Item1coords.Item2);
            return 
true;
        }

        public 
void AroundBase(GameState client)
        {
            if (
client.Player.MapID != MapID) return;
            if (
client.Player.GuildID == 0) return;
            if (
client.Guild == null) return;

            foreach (var 
_base in Bases.Values)
            {
                if (
Kernel.GetDistance(client.Player.Xclient.Player.Y_base.Flag.X_base.Flag.Y) == 9)
                {
                    if (
_base.CapturerID == client.Player.GuildID)
                    {
                        if (
client.Player.ContainsFlag2(Update.Flags2.CarryingFlag))
                        {
                            
client.Send(generateTimer(0));
                            
client.Send(generateEffect(client));
                            
client.Player.RemoveFlag2(Update.Flags2.CarryingFlag);
                            
// client.Entity.nRemoveFlag(91);
                            
client.Guild.CTFPoints += 15;
                            
Program.World.CTF.SendUpdates();
                            
client.Send(generatePacket(7client.Player.UID));
                            
client.AsMember.Exploits += (ushort)(client.Player.Level 2);
                        }
                    }
                }
                else
                {
                    foreach (var 
item in client.Map.StaticEntities.Values)
                    {
                        if (
Kernel.GetDistance(item.Xitem.Yclient.Player.Xclient.Player.Y) == 0)
                        {
                            if (
client.Player.ContainsFlag2(Update.Flags2.CarryingFlag))
                            {
                                
client.Player.FlagStamp Time32.Now;

                                
client.Send(Program.World.CTF.generateTimer(60));
                                
client.Send(Program.World.CTF.generateEffect(client));
                                
client.Guild.CTFPoints += 3;
                                
client.Map.RemoveStaticItem(item);
                                
client.RemoveScreenSpawn(itemtrue);
                            }
                        }
                    }
                }
            }
        }

        public static 
bool Attackable(Game.Entity entity)
        {
            return 
Kernel.GetDistance(entity.Xentity.Y482367) > 32;
        }

        public 
void AddScore(uint damageGuild guildSobNpcSpawn attacked)
        {
            if (
Bases.ContainsKey(attacked.UID))
            {
                {
                    var 
_base Program.World.CTF.Bases[attacked.UID];
                    if (!
_base.Scores.ContainsKey(guild.ID))
                        
_base.Scores.Add(guild.IDdamage);
                    else
                        
_base.Scores[guild.ID] += damage;
                }


            }
        }

        public 
void FlagOwned(SobNpcSpawn attacked)
        {
            if (
Bases.ContainsKey(attacked.UID))
            {
                foreach (var 
Entity in Program.Values)
                {
                    if (
Entity.Player.MapID == MapID)
                    {
                        
Entity.Send(generatePacket(5, (attacked.UID 20570)));
                    }
                }
            }
        }

        public static 
void Close()
        {
            foreach (var 
Entity in Program.Values)
                if (
Entity.Player.MapID == MapID)
                    
Entity.Player.Teleport(1002225243);

            var array = 
Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();

            for (
int i 0Math.Min(8, array.Length); i++)
            {
                array[
i].CalculateCTFRANK(true);
                
Database.GuildTable.SaveCTFPoins(array[i]);

                if (
== 0)
                {
                    array[
i].CTFReward += 10;
                    array[
i].ConquerPointFund += 3000;
                    array[
i].SilverFund += 120000000;
                }
                else if (
== 1)
                {
                    array[
i].CTFReward += 9;
                    array[
i].ConquerPointFund += 2000;
                    array[
i].SilverFund += 100000000;
                }
                else if (
== 2)
                {
                    array[
i].CTFReward += 8;
                    array[
i].ConquerPointFund += 1000;
                    array[
i].SilverFund += 80000000;
                }
                else if (
== 3)
                {
                    array[
i].CTFReward += 7;
                    array[
i].ConquerPointFund += 600;
                    array[
i].SilverFund += 65000000;
                }
                else if (
== 4)
                {
                    array[
i].CTFReward += 6;
                    array[
i].ConquerPointFund += 500;
                    array[
i].SilverFund += 50000000;
                }
                else if (
== 5)
                {
                    array[
i].CTFReward += 5;
                    array[
i].ConquerPointFund += 400;
                    array[
i].SilverFund += 40000000;
                }
                else if (
== 6)
                {
                    array[
i].CTFReward += 4;
                    array[
i].ConquerPointFund += 300;
                    array[
i].SilverFund += 30000000;
                }
                else if (
== 7)
                {
                    array[
i].CTFReward += 3;
                    array[
i].ConquerPointFund += 200;
                    array[
i].SilverFund += 20000000;
                }
                
Database.GuildTable.SaveCTFReward(array[i]);
                array[
i].CTFdonationCPs = array[i].CTFdonationCPsold;
                array[
i].CTFdonationSilver = array[i].CTFdonationSilverold;
                array[
i].CTFdonationCPsold 0;
                array[
i].CTFdonationSilverold 0;
            }
            if (array.
Length 8)
            {
                for (
int x 8< array.Lengthx++)
                {
                    array[
x].CTFPoints 0;
                    foreach (var 
meme in array[x].Members.Values)
                    {
                        
meme.Exploits 0;
                        
meme.ExploitsRank 0;
                    }
                }
            }
        }

        public 
void SendUpdates(GameState client)
        {
            if (
Time32.Now client.CTFUpdateStamp.AddSeconds(5))
            {
                
client.CTFUpdateStamp Time32.Now;
                var 
buffer generateCTFRanking4();
                
client.Send(buffer);
                foreach (var 
_base in Bases.Values)
                {
                    if (
Kernel.GetDistance(client.Player.Xclient.Player.Y_base.Flag.X_base.Flag.Y) <= 9)
                    {
                        
buffer generateFlagRanking(_base);
                        
client.Send(buffer);
                    }
                }
            }
        }

        public 
byte[] generateCTFRanking4()
        {
            var array = 
Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();
            return 
generateList4(2, array, => p.CTFPoints);
        }

        public 
byte[] generateCTFRanking()
        {
            var array = 
Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();
            return 
generateList(2, array, => p.CTFPoints);
        }

        private 
byte[] generateFlagRanking(Base flag)
        {
            var 
scores flag.Scores.OrderByDescending(=> p.Value).ToArray();
            var array = new 
Guild[Math.Min(5scores.Length)];
            for (
int i 0< array.Lengthi++)
            {
                array[
i] = Kernel.Guilds[scores[i].Key];
                array[
i].CTFFlagScore scores[i].Value;
            }
            return 
generateList(1, array, => p.CTFFlagScore);
        }

        private 
byte[] generateList(int typeGuild[] array = nullFunc<GuildUInt32select null)
        {
            
byte[] data null;
            if (array == 
null)
                
data = new byte[48];
            else
                
data = new byte[48 + (array.Length 24)];
            
Writer.WriteInt32(data.Length 80data);
            
Writer.WriteUInt16(22242data);
            
Writer.WriteInt32(type4data);
            if (array != 
null)
            {
                
Writer.WriteInt32(array.Length28data);
                for (
int i 0< array.Lengthi++)
                {
                    
int offset 32 + (24);
                    
Writer.WriteInt32(ioffsetdata); offset += 4;
                    
Writer.WriteUInt32(select(array[i]), offsetdata); offset += 4;
                    
Writer.WriteString(array[i].Nameoffsetdata); offset += 16;
                }
            }
            return 
data;
        }
        private 
byte[] generateList4(int typeGuild[] array = nullFunc<GuildUInt32select null)
        {
            
byte[] data null;
            if (array == 
null)
                
data = new byte[48 4];
            else
                
data = new byte[48 + (array.Length 24)];
            
Writer.WriteInt32(data.Length 80data);
            
Writer.WriteUInt16(22242data);
            
Writer.WriteInt32(type4data);
            if (array != 
null)
            {
                
Writer.WriteInt32(array.Length28 4data);
                for (
int i 0< array.Lengthi++)
                {
                    
int offset 32 + (24);
                    
Writer.WriteInt32(ioffsetdata); offset += 4;
                    
Writer.WriteUInt32(select(array[i]), offsetdata); offset += 4;
                    
Writer.WriteString(array[i].Nameoffsetdata); offset += 16;

                }
            }
            return 
data;
        }

        public 
byte[] generateTimer(uint time)
        {
            return 
generatePacket(8time);
        }

        public 
byte[] generateEffect(GameState Client)
        {
            
//return generatePacket3(6, 6327607);
            
return generatePacket(6Client.Player.UID);
        }

        private 
byte[] generatePacket(int typeuint dwParam)
        {
            
byte[] data = new byte[48];
            
Writer.WriteInt32(data.Length 80data);
            
Writer.WriteUInt16(22242data);
            
Writer.WriteInt32(type4data);
            
Writer.WriteUInt32(dwParam8data);
            return 
data;
        }

        public static 
byte[] generatePacket2(int typeuint dwParam)
        {
            
byte[] data = new byte[48];
            
Writer.WriteInt32(data.Length 80data);
            
Writer.WriteUInt16(22242data);
            
Writer.WriteInt32(type4data);
            
Writer.WriteUInt32(dwParam8data);
            return 
data;
        }

        public 
void SendUpdates()
        {
            foreach (var 
Entity in Program.Values)
                if (
Entity.Player.MapID == MapID)
                    
SendUpdates(Entity);
        }

        public 
void CloseList(GameState client)
        {
            
client.Send(generateList(3));
        }



        public static 
void CTFGuildsRank(GameState clientbyte[] packet)
        {
            var array = 
Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();

            const 
byte maxcount 5;
            
byte page packet[10];

            if (array.
Length == 0)
                return;

            
byte[] buffer = new byte[908];
            
Writer.WriteUInt16(9000buffer);
            
Writer.WriteUInt16(10632buffer);
            
Writer.WriteUInt16(04buffer);
            
Writer.WriteUInt32(16buffer);
            
Writer.WriteUInt32((uint)(array.Length), 10buffer);
            
Writer.WriteUInt32((uint)(array.Length), 14buffer);

            
Writer.WriteUInt32(client.Guild.CTFdonationCPsold18buffer);
            
Writer.WriteUInt64((ulong)client.Guild.CTFdonationSilverold22buffer);

            
int offset 30;
            for (
ushort x = (ushort)(page maxcount maxcount); page maxcountx++)
            {
                if (
>= array.Length) break;
                var 
guild = array[x];
                
Writer.WriteUInt32(guild.CTFdonationCPsoffsetbuffer);
                
offset += 4;
                
Writer.WriteUInt64((ulong)guild.CTFdonationSilveroffsetbuffer);
                
offset += 8;
                
Writer.WriteString(guild.Nameoffsetbuffer);
                
offset += 0x24;
                
Writer.WriteUInt32(guild.IDoffsetbuffer);
                
offset += 4;
            }
            
client.Send(buffer);
        }

        public static 
void CTFGuildsRank2(GameState clientbyte[] packet)
        {
            const 
byte maxcount 5;
            
byte page packet[10];


            var 
guild_array Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();
            if (
guild_array.Length == 0)
                return;
            
byte[] buffer2 = new byte[0x38c];
            
Writer.WriteUInt16(9000buffer2);
            
Writer.WriteUInt16(0x4272buffer2);
            
Writer.WriteUInt16(04buffer2);
            
Writer.WriteUInt16(page6buffer2);
            
Writer.WriteUInt32(1010buffer2);
            
Writer.WriteUInt32((uint)guild_array.Length14buffer2);
            
client.Guild client.AsMember.Guild;
            
Writer.WriteUInt32(client.Guild.CTFdonationCPsold0x12buffer2);
            
Writer.WriteUInt64((ulong)client.Guild.CTFdonationSilverold0x16buffer2);
            
ushort offset 30;

            for (
ushort x = (ushort)(page maxcount maxcount); page maxcountx++)
            {
                if (
>= guild_array.Length) break;
                var 
guild guild_array[x];
                
Writer.WriteUInt32(guild.CTFdonationCPsoldoffsetbuffer2);
                
offset += 4;
                
Writer.WriteUInt64((ulong)guild.CTFdonationSilveroldoffsetbuffer2);
                
offset += 8;
                
Writer.WriteString(guild.Nameoffsetbuffer2);
                
offset += 0x24;
                
Writer.WriteUInt32(guild.IDoffsetbuffer2);
                
offset += 4;
            }

            
client.Send(buffer2);
        }

        public static 
void CTFsRank(GameState clientbyte[] packet)
        {
            var array = 
Kernel.Guilds.Values.Where(=> p.CTFPoints != 0).OrderByDescending(=> p.CTFPoints).ToArray();
            
byte[] Packet = new byte[356];
            
Writer.WriteUInt16(3480Packet);
            
Writer.WriteUInt16(10632Packet);
            
Packet[4] = 9;//type
            
Packet[6] = 1// count
            
Packet[14] = 8// count
            
ushort index 26;
            
Writer.WriteUInt32(client.Player.UID18Packet);
            for (
byte i 0< array.Lengthi++)
            {
                if (
>= 8)
                    break;
                if (
>= array.Length)
                    break;
                var 
guild = array[i];
                
Packet[index] = (byte)(1);
                
index = (ushort)(index 4);
                
Writer.WriteString(guild.NameindexPacket);
                
index = (ushort)(index 16);
                
Writer.WriteUInt32(guild.CTFPointsindexPacket);
                
index = (ushort)(index 4);
                
Writer.WriteUInt32(guild.MemberCountindexPacket);
                
index = (ushort)(index 12);
            }
            
client.Send(Packet);
        }

        public static 
void CTFExpolitsRank(GameState clientbyte[] packet)
        {
            
byte page packet[10];

            var array = 
client.Guild.Members.Values.Where(=> p.Exploits != 0).OrderByDescending(=> p.Exploits).ToArray();
            if (array.
Length == 0)
                return;

            
byte[] buffer = new byte[0x38c];
            
Writer.WriteUInt16(9000buffer);
            
Writer.WriteUInt16(0x4272buffer);
            
Writer.WriteUInt16(84buffer);
            
Writer.WriteUInt32(page6buffer);
            
Writer.WriteUInt32((uint)array.Length10buffer);
            
Writer.WriteUInt32(814buffer);
            
Writer.WriteUInt32(client.AsMember.Exploits0x12buffer);
            
int offset 30;
            for (
ushort x 0< array.Lengthx++)//(ushort)(page * maxcount - maxcount); x < page * maxcount; x++)
            
{
                if (
20)
                    break;
                if (
>= array.Length) break;
                var 
member = array[x];
                
Writer.WriteString(member.Nameoffsetbuffer);
                
offset += 0x10;

                
Writer.WriteUInt32(member.Exploitsoffsetbuffer);
                
offset += 4;
            }
            
client.Send(buffer);
        }

        public static 
void CTFExpolitsRank2(GameState clientbyte[] packet)
        {
            const 
byte maxcount 5;
            
byte page packet[10];

            var array = 
client.Guild.Members.Values.Where(=> p.Exploits != 0).OrderByDescending(=> p.Exploits).ToArray();
            if (array.
Length == 0)
                return;

            
byte[] buffer = new byte[0x38c];
            
Writer.WriteUInt16(9000buffer);
            
Writer.WriteUInt16(0x4272buffer);
            
Writer.WriteUInt16(14buffer);
            
Writer.WriteUInt32(page6buffer);
            
Writer.WriteUInt32((uint)array.Length10buffer);
            
Writer.WriteUInt32(514buffer);
            
Writer.WriteUInt32(client.Guild.CTFdonationCPsold0x12buffer);
            
Writer.WriteUInt64((ulong)client.Guild.CTFdonationSilverold0x16buffer);

            
Writer.WriteUInt32((ushort)array.Length30buffer);

            
int offset 30;

            for (
ushort x = (ushort)(page maxcount maxcount); page maxcountx++)
            {
                if (
>= array.Length) break;
                var 
member = array[x];
                
Writer.WriteUInt32((ushort)(1), offsetbuffer);
                
offset += 4;

                
Writer.WriteUInt32(member.Exploitsoffsetbuffer);
                
offset += 4;
                
Writer.WriteUInt32(member.CTFCpsRewardoffsetbuffer);
                
offset += 4;
                
Writer.WriteUInt64(member.CTFSilverRewardoffsetbuffer);
                
offset += 8;
                
Writer.WriteUInt32(member.IDoffsetbuffer);
                
offset += 4;
                
Writer.WriteString(member.Nameoffsetbuffer);
                
offset += 0x24;
            }
            
client.Send(buffer);
        }
    }


هنروح ع ملف SobNpcSpawn.cs هنحط الكود ده هتقولي فين هقولك ابحث عن الكود ده
كود PHP:

Program.World.PoleDomination.KillPole(); 

تحته ع طول هنضيف دول
كود PHP:

if (MapID == CaptureTheFlag.MapID)
            {
                if (
Program.World.CTF.Bases.ContainsKey(UID))
                {
                    var 
_base Program.World.CTF.Bases[UID];
                    
_base.Capture();
                }
            } 

نروح ع ملف Entity.cs هنضيف اخر حاجه بقا انا عارف اني الموضوع طول معلش علشان دي احسن اضافه مش موجوده
هتبحث عن اسم الملف ده Perfection تحته من غير كلام هنضيف دول
كود PHP:

#region CaptureTheFlag
                
if (killer.GuildID != && killer.MapID == CaptureTheFlag.MapID && CaptureTheFlag.IsWar)
                {
                    if (
GuildID != 0)
                    {
                        if (
killer.Owner.Guild.Enemy.ContainsKey(GuildID))
                            
killer.Owner.Guild.CTFPoints += 1;
                        else if (
killer.Owner.Guild.Ally.ContainsKey(GuildID))
                            
killer.Owner.Guild.CTFPoints += 1;
                    }
                    if (
ContainsFlag2(Network.GamePackets.Update.Flags2.CarryingFlag))
                    {
                        
StaticEntity entity = new StaticEntity((uint)(1000 Y), XYMapID);
                        
entity.DoFlag();
                        
Owner.Map.AddStaticEntity(entity);
                        
RemoveFlag2(Network.GamePackets.Update.Flags2.CarryingFlag);
                        
Owner.Send(Program.World.CTF.generateTimer(0));
                        
Owner.Send(Program.World.CTF.generateEffect(Owner));
                        if (
killer.GuildID != GuildID)
                        {
                            
Killer.AddFlag2(Network.GamePackets.Update.Flags2.CarryingFlag);
                            
Time32 end FlagStamp.AddSeconds(60) - Time32.Now;
                            
killer.FlagStamp end;
                            
killer.Owner.Send(Program.World.CTF.generateTimer((uint)end.Value));
                            
killer.Owner.Send(Program.World.CTF.generateEffect(killer.Owner));
                            
killer.Owner.Guild.CTFPoints += 3;
                        }
                    }
                }
                
#endregion 

كل سنه وانت طيب دلوقتي نروح ع النافي كات هضيف الانبسي طبعا علشان الراجل ال هتكلمه علشا تدخل الحرب
نفتح النافي كات Npc ونضيف دول بظبط وخلاص كده
كود PHP:

8713    CS-CTF-Manager    2    26390    1002    230    228 

وياريت تقيم للموضوع منزلش لحد نهائي والفلاج دلوقتي شغال 100/100 ولو فيه اي مشكله ارور او اي حاجه كلموني وانا تحت امركم

والسلام عليكم ورحمه الله وبركاته :emoji11:

محمد ياسر 2019-11-08 10:42 PM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
عاش

zezonever 2019-11-08 10:44 PM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Hazem (المشاركة 21037)
عاش

شكراا لرفع معنوياتي يا حازم وان شاء الله اي حاجه جديده اعملها اكواد جديد اعملها هنزلها ليكم ببلاش لي المنتدي ده بس وربنا يقدرني ع فعل الخير للجميع وشكرا :emoji2::emoji3:

محمد ياسر 2019-11-08 10:51 PM

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

uncelsam 2019-11-09 12:08 AM

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

zezonever 2019-11-09 12:10 AM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
اقتباس:

المشاركة الأصلية كتبت بواسطة uncelsam (المشاركة 21054)
الله ينور بجدا عااش اول مره القي حد مهتم بالسيستمات


شكرا ليك يا اخي انا الحمد لله ببص ع اي حاجه حتا لو مش مهمه وابتدي بيها وانهي بي الكبيره ده طبعي وان شاء الله هنزل بسورس خاص منزلش لحد ولا هينزل اصلا علشان انا عارف شغلي كويس :]

Rider 2019-11-09 08:42 AM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
عاش

abuhaneen 2019-11-09 08:17 PM

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

zezonever 2019-11-10 01:16 AM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abuhaneen (المشاركة 21141)
تسلم بجد انت اول واحد ترفع كابشر فلاج

حبيبي ولسه يا صحبي هنزل حجات محدش نزلها في المنتدي وان شاء الله كل الجديد مني انما انزل سورسات مش هينفع علشان بتعب في السورسات ال بعملها بس ان شاء الله كل الجديد هينزل برده وهساعد :]

HBESA 2019-11-13 02:47 PM

رد: موضع الي هتكلم فيه النهارده هيفيد كل ال عامله كونكر تهيس ادخل هتعرف بنفسك
 
عااااااااااش


الساعة الآن 07:58 PM

مرحبا بكم في منتدي اكواد لتطوير الالعاب