احصائياتى

الردود
13

المشاهدات
1231
 
Uchiha T3Alo
.:: عضو خبير ::.

المشاركات
563

+التقييم
0.24

تاريخ التسجيل
Mar 2020

الاقامة
Giza

نظام التشغيل
Windows 10 Pro

رقم العضوية
3670
2020-08-27, 04:15 AM
المشاركة 1
2020-08-27, 04:15 AM
المشاركة 1
Distinctive MsgBossHarmRanking For Source Alex Any Version
بسم الله الرحمن الرحيم وبه نستعين على الصراط المستقيم


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


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



كود:
MsgBossHarmRanking 

هترمى فيه الكلام الى ملهوش لازمه ده



كود:
using ProtoBuf;

namespace 
GameServer.Game.MsgServer
{
    public static 
unsafe partial class MsgBuilder
    
{
        public static 
unsafe ServerSockets.Packet CreateBossHarmRankList(this ServerSockets.Packet stream, MsgBossHarmRankingProto obj)
        {
            
stream.InitWriter();
            
stream.ProtoBufferSerialize(obj);
            
stream.Finalize(GamePackets.MsgBossHarmRanking);
            return 
stream;
        }
    }
    [
ProtoContract]
    public 
struct MsgBossHarmRankingProto
    
{
        [
ProtoMember(1, IsRequired = true)]
        public 
byte Type;
        [
ProtoMember(2, IsRequired = true)]
        public 
uint BossUID;
        [
ProtoMember(3, IsRequired = true)]
        public 
Hunter[] Hunters;
    }
    [
ProtoContract]
    public class 
Hunter
    
{
        [
ProtoMember(1, IsRequired = true)]
        public 
uint Rank;
        [
ProtoMember(2, IsRequired = true)]
        public 
uint ServerID;
        [
ProtoMember(3, IsRequired = true)]
        public 
uint UID;
        [
ProtoMember(4, IsRequired = true)]
        public 
string Name;
        [
ProtoMember(5, IsRequired = true)]
        public 
uint Damage;
    }
} 

ما تنساش تغير الاسم بتاع البروجكت من GameServer الى Project_Terror_v2 تمام


بعد كدا هنروح على كلاس MonsterRole وهنعمل الديكشنرى الجميلة بنت الجميلة ده



كود:
public Dictionary<uint, Hunter> Hunters = new Dictionary<uint, Hunter>(); 

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



كود:
   public void SendScore(ServerSockets.Packet stream, Client.GameClient killer, uint Damage)
        {
            try
            {
                if (!
Program.RankableFamilyIds.Contains(Family.ID))
                    return;
                if (
Hunters == null)
                    
Hunters = new Dictionary<uint, Hunter>();
                if (
Hunters.ContainsKey(killer.Player.UID))
                {
                    
Hunters[killer.Player.UID].Damage += Damage;
                }
                else if (!
Hunters.ContainsKey(killer.Player.UID))
                {
                    
Hunters.Add(killer.Player.UID, new Hunter() { UID = killer.Player.UID, Damage = Damage, Rank = 0, Name = killer.Player.Name, ServerID = killer.Player.ServerID });
                }
                if (
Hunters.Count == 0)
                    return;
                var array = 
this.Hunters.Values.OrderByDescending(p => p.Damage).ToArray();
                for (
int x = 0; x < array.Length; x++)
                {
                    array[
x].Rank = (uint)(x + 1);
                }
                
MsgServer.MsgBossHarmRankingProto Rank = new MsgServer.MsgBossHarmRankingProto();
                
Rank.BossUID = Family.ID;
                
Rank.Type = 1;
                
Rank.Hunters = array;
                
Send(stream.CreateBossHarmRankList(Rank));
                array = 
null;
            }
            catch (
Exception ex)
            {
                
MyConsole.WriteException(ex);
                
MyConsole.SaveException(ex);
            }
        } 

كدا مافيش اى مشاكل غير ليسته جاميلة تحط فيها كل اى دى الوحوش الكبيره الى حابب الرنك يشتغل فيها



كود:
  public static List<uint> RankableFamilyIds = new List<uint>() { 20300, 20160, 20070, 29370, 29360, 29300, 29363, 3976 }; 

كدا الرنك اضافته خلصت


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



كود:
    var array = Hunters.Values.OrderBy(p => p.Damage).Take(3).ToArray();
                            for (
int x = 0, y = 3; x < array.Length; x++, y--)
                            {
                                if (
x > array.Length)
                                    break;
                                
Database.Server.GamePoll[array[x].UID].Player.ConquerPoints += (uint)(y * 1000);
                            }
                            
uint Score = Hunters.ContainsKey(killer.Player.UID) == true ? Hunters[killer.Player.UID].Damage : 0;
                            
Hunters.Clear(); 


var array = Hunters.Values.OrderBy(p => p.Damage).Take(3).ToArray(); هنا انا بعمل فريبول اسمه مصفوفه وبطلب من الديكشنرى الى اسمها هانتر الى عملنها فوق انها ترتب الديكشنرى من حيث اعلى الدمج وتاخد 3 من الناس دول الى هما اول 3 بعد كدا بتبعتها


for (int x = 0, y = 3; x < array.Length; x++, y--)
{
if (x > array.Length)
break;
Database.Server.GamePoll[array[x].UID].Player.ConquerPoints += (uint)(y * 1000);
} هنا فور لوب وعملنا فريبول اسمه x وقولنا ان اكس ب0 وعوضنا عن فريبول y بتساوى 3 وقولنا ان ان المتغير اكس اخره الرقم الى حددناه فوق الى هو ال3 تمام ولو عملنا ان x<3 هيمشى عادى بس الاحسن تعمل السطر بتاع المصفوفه علشان ما تتلخفنش بعد كد قولنا ان يزود قيمه اكس بمقدار 1 الى هو ++ وينقص قيمه المتغير y بمقدر 1 الى هو -- تمام لغيت هنا وبعد كدا بنقول ان لو اكس قيمته اكبر من عدد المصفوفه يحصل بريك ويلغيها وبعد كدا كود الجوايز بقا الى تحت خالص الى هو قمنا باستدعاء المصفوفه الى عملنها فوق وشرطنا ان المصفوفه قيمتها تكون من اكس وربطنها بالميمبر uid وحددنا الجايزه سى بى وضربنا السى بى ده فى عدد القيم الى اختارنها من المصفوفه الى هما فى الاصل 3 وضربنهم فى 1000


uint Score = Hunters.ContainsKey(killer.Player.UID) == true ? Hunters[killer.Player.UID].Damage : 0;
Hunters.Clear(); هنا كل الحوار اننا عملنا متغير اسمه اسكور وعملين الكودين دول علشان يمسح الاسكور نفسه الى يخص الوحش علشان حضرتك ما تلبسش ان الوحش يفضل يضاعف الجوايز بسبب ان حضرتك نسيت تمسح القيم بعد ما يستلموا علشان ما يحصلش اى ثغره



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


قديم 2020-08-27, 04:19 AM
المشاركة 2
ElSaher
.:: مشرف اقسام كونكر ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
جميل جدا يا قلبي تسلم ايدك

قديم 2020-08-27, 04:39 AM
المشاركة 3
neno2052
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
thanks

قديم 2020-08-27, 09:37 AM
المشاركة 4
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
عاش والله ياحوده تسلم ايدك

قديم 2020-08-27, 11:10 AM
المشاركة 5
waelsoliman
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
عاش انا مبستخدمش اليكس بس لازم اشجعك انك نزلت حاجه نضيفة وبتفيد الناس عاش فعلا

قديم 2020-08-27, 12:08 PM
المشاركة 6
neno2052
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
رقم الباكت لان مش موجود عندي بنفس الاسم في الجيم باكتس بعد ازنك ؟

قديم 2020-08-27, 12:19 PM
المشاركة 7
Uchiha T3Alo
.:: عضو خبير ::.
  • غير متواجد
Distinctive رد: MsgBossHarmRanking For Source Alex Any Version
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
رقم الباكت لان مش موجود عندي بنفس الاسم في الجيم باكتس بعد ازنك ؟
اتفضل يا حج نادر الرقم قديم 1044 وفى الجديد رقموا 2001 اى حاجه تانى يا حج نادر ؟

قديم 2020-08-27, 12:24 PM
المشاركة 8
Lucifer
.:: مشرف اقسام كونكر ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
عاش

قديم 2020-08-27, 01:22 PM
المشاركة 9
abdohazem96
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: MsgBossHarmRanking For Source Alex Any Version
مش شغالة 2دي

قديم 2020-08-27, 01:42 PM
المشاركة 10
Uchiha T3Alo
.:: عضو خبير ::.
  • غير متواجد
questionmark رد: MsgBossHarmRanking For Source Alex Any Version
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
مش شغالة 2دي
هو ايه الى مش شغاله تو دى ؟ حضرتك الباكت ده يشتغل فى اى نسخه التو دى ولا الثرى دى العادى ولا حته البروتو ازاى مش شغال ولا انت بتسال ؟!


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



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

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

المواضيع المتشابهه للموضوع: MsgBossHarmRanking For Source Alex Any Version
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
Gui [alex Source] Rider تطوير سيرفرات كونكر 65 2021-08-10 11:58 PM
Lotttery item +8 [Source Alex] Rider تطوير سيرفرات كونكر 36 2020-11-21 12:55 PM
EliteGuildwar To Alex Source Tarek Y Fareed تطوير سيرفرات كونكر 9 2020-08-24 12:19 AM
How To Add BankCps To Source Alex Uchiha T3Alo تطوير سيرفرات كونكر 35 2020-06-13 11:55 AM
npc EpicWeapons[Source Alex] Rider تطوير سيرفرات كونكر 6 2019-11-25 10:18 PM


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