احصائياتى

الردود
16

المشاهدات
1640
 
Rider
.:: نائب المدير ::.

    غير متواجد

المشاركات
2,604

+التقييم
0.98

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

الاقامة

نظام التشغيل

رقم العضوية
358
2019-10-29, 01:17 AM
المشاركة 1
2019-10-29, 01:17 AM
المشاركة 1
افتراضي اضافة رانك الوحوش [Proto]

قد وجب التنبيه ان هذا الشرح منقول منعفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع

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

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

كود:
using ProtoBuf;
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Collections.Concurrent;
using System.Text;
using VirusX;
using VirusX.Database;
using System.Threading.Tasks;
 
namespace 
VirusX.Network.GamePackets
{
    public class 
MsgBossHarmRanking
    
{
        public 
MsgBossHarmRanking() { }
        public 
MsgBossHarmRankingProto Info;
        [
ProtoContract]
        public class 
MsgBossHarmRankingProto
        
{
            [
ProtoMember(1, IsRequired = true)]
            public 
uint 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;
        }
        public 
bool Read(byte[] packet)
        {
            
using (var memoryStream = new MemoryStream(packet))
            {
                
Info = Serializer.DeserializeWithLengthPrefix<MsgBossHarmRankingProto>(memoryStream, PrefixStyle.Fixed32);
            }
            return 
true;
        }
        public 
void Ready(VirusX.Client.GameState client)
        {
            var 
proto = new MsgBossHarmRankingProto();
            
proto.BossUID = Info.BossUID;
            
proto.Type = 1;
            
/* var scores = client.Map.Entities.Where(i => i.Key == proto.BossUID).FirstOrDefault().Value.MonsterInfo.Score.OrderByDescending(i => i.Value).ToArray();
             if (scores.Length != 0)
             {
                 proto.Hunters = new Hunter[scores.Length];
                 for (int i = 0; i < proto.Hunters.Length; i++)
                 {
                     proto.Hunters[i] = new Hunter();
                     proto.Hunters[i].UID = scores[i].Key.UID;
                     proto.Hunters[i].Name = scores[i].Key.Name;
                     proto.Hunters[i].Damage = scores[i].Value;
                     proto.Hunters[i].ServerID = scores[i].Key.ServerID;
                     proto.Hunters[i].Rank = (uint)(i + 1);
                 }
             } */
            
client.Send(Kernel.FinalizeProtoBuf(proto, 1044));
            
//client.Send(Kernel.FinalizeProtoBuf(Info, 3282));
        
}
        public 
void Handle(VirusX.Client.GameState client)
        {
            switch (
Info.Type)
            {
                case 
0:
                    {
                        var 
proto = new MsgBossHarmRankingProto();
                        
proto.BossUID = Info.BossUID;
                        
proto.Type = 1;
                        var 
scores = client.Map.Entities.Where(i => i.Key == proto.BossUID).FirstOrDefault().Value.MonsterInfo.Score.OrderByDescending(i => i.Value).ToArray();
                        if (
scores.Length != 0)
                        {
                            
proto.Hunters = new Hunter[scores.Length];
                            for (
int i = 0; i < proto.Hunters.Length; i++)
                            {
                                
proto.Hunters[i] = new Hunter();
                                
proto.Hunters[i].UID = scores[i].Key.UID;
                                
proto.Hunters[i].Name = scores[i].Key.Name;
                                
proto.Hunters[i].Damage = scores[i].Value;
                                
proto.Hunters[i].ServerID = scores[i].Key.ServerID;
                                
proto.Hunters[i].Rank = (uint)(i + 1);
                            }
                        }
                        
client.Send(Kernel.FinalizeProtoBuf(proto, 1044));
                        break;
                    }
            }
        }
    }
} 


بعد كده هنفتح packethandler.cs
و ننزل لحد البكتات و نرمي ده وسطهم

كود:
#region MsgBossHarmRanking
                
case 1044:
                    {
                        var 
pkt = new VirusX.Network.GamePackets.MsgBossHarmRanking();
                        var 
myPacket = new byte[packet.Length - 8];
                        for (
int i = 0; i < myPacket.Length; i++)
                        {
                            
myPacket[i] = packet[i];
                        }
                        if (
pkt.Read(myPacket))
                            
pkt.Handle(client);
                        break;
                    }
                
#endregion 

بعد كده هنروح MonsterTable.cs
و هرمي ده جواه

كود:
 public Dictionary<Game.Entity, uint> Score = new Dictionary<Game.Entity, uint>(); 

و اخيرا و ليس اخرا هنروح Monster.cs
و هنحط جواه ده

كود:
#region Monster Score
            
if (monster.EntityFlag == EntityFlag.Monster)
            {
                
//if (attacked.Boss > 0)
                
{
                    if (
monster.MonsterInfo != null)
                    {
                        if (
monster.MonsterInfo.Score.ContainsKey(client.Entity))
                            
monster.MonsterInfo.Score[client.Entity] += obj.Damage;
                        else 
monster.MonsterInfo.Score.Add(client.Entity, obj.Damage);
 
                        
//new VirusX.Network.GamePackets.MsgBossHarmRanking().Ready(attacker.Owner);
                    
}
                }
            }
            
#endregion 



قديم 2019-10-29, 04:37 AM
المشاركة 2
عمرو الجنرال
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
تسلم ايدك

قديم 2019-10-29, 07:57 AM
المشاركة 3
Hazem
.:: المدير العام::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عاش

قديم 2019-10-29, 08:25 AM
المشاركة 4
neno2052
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
ممتاز يا رايدر تسلم ايدك

قديم 2019-10-29, 10:47 AM
المشاركة 5
ElSaher
.:: مشرف اقسام كونكر ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عاش يا ريدوري

قديم 2019-10-29, 10:53 AM
المشاركة 6
ElSaher
.:: مشرف اقسام كونكر ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
نعملها بقي لي العادي

قديم 2019-10-29, 11:07 AM
المشاركة 7
ALz3em
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عاش

قديم 2019-10-29, 03:52 PM
المشاركة 8
ModyMohamedAdel
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عاش

قديم 2019-10-31, 04:09 AM
المشاركة 9
انت عمري
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عايزين نعمل موضوع دة في السيرفر

قديم 2019-11-01, 11:23 PM
المشاركة 10
HBESA
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: اضافة رانك الوحوش [Proto]
عاااااااااش


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



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

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

المواضيع المتشابهه للموضوع: اضافة رانك الوحوش [Proto]
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
اضافة الوحوش Hazem تطوير سيرفرات كونكر 34 2021-02-15 04:27 PM
رانك الوحوش ف ديتي لاند [RayzoV3] Rider تطوير سيرفرات كونكر 10 2020-12-29 09:40 PM
رانك البرفكشن Mostafa Shalby مشكلات السيرفيرات كونكر الشخصيه 3 2019-12-12 08:04 AM
مشكلة في رانك البيرفكشن Avengers-Co مشكلات السيرفيرات كونكر الشخصيه 4 2019-09-02 12:54 AM
اخيراااا Rayzo v2 Proto 2D Mr~Rayzo سورسات كونكر 87 2019-07-28 04:37 PM


الساعة الآن 06:31 PM