عرض مشاركة واحدة
احصائياتى

الردود
46

المشاهدات
59326
تفاعلات العضو
 
QR تعريفي
QR Code
midoazoz

midoazoz is on a distinguished road

    غير متواجد

المشاركات
328

+التقييم
0.13

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

الاقامة

نظام التشغيل

رقم العضوية
2314
2020-02-16, 07:36 PM
المشاركة 1 
#1  
افتراضي حصريا ول انت شغال ع اليكس خش اعمل حرب جيلد بين السيرفرات زي السيرفرات الكبيره واحسن
السلام عليكم في الاول الكلام ده لسورس اليكس تاني
وللناس الي مشغله سيرفرين او اكثر او ناويه تشغل يعني ^_^
الحرب دي بين الجيلدات في السيرفرين او التلاته او لو فاتح مليون سيررفر الحرب بين الجيلدات طبعا حماس فشخ
المهم الحرب انا عاملها كل اسبوع مره هتعدل ع الوقت تعدل ع كل اكواد الوقت عشان تتظبط معاك
================================================== =========
نشوف صور الاول
















================================================== ==
تمام كده خدنا فكره عن الحرب
طيب تعالوا نشوف بق الاضافات وعموما لو عاوزين تعملوا اي حرب بجيلدات وكروس وكده دي فكره انا عاملها كل حاجه اوتوماتيك وكمان تقدر تخليه ياخد توب وكده برحتك
==================================================
بص يا رجاله انا كاتب كل الاضافات في تيكست ^_^
سهله باذن الله
^_^
الكروس جيلد وار ^^_^^
اتمني تدعولي عشان انا فعلا بذلت مجهود في الحاجات دي وفي الاخر مخدتش حاجه يمكن استعجلت يمكن حاجات كتير بس انا في كليه صعبه مش
هقدر اكمل للاسف
يلا نكمل
هتفتح بروجيكت الكروس
هتروح ع

كود:
Game.MsgTournaments.MsgGuildWar.cs 

هتغيره كله
بده

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Concurrent;

namespace 
Project_Terror_v2.Game.MsgTournaments
{
    public class 
MsgGuildWar
    
{
        public 
bool SendInvitation = false;
        
internal ushort[][] StatueCoords = 
        {
          new 
ushort[] {140 ,134 }
         ,new 
ushort[] {144 ,124 }
         ,new 
ushort[] {130 ,138 }
         ,new 
ushort[] {153 ,124 }
         ,new 
ushort[] {161 ,124 }
         ,new 
ushort[] {130 ,147 }
         ,new 
ushort[] {130 ,155 }
        };

        public class 
GuildConductor
        
{
            public static List<
uint> BlockMaps = new List<uint>()
            {
                
1038
            
};
            public 
Game.MsgNpc.Npc Npc;
            public 
uint ToMap;
            public 
ushort ToX, ToY;

            public 
override string ToString()
            {
                
Database.DBActions.WriteLine Line = new Database.DBActions.WriteLine(',');
                
Line.Add(Npc.UID).Add(Npc.X).Add(Npc.Y).Add(Npc.Map).Add(Npc.Mesh).Add((ushort)Npc.NpcType)
                    .
Add(ToX).Add(ToY).Add(ToMap);
                return 
Line.Close();
            }
            
internal void Load(string Line, MsgNpc.NpcID UID)
            {
                
Npc = Game.MsgNpc.Npc.Create();
                if (
Line == "")
                {
                    
Npc.UID = (uint)UID;
                    return;
                }
                
Database.DBActions.ReadLine Reader = new Database.DBActions.ReadLine(Line, ',');
                
Npc.UID = Reader.Read((uint)0);
                
Npc.X = Reader.Read((ushort)0);
                
Npc.Y = Reader.Read((ushort)0);
                
Npc.Map = Reader.Read((ushort)0);
                
Npc.Mesh = Reader.Read((ushort)0);
                
Npc.NpcType = (Role.Flags.NpcType)Reader.Read((ushort)0);

                
ToX = Reader.Read((ushort)0);
                
ToY = Reader.Read((ushort)0);
                
ToMap = Reader.Read((ushort)0);
            }
            
internal static bool ChangeNpcLocation(Role.GameMap map, ref ushort X, ref ushort Y, ref uint Map)
            {


                return 
false;
            }

            
internal void GetCoords(out ushort x, out ushort y, out uint map)
            {
                if (
ToMap != 0 && ToX != 0 && ToY != 0)
                {
                    
x = ToX;
                    
y = ToY;
                    
map = ToMap;
                    return;
                }
                
x = 300;
                
y = 278;
                
map = 1002;
            }
        }

        public class 
DataFlameQuest
        
{
            public List<
uint> Registred;
            public 
bool ActiveFlame10;

            public 
DataFlameQuest()
            {
                
Registred = new List<uint>();
                
ActiveFlame10 = false;
            }
        }
        public class 
GuildWarScrore
        
{
            
//public const int ConquerPointsReward = 3000000;

            
public uint GuildID;
            public 
string Name;
            public 
uint Score;

            
//for reward
            //public int LeaderReward = 1;
            //public int DeputiLeaderReward = 7;
        
}
        
//public List<uint> RewardLeader = new List<uint>();
        //public List<uint> RewardDeputiLeader = new List<uint>();

        
public DateTime StampRound = new DateTime();
        public 
DateTime StampShuffleScore = new DateTime();
        private 
Role.GameMap GuildWarMap;

        public 
ProcesType Proces { get; set; }

        public 
DataFlameQuest FlamesQuest;
        public 
Dictionary<Role.SobNpc.StaticMesh, Role.SobNpc> Furnitures { get; set; }
        public 
ConcurrentDictionary<uint, GuildWarScrore> ScoreList;
        public 
GuildWarScrore Winner;
        public 
Dictionary<MsgNpc.NpcID, GuildConductor> GuildConductors;
        public 
bool SignUp(Client.GameClient client)
        {
            if (
Proces == ProcesType.Idle || Proces == ProcesType.Alive)
            {
                
byte RandTele = (byte)Program.GetRandom.Next(1, 14);
                switch (
RandTele)
                {
                    case 
1: client.Teleport(326, 374, 1038); break;
                    case 
2: client.Teleport(299, 371, 1038); break;
                    case 
3: client.Teleport(293, 352, 1038); break;
                    case 
4: client.Teleport(262, 337, 1038); break;
                    case 
5: client.Teleport(285, 324, 1038); break;
                    case 
6: client.Teleport(315, 289, 1038); break;
                    case 
7: client.Teleport(323, 268, 1038); break;
                    case 
8: client.Teleport(351, 282, 1038); break;
                    case 
9: client.Teleport(371, 305, 1038); break;
                    case 
10: client.Teleport(370, 326, 1038); break;
                    case 
11: client.Teleport(357, 335, 1038); break;
                    case 
12: client.Teleport(333, 330, 1038); break;
                    default: 
client.Teleport(322, 321, 1038); break;
                }
                
//   client.Player.SetPkMode(Role.Flags.PKMode.Guild);
                
return true;
            }
            return 
false;
        }
        public 
bool LeftGateOpen { get { return Furnitures[Role.SobNpc.StaticMesh.LeftGate].Mesh == Role.SobNpc.StaticMesh.OpenLeftGate; } }
        public 
bool RightGateOpen { get { return Furnitures[Role.SobNpc.StaticMesh.RightGate].Mesh == Role.SobNpc.StaticMesh.OpenRightGate; } }
        public 
MsgGuildWar()
        {
            
FlamesQuest = new DataFlameQuest();
            
Proces = ProcesType.Dead;
            
Furnitures = new Dictionary<Role.SobNpc.StaticMesh, Role.SobNpc>();
            
GuildConductors = new Dictionary<MsgNpc.NpcID, GuildConductor>();
            
ScoreList = new ConcurrentDictionary<uint, GuildWarScrore>();
            
Winner = new GuildWarScrore() { Name = "None", Score = 100, GuildID = 0 };
        }

        public 
unsafe void CreateFurnitures()
        {
            
Furnitures.Add(Role.SobNpc.StaticMesh.LeftGate, Database.Server.ServerMaps[1038].View.GetMapObject<Role.SobNpc>(Role.MapObjectType.SobNpc, 516074));
            
Furnitures.Add(Role.SobNpc.StaticMesh.RightGate, Database.Server.ServerMaps[1038].View.GetMapObject<Role.SobNpc>(Role.MapObjectType.SobNpc, 516075));
            
Furnitures.Add(Role.SobNpc.StaticMesh.Pole, Database.Server.ServerMaps[1038].View.GetMapObject<Role.SobNpc>(Role.MapObjectType.SobNpc, 810));
        }
        public 
unsafe bool Bomb(ServerSockets.Packet stream, Client.GameClient client, Role.SobNpc.StaticMesh gate)
        {
            if (
Furnitures[gate].HitPoints > 3000000)
            {
                
Furnitures[gate].HitPoints -= 2000000;

                
MsgServer.MsgUpdate upd = new MsgServer.MsgUpdate(stream, Furnitures[gate].UID, 1);
                
stream = upd.Append(stream, MsgServer.MsgUpdate.DataType.Hitpoints, Furnitures[gate].HitPoints);
                
Furnitures[gate].SendScrennPacket(upd.GetArray(stream));

                
client.Player.Dead(null, client.Player.X, client.Player.Y, client.Player.UID);
                
Furnitures[gate].SendString(stream, MsgServer.MsgStringPacket.StringID.Effect, "firemagic");
                
Furnitures[gate].SendString(stream, MsgServer.MsgStringPacket.StringID.Effect, "bombarrow");

                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("" + client.Player.Name + " from " + (client.Player.MyGuild != null ? client.Player.MyGuild.GuildName.ToString() : "None".ToString()).ToString() + " detonated the Bomb and killed herself/himself. But the " + gate.ToString() + " was blown up!"
                    
, MsgServer.MsgMessage.MsgColor.red, MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

                return 
true;
            }
            return 
false;
        }
        
internal unsafe void ResetFurnitures(ServerSockets.Packet stream)
        {
            
Furnitures[Role.SobNpc.StaticMesh.LeftGate].Mesh = Role.SobNpc.StaticMesh.LeftGate;
            
Furnitures[Role.SobNpc.StaticMesh.RightGate].Mesh = Role.SobNpc.StaticMesh.RightGate;

            foreach (var 
npc in Furnitures.Values)
                
npc.HitPoints = npc.MaxHitPoints;

            foreach (var 
client in Database.Server.GamePoll.Values)
            {
                if (
client.Player.Map == 1038)
                {
                    foreach (var 
npc in Furnitures.Values)
                    {
                        if (
Role.Core.GetDistance(client.Player.X, client.Player.Y, npc.X, npc.Y) <= Role.SobNpc.SeedDistrance)
                        {
                            
MsgServer.MsgUpdate upd = new MsgServer.MsgUpdate(stream, npc.UID, 2);
                            
stream = upd.Append(stream, MsgServer.MsgUpdate.DataType.Mesh, (long)npc.Mesh);
                            
stream = upd.Append(stream, MsgServer.MsgUpdate.DataType.Hitpoints, npc.HitPoints);
                            
stream = upd.GetArray(stream);
                            
client.Send(stream);
                            if ((
Role.SobNpc.StaticMesh)npc.Mesh == Role.SobNpc.StaticMesh.Pole)
                                
client.Send(npc.GetArray(stream, false));
                        }
                    }
                }
            }
        }
        
internal unsafe void SendMapPacket(ServerSockets.Packet packet)
        {
            foreach (var 
client in Database.Server.GamePoll.Values)
            {
                if (
client.Player.Map == 1038 || client.Player.Map == 6001)
                {
                    
client.Send(packet);
                }
            }
        }
        
internal unsafe void CompleteEndGuildWar()
        {
            
SendInvitation = false;
            
ShuffleGuildScores();
            
Proces = ProcesType.Dead;
            
ScoreList.Clear();
            
Save();
            
using (var rec = new ServerSockets.RecycledPacket())
            {
                var 
stream = rec.GetStream();
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("Congratulations to " + Winner.Name + ", they've won the CrossGuildWar with a score of " + Winner.Score.ToString() + ""
                  
, MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("Congratulations to " + Winner.Name + ", they've won the CrossGuildWar with a score of " + Winner.Score.ToString() + ""
                  
, MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.System).GetArray(stream));
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("Congratulations to " + Winner.Name + ", they've won the CrossGuildWar with a score of " + Winner.Score.ToString() + ""
                   
, MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.BroadcastMessage).GetArray(stream));
            }

            
//RewardDeputiLeader.Clear();
            //RewardLeader.Clear();
            //Winner.DeputiLeaderReward = 7;
            //Winner.LeaderReward = 1;
            
using (var rec = new ServerSockets.RecycledPacket())
            {
                var 
stream = rec.GetStream();
                
Role.Instance.Union.CheckGuildWar(stream);
            }
        }

        
internal unsafe void Start()
        {
            
FlamesQuest = new DataFlameQuest();
            
Proces = ProcesType.Alive;
            
using (var rec = new ServerSockets.RecycledPacket())
            {
                var 
stream = rec.GetStream();

                
ResetFurnitures(stream);
                
ScoreList.Clear();
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("CrossGuild War has started!", MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.System).GetArray(stream));
            }
        }

        
//public void GuildWarRevive()
        //{
        //    Extensions.Time32 Timer = Extensions.Time32.Now;
        //    foreach (var user in MapPlayers())
        //    {
        //        if (user.Player.Alive == false && Proces != ProcesType.Dead)
        //        {
        //            if (user.Player.DeadStamp.AddSeconds(6) < Timer)
        //            {
        //                ushort x = 0;
        //                ushort y = 0;
        //                GuildWarMap.GetRandCoord(ref x, ref y);
        //                user.Teleport(x, y, GuildWarMap.ID);
        //            }
        //        }
        //    }
        //}
        
internal unsafe void FinishRound()
        {
            
ShuffleGuildScores(true);
            
Furnitures[Role.SobNpc.StaticMesh.Pole].Name = Winner.Name;
            
Proces = ProcesType.Idle;
            
ScoreList.Clear();
            
using (var rec = new ServerSockets.RecycledPacket())
            {
                var 
stream = rec.GetStream();
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("Congratulations to " + Winner.Name + ", they've won The Pole Round of the CrossGuildWar with a score of " + Winner.Score.ToString() + ""
                   
, MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.System).GetArray(stream));
                
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("Congratulations to " + Winner.Name + ", they've won The Pole Round of the CrossGuildWar with a score of " + Winner.Score.ToString() + ""
                    
, MsgServer.MsgMessage.MsgColor.red, MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));

                
ResetFurnitures(stream);
            }
            
StampRound = DateTime.Now.AddSeconds(3);
        }
        
internal unsafe void Began()
        {
            if (
Proces == ProcesType.Idle)
            {
                
Proces = ProcesType.Alive;
                
using (var rec = new ServerSockets.RecycledPacket())
                {
                    var 
stream = rec.GetStream();
                    
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("CrossGuild War has began!", MsgServer.MsgMessage.MsgColor.white, MsgServer.MsgMessage.ChatMode.System).GetArray(stream));
                }
            }
        }
        
internal void UpdateScore(Role.Player client, uint Damage)
        {
            if (
client.MyGuild == null)
                return;
            if (
Proces == ProcesType.Alive)
            {
                if (!
ScoreList.ContainsKey(client.GuildID))
                {
                    
ScoreList.TryAdd(client.GuildID, new GuildWarScrore() { GuildID = client.MyGuild.Info.GuildID, Name = client.MyGuild.GuildName, Score = Damage });
                }
                else
                {
                    
ScoreList[client.MyGuild.Info.GuildID].Score += Damage;
                }

                if (
Furnitures[Role.SobNpc.StaticMesh.Pole].HitPoints == 0)
                    
FinishRound();
            }
        }

        
internal unsafe void ShuffleGuildScores(bool createWinned = false)
        {
            if (
Proces != ProcesType.Dead)
            {
                
StampShuffleScore = DateTime.Now.AddSeconds(8);
                var Array = 
ScoreList.Values.ToArray();
                var 
DescendingList = Array.OrderByDescending(p => p.Score).ToArray();
                for (
int x = 0; x < DescendingList.Length; x++)
                {
                    var 
element = DescendingList[x];
                    if (
x == 0 && createWinned)
                        
Winner = element;
                    
using (var rec = new ServerSockets.RecycledPacket())
                    {
                        var 
stream = rec.GetStream();
                        
Game.MsgServer.MsgMessage msg = new MsgServer.MsgMessage("No " + (x + 1).ToString() + ". " + element.Name + " (" + element.Score.ToString() + ")"
                           
, MsgServer.MsgMessage.MsgColor.yellow, x == 0 ? MsgServer.MsgMessage.ChatMode.FirstRightCorner : MsgServer.MsgMessage.ChatMode.ContinueRightCorner);

                        
SendMapPacket(msg.GetArray(stream));

                    }
                    if (
x == 4)
                        break;
                }
            }
        }
        
internal bool ValidJump(int Current, out int New, ushort X, ushort Y)
        {
            if (
Role.Core.GetDistance(217, 177, X, Y) <= 3)
            {
                New = 
0;
                return 
true;
            }
            New = 
Current;
            
int new_FloorType = GuildWarMap.FloorType[X, Y];
            if (
Current == 3)
            {
                if (
new_FloorType == 0 || new_FloorType == 9 || new_FloorType == 13)
                {
                    if (
Role.Core.GetDistance(X, Y, 164, 209) <= 20)
                    {
                        if (
LeftGateOpen)
                        {
                            New = 
new_FloorType;
                            return 
true;
                        }
                    }
                    if (
Role.Core.GetDistance(X, Y, 222, 177) <= 15)
                    {
                        if (
RightGateOpen)
                        {
                            New = 
new_FloorType;
                            return 
true;
                        }
                    }
                    return 
false;
                }
            }
            New = 
new_FloorType;
            return 
true;
        }
        
internal bool ValidWalk(int Current, out int New, ushort X, ushort Y)
        {
            if (
Role.Core.GetDistance(217, 177, X, Y) <= 3)
            {
                New = 
0;
                return 
true;
            }
            New = 
Current;
            
int new_mask = GuildWarMap.FloorType[X, Y];
            if (
Current == 3)
            {
                if (
new_mask == 0 || new_mask == 9 || new_mask == 13)
                {
                    if (
Y == 209 || Y == 208)
                    {
                        if (
Role.Core.GetDistance(X, Y, 164, 209) <= 3)
                        {
                            if (
LeftGateOpen)
                            {
                                New = 
new_mask;
                                return 
true;
                            }
                        }
                    }
                    else if (
X == 216)
                    {
                        if (
Role.Core.GetDistance(X, Y, 216, 177) <= 4)
                        {
                            if (
RightGateOpen)
                            {
                                New = 
new_mask;
                                return 
true;
                            }
                        }
                    }

                    return 
false;
                }
            }
            New = 
new_mask;
            return 
true;
        }
        
internal void Save()
        {
            
WindowsAPI.IniFile write = new WindowsAPI.IniFile("\\GuildWarInfo.ini");
            if (
Proces == ProcesType.Dead)
            {
                
write.Write<uint>("Info", "ID", Winner.GuildID);
                
write.WriteString("Info", "Name", Winner.Name);
                
write.Write<uint>("Info", "reward", 0);
                
//write.Write<int>("Info", "LeaderReward", Winner.LeaderReward);
                //write.Write<int>("Info", "DeputiLeaderReward", Winner.DeputiLeaderReward);

                //for (int x = 0; x < RewardLeader.Count; x++)
                //    write.Write<uint>("Info", "LeaderTop" +x.ToString()+"", RewardLeader[x]);
                //for (int x = 0; x < 7; x++)
                //{
                //    if (x >= RewardDeputiLeader.Count)
                //        break;
                //    write.Write<uint>("Info", "DeputiTop" + x.ToString() + "", RewardDeputiLeader[x]);
                //}
                
write.WriteString("Pole", "Name", Winner.Name);
                
write.Write<int>("Pole", "HitPoints", Furnitures[Role.SobNpc.StaticMesh.Pole].HitPoints);
            }

            
//write.WriteString("Condutors", "GuildConductor1", GuildConductors[MsgNpc.NpcID.TeleGuild1].ToString());
            //write.WriteString("Condutors", "GuildConductor2", GuildConductors[MsgNpc.NpcID.TeleGuild2].ToString());
            //write.WriteString("Condutors", "GuildConductor3", GuildConductors[MsgNpc.NpcID.TeleGuild3].ToString());
            //write.WriteString("Condutors", "GuildConductor4", GuildConductors[MsgNpc.NpcID.TeleGuild4].ToString());
        
}
        
internal void Load()
        {
            
WindowsAPI.IniFile reader = new WindowsAPI.IniFile("\\GuildWarInfo.ini");
            
Winner.GuildID = reader.ReadUInt32("Info", "ID", 0);
            
Winner.Name = reader.ReadString("Info", "Name", "None");
            
//Winner.LeaderReward = reader.ReadInt32("Info", "LeaderReward", 0);
            //Winner.DeputiLeaderReward = reader.ReadInt32("Info", "DeputiLeaderReward", 0);

            //RewardLeader.Add(reader.ReadUInt32("Info", "LeaderTop0", 0));
            //for (int x = 0; x < 7; x++)
            //{
            //    RewardDeputiLeader.Add(reader.ReadUInt32("Info", "DeputiTop" + x.ToString() + "", 0));
            //}

            
Furnitures[Role.SobNpc.StaticMesh.Pole].Name = reader.ReadString("Pole", "Name", "None");
            
Furnitures[Role.SobNpc.StaticMesh.Pole].HitPoints = reader.ReadInt32("Pole", "HitPoints", 0);

            
//for (int x = 0; x < 4; x++)
            //{
            //    GuildConductor conductor = new GuildConductor();
            //    conductor.Load(reader.ReadString("Condutors", "GuildConductor" + (x + 1).ToString() + "", ""), (MsgNpc.NpcID)(101614 + x * 2));
            //    GuildConductors.Add((MsgNpc.NpcID)(101614 + x * 2), conductor);
            //    if (conductor.Npc.Map != 0)
            //    {
            //        if (Database.Server.ServerMaps.ContainsKey(conductor.Npc.Map))
            //            Database.Server.ServerMaps[conductor.Npc.Map].AddNpc(conductor.Npc);
            //    }
            //}
            
GuildWarMap = Database.Server.ServerMaps[1038];

        }
    }
} 

هتروح ع
PipeServer.cs
هتبحث عن

كود:
user.Owner.Player.SetPkMode(Role.Flags.PKMode.Union); 

هتخليها بالشكل ده من اول

كود:
 if (Program.ServerConfig.IsInterServer) 

لاخررها يعني هتبق كده

كود:
if (Program.ServerConfig.IsInterServer)
                                {
                                    if (
Game.MsgTournaments.MsgSchedules.GuildWar.Proces == Game.MsgTournaments.ProcesType.Alive || Game.MsgTournaments.MsgSchedules.GuildWar.Proces == Game.MsgTournaments.ProcesType.Idle)
                                        
user.Owner.Player.SetPkMode(Role.Flags.PKMode.Guild);
                                     else
                                    
user.Owner.Player.SetPkMode(Role.Flags.PKMode.Union);
                                }
                                else
                                    
user.Owner.Player.SetPkMode(Role.Flags.PKMode.Peace); 

هتنزل تحت
عند

كود:
public static void SetLocation(Client.GameClient user) 

هتضيف دي فيها

كود:
case 2:// Cross Guild War
                    
{
                        
Game.MsgTournaments.MsgSchedules.GuildWar.SignUp(user);
                        break;
                    } 

هتروح في

كود:
GameClient.cs 

هتبحث عن

كود:
if (Player.SetLocationType != 1 

هتخليها كده

كود:
if (Player.SetLocationType != 1 && Player.SetLocationType != 2 && Player.SetLocationType != 11 && Player.SetLocationType != 3) 

هتنزل تحت فيها

لحد دي او ابحث عنها

كود:
if (!Player.Alive && revive /*&& Player.Map != 1038*/) 

طبعا الحته بتاعت الماب بتبق مفتوح انت اقفلها
زي مهي دي يعني
هبحث عن

كود:
[DataAttribute(ActionType.Revive)] 

في السورس هتلاقيها في
MsgDataPacket.cs

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


كود:
if (client.Player.Map == 1038)// gw map
                        
{
                            
client.Teleport(322, 321, 1038, 0, true, true);
                            
client.Teleport(322, 321, 1038);
                        } 

هتروح تنزل ان بي سي يطلعك للسيرفر بتاعك

كود:
41756,OutCrossGuild,2,16570,1038,51,60,0,0,1,1 

ده في sobnpc في الدااتا السي يعني
وادي الان بي سي

كود:
[NpcAttribute(NpcID.outCrossGuild)]
        public static 
void outCrossGuild(Client.GameClient client, ServerSockets.Packet stream, byte Option, string Input, uint id)
        {
            
Dialog data = new Dialog(client, stream);
            switch (
Option)
            {
                case 
0:
                    {
                        
data.AddText("I have the code to Return you to Your Server. If you want to return to Your Server, i can help you.");
                        
data.AddOption("Return to My Server.", 1)
                            .
AddOption("I see.", 255)
                           .
AddAvatar(6).FinalizeDialog();
                        break;
                    }
                case 
1:
                    {
                        
client.Socket.Disconnect();
                        break;
                    }
            }
        } 

في NpcID.cs

كود:
outCrossGuild = 41756, 

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

هتروح
Procesor.cs
هتبحث عن

كود:
if (action.npcid == (ushort)NpcID.KingdomMissionEnvoy
                                
|| action.npcid == (ushort)NpcID.RealmEnvoy || 

خليها كده

كود:
if (action.npcid == (ushort)NpcID.KingdomMissionEnvoy
                                
|| action.npcid == (ushort)NpcID.RealmEnvoy || action.npcid == (ushort)NpcID.outCrossGuild || action.npcid == (uint)NpcID.LeftGate || action.npcid == (uint)NpcID.RightGate) 

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

كود:
GuildWarInfo.ini 

هتفتحه وتمسح الي فيه وحط ده

كود:
[Info]
ID=101003
Name
=killer2
reward
=1
[Pole]
Name=killer2
HitPoints
=40000000
[Condutors]
GuildConductor1=101614,523,410,2056,1487,2,517,404,2056,
GuildConductor2=101616,0,0,0,0,0,0,0,0,
GuildConductor3=101618,361,408,1927,1467,2,358,402,1927,
GuildConductor4=101620,115,205,3846,1457,2,109,199,3846, 

كده خلصنا شغل الي ف الكروس تعالوا في السورسين بق
هتضيف الان بي سي ده

كود:
[NpcAttribute(NpcID.CaptureTheFlag)]
        public static 
void CaptureTheFlag(Client.GameClient client, ServerSockets.Packet stream, byte Option, string Input, uint id)
        {
            
Dialog data = new Dialog(client, stream);
            switch (
Option)
            {
                case 
0:
                    {
                        
data.Text("Hello Player i Cross Server Manger I can help you in all War Cross Server ")
                            .
AddText("==============================================================================")
                            .
AddText("Cross Servers War Starts Every Week At Sunday [20:00] and end [22:00] you can join in that time only")
                        .
AddText("================================================================================")
                        .
AddText("Cross Guild War Starts Every Week At Thrsday [20:00] and end [22:00] you can join in that time only")
                            
//.AddOption("Cross~Servers~War", 3)
                            
.AddOption("Cross~Guild~War", 2)
                            .
AddOption("No Thanks", 255)
                            .
AddAvatar(55).FinalizeDialog();
                        break;
                    }
                
//case 1:
                //    {
                //        data.Text("Cross Servers War Starts Every Week At Sunday [20:00] and end [22:00] you can join in that time only")
                //            .AddOption("Join CrossServersWar", 3)
                //            .AddAvatar(70).FinalizeDialog();
                //        break;
                //    }
                
case 3:
                    {
                        
DateTime Now64 = DateTime.Now;
                        if (
Now64.DayOfWeek == DayOfWeek.Sunday)
                        {
                            if ((
Now64.Hour >= 20) && (Now64.Hour < 22))
                            {
                                
client.Player.SetLocationType = 3;
                                
MsgInterServer.PipeClient.Connect(client, Database.GroupServerList.InterServer.IPAddress, Database.GroupServerList.InterServer.Port);
                            }
                            else
                                
data.Text("Sorry Man the Cross Servers War Starts only in [Sunday] from [20:01] to [22:00]")
                                        .
AddAvatar(85).FinalizeDialog();
                        }
                        else
                            
data.Text("Sorry Man the Cross Servers War Starts only in [Sunday] from [20:01] to [22:00]")
                                            .
AddAvatar(85).FinalizeDialog();
                        break;
                    }
                case 
2:
                    {
                        
data.Text("Cross Guilds War Starts Every Week At Thrsday [20:00] and end [22:00] you can join in that time only")
                            .
AddOption("Join CrossGuildSWar", 4)
                            .
AddOption("Claim CrossGuildsWar Reward", 5)
                            .
AddAvatar(70).FinalizeDialog();
                        break;
                    }
                case 
4:
                    {
                        if (
client.Player.MyGuild != null)
                        {
                            
DateTime Now64 = DateTime.Now;
                            if (
Now64.DayOfWeek == DayOfWeek.Thursday)
                            {
                                if ((
Now64.Hour >= 20) && (Now64.Hour < 22))
                                {
                                    
client.Player.SetLocationType = 2;
                                    
MsgInterServer.PipeClient.Connect(client, Database.GroupServerList.InterServer.IPAddress, Database.GroupServerList.InterServer.Port);
                                }
                                else
                                    
data.Text("Sorry Man the Cross Guilds War Starts only in [Thursday] from [20:01] to [22:00]")
                                        .
AddAvatar(85).FinalizeDialog();
                            }
                            else
                                
data.Text("Sorry Man the Cross Guilds War Starts only in [Thursday] from [20:01] to [22:00]")
                                    .
AddAvatar(85).FinalizeDialog();
                        }
                        else
                        {
                            
data.Text("You Should be in Guild Bro")
                                .
AddAvatar(40).FinalizeDialog();
                        }
                        break;
                    }
                case 
5:
                    {
                        {
                            if (
client.Player.MyGuild != null)
                            {
                                if (
client.Player.MyGuild.GuildName == MsgTournaments.MsgSchedules.GuildWar.Winner2.Name && client.Player.MyGuild != null)
                                {
                                    if (
client.Player.GuildRank == Role.Flags.GuildMemberRank.GuildLeader && MsgTournaments.MsgSchedules.GuildWar.mido == 0)
                                    {
                                        
client.Player.ConquerPoints += 50000000;
                                        
MsgTournaments.MsgSchedules.GuildWar.mido = 1;
                                        
WindowsAPI.IniFile2 write = new WindowsAPI.IniFile2("\\GuildWarInfo.ini");
                                        
write.Write<uint>("Info", "reward", MsgTournaments.MsgSchedules.GuildWar.mido);
                                        
Program.SendGlobalPackets.Enqueue(new MsgServer.MsgMessage("" + client.Player.Name + " , GuildLeader of the Guild[ " + client.Player.MyGuild.GuildName + " ] was rewarded with 50,000,000 Cps [Winner Of the CrossGuildWar].", MsgServer.MsgMessage.MsgColor.red, MsgServer.MsgMessage.ChatMode.Center).GetArray(stream));
                                    }
                                    else
                                    {
                                        
data.Text("Only Guild Leader Or You Have Claim The Reward")
                                       .
AddAvatar(255).FinalizeDialog();
                                    }
                                }
                                else
                                {
                                    
data.Text("Sorry You Are Not in The Guild That Win the Cross Guild War")
                                        .
AddAvatar(255).FinalizeDialog();
                                }
                            }
                            else
                            {
                                
data.Text("You Should be in Guild Bro")
                                    .
AddAvatar(40).FinalizeDialog();
                            }
                            break;
                        }
                    }
            }
        } 

طبعا هيظهر ايرورات هتروح
IniFile.cs

بدله بده

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
Project_Terror_v2.WindowsAPI
{
    public 
unsafe class IniFile
    
{
        public 
string FileName;
        public 
IniFile(string _FileName, bool overridep = false)
        {
            if (!
overridep)
                
FileName = Program.ServerConfig.DbLocation + _FileName;
            else
                
FileName = _FileName;
        }
        public 
IniFile()
        {
            
FileName = null;
        }
        public const 
int
            Int32_Size 
= 15,
            
Int16_Size = 9,
            
Int8_Size = 6,
            
Bool_Size = 6,
            
Double_Size = 20,
            
Int64_Size = 22,
            
Float_Size = 10;

        public static 
Func<string, int> ToInt32 = new Func<string, int>(int.Parse);
        public static 
Func<string, uint> ToUInt32 = new Func<string, uint>(uint.Parse);
        public static 
Func<string, short> ToInt16 = new Func<string, short>(short.Parse);
        public static 
Func<string, ushort> ToUInt16 = new Func<string, ushort>(ushort.Parse);
        public static 
Func<string, sbyte> ToInt8 = new Func<string, sbyte>(sbyte.Parse);
        public static 
Func<string, byte> ToUInt8 = new Func<string, byte>(byte.Parse);
        public static 
Func<string, bool> ToBool = new Func<string, bool>(bool.Parse);
        public static 
Func<string, double> ToDouble = new Func<string, double>(double.Parse);
        public static 
Func<string, long> ToInt64 = new Func<string, long>(long.Parse);
        public static 
Func<string, ulong> ToUInt64 = new Func<string, ulong>(ulong.Parse);
        public static 
Func<string, float> ToFloat = new Func<string, float>(float.Parse);

        public 
string ReadString(string Section, string Key, string Default, int Size)
        {

            
char* lpBuffer = stackalloc char[Size];
            
Kernel32.GetPrivateProfileStringW(Section, Key, Default, lpBuffer, Size, FileName);
            return new 
string(lpBuffer).Trim('\0');
        }
        public 
string ReadString(string Section, string Key, string Default)
        {
            return 
ReadString(Section, Key, Default, 255);
        }
        public 
string ReadBigString(string Section, string Key, string Default)
        {
            return 
ReadString(Section, Key, Default, 255 * 4);
        }
        public 
void ReadString(string Section, string Key, void* Default, void* Buffer, int Size)
        {
            
Kernel32.GetPrivateProfileStringA(Section, Key, Default, (sbyte*)Buffer, Size, FileName);
        }

        public 
T ReadValue<T>(string Section, string Key, T Default, Func<string, T> callback)
        {
            try
            {
                return 
callback.Invoke(ReadString(Section, Key, Default.ToString()));
            }
            catch
            {
                return Default;
            }
        }
        public 
T ReadValue<T>(string Section, string Key, T Default, Func<string, T> callback, int BufferSize)
        {
            try
            {
                return 
callback.Invoke(ReadString(Section, Key, Default.ToString(), BufferSize));
            }
            catch
            {
                return Default;
            }
        }

        public 
int ReadInt32(string Section, string Key, int Default)
        {
            return 
ReadValue<int>(Section, Key, Default, ToInt32, Int32_Size);
        }
        public 
ulong ReadUInt64(string Section, string Key, ulong Default)
        {
            return 
ReadValue<ulong>(Section, Key, Default, ToUInt64, Int64_Size);
        }
        public 
long ReadInt64(string Section, string Key, long Default)
        {
            return 
ReadValue<long>(Section, Key, Default, ToInt64, Int64_Size);
        }
        public 
double ReadDouble(string Section, string Key, double Default)
        {
            return 
ReadValue<double>(Section, Key, Default, ToDouble, Double_Size);
        }
        public 
uint ReadUInt32(string Section, string Key, uint Default)
        {
            return 
ReadValue<uint>(Section, Key, Default, ToUInt32, Int32_Size);
        }
        public 
short ReadInt16(string Section, string Key, short Default)
        {
            return 
ReadValue<short>(Section, Key, Default, ToInt16, Int16_Size);
        }
        public 
ushort ReadUInt16(string Section, string Key, ushort Default)
        {
            return 
ReadValue<ushort>(Section, Key, Default, ToUInt16, Int16_Size);
        }
        public 
sbyte ReadSByte(string Section, string Key, sbyte Default)
        {
            return 
ReadValue<sbyte>(Section, Key, Default, ToInt8, Int8_Size);
        }
        public 
byte ReadByte(string Section, string Key, byte Default)
        {
            return 
ReadValue<byte>(Section, Key, Default, ToUInt8, Int8_Size);
        }
        public 
bool ReadBool(string Section, string Key, bool Default)
        {
            return 
ReadValue<bool>(Section, Key, Default, ToBool, Bool_Size);
        }
        public 
float ReadFloat(string Section, string Key, float Default)
        {
            return 
ReadValue<float>(Section, Key, Default, ToFloat, Float_Size);
        }

        public 
void WriteString(string Section, string Key, string Value)
        {
            if (
Value == null)
            {
                
Value = "0";
            }
            
Kernel32.WritePrivateProfileString(Section, Key, Value, FileName);
        }
        public 
void Write<T>(string Section, string Key, T Value)
        {
            
Kernel32.WritePrivateProfileString(Section, Key, Value.ToString(), FileName);
        }
        public 
void WriteStruct(string Section, string Key, void* lpStruct, int Size)
        {
            
Kernel32.WritePrivateProfileStructW(Section, Key, lpStruct, Size, FileName);
        }

        public 
string[] GetSectionNames(int BufferSize)
        {
            
char* lpBuffer = stackalloc char[BufferSize];
            
int Size = Kernel32.GetPrivateProfileSectionNamesW(lpBuffer, BufferSize, FileName);
            if (
Size == 0)
                return new 
string[0];
            return new 
string(lpBuffer, 0, Size - 1).Split('\0');
        }
        public 
string[] GetSection(string Section, int BufferSize)
        {
            
char* lpBuffer = stackalloc char[BufferSize];
            
int Size = Kernel32.GetPrivateProfileSectionW(Section, lpBuffer, BufferSize, FileName);
            if (
Size == 0)
                return new 
string[0];
            return new 
string(lpBuffer, 0, Size - 1).Split('\0');
        }
        public 
string[] GetSectionNames()
        {
            return 
GetSectionNames(4096);
        }
        public 
string[] GetSection(string Section)
        {
            return 
GetSection(Section, 4096);
        }
        public 
bool SectionExists(string Section)
        {
            
char* temp = stackalloc char[Section.Length + 1];
            
int r = Kernel32.GetPrivateProfileSectionW(Section, temp, Section.Length + 1, FileName);
            return (
temp[0] != 0);
        }
        public 
bool KeyExists(string Section, string Key)
        {
            const 
char not_used = (char)0x007F;
            const 
string not_used_s = "\007F";

            
char* temp = stackalloc char[2];
            
uint r = Kernel32.GetPrivateProfileStringW(Section, Key, not_used_s, temp, 2, FileName);
            return (
r == 0 && temp[0] == 0) || (r > 0 && temp[0] != not_used);
        }


    }
    public 
unsafe class IniFile2
    
{
        public 
string FileName2;
        public 
IniFile2(string _FileName2, bool overridep = false)
        {
            if (!
overridep)
                
FileName2 = Program.ServerConfig.DbLocationcross + _FileName2;
            else
                
FileName2 = _FileName2;
        }
        public 
IniFile2()
        {
            
FileName2 = null;
        }
        public const 
int
            Int32_Size 
= 15,
            
Int16_Size = 9,
            
Int8_Size = 6,
            
Bool_Size = 6,
            
Double_Size = 20,
            
Int64_Size = 22,
            
Float_Size = 10;

        public static 
Func<string, int> ToInt32 = new Func<string, int>(int.Parse);
        public static 
Func<string, uint> ToUInt32 = new Func<string, uint>(uint.Parse);
        public static 
Func<string, short> ToInt16 = new Func<string, short>(short.Parse);
        public static 
Func<string, ushort> ToUInt16 = new Func<string, ushort>(ushort.Parse);
        public static 
Func<string, sbyte> ToInt8 = new Func<string, sbyte>(sbyte.Parse);
        public static 
Func<string, byte> ToUInt8 = new Func<string, byte>(byte.Parse);
        public static 
Func<string, bool> ToBool = new Func<string, bool>(bool.Parse);
        public static 
Func<string, double> ToDouble = new Func<string, double>(double.Parse);
        public static 
Func<string, long> ToInt64 = new Func<string, long>(long.Parse);
        public static 
Func<string, ulong> ToUInt64 = new Func<string, ulong>(ulong.Parse);
        public static 
Func<string, float> ToFloat = new Func<string, float>(float.Parse);

        public 
string ReadString(string Section, string Key, string Default, int Size)
        {

            
char* lpBuffer = stackalloc char[Size];
            
Kernel32.GetPrivateProfileStringW(Section, Key, Default, lpBuffer, Size, FileName2);
            return new 
string(lpBuffer).Trim('\0');
        }
        public 
string ReadString(string Section, string Key, string Default)
        {
            return 
ReadString(Section, Key, Default, 255);
        }
        public 
string ReadBigString(string Section, string Key, string Default)
        {
            return 
ReadString(Section, Key, Default, 255 * 4);
        }
        public 
void ReadString(string Section, string Key, void* Default, void* Buffer, int Size)
        {
            
Kernel32.GetPrivateProfileStringA(Section, Key, Default, (sbyte*)Buffer, Size, FileName2);
        }

        public 
T ReadValue<T>(string Section, string Key, T Default, Func<string, T> callback)
        {
            try
            {
                return 
callback.Invoke(ReadString(Section, Key, Default.ToString()));
            }
            catch
            {
                return Default;
            }
        }
        public 
T ReadValue<T>(string Section, string Key, T Default, Func<string, T> callback, int BufferSize)
        {
            try
            {
                return 
callback.Invoke(ReadString(Section, Key, Default.ToString(), BufferSize));
            }
            catch
            {
                return Default;
            }
        }

        public 
int ReadInt32(string Section, string Key, int Default)
        {
            return 
ReadValue<int>(Section, Key, Default, ToInt32, Int32_Size);
        }
        public 
ulong ReadUInt64(string Section, string Key, ulong Default)
        {
            return 
ReadValue<ulong>(Section, Key, Default, ToUInt64, Int64_Size);
        }
        public 
long ReadInt64(string Section, string Key, long Default)
        {
            return 
ReadValue<long>(Section, Key, Default, ToInt64, Int64_Size);
        }
        public 
double ReadDouble(string Section, string Key, double Default)
        {
            return 
ReadValue<double>(Section, Key, Default, ToDouble, Double_Size);
        }
        public 
uint ReadUInt32(string Section, string Key, uint Default)
        {
            return 
ReadValue<uint>(Section, Key, Default, ToUInt32, Int32_Size);
        }
        public 
short ReadInt16(string Section, string Key, short Default)
        {
            return 
ReadValue<short>(Section, Key, Default, ToInt16, Int16_Size);
        }
        public 
ushort ReadUInt16(string Section, string Key, ushort Default)
        {
            return 
ReadValue<ushort>(Section, Key, Default, ToUInt16, Int16_Size);
        }
        public 
sbyte ReadSByte(string Section, string Key, sbyte Default)
        {
            return 
ReadValue<sbyte>(Section, Key, Default, ToInt8, Int8_Size);
        }
        public 
byte ReadByte(string Section, string Key, byte Default)
        {
            return 
ReadValue<byte>(Section, Key, Default, ToUInt8, Int8_Size);
        }
        public 
bool ReadBool(string Section, string Key, bool Default)
        {
            return 
ReadValue<bool>(Section, Key, Default, ToBool, Bool_Size);
        }
        public 
float ReadFloat(string Section, string Key, float Default)
        {
            return 
ReadValue<float>(Section, Key, Default, ToFloat, Float_Size);
        }

        public 
void WriteString(string Section, string Key, string Value)
        {
            if (
Value == null)
            {
                
Value = "0";
            }
            
Kernel32.WritePrivateProfileString(Section, Key, Value, FileName2);
        }
        public 
void Write<T>(string Section, string Key, T Value)
        {
            
Kernel32.WritePrivateProfileString(Section, Key, Value.ToString(), FileName2);
        }
        public 
void WriteStruct(string Section, string Key, void* lpStruct, int Size)
        {
            
Kernel32.WritePrivateProfileStructW(Section, Key, lpStruct, Size, FileName2);
        }

        public 
string[] GetSectionNames(int BufferSize)
        {
            
char* lpBuffer = stackalloc char[BufferSize];
            
int Size = Kernel32.GetPrivateProfileSectionNamesW(lpBuffer, BufferSize, FileName2);
            if (
Size == 0)
                return new 
string[0];
            return new 
string(lpBuffer, 0, Size - 1).Split('\0');
        }
        public 
string[] GetSection(string Section, int BufferSize)
        {
            
char* lpBuffer = stackalloc char[BufferSize];
            
int Size = Kernel32.GetPrivateProfileSectionW(Section, lpBuffer, BufferSize, FileName2);
            if (
Size == 0)
                return new 
string[0];
            return new 
string(lpBuffer, 0, Size - 1).Split('\0');
        }
        public 
string[] GetSectionNames()
        {
            return 
GetSectionNames(4096);
        }
        public 
string[] GetSection(string Section)
        {
            return 
GetSection(Section, 4096);
        }
        public 
bool SectionExists(string Section)
        {
            
char* temp = stackalloc char[Section.Length + 1];
            
int r = Kernel32.GetPrivateProfileSectionW(Section, temp, Section.Length + 1, FileName2);
            return (
temp[0] != 0);
        }
        public 
bool KeyExists(string Section, string Key)
        {
            const 
char not_used = (char)0x007F;
            const 
string not_used_s = "\007F";

            
char* temp = stackalloc char[2];
            
uint r = Kernel32.GetPrivateProfileStringW(Section, Key, not_used_s, temp, 2, FileName2);
            return (
r == 0 && temp[0] == 0) || (r > 0 && temp[0] != not_used);
        }


    }
} 

هتبحث عن

كود:
WindowsAPI.IniFile IniFile = new WindowsAPI.IniFile(System.IO.Directory.GetCurrentDirectory() + "\\shell.ini", true); 

هتحط ده

كود:
Program.ServerConfig.DbLocationcross = IniFile.ReadString("Database", "Location2", ""); 

وفي program.cs ضيف

كود:
public static string DbLocationcross = ""; // for cross war 

هتروح MsgGuildWar.cs في السورس العادي (السورسين طبعا )
هتضيف في اخره

كود:
internal void Load2()
        {
            
WindowsAPI.IniFile2 reader = new WindowsAPI.IniFile2("\\GuildWarInfo.ini");
            
Winner2.GuildID = reader.ReadUInt32("Info", "ID", 0);
            
Winner2.Name = reader.ReadString("Info", "Name", "None");
            
mido = reader.ReadUInt32("Info", "reward", 0);
        } 

هتبحث في نفس الكلاس بتاع الوار

كود:
public GuildWarScrore Winner; 

حط تحتها

كود:
public GuildWarScrore Winner2; 

هتبحث عن

كود:
Winner = new GuildWarScrore() { Name = "None", Score = 100, GuildID = 0 }; 

تحتها

كود:
Winner2 = new GuildWarScrore() { Name = "None", Score = 100, GuildID = 0 }; 

هتبحث عن

كود:
public ProcesType Proces { get; set; } 

تحتها حط

كود:
public uint mido; 

هتروح

كود:
MsgSchedules.cs 

حط ده تحت

كود:
if (Now64.DayOfWeek == DayOfWeek.Sunday && Now64.Minute == 00 && Now64.Hour == 20 && Now64.Second == 35)
                {
                    
SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server.", MsgServer.MsgMessage.ChatMode.Center, MsgServer.MsgMessage.MsgColor.red);
                    
SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.CrossServerIcon, MsgServer.MsgMessage.MsgColor.red);
                    
//SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.Guild, MsgServer.MsgMessage.MsgColor.red);
                    //SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.CrosTheServer, MsgServer.MsgMessage.MsgColor.red);
                    
SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.BroadcastMessage, MsgServer.MsgMessage.MsgColor.red);
                    
//SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.Whisper, MsgServer.MsgMessage.MsgColor.red);
                    //SendSysMesage("The CrossServersWar Starts Now Go to CrossServerManger to SignUp now Many Rewards For the best Server .", MsgServer.MsgMessage.ChatMode.TopLeftSystem, MsgServer.MsgMessage.MsgColor.red);
                
}
                if (
Now64.DayOfWeek == DayOfWeek.Thursday && Now64.Minute == 00 && Now64.Hour == 22 && Now64.Second == 03)
                    
Game.MsgTournaments.MsgSchedules.GuildWar.Load2(); 

هتروح في shell في السورسين الي بتعدل منه
تحت دي [Database]
هتحط ده

كود:
Location2=G:\سورس اللعبه\DataBase\Cross\ 

هتغيره طبعا لمكان الداتا بتاعت الكروس
كمان ده ف السورسين
هتلاقي ملف اسمه
^_^
طبعا اي شغل كان في السورس بيتعمل في السورسين
تقدر تعدل الجايزه تدي توب برحتك
هتعدل في ان بي سي التوب الي في السورسين
كده كامله ابواب شغاله تمام + تضرب تمام + تصحي تمام + تستلم الجايزه تمام + باذن الله مفيش مشاكل
دعووووووووووووووووووووووووووووووه حلوه والنبي
هنزلكم كروس سيرفرز وار حرب بين السيرفرات البوله بتكتب عليها اسم السيرفر دمار والجايزه اوتو ماتيك ^_^
لينك التيكست اهو

عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع

بالتوفيق يا غاليين ياريت تدعولي

والناس الي شغال ع اليكس انتظروا هدلعكم كمان شويه