احصائياتى

الردود
10

المشاهدات
279
 
Mr~Rayzo
::. المدير العام ::.

المشاركات
1,340

+التقييم
0.49

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

الاقامة

نظام التشغيل

رقم العضوية
115
2021-01-19, 05:20 PM
المشاركة 1
2021-01-19, 05:20 PM
المشاركة 1
Happy اضافه حرب عمود للاعبين فى سورس اللكس
السلام عليكم ورحمه الله وبركاته
الناس الى مهتمه بسورسات اللكس تجمع هناااا بسرعه يلا عشان معانا حرب عمود للاعبين ( سورسات اللكس فقط)
شرح الحرب كل اللاعبين هتدخل الساعه 11 الصبح المابه دى وتلاقى فيها عمود هيضربو فيه والى يخلص عليه الوقت يكسب
الحرب للاعبين مش للنقابات
نشوف صوره كده

ندخل الاضافه على بكره الله
اعمل كلاس جديد فى المسار ده

كود:
GameServer\Game\MsgTournaments 

وسميه بالاسم ده

كود:
MsgTopPole 

وارميه فى دول

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


namespace 
GameServer.Game.MsgTournaments
{
    public class 
MsgTopPole
    
{
        public static 
System.SafeDictionary<uint, Info> TopPoleList = new System.SafeDictionary<uint, Info>();

        public static 
Info RoundOwner;

        public static 
ProcesType Proces = ProcesType.Dead;

        public static 
Dictionary<Role.SobNpc.StaticMesh, Role.SobNpc> Furnitures = new Dictionary<Role.SobNpc.StaticMesh, Role.SobNpc>();

        public static 
ushort MapID = 1737;

        public class 
Info
        
{
            public 
uint UID;
            public 
uint Score;
            public 
string Name;
        }

        public static 
void Load()
        {
            
Furnitures.Add(Role.SobNpc.StaticMesh.Pole, Pool.ServerMaps[MapID].View.GetMapObject<Role.SobNpc>(Role.MapObjectType.SobNpc, 65056));
        }

        public static 
void Start()
        {
            
RoundOwner = null;
            
TopPoleList = new System.SafeDictionary<uint, Info>();
            
Proces = ProcesType.Alive;
            
MsgSchedules.SendInvitation("TopPole War", "CPS", 465, 325, 1002, 0, 100);
            
MsgSchedules.SendSysMesage("TopPole War has been begun..");
        }

        public static 
void End()
        {
            if (
Proces == ProcesType.Alive)
            {
                
Proces = ProcesType.Dead;
                
MsgSchedules.SendSysMesage(RoundOwner == null ? "TopPole War has ended and there is no winner" : "" + RoundOwner.Name + ", He is the winner of TopPole War.", MsgServer.MsgMessage.ChatMode.Center);
            
                
TopPoleList.Clear();
            }
        }

        public static 
void CheckUP()
        {
            
DateTime Now = DateTime.Now;

            if (
Proces == ProcesType.Dead && Now.Hour == 11)
                
Start();

            if (
Proces == ProcesType.Alive)
            {
                if (
Now.Minute == 30 && Now.Second <= 2)
                    
MsgSchedules.SendSysMesage("TopPole War will ended after 30 Minutes.", MsgServer.MsgMessage.ChatMode.Center);


                if (
Now.Minute == 55 && Now.Second <= 2)
                    
MsgSchedules.SendSysMesage("TopPole War will ended after 5 Minutes.", MsgServer.MsgMessage.ChatMode.Center);

                if (
Now.Hour == 12 && Now.Second <= 2)
                    
End();
            }
        }

        public static 
void Reset(ServerSockets.Packet stream)
        {
            
TopPoleList = new System.SafeDictionary<uint, Info>();

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

            var 
Pole = Furnitures[Role.SobNpc.StaticMesh.Pole];
            var 
users = Pool.GamePoll.Values.Where(u => u != null && u.Player.Map == MapID && Role.Core.GetDistance(u.Player.X, u.Player.Y, Pole.X, Pole.Y) <= Role.SobNpc.SeedDistrance).ToArray();
            if (
users != null)
            {
                foreach (var 
user in users)
                {
                    
MsgServer.MsgUpdate upd = new MsgServer.MsgUpdate(stream, Pole.UID, 1);
                    
stream = upd.Append(stream, MsgServer.MsgUpdate.DataType.Mesh, (long)Pole.Mesh);
                    
stream = upd.GetArray(stream);
                    
user.Send(stream);
                    
stream = upd.Append(stream, MsgServer.MsgUpdate.DataType.Hitpoints, Pole.HitPoints);
                    
stream = upd.GetArray(stream);
                    
user.Send(stream);
                    if ((
Role.SobNpc.StaticMesh)Pole.Mesh == Role.SobNpc.StaticMesh.Pole)
                        
user.Send(Pole.GetArray(stream, false));
                }
            }
        }
        public static 
void FinishRound(ServerSockets.Packet stream)
        {
            
SortScores(true);
            
Furnitures[Role.SobNpc.StaticMesh.Pole].Name = RoundOwner.Name;
            
MsgSchedules.SendSysMesage("The Round Ownered by " + RoundOwner.Name + ".", MsgServer.MsgMessage.ChatMode.Center);
            
Reset(stream);
        }
        public static 
void UpdateScore(ServerSockets.Packet stream, uint Score, Role.Player Player)
        {
            if (!
TopPoleList.ContainsKey(Player.UID))
                
TopPoleList.Add(Player.UID, new Info() { Name = Player.Name, UID = Player.UID, Score = Score });
            else
                
TopPoleList[Player.UID].Score += Score;

            
SortScores();

            if (
Furnitures[Role.SobNpc.StaticMesh.Pole].HitPoints < 1)
            {
                
FinishRound(stream);
                return;
            }
        }
        private static 
void SortScores(bool getwinner = false)
        {
            if (
Proces != ProcesType.Dead)
            {
                var Array = 
TopPoleList.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 && getwinner)
                    {
                        
RoundOwner = element;
                    }
                    
using (var rec = new ServerSockets.RecycledPacket())
                    {
                        
Game.MsgServer.MsgMessage msg = new MsgServer.MsgMessage("No " + (x + 1).ToString() + ". " + element.Name + " (" + element.Score + ")"
                           
, MsgServer.MsgMessage.MsgColor.yellow, x == 0 ? MsgServer.MsgMessage.ChatMode.FirstRightCorner : MsgServer.MsgMessage.ChatMode.ContinueRightCorner);

                        
SendMapPacket(msg.GetArray(rec.GetStream()));
                    }
                    if (
x == 4)
                        break;
                }
            }
        }
        public static 
void SendMapPacket(ServerSockets.Packet packet)
        {
            foreach (var 
client in Pool.ServerMaps[MapID].Values)
                
client.Send(packet);
        }
    }
} 

ابحث عن الكلاس ده

كود:
SobNpc 

وانزل تحت وضيف دول

كود:
 else if (UID == Game.MsgTournaments.MsgTopPole.Furnitures[StaticMesh.Pole].UID)
            {
                
uint Damage = (uint)HitPoints;

                if (
HitPoints > 0)
                    
HitPoints = 0;

                
Game.MsgTournaments.MsgTopPole.UpdateScore(stream, Damage, killer.Player);
            } 

نروح على كلاس ده

كود:
MsgSchedules 

وننزل تحت نرمى التشك ده

كود:
  MsgTopPole.CheckUP(); 

ندور على كلاس
كود:
NPC.cs 

ارمى فيه دول

كود:
  else if (MsgTournaments.MsgTopPole.Proces == MsgTournaments.ProcesType.Alive && attacked.UID == MsgTournaments.MsgTopPole.Furnitures[Role.SobNpc.StaticMesh.Pole].UID)
                    
MsgTournaments.MsgTopPole.UpdateScore(stream, obj.Damage, client.Player); 

نروح على كلاس Server.csوفى الفويد بتاع اللود هنضيف ده

كود:
Game.MsgTournaments.MsgTopPole.Load(); 

ابحث عن الكلاس ده
كود:
CanAttackNpc 

وانزل تحت وضيف دول

كود:
 if (attacked.UID == MsgTournaments.MsgTopPole.Furnitures[Role.SobNpc.StaticMesh.Pole].UID)
            {
                if (
client.Player.MyGuild == null)
                    return 
false;
                if (
MsgTournaments.MsgTopPole.Furnitures[Role.SobNpc.StaticMesh.Pole].HitPoints == 0)
                    return 
false;
                if (
client.Player.Name == MsgTournaments.MsgTopPole.Furnitures[Role.SobNpc.StaticMesh.Pole].Name)
                    return 
false;
                if (
MsgTournaments.MsgTopPole.Proces != MsgTournaments.ProcesType.Alive)
                    return 
false;
            } 

بعد كده نضيف الانبسى ابحث عن كلاس NpcHandelr او الكلاس بتاع الانبسيهات بتاعتك

كود:
  [NpcAttribute(NpcID.TopPole)]
        
//[NpcAttribute((NpcID)43431)]
        
public static void TopPole(Client.GameClient client, ServerSockets.Packet stream, byte Option, string Input, uint id)
     {
//code By: MrRayzo
            
Dialog data = new Dialog(client, stream);
            switch (
Option)
            {
                case 
0:
                    {
                        
data.AddText("Hi, I'm the leader of TopPole .. How can i help you? it start at 11:00");
                        
data.AddOption("Enter", 1);
                        
data.AddOption("Reward.", 2);
                        
data.AddOption("Just passing by..");
                        
data.AddAvatar(63).FinalizeDialog();
                        break;
                    }
                case 
1:
                    {
                        if (
Game.MsgTournaments.MsgTopPole.Proces == ProcesType.Alive)
                        {
                            
client.Player.Revive(stream);
                            
client.Teleport(90, 90, 1737);
                        }
                        else
                            
client.SendSysMesage("TopPole war has ben finished .. Please come back later at 11:00.");
                        break;
                    }
                case 
2:
                    {
                        if (
Game.MsgTournaments.MsgTopPole.Proces == ProcesType.Dead)
                        {
                            if (
Game.MsgTournaments.MsgTopPole.RoundOwner != null)
                            {
                                if (
Game.MsgTournaments.MsgTopPole.RoundOwner.UID == client.Player.UID)
                                {
                                    
client.Player.ConquerPoints += RayzoDrop.TopPole;
                                    
MsgSchedules.SendSysMesage("Congratulations, " + client.Player.Name + " has claim his reward from TopPole War .. 500,000 CPs.", MsgMessage.ChatMode.Center);
                                    
Game.MsgTournaments.MsgTopPole.RoundOwner = null;
                                }
                            }
                        }
                        break;
                    }
            }
        } 

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

كود:
TopPole = 43431, 

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

كود:
65056,Rayzo,10,1137,1737,70,67,1000000,1000000,17,1 

ونضيف الانبسى كمان

كود:
43431,TopPole,2,29200,1002,466,331,0,0,1,1 

سيبف وشغل وتوكل على الله كده الحمد لله الاضافه كامله ومتجربه لو فى حد واجهو مشاكلو
يقول عليها متنسوناش بصالح الدعاء ولو محتاجين حاجه اكتبوها فى التعلقيات
#MrRayzo



التعديل الأخير تم بواسطة ديسكو الفظيع ; 2021-01-19 الساعة 05:23 PM
قديم 2021-01-19, 05:24 PM
المشاركة 2
ديسكو الفظيع
.:: مشرف قسم التطوير ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
الله ينور

قديم 2021-01-19, 11:08 PM
المشاركة 3
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عاش يارايزو

قديم 2021-01-20, 02:18 AM
المشاركة 4
ALz3em
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عاش الله ينور
بالتوفيق ان شاء الله

قديم 2021-01-20, 11:48 AM
المشاركة 5
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
تسلمو يا رجاله

قديم 2021-01-20, 12:34 PM
المشاركة 6
lucky
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
how can i get this source?

قديم 2021-01-22, 12:36 AM
المشاركة 7
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
how can i get this source?
Buy

قديم 2021-01-22, 07:22 AM
المشاركة 8
lucky
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
Buy
ur discord?

قديم 2021-01-22, 02:40 PM
المشاركة 9
Mr~Rayzo
::. المدير العام ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
ur discord?
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع

قديم 2021-01-22, 02:47 PM
المشاركة 10
lucky
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: اضافه حرب عمود للاعبين فى سورس اللكس
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
my fb can't login only discord


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: اضافه حرب عمود للاعبين فى سورس اللكس
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مشكله ف عمود الجيلد وير والسوبر abuhaneen مشكلات السيرفيرات كونكر الشخصيه 11 2020-06-27 12:37 AM
عندى مشكلة ف عمود الجيلد وار abdocoder مشكلات السيرفيرات كونكر الشخصيه 4 2020-04-03 10:52 PM
مشكلة في عمود الوار ElSaher مشكلات السيرفيرات كونكر الشخصيه 6 2020-03-09 01:34 PM
اعمل شفرات للاعبين و للـناس الـvip زى السيرفر الاول عـ العالـم Ahmeed Sheeko تطوير سيرفرات كونكر 3 2019-08-01 10:08 PM
اعمل حظر ip للاعبين Hazem تطوير سيرفرات كونكر 2 2019-06-25 05:33 AM


الساعة الآن 06:19 AM