|
|
|
المشاركات 563 |
+التقييم 0.24 |
تاريخ التسجيل Mar 2020 |
الاقامة Giza |
نظام التشغيل Windows 10 Pro |
رقم العضوية 3670 |
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;
}
}
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 };
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();
|
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| 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 |