حل مشكلة Arsena لى سورس كيمو
اولا الشرح
ها تخش على Database وى بعدين ArsenalTable.cs
وى بعدين ها تمسح كل الى فية وى طحط دة
اولا الشرح
ها تخش على Database وى بعدين ArsenalTable.cs
وى بعدين ها تمسح كل الى فية وى طحط دة
كود PHP:
namespace Conquer_Online_Server.Database{
using Conquer_Online_Server.Game;
using Conquer_Online_Server.Game.ConquerStructures.Society;
using Conquer_Online_Server.Interfaces;
using System;
using System.Collections.Generic;
public class ArsenalsTable
{
public static bool ContainsArsenal(ushort gID)
{
MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
command.Select("guild_arsenals").Where("guild_uid", (long)gID).Execute();
MySqlReader reader = new MySqlReader(command);
if (reader.Read())
{
reader.Close();
reader.Dispose();
return true;
}
reader.Close();
reader.Dispose();
return false;
}
public static void CreateArsenal(ushort gID, ArsenalType Type)
{
MySqlCommand command;
if (!ContainsArsenal(gID))
{
command = new MySqlCommand(MySqlCommandType.INSERT);
command.Insert("guild_arsenals").Insert("guild_uid", (long)gID).Execute();
}
else
{
string column = "";
switch (Type)
{
case ArsenalType.Headgear:
column = "head_allowed";
break;
case ArsenalType.Armor:
column = "armor_allowed";
break;
case ArsenalType.Weapon:
column = "weapon_allowed";
break;
case ArsenalType.Ring:
column = "ring_allowed";
break;
case ArsenalType.Boots:
column = "boots_allowed";
break;
case ArsenalType.Necklace:
column = "neck_allowed";
break;
case ArsenalType.Fan:
column = "fan_allowed";
break;
case ArsenalType.Tower:
column = "tower_allowed";
break;
}
if (column != "")
{
command = new MySqlCommand(MySqlCommandType.UPDATE);
command.Update("guild_arsenals").Set(column, (long)1L).Execute();
}
}
}
public static void Delete(uint UID)
{
MySqlCommand command = new MySqlCommand(MySqlCommandType.DELETE);
command.Delete("guild_arsenalsdonation", "item_uid", (long)UID).Execute();
command = new MySqlCommand(MySqlCommandType.UPDATE);
command.Update("items").Set("Inscribed", (long)0L).Where("UID", (long)UID).Execute();
}
public static void DeleteAll(Dictionary<uint, ArsenalSingle> Items)
{
foreach (ArsenalSingle num in Items.Values)
{
MySqlCommand command = new MySqlCommand(MySqlCommandType.DELETE);
command.Delete("guild_arsenalsdonation", "item_uid", (long)num.UID).Execute();
command = new MySqlCommand(MySqlCommandType.UPDATE);
command.Update("items").Set("Inscribed", (long)0L).Where("UID", (long)num.UID).Execute();
}
}
public static void Inscribe(ArsenalType Type, uint Donation, IConquerItem item, Entity Entity)
{
MySqlCommand command = new MySqlCommand(MySqlCommandType.INSERT);
command.Insert("guild_arsenalsdonation").Insert("d_uid", (long)Entity.UID).Insert("guild_uid", (long)Entity.GuildID).Insert("name", Entity.Name).Insert("item_uid", (long)item.UID).Insert("item_donation", (long)Donation).Insert("item_arsenal_type", (long)((byte)Type)).Execute();
command = new MySqlCommand(MySqlCommandType.UPDATE);
command.Update("items").Set("Inscribed", (long)1L).Where("UID", (long)item.UID).Execute();
}
public static void Load(Guild g)
{
MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
command.Select("guild_arsenalsdonation").Where("guild_uid", (long)g.ID);
MySqlReader reader = new MySqlReader(command);
SafeDictionary<uint, ArsenalSingle> dictionary = new SafeDictionary<uint, ArsenalSingle>(0x3e8);
while (reader.Read())
{
ArsenalSingle num = new ArsenalSingle
{
D_UID = reader.ReadUInt32("d_uid"),
UID = reader.ReadUInt32("item_uid"),
Donation = reader.ReadUInt32("item_donation"),
Type = (ArsenalType)reader.ReadByte("item_arsenal_type")
};
dictionary.Add(num.UID, num);
}
reader.Close();
reader.Dispose();
foreach (ArsenalSingle num in dictionary.Values)
{
num.Item = ConquerItemTable.GetSingleItem(num.UID);
g.Arsenal.Inscribe(num.Type, num);
}
dictionary = new SafeDictionary<uint, ArsenalSingle>(0x3e8);
dictionary = null;
command = new MySqlCommand(MySqlCommandType.SELECT);
command.Select("guild_arsenals").Where("guild_uid", (long)g.ID);
reader = new MySqlReader(command);
if (reader.Read())
{
g.A_Packet.Headgear_Avaliable = reader.ReadByte("head_allowed") == 1;
g.A_Packet.Armor_Avaliable = reader.ReadByte("armor_allowed") == 1;
g.A_Packet.Weapon_Avaliable = reader.ReadByte("weapon_allowed") == 1;
g.A_Packet.Ring_Avaliable = reader.ReadByte("ring_allowed") == 1;
g.A_Packet.Boots_Avaliable = reader.ReadByte("boots_allowed") == 1;
g.A_Packet.Necklace_Avaliable = reader.ReadByte("neck_allowed") == 1;
g.A_Packet.Fan_Avaliable = reader.ReadByte("fan_allowed") == 1;
g.A_Packet.Tower_Avaliable = reader.ReadByte("tower_allowed") == 1;
}
reader.Close();
reader.Dispose();
}
}
}
0 التعليقات:
إرسال تعليق