public UInt64 TopStatusToInt(UInt64 top)
switch (top) {
case Network.GamePackets.Update.Flags2.TopMonk: return 7; case Network.GamePackets.Update.Flags2.TopPirate: return 22; case Network.GamePackets.Update.Flags3.DragonWarriorTop: return 260;
class Flags {
public static string TopPirate = ""; public static string TopMonk = ""; public static string DragonWarriorTop = "";
public class Flags3
DragonWarriorTop = 1UL << 154,
LoadFlags()
while (r.Read()) {
TopMonk = r.ReadString("TopMonk"); TopPirate = r.ReadString("TopPirate"); DragonWarriorTop = r.ReadString("DragonWarriorTop");
public static void LoadFlags()
public static void AddTopMonk(Client.GameState client) { new MySqlCommand(MySqlCommandType.UPDATE).Update("flags").Set("TopMonk", client.Player.Name).Execute(); TopMonk = client.Player.Name; return; } public static void AddTopPirate(Client.GameState client) { new MySqlCommand(MySqlCommandType.UPDATE).Update("flags").Set("TopPirate", client.Player.Name).Execute(); TopPirate = client.Player.Name; return; } public static void AddDragonWarriorTop(Client.GameState client) { new MySqlCommand(MySqlCommandType.UPDATE).Update("flags").Set("DragonWarriorTop", client.Player.Name).Execute(); DragonWarriorTop = client.Player.Name; return; }
public class Flags2
TopMonk = 0x4000000000000L, TopPirate = 1UL << 58;
public double DragonGems;
public void AddTopStatus(UInt64 Title, byte flagtype, DateTime EndsOn, Boolean Db = true) { Boolean HasFlag = false; if (IsWarTop(Title)) { HasFlag = Titles.ContainsKey((TitlePacket.Titles)Title); Titles.TryAdd((TitlePacket.Titles)Title, EndsOn); } else { switch (flagtype) { case 1: HasFlag = ContainsFlag(Title); AddFlag(Title); break; case 2: HasFlag = ContainsFlag2(Title); AddFlag2(Title); break; case 3: HasFlag = ContainsFlag3(Title); AddFlag3(Title); break; case 4: HasFlag = ContainsFlag4(Title); AddFlag4(Title); break; } } if (Db) { if (HasFlag) { MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE); cmd.Update("status").Set("time", Kernel.ToDateTimeInt(EndsOn)) .Where("status", Title).And("flagtype", flagtype).And("entityid", (UInt32)UID); cmd.Execute(); } else { MySqlCommand cmd = new MySqlCommand(MySqlCommandType.INSERT); cmd.Insert("status").Insert("entityid", (UInt32)UID).Insert("status", Title).Insert("flagtype", flagtype).Insert("time", Kernel.ToDateTimeInt(EndsOn)); cmd.Execute(); } } } public void RemoveTopStatus(UInt64 Title, byte flagtype = 0) { ulong baseFlag = Title;//TopStatusToInt(Title); MySqlCommand cmd = new MySqlCommand(MySqlCommandType.DELETE); cmd.Delete("status", "entityid", UID).And("status", baseFlag).And("flagtype", flagtype).Execute(); switch (flagtype) { case 0: { var title = (TitlePacket.Titles)baseFlag; if (Titles.ContainsKey(title)) { Titles.Remove(title); if (MyTitle1 == title) MyTitle1 = Network.GamePackets.TitlePacket.Titles.None; Owner.SendScreenSpawn(this, true); } break; } case 1: RemoveFlag(baseFlag); break; case 2: RemoveFlag2(baseFlag); break; case 3: RemoveFlag3(baseFlag); break; case 4: RemoveFlag4(baseFlag); break; } }
client.Player.AddTopStatus(Update.Flags2.TopPirate, 2, DateTime.Now.AddMinutes(45));