• إرسال موضوع جديد
  • إرسال مساهمة في موضوع

حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

شاطر
avatar
ÂĦмЄÐ HάlĭM
♦ مؤسس الموقع ♦
♦الصمت لغة العظماء♦
♦ مؤسس الموقع ♦  ♦الصمت لغة العظماء♦

.

.
.
..
عدد المساهمات: : 370
تاريخ التسجيل تاريخ التسجيل : 14/07/2014
الموقع الموقع : Team.arab.st

a حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

مُساهمة من طرف ÂĦмЄÐ HάlĭM في السبت يونيو 20, 2015 5:43 pm

بسم الله الرحمن الرحيم
السلام عليكم ورحمه الله وبركاته
تعالو نقسم موضوعنا كدا عشان يبان جميل ومنظم
اولا: ايه هيا حرب رمضان
ثانيا: صور
ثالثا: شرح اضافه حرب رمضان (RamadanWar)

اولا:ايه هيا حرب رمضان؟
هيا عباره عن حرب بتيجي كل يوم في معاد معين بيجيلك اوتو انفيت ليها في ميعاد بدأ الحرب دي
وفيها بوله
الحرب طبعا للجيلدات مع بعضها
وبتديك سبيس ولو عايز كمان تضيف ليها توبات ضيف زي منت عاوز برحتك

ثانيا: الصور!
دا ان بي سي الي بيدخل الوار في معادها بظبط

بعد ما تخش في الخريطه

وده العمود الي جوه


ثالثا: الشرح!!
نبدأ بسم الله
هيجيلك ارورات بس اشتغل لحد منخلص وكلو هيبقا تمام ان شاء الله ولو جالك ارور في VPS_ALMaZeN ابقا غيرها باسم البروجيكت الخاص بتاع سيرفرك




افتح ملف

NPC



وابحث عن الكود دا


الكود:
 #region Gates 




اقفلو بالسالب وحط دا تحتو على طول

لا تستطيع مشاهدتة الابعد الرد








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



الكود:
 #region ElitePole 



اقفلو بالسالب وحط دا تحتو



الكود:
#region  ramadanwar
                case 78963214:
                    {
                        switch (npcRequest.OptionID)
                        {
                            case 0:
                                {
                                    dialog.Text("Hey there " + client.Entity.Name + " Would you like to Join Ramadan war?.");
                                    dialog.Text("or claim the Prize?, you can join Every day expect Saturday and Sunday At 16:30 to 17:30.");
                                    dialog.Text("and the winner Guild Leader will get 5M cps after it finish u have 5 minutes to claim?.");
                                    dialog.Option("Join ramadan war", 1);
                                    dialog.Option("Claim Prize.", 5);
                                    dialog.Send();
                                    break;
                                }
                            case 1:
                                {
                                    if (ramadanwar.IsWar)
                                    {
                                        client.Entity.Teleport(1037, 265, 270);
                                    }
                                    else
                                    {
                                        dialog.Text("The war is not held now! It will start every day expect Saturday and Sunday at 16:30");
                                        dialog.Option("okay", 255);
                                        dialog.Send();
                                        break;
                                    }
                                    break;
                                }
                            case 5:
                                {
                                    if (!ramadanwar.IsWar)
                                    {
                                        if (client.Guild != null)
                                        {
                                            if (ramadanwar.KeeperID != 0)
                                            {
                                                if (ramadanwar.Claim && client.AsMember.Rank == Game.Enums.GuildMemberRank.GuildLeader && client.Guild.ID == ramadanwar.KeeperID)
                                                {
                                                    ramadanwar.Claim = false;
                                                    ramadanwar.KeeperID = 0;
                                                    VPS_ALMaZeN.Kernel.SendWorldMessage(new Message("Congratulations! " + client.Entity.Name + " claimed the prize 5M ConquerPoints for winning the ramadanwar.", System.Drawing.Color.Black, Message.Center), Program.GamePool);
                                                    client.Entity.ConquerPoints += 5000000;
                                                    Program.AddWarLog("ramadanwar", "5M CPS", client.Entity.Name);
                                                }
                                                else
                                                {
                                                    dialog.Text("sorry u dont have any prize to claim....");
                                                    dialog.Option("okay", 255);
                                                    dialog.Send();
                                                    break;
                                                }
                                            }
                                        }
                                        else
                                        {
                                            dialog.Text("sorry u dont have any prize to claim");
                                            dialog.Option("okay", 255);
                                            dialog.Send();
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        dialog.Text("Hey there " + client.Entity.Name + " You can't get the prize while the war is on!");
                                        dialog.Option("okay", 255);
                                        dialog.Send();
                                        break;
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                #endregion
                #region ramadanwar
                case 8696:
                    {
                        dialog.Text("Welcome in ramadanwar HaveFun!.");
                        dialog.Option("Thanks.", 255);
                        dialog.Send();
                        break;
                    }
                #endregion 




بعد كدا هتعمل كلاسس جديد في فولدر game وهتسميه



الكود:
 ramadanwar.cs 



وتقوب خابط الكلام دا كلو جوا الكلاسس الي انت ضيفتو دا



الكود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VPS_ALMaZeN.Network.GamePackets;
using VPS_ALMaZeN.Game.ConquerStructures.Society;

namespace VPS_ALMaZeN.Game
{
    public class ramadanwar
    {
        public static SobNpcSpawn Pole, RightGate, LeftGate;

        public static SobNpcSpawn Poles;

        public static SafeDictionary<uint, Guild> Scores = new SafeDictionary<uint, Guild>(100);

        public static bool IsWar = false, Flame10th = false, FirstRound = false;

        public static Time32 ScoreSendStamp, LastWin;

        public static Guild PoleKeeper, CurrentTopLeader;

        private static bool changed = false;

        private static string[] scoreMessages;

        public static DateTime StartTime;

        public static bool Claim
        {
            get { return Program.Vars["rwclaim"]; }
            set { Program.Vars["rwclaim"] = value; }
        }
        public static uint KeeperID
        {
            get { return Program.Vars["rwkeeperid"]; }
            set { Program.Vars["rwkeeperid"] = value; }
        }

        public static void ramadanwarIni()
        {
            var Map = Kernel.Maps[1037];
            Pole = (SobNpcSpawn)Map.Npcs[8696];
            LeftGate = (SobNpcSpawn)Map.Npcs[6547896];
            RightGate = (SobNpcSpawn)Map.Npcs[456852];
        }

        public static void Start()
        {
            object[] name;
            if (LeftGate == null) return;
            Scores = new SafeDictionary<uint, Guild>(100);
            StartTime = DateTime.Now;
            LeftGate.Mesh = (ushort)(240 + LeftGate.Mesh % 10);
            RightGate.Mesh = (ushort)(270 + LeftGate.Mesh % 10);
            name = new object[] { "Quest ramadanwar Has Started Go To RamadanWar At TwinCity " };
            Kernel.SendWorldMessage(new Message(string.Concat(name), "ALLUSERS", "ramadanwar", System.Drawing.Color.Red, 2500), Program.GamePool);
            Kernel.SendWorldMessage(new Message("ramadanwar has began!", System.Drawing.Color.Red, Message.Center), Program.GamePool);
            FirstRound = true;
            foreach (Guild guild in Kernel.Guilds.Values)
            {
                guild.rwScore = 0;
            }
            Update upd = new Update(true);
            upd.UID = LeftGate.UID;
            upd.Append(Update.Mesh, LeftGate.Mesh);
            upd.Append(Update.Hitpoints, LeftGate.Hitpoints);
            Kernel.SendWorldMessage(upd, Program.GamePool, (ushort)2072);
            upd.Clear();
            upd.UID = RightGate.UID;
            upd.Append(Update.Mesh, RightGate.Mesh);
            upd.Append(Update.Hitpoints, RightGate.Hitpoints);
            Kernel.SendWorldMessage(upd, Program.GamePool, (ushort)2072);
            Claim = false;
            IsWar = true;
        }

        public static void Reset()
        {
            Scores = new SafeDictionary<uint, Guild>(100);

            LeftGate.Mesh = (ushort)(240 + LeftGate.Mesh % 10);
            RightGate.Mesh = (ushort)(270 + LeftGate.Mesh % 10);

            LeftGate.Hitpoints = LeftGate.MaxHitpoints;
            RightGate.Hitpoints = RightGate.MaxHitpoints;
            Pole.Hitpoints = Pole.MaxHitpoints;

            Update upd = new Update(true);
            upd.UID = LeftGate.UID;
            upd.Append(Update.Mesh, LeftGate.Mesh);
            upd.Append(Update.Hitpoints, LeftGate.Hitpoints);
            Kernel.SendWorldMessage(upd, Program.GamePool, (ushort)2072);
            upd.Clear();
            upd.UID = RightGate.UID;
            upd.Append(Update.Mesh, RightGate.Mesh);
            upd.Append(Update.Hitpoints, RightGate.Hitpoints);
            Kernel.SendWorldMessage(upd, Program.GamePool, (ushort)2072);

            foreach (Guild guild in Kernel.Guilds.Values)
            {
                guild.rwScore = 0;
            }

            IsWar = true;
        }

        public static void FinishRound()
        {
            if (PoleKeeper != null && !FirstRound)
            {
                if (PoleKeeper.Wins == 0)
                    PoleKeeper.Losts++;
                else
                    PoleKeeper.Wins--;
                Database.GuildTable.UpdateGuildWarStats(PoleKeeper);
            }
            LastWin = Time32.Now;

            FirstRound = false;
            SortScores(out PoleKeeper);
            if (PoleKeeper != null)
            {
                KeeperID = PoleKeeper.ID;
                Kernel.SendWorldMessage(new Message("The guild, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this ramadanwar round!", System.Drawing.Color.Red, Message.Center), Program.GamePool);
                Kernel.SendWorldMessage(new Message("It is generald pardon time. You have 5 minutes to leave, run for your life!", System.Drawing.Color.White, Message.TopLeft), Program.GamePool, (ushort)6001);
                if (PoleKeeper.Losts == 0)
                    PoleKeeper.Wins++;
                else
                    PoleKeeper.Losts--;
                Database.GuildTable.UpdateGuildWarStats(PoleKeeper);
                Pole.Name = PoleKeeper.Name;
            }
            Pole.Hitpoints = Pole.MaxHitpoints;
            Kernel.SendWorldMessage(Pole, Program.GamePool, (ushort)1037);
            Reset();
        }

        public static void End()
        {
            if (PoleKeeper != null)
            {
                Kernel.SendWorldMessage(new Message("The guild, " + PoleKeeper.Name + ", owned by " + PoleKeeper.LeaderName + " has won this ramadanwar!---ramadanwar has ended!", System.Drawing.Color.White, Message.Center), Program.GamePool);
                http://VPS_ALMaZeN.Database.EntityTable.Status2();
            }
            else
            {
                Kernel.SendWorldMessage(new Message("ramadanwar has ended and there was no winner!", System.Drawing.Color.Red, Message.Center), Program.GamePool);
                http://VPS_ALMaZeN.Database.EntityTable.Status2();
            }
            IsWar = false;
            Claim = true;
            UpdatePole(Pole);
            foreach (Client.GameClient client in Program.GamePool)
            {
                http://client.Entity.Status2 = 0;
                http://client.Entity.RemoveFlag(Network.GamePackets.Update.Flags.TopDeputyLeader);
                http://client.Entity.RemoveFlag(Network.GamePackets.Update.Flags.TopGuildLeader);
            }
        }

        public static void AddScore(uint addScore, Guild guild)
        {
            if (guild != null)
            {
                guild.rwScore += addScore;
                changed = true;
                if (!Scores.ContainsKey(guild.ID))
                    Scores.Add(guild.ID, guild);
                if ((int)Pole.Hitpoints <= 0)
                {
                    FinishRound();

                    return;
                }
            }
        }

        public static void SendScores()
        {
            if (scoreMessages == null)
                scoreMessages = new string[0];
            if (Scores.Count == 0)
                return;
            if (changed)
                SortScores(out CurrentTopLeader);

            for (int c = 0; c < scoreMessages.Length; c++)
            {
                Message msg = new Message(scoreMessages[c], System.Drawing.Color.Red, c == 0 ? Message.FirstRightCorner : Message.ContinueRightCorner);
                Kernel.SendWorldMessage(msg, Program.GamePool, (ushort)2072);
                http://Kernel.SendWorldMessage(msg, Program.GamePool, (ushort)6001);
            }
        }

        private static void SortScores(out Guild winner)
        {
            winner = null;
            List<string> ret = new List<string>();

            int Place = 0;
            foreach (Guild guild in Scores.Values.OrderByDescending((p) => p.rwScore))
            {
                if (Place == 0)
                    winner = guild;
                string str = "No  " + (Place + 1).ToString() + ": " + guild.Name + "(" + guild.rwScore + ")";
                ret.Add(str);
                Place++;
                if (Place == 4)
                    break;
            }

            changed = false;
            scoreMessages = ret.ToArray();
        }

        private static void UpdatePole(SobNpcSpawn pole)
        {
            new Database.MySqlCommand(VPS_ALMaZeN.Database.MySqlCommandType.UPDATE)
            .Update("sobnpcs").Set("name", pole.Name).Set("life", Pole.Hitpoints).Where("id", pole.UID).Execute();
        }
    }





وبعدين في ملف Handle.cs
ابحث عن



الكود:
 public static void ReceiveAttack(Game.Entity attacker, SobNpcSpawn attacked, Attack attack, uint damage, Database.SpellInformation spell) 




وتحت اول قوص يقابلك ضيف دا



الكود:
if (attacker.MapID == 1037)
            {
                if (attacked.UID == 8696)
                {
                    if (Game.ramadanwar.PoleKeeper == attacker.Owner.Guild)
                        return;
                    if (attacked.Hitpoints <= damage)
                        attacked.Hitpoints = 0;
                    attacker.Money += 1000;
                    Game.ramadanwar.AddScore(damage, attacker.Owner.Guild);
                }
            } 




بردو في نفس الملف ابحث عن



الكود:
 public static bool CanAttack(Game.Entity attacker, SobNpcSpawn attacked, Database.SpellInformation spell) 




تحت اول قوس يقابلك ضيف دول



الكود:
if (attacker.MapID == 1037)
            {
                if (attacker.GuildID == 0 || !Game.ramadanwar.IsWar)
                {
                    if (attacked.UID == 8696)
                    {
                        return false;
                    }
                }
                if (Game.ramadanwar.PoleKeeper != null)
                {
                    if (Game.ramadanwar.PoleKeeper == attacker.Owner.Guild)
                    {
                        if (attacked.UID == 8696)
                        {
                            return false;
                        }
                    }
                    else if (attacked.UID == 456852 || attacked.UID == 6547896)
                    {
                        if (Game.ramadanwar.PoleKeeper == attacker.Owner.Guild)
                        {
                            if (attacker.PKMode == Enums.PKMode.Team)
                                return false;
                        }
                    }
                }
            } 




بعدها تسيف وتروح على ملف



لا تستطيع مشاهدتة الا بعد الرد






وابحث عن الكود دا



الكود:
 private Client.GameClient owner_null = null; 




هتلاقي فوقو قوسيت فوق اول قوس ضيف الكود دا



الكود:
if (MapID == 1037)
            {
                if (UID != 8696)
                {
                    if (Hitpoints != 0 || Mesh != 251 && Mesh != 281)
                    {
                        if (Mesh == 241)
                            Mesh = (ushort)(250 + Mesh % 10);
                        else
                            Mesh = (ushort)(280 + Mesh % 10);

                        Update upd = new Update(true);
                        upd.UID = UID;
                        upd.Append(Update.Mesh, Mesh);
                        killer.Owner.SendScreen(upd, true);
                        Hitpoints = 0;
                    }
                    Attack attack = new Attack(true);
                    attack.Attacker = killer.UID;
                    attack.Attacked = UID;
                    attack.AttackType = Network.GamePackets.Attack.Kill;
                    attack.X = X;
                    attack.Y = Y;
                    killer.Owner.Send(attack);
                    killer.KOCount++;
                }
            }
            else
            {
                Attack attack = new Attack(true);
                attack.Attacker = killer.UID;
                attack.Attacked = UID;
                attack.AttackType = Network.GamePackets.Attack.Kill;
                attack.X = X;
                attack.Y = Y;
                killer.Owner.Send(attack);
                Hitpoints = MaxHitpoints;
                Update upd = new Update(true);
                upd.UID = UID;
                upd.Append(Update.Hitpoints, MaxHitpoints);
                killer.Owner.SendScreen(upd, true);
            } 




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



الكود:
 Guild.cs 




وابحث عن الكود دا



الكود:
 public uint EWarScore; 





وحط تحتو الكود دا



الكود:
public uint rwScore;
 public bool PoleKeeper66 
        { 
            get 
            { 
                return ramadan.Poles.Name == Name; 
            } 
        } 




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


الكود:
#region Dis City 




هتضيف تحتو دا


الكود:
#region ramadanwar
            if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday)

                if (!Game.ramadanwar.IsWar)
                {
                    if (Now64.Hour == 16 && Now64.Minute == 30 && Now64.Second == 04)
                    {
                        Game.ramadanwar.Start();
                        http://Kernel.SendWorldMessage(new Message("Elite GW began!", Color.White, Message.Center), Program.GamePool);
                        foreach (var client in Program.GamePool)
                            if (client.Entity.MapID == 6000 || client.Entity.MapID == 6001 || client.Entity.MapID == 6002 || client.Entity.MapID == 6003 || client.Entity.MapID == 6004)
                                return;
                        foreach (var client in Program.GamePool)
                            if (client.Entity.GuildID != 0)
                                client.MessageBox("ramadanwar has begun! Would you like to join? ",
                                    p => { p.Entity.Teleport(1002, 311, 271); }, null);
                    }
                }
            if (Game.ramadanwar.IsWar)
            {
                if (Time32.Now > Game.PoleTwin.ScoreSendStamp.AddSeconds(3))
                {
                    Game.ramadanwar.ScoreSendStamp = Time32.Now;
                    Game.ramadanwar.SendScores();
                }
                if (Now64.Hour == 16 && Now64.Minute == 20 && Now64.Second <= 4)
                {
                    Kernel.SendWorldMessage(new Network.GamePackets.Message(" egre yad enta we hoa ramadan war ht5ls kman 10 min.", System.Drawing.Color.White, Network.GamePackets.Message.Center), Program.GamePool);
                }
            }

            if (Game.ramadanwar.IsWar)
            {
                if (Now64.Hour == 17 && Now64.Minute == 30 && Now64.Second == 04)
                {
                    Game.ramadanwar.End();
                    {
                        http://Kernel.SendWorldMessage(new Network.GamePackets.Message("Elite GW has Ended", System.Drawing.Color.White, Network.GamePackets.Message.Center), Program.GamePool);
                    }
                }
            }
            #endregion 




بص يا معلم لو جالك في كلينت ايرور انقل الكود دا كلو في حته تانيه تحت كوسته PoleTwin لو عندك ولا حاجه
بعد كدا هتفتح ملف Program.cs وابحث عن الكود دا



الكود:
 Game.ClanWar.Initiate(); 




ضيف دا تحتو


الكود:
Game.ramadanwar.ramadanwarIni();
                        Console.WriteLine("ramadanwar initializated."); 




وبعدين في ملف sobnpcs في النافي كيت هتضيف دول


الكود:
6547896    iii    26    251    2072    439    424    10000000    10000000    24    21    0    0
456852    iii    26    277    5000    501    355    10000000    10000000    27    21    0    0
8696    FlagBase    10    1137    5000    438    377    10000000    10000000    0    17    1    0 





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



الكود:
 78963214    0    0    PoleTwin    2    28080    -1    1002    349    342    0    0    0    0    0    0    0    0    0    0    0    0        0    0    0    0    0 




حط الملف دا فكو في السورس



الكود:
 http://www.mediafire.com/download/1ku6lsu8uxlpl71/bin.rar 



وفي النافي كات في ملف maps ضيف دا



الكود:
 1037    1002    7    0 



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


وانا متابعك


والله الموفق
avatar
FranKo
¦:: عضو مجتهد ::¦

¦:: عضو مجتهد ::¦

عدد المساهمات: : 63
تاريخ التسجيل تاريخ التسجيل : 15/07/2014

a رد: حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

مُساهمة من طرف FranKo في الأحد يونيو 21, 2015 9:25 pm

الف شكر يسعدنى انى اكون اول واحد يرد على الموضوع
avatar
MostafaAlGazar
¦:: عضو جديد ::¦

¦:: عضو جديد ::¦

عدد المساهمات: : 9
تاريخ التسجيل تاريخ التسجيل : 28/06/2015
الموقع الموقع : حلوان بلد الرجوله

a رد: حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

مُساهمة من طرف MostafaAlGazar في الأحد يونيو 28, 2015 7:09 am

رائع والله استمر يا باشا Very Happy Very Happy



avatar
AnAGokeR
::منظم قسم السيرفرات::
::TeaM.Arab.ST::
::منظم قسم السيرفرات:: ::TeaM.Arab.ST::

.
.
عدد المساهمات: : 45
تاريخ التسجيل تاريخ التسجيل : 09/04/2015

a رد: حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

مُساهمة من طرف AnAGokeR في الإثنين يونيو 29, 2015 5:03 pm

الف شكر
avatar
мявℓαcĸ
¦:: عضو نشيط ::¦

¦:: عضو نشيط ::¦

.
.
.
عدد المساهمات: : 24
تاريخ التسجيل تاريخ التسجيل : 07/04/2015

a رد: حصريا RamadanWar (حرب رمضان) خش اعمل حرب لرمضان بدون باتشات

مُساهمة من طرف мявℓαcĸ في الإثنين يونيو 29, 2015 9:14 pm

جميل استمر يا صحبى
  • إرسال موضوع جديد
  • إرسال مساهمة في موضوع

الوقت/التاريخ الآن هو الأحد مايو 28, 2017 6:45 am