مشاهدة النسخة كاملة : ي شباب بردو لسه محدش فادني بحاجه واللي قولتلو عليه انا جربتو
Tyranny-Team's
2020-04-18, 10:33 PM
الدونيشن تايم DonationTime
بردو ي شباب الدونيشن مش بيدي لا بور ولا بيدي الرانك بيفضل زي ما هو
وراجعت كل الأضافات اللي ضيفتها الاضافه تمام ومفيهاش حاجه
بس بردو انا مش عارف الغلط فين ممكن حل لو سمحت دي تاني مره انزل نفس الموضوع ومتحلش
Tyranny-Team's
2020-04-19, 07:27 AM
لينك الأضافه
عفواً لايمكن عرض الروابط في الإرشيف
شوف اتشيك باتل بور كله والجزء الخاص فيه بالنوبلتي
Tyranny-Team's
2020-04-20, 02:28 AM
وضح كلاس نوبيلتي عندك
حاطو ف Network
و صوره اهي
عفواً لايمكن عرض الروابط في الإرشيف (عفواً لايمكن عرض الروابط في الإرشيف)
Tyranny-Team's
2020-04-20, 02:30 AM
شوف اتشيك باتل بور كله والجزء الخاص فيه بالنوبلتي
مفهوش مشاكل ي صاحبي انا بقالي اسبوع بشوف فين السبب مش عارف وغيرت مكان الكلاس كتير و ف الاخر حطيتو ف Network
ElSaher
2020-04-20, 02:55 AM
جرب كدا غير الnpc بتاعك
Tyranny-Team's
2020-04-21, 01:04 AM
جرب كدا غير الnpc بتاعك
غيرتو اكتر من مره
حاطو ف Network
و صوره اهي
ده مش كلاس نوبيلتي
Nobility.cs
Tyranny-Team's
2020-04-22, 01:14 AM
ده مش كلاس نوبيلتي
Nobility.cs
اسف مخدتش بالي بحسبك عايز النوبيلتي تايمر
دا ملف النوبيلتي اللي عندي
عفواً لايمكن عرض الروابط في الإرشيف
جرب تحط ده مكان الي عندك
using System;
using System.Linq;
using System.Collections.Generic;
using AlgbrooT.Network.GamePackets;
using System.IO;
namespace AlgbrooT.Game.ConquerStructures
{
public class Nobility : AlgbrooT.Network.Writer
{
public static ulong MaxDonation = 0;
public static ulong MaxDonation1 = 0;
public static ulong MaxDonation2 = 0;
public static SafeDictionary<uint, NobilityInformation> Board = new SafeDictionary<uint, NobilityInformation>(10000);
public static List<NobilityInformation> BoardList = new List<NobilityInformation>(10000);
public static void Handle(NobilityInfo information, Client.GameState client)
{
switch (information.Type)
{
case NobilityInfo.Donate:
{
if (client.NobilityTimer.Donation == 1 || client.NobilityTimer.Donation == 2 || client.NobilityTimer.Donation == 3)
{
client.MessageBox("Sorry U Can't Donate Now.", null, null, 60);
return;
}
if (client.Trade.InTrade)
return;
if (client.Player.PokerHack == true)
return;
ulong silvers = information.dwParam;
bool newDonator = false;
client.NobilityInformation.Gender = (byte)(client.Player.Body % 10);
if (client.NobilityInformation.Donation == 0)
newDonator = true;
if (information.MoneyType == 1)
{
ulong cps = silvers / 1;
if (client.Player.ConquerPoints >= cps)
{
client.Player.ConquerPoints -= (uint)cps;
client.NobilityInformation.Donation += silvers;
}
}
else
{
if (client.Player.Money >= cps)
{
client.Player.Money -= (ulong)cps;
client.NobilityInformation.Donation += cps;
}
}
if (!Board.ContainsKey(client.Player.UID) && client.NobilityInformation.Donation == silvers && newDonator)
{
Board.Add(client.Player.UID, client.NobilityInformation);
try
{
Database.NobilityTable.InsertNobilityInformation(c lient.NobilityInformation);
}
catch
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
}
else
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
Sort(client.Player.UID);
break;
}
case NobilityInfo.List:
{
byte[] packet = new byte[600 + 8];
WriteUInt16(600, 0, packet);
WriteUInt16(2064, 2, packet);
WriteUInt16(2, 4, packet);
WriteUInt16(5, 10, packet);
WriteUInt16(10, 12, packet);
int offset = 120;
for (int i = (int)(information.wParam1 * 10); i < information.wParam1 * 10 + 10 && i < BoardList.Count; i++)
{
var nob = BoardList[i];
WriteUInt32(nob.EntityUID, offset, packet);
offset += 4;
if (Kernel.GamePool.ContainsKey(nob.EntityUID))
{
WriteUInt32(1, offset, packet);
offset += 4;
WriteUInt32(nob.Mesh, offset, packet);
offset += 4;
}
else
{
offset += 8;
}
WriteString(nob.Name, offset, packet);
offset += 20;
WriteUInt64(nob.Donation, offset, packet);
offset += 8;
WriteUInt32((uint)nob.Rank, offset, packet);
offset += 4;
WriteUInt32((uint)i, offset, packet);
offset += 4;
}
client.Send(packet);
information.Type = NobilityInfo.NextRank;
ulong value = 0;
information.dwParam2 = 0;
lock (BoardList)
{
if (client.NobilityInformation.Rank == NobilityRank.Prince)
value = (ulong)(BoardList[02].Donation - client.NobilityInformation.Donation + 1);
if (client.NobilityInformation.Rank == NobilityRank.Duke)
value = (ulong)(BoardList[14].Donation - client.NobilityInformation.Donation + 1);
}
Network.Writer.WriteUInt64(value, 8, information.ToArray());
information.dwParam3 = 60;
information.dwParam4 = uint.MaxValue;
client.Send(information);
break;
}
}
}
public static void Donate(ulong silvers, Client.GameState client)
{
bool newDonator = false;
client.NobilityInformation.Gender = (byte)(client.Player.Body % 10);
if (client.NobilityInformation.Donation == 0)
newDonator = true;
client.NobilityInformation.Donation += silvers;
if (!Board.ContainsKey(client.Player.UID) && client.NobilityInformation.Donation == silvers && newDonator)
{
Board.Add(client.Player.UID, client.NobilityInformation);
try
{
Database.NobilityTable.InsertNobilityInformation(c lient.NobilityInformation);
}
catch
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
}
else
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
Sort(client.Player.UID);
}
public static void Sort(uint updateUID)
{
SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>();
int Place = 0;
foreach (NobilityInformation entry in Board.Values.OrderByDescending((p) => p.Donation))
{
Client.GameState client = null;
try
{
int previousPlace = entry.Position;
entry.Position = Place;
NobilityRank Rank = NobilityRank.Serf;
if (Place >= 5000)
{
if (entry.Donation == 1)
{
Rank = NobilityRank.King;
}
else if (entry.Donation == 2)
{
Rank = NobilityRank.Prince;
}
else if (entry.Donation == 3)
{
Rank = NobilityRank.Duke;
}
else if (entry.Donation >= 5000)
{
Rank = NobilityRank.Earl;
}
else if (entry.Donation >= 1000)
{
Rank = NobilityRank.Baron;
}
else if (entry.Donation >= 300)
{
Rank = NobilityRank.Knight;
}
}
else
{
if (Place < 10||entry.Donation == 1)//serverrank
{
Rank = NobilityRank.King;
if (Place < (10))
{
MaxDonation = entry.Donation;
}
}
else if (Place < 32||entry.Donation == 2)
{
Rank = NobilityRank.Prince;
if (Place < (32))
{
MaxDonation1 = entry.Donation;
}
}
else if (Place < 5000||entry.Donation == 3)
{
Rank = NobilityRank.Duke;
if (Place < (5000))
{
MaxDonation2 = entry.Donation;
}
}
}
var oldRank = entry.Rank;
entry.Rank = Rank;
if (Kernel.GamePool.TryGetValue(entry.EntityUID, out client))
{
bool updateTheClient = false;
if (oldRank != Rank)
{
updateTheClient = true;
if (Rank == NobilityRank.Baron)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " For New Rank [ Baron ] In [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
if (Rank == NobilityRank.Earl)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " For New Rank [ Earl ] In [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
if (Rank == NobilityRank.Duke)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has the " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "Duke" : "Duchess") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.Prince)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has the " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "Prince" : "Princess") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.King)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has become the New " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "King" : "Queen") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.Knight)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has become a Knight By [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
}
else
{
if (previousPlace != Place)
{
updateTheClient = true;
}
}
if (updateTheClient || client.Player.UID == updateUID)
{
NobilityInfo update = new NobilityInfo(true);
update.Type = NobilityInfo.Icon;
update.dwParam = entry.EntityUID;
update.UpdateString(entry);
client.SendScreen(update, true);
client.Player.NobilityRank = entry.Rank;
}
}
sortedBoard.Add(entry.EntityUID, entry);
Place++;
}
catch { }
}
Board = sortedBoard;
lock (BoardList)
BoardList = Board.Values.ToList();
}
public static void Delet(Client.GameState client)
{
if (Game.ConquerStructures.Nobility.Board.ContainsKey (client.Player.UID))
{
Game.ConquerStructures.Nobility.Board.Remove(clien t.Player.UID);
Game.ConquerStructures.Nobility.Sort(0);
foreach (var clients in Program.GamePool)
{
if (Game.ConquerStructures.Nobility.Board.ContainsKey (clients.Player.UID))
Game.ConquerStructures.Nobility.Sort(client.Player .UID);
}
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.DE LETE).Delete("nobility", "EntityUID", client.Player.UID);
cmd.Execute();
}
}
public static ulong cps { get; set; }
}
public class NobilityInformation
{
public string Name;
public uint EntityUID;
public uint Mesh;
public ulong Donation;
public byte Gender;
public int Position;
public NobilityRank Rank;
public bool king;
public DateTime KingDays;
}
public enum NobilityRank : byte
{
Serf = 0,
Knight = 1,
Baron = 3,
Earl = 5,
Duke = 7,
Prince = 9,
King = 12
}
}
Tyranny-Team's
2020-04-22, 02:46 PM
تسلم جدا ي رايدر
مخدتش بالي ومجربتش النقطه دي
if (Place < 10||entry.Donation == 1)//serverrank
{
Rank = NobilityRank.King;
if (Place < (10))
{
MaxDonation = entry.Donation;
}
}
else if (Place < 32||entry.Donation == 2)
{
Rank = NobilityRank.Prince;
if (Place < (32))
{
MaxDonation1 = entry.Donation;
}
}
else if (Place < 5000||entry.Donation == 3)
{
Rank = NobilityRank.Duke;
if (Place < (5000))
{
MaxDonation2 = entry.Donation;
}
}
}
karem1q
2023-11-05, 02:03 PM
جرب تحط ده مكان الي عندك
using System;
using System.Linq;
using System.Collections.Generic;
using AlgbrooT.Network.GamePackets;
using System.IO;
namespace AlgbrooT.Game.ConquerStructures
{
public class Nobility : AlgbrooT.Network.Writer
{
public static ulong MaxDonation = 0;
public static ulong MaxDonation1 = 0;
public static ulong MaxDonation2 = 0;
public static SafeDictionary<uint, NobilityInformation> Board = new SafeDictionary<uint, NobilityInformation>(10000);
public static List<NobilityInformation> BoardList = new List<NobilityInformation>(10000);
public static void Handle(NobilityInfo information, Client.GameState client)
{
switch (information.Type)
{
case NobilityInfo.Donate:
{
if (client.NobilityTimer.Donation == 1 || client.NobilityTimer.Donation == 2 || client.NobilityTimer.Donation == 3)
{
client.MessageBox("Sorry U Can't Donate Now.", null, null, 60);
return;
}
if (client.Trade.InTrade)
return;
if (client.Player.PokerHack == true)
return;
ulong silvers = information.dwParam;
bool newDonator = false;
client.NobilityInformation.Gender = (byte)(client.Player.Body % 10);
if (client.NobilityInformation.Donation == 0)
newDonator = true;
if (information.MoneyType == 1)
{
ulong cps = silvers / 1;
if (client.Player.ConquerPoints >= cps)
{
client.Player.ConquerPoints -= (uint)cps;
client.NobilityInformation.Donation += silvers;
}
}
else
{
if (client.Player.Money >= cps)
{
client.Player.Money -= (ulong)cps;
client.NobilityInformation.Donation += cps;
}
}
if (!Board.ContainsKey(client.Player.UID) && client.NobilityInformation.Donation == silvers && newDonator)
{
Board.Add(client.Player.UID, client.NobilityInformation);
try
{
Database.NobilityTable.InsertNobilityInformation(c lient.NobilityInformation);
}
catch
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
}
else
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
Sort(client.Player.UID);
break;
}
case NobilityInfo.List:
{
byte[] packet = new byte[600 + 8];
WriteUInt16(600, 0, packet);
WriteUInt16(2064, 2, packet);
WriteUInt16(2, 4, packet);
WriteUInt16(5, 10, packet);
WriteUInt16(10, 12, packet);
int offset = 120;
for (int i = (int)(information.wParam1 * 10); i < information.wParam1 * 10 + 10 && i < BoardList.Count; i++)
{
var nob = BoardList[i];
WriteUInt32(nob.EntityUID, offset, packet);
offset += 4;
if (Kernel.GamePool.ContainsKey(nob.EntityUID))
{
WriteUInt32(1, offset, packet);
offset += 4;
WriteUInt32(nob.Mesh, offset, packet);
offset += 4;
}
else
{
offset += 8;
}
WriteString(nob.Name, offset, packet);
offset += 20;
WriteUInt64(nob.Donation, offset, packet);
offset += 8;
WriteUInt32((uint)nob.Rank, offset, packet);
offset += 4;
WriteUInt32((uint)i, offset, packet);
offset += 4;
}
client.Send(packet);
information.Type = NobilityInfo.NextRank;
ulong value = 0;
information.dwParam2 = 0;
lock (BoardList)
{
if (client.NobilityInformation.Rank == NobilityRank.Prince)
value = (ulong)(BoardList[02].Donation - client.NobilityInformation.Donation + 1);
if (client.NobilityInformation.Rank == NobilityRank.Duke)
value = (ulong)(BoardList[14].Donation - client.NobilityInformation.Donation + 1);
}
Network.Writer.WriteUInt64(value, 8, information.ToArray());
information.dwParam3 = 60;
information.dwParam4 = uint.MaxValue;
client.Send(information);
break;
}
}
}
public static void Donate(ulong silvers, Client.GameState client)
{
bool newDonator = false;
client.NobilityInformation.Gender = (byte)(client.Player.Body % 10);
if (client.NobilityInformation.Donation == 0)
newDonator = true;
client.NobilityInformation.Donation += silvers;
if (!Board.ContainsKey(client.Player.UID) && client.NobilityInformation.Donation == silvers && newDonator)
{
Board.Add(client.Player.UID, client.NobilityInformation);
try
{
Database.NobilityTable.InsertNobilityInformation(c lient.NobilityInformation);
}
catch
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
}
else
{
Database.NobilityTable.UpdateNobilityInformation(c lient.NobilityInformation);
}
Sort(client.Player.UID);
}
public static void Sort(uint updateUID)
{
SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>();
int Place = 0;
foreach (NobilityInformation entry in Board.Values.OrderByDescending((p) => p.Donation))
{
Client.GameState client = null;
try
{
int previousPlace = entry.Position;
entry.Position = Place;
NobilityRank Rank = NobilityRank.Serf;
if (Place >= 5000)
{
if (entry.Donation == 1)
{
Rank = NobilityRank.King;
}
else if (entry.Donation == 2)
{
Rank = NobilityRank.Prince;
}
else if (entry.Donation == 3)
{
Rank = NobilityRank.Duke;
}
else if (entry.Donation >= 5000)
{
Rank = NobilityRank.Earl;
}
else if (entry.Donation >= 1000)
{
Rank = NobilityRank.Baron;
}
else if (entry.Donation >= 300)
{
Rank = NobilityRank.Knight;
}
}
else
{
if (Place < 10||entry.Donation == 1)//serverrank
{
Rank = NobilityRank.King;
if (Place < (10))
{
MaxDonation = entry.Donation;
}
}
else if (Place < 32||entry.Donation == 2)
{
Rank = NobilityRank.Prince;
if (Place < (32))
{
MaxDonation1 = entry.Donation;
}
}
else if (Place < 5000||entry.Donation == 3)
{
Rank = NobilityRank.Duke;
if (Place < (5000))
{
MaxDonation2 = entry.Donation;
}
}
}
var oldRank = entry.Rank;
entry.Rank = Rank;
if (Kernel.GamePool.TryGetValue(entry.EntityUID, out client))
{
bool updateTheClient = false;
if (oldRank != Rank)
{
updateTheClient = true;
if (Rank == NobilityRank.Baron)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " For New Rank [ Baron ] In [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
if (Rank == NobilityRank.Earl)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " For New Rank [ Earl ] In [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
if (Rank == NobilityRank.Duke)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has the " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "Duke" : "Duchess") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.Prince)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has the " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "Prince" : "Princess") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.King)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has become the New " + (string)(Network.PacketHandler.IsBoy(entry.Mesh % 10000) == true ? "King" : "Queen") + " In [Tyranny-Online].", System.Drawing.Color.White, Message.Center), Program.Values);
}
if (Rank == NobilityRank.Knight)
{
Kernel.SendWorldMessage(new Message("Congratulation! " + client.Player.Name + " has become a Knight By [Tyranny-Online].", System.Drawing.Color.White, Message.TopLeft), Program.Values);
}
}
else
{
if (previousPlace != Place)
{
updateTheClient = true;
}
}
if (updateTheClient || client.Player.UID == updateUID)
{
NobilityInfo update = new NobilityInfo(true);
update.Type = NobilityInfo.Icon;
update.dwParam = entry.EntityUID;
update.UpdateString(entry);
client.SendScreen(update, true);
client.Player.NobilityRank = entry.Rank;
}
}
sortedBoard.Add(entry.EntityUID, entry);
Place++;
}
catch { }
}
Board = sortedBoard;
lock (BoardList)
BoardList = Board.Values.ToList();
}
public static void Delet(Client.GameState client)
{
if (Game.ConquerStructures.Nobility.Board.ContainsKey (client.Player.UID))
{
Game.ConquerStructures.Nobility.Board.Remove(clien t.Player.UID);
Game.ConquerStructures.Nobility.Sort(0);
foreach (var clients in Program.GamePool)
{
if (Game.ConquerStructures.Nobility.Board.ContainsKey (clients.Player.UID))
Game.ConquerStructures.Nobility.Sort(client.Player .UID);
}
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.DE LETE).Delete("nobility", "EntityUID", client.Player.UID);
cmd.Execute();
}
}
public static ulong cps { get; set; }
}
public class NobilityInformation
{
public string Name;
public uint EntityUID;
public uint Mesh;
public ulong Donation;
public byte Gender;
public int Position;
public NobilityRank Rank;
public bool king;
public DateTime KingDays;
}
public enum NobilityRank : byte
{
Serf = 0,
Knight = 1,
Baron = 3,
Earl = 5,
Duke = 7,
Prince = 9,
King = 12
}
}
عاش
vBulletin® v3.8.8 Beta 1, Copyright ©2000-2024, TranZ by code