0
حل مشكلة Arsena لى سورس كيمو

حل مشكلة Arsena لى سورس كيمو


اولا الشرح
ها تخش على 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 gIDArsenalType 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<uintArsenalSingleItems)
        {
            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 Typeuint DonationIConquerItem itemEntity 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<uintArsenalSingledictionary = new SafeDictionary<uintArsenalSingle>(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.UIDnum);
            }
            
reader.Close();
            
reader.Dispose();
            foreach (
ArsenalSingle num in dictionary.Values)
            {
                
num.Item ConquerItemTable.GetSingleItem(num.UID);
                
g.Arsenal.Inscribe(num.Typenum);
            }
            
dictionary = new SafeDictionary<uintArsenalSingle>(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 التعليقات:

إرسال تعليق

 
تعريب وتطوير mandoo
مدونة conquer Pvp لشروحات السيرفرات الشخصيه © 2010 | عودة الى الاعلى
Designed by mandoo