|
public unsafe class MsgRankMemberShow : Writer
{
public MsgRankMemberShow() { }
public MsgRankMemberShowProto Info;
[ProtoContract]
public class MsgRankMemberShowProto
{
[ProtoMember(1, IsRequired = true)]
public uint ActionId;
[ProtoMember(2, IsRequired = true)]
public MsgRankMemberShowProtoSer proto;
}
[ProtoContract]
public class MsgRankMemberShowProtoSer
{
[ProtoMember(1, IsRequired = true)]
public uint dwParam;
[ProtoMember(2, IsRequired = true)]
public uint Count;
[ProtoMember(3, IsRequired = true)]
public uint UID;
[ProtoMember(4, IsRequired = true)]
public string Name = "";
[ProtoMember(5, IsRequired = true)]
public string Guild = "";
[ProtoMember(6, IsRequired = true)]
public uint Mesh;
[ProtoMember(7, IsRequired = true)]
public uint HairStyle;
[ProtoMember(8, IsRequired = true)]
public uint Hat;
[ProtoMember(9, IsRequired = true)]
public uint Garment;
[ProtoMember(10, IsRequired = true)]
public uint LeftWep;
[ProtoMember(11, IsRequired = true)]
public uint LeftWepAcc;
[ProtoMember(12, IsRequired = true)]
public uint RightWep;
[ProtoMember(13, IsRequired = true)]
public uint RightWepAcc;
[ProtoMember(14, IsRequired = true)]
public uint MountArmor;
[ProtoMember(15, IsRequired = true)]
public uint Flag;
[ProtoMember(16, IsRequired = true)]
public uint Wing;
[ProtoMember(17, IsRequired = true)]
public uint WingLevel;
[ProtoMember(18, IsRequired = true)]
public uint Title;
[ProtoMember(19, IsRequired = true)]
public uint Flag2;
[ProtoMember(20, IsRequired = true)]
public uint Flag3;
[ProtoMember(21, IsRequired = true)]
public uint Flag4;
}
public void UpdateBestPlayer()
{
Stuff = new Dictionary<string, uint>();
BestPlayer = Network.GamePackets.MsgUserAbilityScore.RankingList.OrderByDescending(i => i.Prestige).ThenByDescending(i => i.Level).ThenBy(i => i.UID).FirstOrDefault();
if (BestPlayer == null) return;
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("EntityID", BestPlayer.UID).And("Position", 0, true))
using (var reader = new MySqlReader(cmd))
{
while (reader.Read())
{
if (reader.ReadByte("Position") == 5) Stuff.Add(GetPositionName(5), reader.ReadUInt32("ID"));
if (reader.ReadByte("Position") == 9) if (!Stuff.ContainsKey(GetPositionName(9))) Stuff.Add(GetPositionName(9), reader.ReadUInt32("ID"));
if (reader.ReadByte("Position") == 4) Stuff.Add(GetPositionName(4), reader.ReadUInt32("ID"));
if (reader.ReadByte("Position") == 19)
{
Stuff.Add(GetPositionName(19), reader.ReadUInt32("ID"));
Stuff.Add(GetPositionName(255), reader.ReadByte("Plus"));
}
}
if (!Stuff.Keys.Contains("MountArmor"))
{
using (var cmd2 = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("EntityID", BestPlayer.UID).And("Position", 0, true))
using (var reader2 = new MySqlReader(cmd2))
{
while (reader2.Read())
{
}
}
}
}
}
public static string GetPositionName(byte Position)
{
if (Position == 1) return "Hat";
if (Position == 3) return "Armor";
if (Position == 5) return "LeftWep";
if (Position == 9) return "Garment";
if (Position == 16) return "LeftWepAcc";
if (Position == 17) return "MountArmor";
if (Position == 4) return "RightWep";
if (Position == 15) return "RightWepAcc";
if (Position == 19) return "Wing";
if (Position == 255) return "WingLevel";
return "Unknwon";
}
public static Dictionary<string, uint> Stuff = new Dictionary<string, uint>();
public static Game.Player BestPlayer;
public void Handle(Client.GameState client)
{
if (BestPlayer == null) return;
switch (Info.ActionId)
{
case 0:
{
var proto2 = new MsgRankMemberShowProto();
proto2.ActionId = 0;
proto2.proto = new MsgRankMemberShowProtoSer();
proto2.proto.dwParam = 1;
proto2.proto.Count = 1;
proto2.proto.UID = BestPlayer.UID;
//proto2.proto.HairStyle = BestPlayer.HairStyle;
proto2.proto.Mesh = BestPlayer.Mesh;
proto2.proto.Name = BestPlayer.Name;
if (BestPlayer.GuildID != 0)
proto2.proto.Guild = Kernel.Guilds[BestPlayer.GuildID].Name;
proto2.proto.Hat = Stuff.Where(i => i.Key == "Hat").FirstOrDefault().Value;
proto2.proto.LeftWep = Stuff.Where(i => i.Key == "LeftWep").FirstOrDefault().Value;
proto2.proto.LeftWepAcc = Stuff.Where(i => i.Key == "LeftWepAcc").FirstOrDefault().Value;
proto2.proto.MountArmor = Stuff.Where(i => i.Key == "MountArmor").FirstOrDefault().Value;
proto2.proto.Garment = Stuff.Where(i => i.Key == "Garment").FirstOrDefault().Value;
proto2.proto.RightWep = Stuff.Where(i => i.Key == "RightWep").FirstOrDefault().Value;
proto2.proto.RightWepAcc = Stuff.Where(i => i.Key == "RightWepAcc").FirstOrDefault().Value;
proto2.proto.WingLevel = Stuff.Where(i => i.Key == "WingLevel").FirstOrDefault().Value;
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("entities").Where("UID", BestPlayer.UID))
using (var reader = new MySqlReader(cmd))
{
while (reader.Read())
{
proto2.proto.HairStyle = reader.ReadUInt32("HairStyle");
//Console.WriteLine(proto2.proto.HairStyle + " and " + BestPlayer.HairStyle);
proto2.proto.Wing = reader.ReadUInt32("WingID");
proto2.proto.Title = reader.ReadUInt32("TitleID");
}
}
//if (Kernel.GamePool.ContainsKey(BestPlayer.UID))
//{
// proto2.proto.Flag = (uint)Kernel.GamePool[BestPlayer.UID].Entity.StatusFlag;
// proto2.proto.Flag2 = (uint)Kernel.GamePool[BestPlayer.UID].Entity.StatusFlag2;
// proto2.proto.Flag3 = (uint)Kernel.GamePool[BestPlayer.UID].Entity.StatusFlag3;
// proto2.proto.Flag4 = (uint)Kernel.GamePool[BestPlayer.UID].Entity.StatusFlag4;
//}
client.Send(Kernel.FinalizeProtoBuf(proto2, 3257));
break;
}
case 1:
{
if (Kernel.GamePool.ContainsKey(Info.proto == null ? 0 : Info.proto.dwParam))
{
PacketHandler.ObserveEquipment(new MsgActionProto() { ID = 117, UID = client.Entity.UID, dwParam = Info.proto == null ? 0 : Info.proto.dwParam }, client);
}
else
{
client.Send(Kernel.FinalizeProtoBuf(Info, 3257));
}
break;
}
}
}
public bool Read(byte[] packet)
{
var mypkt = new byte[packet.Length - 4];
Array.Copy(packet, 4, mypkt, 0, mypkt.Length);
try
{
using (var memoryStream = new MemoryStream(packet))
{
Info = Serializer.DeserializeWithLengthPrefix<MsgRankMemberShowProto>(memoryStream, PrefixStyle.Fixed32);
}
}
catch (Exception e)
{
Console.WriteLine(e);
return false;
}
return true;
}
}
public uint Prestige
{
get
{
if (Owner == null) return totalperfectionscore_;
uint points = 0;
points += Owner.Equipment.GetFullEquipmentEnumPoints;
points += Owner.Equipment.GetFullEquipmentSocketPoints;
points += Owner.Equipment.GetFullEquipmentGemPoints;
points += Owner.Equipment.GetFullEquipmentPlusPoints;
points += Owner.Equipment.GetFullEquipmentBlessPoints;
points += Owner.Equipment.GetFullEquipmentRefinePoints;
points += Owner.Equipment.GetFullEquipmentSoulPoints;
points += Owner.Equipment.GetFullEquipmentEnchantPoints;
points += Owner.Equipment.GetFullEquipmentPerfecetionLevelPoints;
points += Owner.Equipment.GetFullEquipmentLevelPoints;
points += (uint)MsgUserAbilityScore.CalculatePerfectionChiPoints(Owner);
points += (uint)MsgUserAbilityScore.CalculatePerfectionJiangPoints(Owner);
points += (uint)((Vitality + Spirit + Strength + Agility + Atributes) * 5);
points += (uint)(Level < 140 ? Level * 20 : Level * 25);
if (InnerPower != null) points += InnerPower.TotalScore * 2;
points += (uint)((uint)NobilityRank * 1000);
points += (uint)(Reborn * 1000);
points += (Database.StorageItem.PerfectionPoints(Owner, true));
points += (Database.StorageItem.PerfectionPoints(Owner, false));
points += (uint)(MsgUserAbilityScore.CalculateSubClassPoints(Owner));
return points;
}
set
{
totalperfectionscore_ = value;
}
}
DateTime LastPerfectionSort = DateTime.Now;
new MsgUserAbilityScore().GetRankingList();
new MsgEquipRefineRank().UpdateRanking();
new MsgRankMemberShow().UpdateBestPlayer();
PrestigeRank.LoadRanking();
MsgRankMemberShow().UpdateBestPlayer();
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
أدوات الموضوع | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
صفحة الجبل الاصليه | محمد ياسر | صفحات التسجيل كونكر اونلاين | 90 | يوم أمس 02:06 AM |
[5095] خلي الي يموت يظهر عليه افكت كلمة نوب | Tefa | تطوير سورسات 5095 | 46 | 2024-11-12 03:57 PM |
محتاج برنمج اظهار ملفات الdds صور | ismailgoda000 | تطوير سيرفرات كونكر | 1 | 2021-09-20 08:47 PM |
ازاي تخلي الوحوش تمها يظهر خوش هنااا | ElSaher | تطوير سيرفرات كونكر | 0 | 2020-04-03 07:44 AM |
InnerPowerFull من ضفطه واحده يظهر عند الناس كلها | zezonever | تطوير سيرفرات كونكر | 11 | 2019-11-08 11:50 PM |