public static void CreateArsenal(uint s_id, Arsenal_ID id) { MySqlCommand Command = new MySqlCommand(MySqlCommandType.INSERT); Command.Insert("pt_arsenal") .Insert("syn_id", s_id) .Insert("arsenal_id", (byte)id) .Insert("arsenal_unlocked", 1) .Execute(); }
public static void CreateArsenalItem(uint uid, string name, uint i_uid, ushort sid, Arsenal_ID aid) { MySqlCommand Command = new MySqlCommand(MySqlCommandType.INSERT); Command.Insert("pt_arsenal_inscribed") .Insert("uid", uid) .Insert("name", name) .Insert("iten_id", i_uid) .Insert("iten_atype", (byte)aid) .Insert("syn_id", sid) .Execute(); }
public static byte[] ArsenalInscribedPage(GameState Client, byte[] Data, Arsenal_ID ID) { byte[] Buffer = null; Arsenal_Client[] Inscribed = null; uint Page = (byte)(BitConverter.ToUInt32(Data, 12) / 8); Again: try { Inscribed = new Arsenal_Client[Client.Guild.Arsenal.Arsenals[ID].Inscribed.Count]; Client.Guild.Arsenal.Arsenals[ID].Inscribed.Values.CopyTo(Inscribed, 0); } catch { goto Again; } int Position = 44; int count = Inscribed.Length; if (count > 8) count = 8; Buffer = new byte[84 + (count * 40) + 8]; for (int i = 0; i < 20; i++) Buffer[i] = Data[i]; Writer.WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer); Writer.WriteUInt32((uint)Inscribed.Length, 20, Buffer); Writer.WriteUInt32((uint)Client.Guild.Arsenal.Arsenals[ID].Donation, 36, Buffer); Writer.WriteUInt32((uint)Inscribed.Length, 40, Buffer); for (uint i = BitConverter.ToUInt32(Data, 8); i <= BitConverter.ToUInt32(Data, 12); i++) { if (i - 1 >= Inscribed.Length) break; Arsenal_Client ac = Inscribed[i - 1]; Interfaces.IConquerItem Item = ac.Item; Writer.WriteUInt32(Item.UID, Position, Buffer); Position += 4; Writer.WriteUInt32((uint)(i), Position, Buffer); Position += 4; Writer.WriteString(ac.Name, Position, Buffer); Position += 16; Writer.WriteUInt32(Item.ID, Position, Buffer); Position += 4; Writer.WriteByte((byte)(Item.ID % 10), Position, Buffer); Position++; Writer.WriteByte(Item.Plus, Position, Buffer); Position++; Writer.WriteByte((byte)Item.SocketOne, Position, Buffer); Position++; Writer.WriteByte((byte)Item.SocketTwo, Position, Buffer); Position++; Writer.WriteByte((byte)Item.BattlePower, Position, Buffer); Position++; Writer.WriteByte(0, Position, Buffer); Position++; Writer.WriteByte(0, Position, Buffer); Position++; Writer.WriteByte(0, Position, Buffer); Position++; Writer.WriteUInt32(0, Position, Buffer); Position += 4; } Writer.WriteString(ServerBase.Constants.ServerKey, (Buffer.Length - 8), Buffer); return Buffer; }
public static void UpdateArsenal(ulong Donation, Arsenal_ID id) { MySqlCommand Command = new MySqlCommand(MySqlCommandType.UPDATE); Command.Update("pt_arsenal") .Set("arsenal_donation", Donation.ToString()) .Where("arsenal_id", (byte)id) .Execute(); }
public static void DeleteArsenalItem(uint uid, uint i_uid, Arsenal_ID aid) { MySqlCommand Command = new MySqlCommand(MySqlCommandType.DELETE); Command.Delete("pt_arsenal_inscribed", "uid", uid).And("iten_id", i_uid).Execute(); }
public static void DeleteArsenal(uint s_id, Arsenal_ID id) { MySqlCommand Command = new MySqlCommand(MySqlCommandType.DELETE); Command.Delete("pt_arsenal", "syn_id", s_id).And("arsenal_id", (byte)id).Execute(); }
public void UnlockArsenal(GameState Client, Arsenal_ID ID) { if (Client.AsMember.Rank != Enums.GuildMemberRank.GuildLeader) return; if (Arsenals.ContainsKey(ID)) return; if (Client.Guild.SilverFund < getUnlockValue()) return; if (ID == Arsenal_ID.None) ID = Arsenal_ID.Headgear; Client.Guild.SilverFund -= getUnlockValue(); Arsenals.Add(ID, new Arsenal_State() { ID = ID, Unlocked = true }); Client.Send(ArsenalPacket.GuildArsenal(Client)); Database.ArsenalTable.CreateArsenal(Client.Guild.ID, ID); //Database.UpdateGuild(Syn); }
public void RemoveItem(GameState Client, IConquerItem Item, Arsenal_ID ID) { Arsenal_State _Arsenal = null; if (Arsenals.TryGetValue(ID, out _Arsenal)) { if (_Arsenal.Inscribed.ContainsKey(Item.UID)) { lock (_Arsenal.Inscribed) _Arsenal.Inscribed.Remove(Item.UID); Item.Inscribed = false; Item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; Item.Send(Client); Item.Mode = PhoenixProject.Game.Enums.ItemMode.Default; Arsenals[ID].Donation -= GetDonation(Item); Client.Arsenal_Donation -= GetDonation(Item); Database.ArsenalTable.UpdateArsenal(Arsenals[ID].Donation, ID); Database.ConquerItemTable.UpdateInscre2(Item); Database.ArsenalTable.DeleteArsenalItem(Client.Entity.UID, Item.UID, ID); } } }
public void InscribeItem(GameState Client, IConquerItem Item, Arsenal_ID ID) { Arsenal_State _Arsenal = null; if (Arsenals.TryGetValue(ID, out _Arsenal)) { if (!_Arsenal.Inscribed.ContainsKey(Item.UID)) { Item.Inscribed = true; Item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; Item.Send(Client); Item.Mode = PhoenixProject.Game.Enums.ItemMode.Default; lock (_Arsenal.Inscribed) _Arsenal.Inscribed.Add(Item.UID, new Arsenal_Client() { iUID = Item.UID, Item = Item, UID = Client.Entity.UID, Name = Client.Entity.Name }); Arsenals[ID].Donation += GetDonation(Item); Client.Arsenal_Donation += GetDonation(Item); Database.ConquerItemTable.UpdateInscre1(Item); Database.ArsenalTable.UpdateArsenal(Arsenals[ID].Donation, ID); Database.ArsenalTable.CreateArsenalItem(Client.Entity.UID, Client.Entity.Name, Item.UID, Client.Entity.GuildID, ID); } } }