if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharInfo_Time_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharInfo_Time] DROP CONSTRAINT FK_CharInfo_Time_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharInfoEx_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharInfoEx] DROP CONSTRAINT FK_CharInfoEx_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharItem_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharItem] DROP CONSTRAINT FK_CharItem_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharItemEx_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharItemEx] DROP CONSTRAINT FK_CharItemEx_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharPos_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharPos] DROP CONSTRAINT FK_CharPos_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CharSkill_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[CharSkill] DROP CONSTRAINT FK_CharSkill_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Friend_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Friend] DROP CONSTRAINT FK_Friend_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Quest_CharInfo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Quest] DROP CONSTRAINT FK_Quest_CharInfo GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_TblGuildInfo_TblGuildMember]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[TblGuildMember] DROP CONSTRAINT FK_TblGuildInfo_TblGuildMember GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteAdmin]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteAdmin] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteChar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteChar] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteCharEx]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteCharEx] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteCharInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteCharInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteChar_BattleServer]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteChar_BattleServer] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteParty]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteParty] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteUser] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FoundSlot]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[FoundSlot] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetCharInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetCharInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetCharItem]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetCharItem] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetCharPos]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetCharPos] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetCharSkill]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetCharSkill] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetCharView]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetCharView] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPartyInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetPartyInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPartyInfo_Part2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetPartyInfo_Part2] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUIDCIDFromName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUIDCIDFromName] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUnifiedCharList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUnifiedCharList] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUserCharInfo_Web]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUserCharInfo_Web] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUserInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUserInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertAdmin]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertAdmin] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertChar]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertChar] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertParty]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertParty] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertParty_Part2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertParty_Part2] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertUser] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TransferStore]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[TransferStore] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPCampCreate]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPCampCreate] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPCampDelete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPCampDelete] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPCastleUpdate]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPCastleUpdate] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildChangePos]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildChangePos] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildCreate]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildCreate] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildDelete]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildDelete] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildGiveMemberGold]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildGiveMemberGold] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildMemberInsert]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildMemberInsert] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USPGuildMemberOut]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USPGuildMemberOut] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_InsertItemLog]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USP_InsertItemLog] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_UpdateCheckField_ItemLog]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[USP_UpdateCheckField_ItemLog] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharEquip]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharEquip] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharItemQuick]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharItemQuick] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharParty]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharParty] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharPos]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharPos] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharSkill]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharSkill] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateCharUID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateCharUID] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdatePartyInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdatePartyInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdatePartyInfo_Part2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdatePartyInfo_Part2] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateUserFirstLogin]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateUserFirstLogin] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateUserInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateUserInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateUserInfoNation]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateUserInfoNation] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WEB_SelectCharName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[WEB_SelectCharName] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[agt_CharDelHistory]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[agt_CharDelHistory] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vUserInfo]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[vUserInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AdminCommandLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[AdminCommandLog] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AdminList]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[AdminList] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharDeleteData]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharDeleteData] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharInfoEx]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharInfoEx] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharInfo_Time]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharInfo_Time] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharItem]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharItem] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharItemEx]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharItemEx] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharPos]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharPos] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CharSkill]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CharSkill] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Friend]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Friend] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ItemUID]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[ItemUID] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PartyInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PartyInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Quest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Quest] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TEMP_10LvlChar]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TEMP_10LvlChar] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCampInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCampInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCampMineralInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCampMineralInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCampShopInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCampShopInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCastleCreatureInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCastleCreatureInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCastleInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCastleInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCastleMineralInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCastleMineralInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCastleTaxInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCastleTaxInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblCharDelHistory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblCharDelHistory] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblEventItem]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblEventItem] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblFertilityInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblFertilityInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGameTime]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblGameTime] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGuildInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblGuildInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGuildMember]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblGuildMember] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGuildRelation]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblGuildRelation] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblGuildRestoreData]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblGuildRestoreData] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblItemLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblItemLog] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblLevelElm]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblLevelElm] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblStatueInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblStatueInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblUnifiedCharList]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblUnifiedCharList] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblUnifiedItemStore1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblUnifiedItemStore1] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblUnifiedItemStore1_TransferLOG]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblUnifiedItemStore1_TransferLOG] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblUnifiedItemStore2]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblUnifiedItemStore2] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblUnifiedItemStore2_TransferLOG]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblUnifiedItemStore2_TransferLOG] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblWebItemInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblWebItemInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TblWorldWeaponInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TblWorldWeaponInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UserFirstLoginInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[UserFirstLoginInfo] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UserInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[UserInfo] GO CREATE TABLE [dbo].[AdminCommandLog] ( [Index] [int] IDENTITY (1, 1) NOT NULL , [ServerGroupID] [int] NULL , [AdminCID] [int] NULL , [CID] [int] NULL , [Type] [varchar] (128) NULL , [Time] [datetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[AdminList] ( [UID] [int] NOT NULL , [Level] [smallint] NULL , [IP_S] [varchar] (16) NULL , [IP_E] [varchar] (16) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharDeleteData] ( [Index] [int] IDENTITY (1, 1) NOT NULL , [CID] [int] NOT NULL , [Name] [varchar] (16) NULL , [Level] [tinyint] NULL , [Class] [smallint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharInfo] ( [CID] [int] NOT NULL , [Name] [varchar] (16) NULL , [Sex] [tinyint] NULL , [Hair] [tinyint] NULL , [Face] [tinyint] NULL , [Race] [tinyint] NULL , [Class] [smallint] NULL , [Fame] [int] NULL , [Mileage] [int] NULL , [Guild] [int] NULL , [Party] [int] NULL , [Level] [tinyint] NULL , [Equip] [varbinary] (30) NULL , [Gold] [int] NULL , [IP] [smallint] NULL , [STR] [smallint] NULL , [DEX] [smallint] NULL , [CON] [smallint] NULL , [Intell] [smallint] NULL , [WIS] [smallint] NULL , [HP] [smallint] NULL , [MP] [smallint] NULL , [Exp] [bigint] NULL , [Chance] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharInfoEx] ( [CID] [int] NOT NULL , [Total] [int] NULL , [ServerID] [int] NULL , [Config] [varbinary] (50) NULL , [NameChangeCount] [tinyint] NULL , [AdminFlag] [tinyint] NULL , [RealmPoint] [tinyint] NULL , [RealmCheckPoint] [tinyint] NULL , [RealmMinute] [tinyint] NULL , [LogoutTime] [smalldatetime] NOT NULL , [GuildWarFlag] [tinyint] NULL , [RealmWarFlag] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharInfo_Time] ( [CID] [int] NOT NULL , [CreateTime] [smalldatetime] NULL , [UpdateTime] [smalldatetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharItem] ( [CID] [int] NOT NULL , [Quick] [varbinary] (100) NULL , [Equip] [varbinary] (1440) NULL , [Inventory] [varbinary] (5120) NULL , [Extra] [varbinary] (512) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharItemEx] ( [CID] [int] NOT NULL , [Exchange] [varbinary] (1284) NULL , [TempInven] [varbinary] (1440) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharPos] ( [CID] [int] NOT NULL , [LastPointX] [real] NULL , [LastPointY] [real] NULL , [LastPointZ] [real] NULL , [SavePointX] [real] NULL , [SavePointY] [real] NULL , [SavePointZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CharSkill] ( [CID] [int] NOT NULL , [Skill] [varbinary] (84) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Friend] ( [CID] [int] NOT NULL , [Friend] [varbinary] (2404) NULL , [Ban] [varbinary] (2004) NULL , [FriendInfo] [varbinary] (704) NULL , [BanInfo] [varbinary] (704) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[ItemUID] ( [Server] [int] NOT NULL , [Item] [bigint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PartyInfo] ( [PID] [int] IDENTITY (1, 1) NOT NULL , [Party] [varbinary] (200) NULL , [UserInfo] [varbinary] (70) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[Quest] ( [CID] [int] NOT NULL , [Quest] [varbinary] (134) NULL , [History] [varbinary] (404) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TEMP_10LvlChar] ( [InsertTime] [datetime] NOT NULL , [UID] [int] NOT NULL , [Nation] [tinyint] NOT NULL , [CID] [int] NULL , [Level] [tinyint] NULL , [Class] [smallint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCampInfo] ( [nCampID] [int] IDENTITY (1, 1) NOT NULL , [nGuildID] [int] NULL , [nHP] [int] NULL , [tnZone] [tinyint] NULL , [tnChannel] [tinyint] NULL , [snObjectType] [smallint] NULL , [tnState] [tinyint] NULL , [tnSubState] [tinyint] NULL , [tnUpgradeStep] [tinyint] NULL , [RemainTime] [smalldatetime] NULL , [LastUseTime] [smalldatetime] NULL , [bRight] [varbinary] (10) NULL , [fPosX] [real] NULL , [fPosY] [real] NULL , [fPosZ] [real] NULL , [tnMaterial] [tinyint] NULL , [tnSiegeCount] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCampMineralInfo] ( [nCampID] [int] NULL , [snMineralID] [smallint] NULL , [snAmount] [smallint] NULL , [tnFlag] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCampShopInfo] ( [CampID] [int] NOT NULL , [Item] [varbinary] (8000) NULL , [TempMoney] [int] NULL , [Tax] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCastleCreatureInfo] ( [nCreatureID] [int] IDENTITY (1, 1) NOT NULL , [nCastleID] [int] NULL , [nHP] [int] NULL , [snObjectType] [smallint] NULL , [fDirection] [real] NULL , [tnState] [tinyint] NULL , [tnSubState] [tinyint] NULL , [tnUpgradeStep] [tinyint] NULL , [tnUpgradeType] [tinyint] NULL , [RemainTime] [smalldatetime] NULL , [fPosX] [real] NULL , [fPosY] [real] NULL , [fPosZ] [real] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCastleInfo] ( [nCastleID] [int] IDENTITY (1, 1) NOT NULL , [nGuildID] [int] NULL , [tnZone] [tinyint] NULL , [tnChannel] [tinyint] NULL , [tnName] [tinyint] NULL , [tnSiegeCount] [tinyint] NULL , [tnInvincibleCount] [tinyint] NULL , [snTotalSiegeCount] [smallint] NULL , [nTotalTaxMoney] [int] NULL , [bRight] [varbinary] (10) NULL , [fPosInX] [real] NULL , [fPosInY] [real] NULL , [fPosInZ] [real] NULL , [fPosOutX] [real] NULL , [fPosOutY] [real] NULL , [fPosOutZ] [real] NULL , [snItemID] [smallint] NULL , [tnItemNum] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCastleMineralInfo] ( [nCastleID] [int] NULL , [snMineralID] [smallint] NULL , [snAmount] [smallint] NULL , [tnFlag] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCastleTaxInfo] ( [nCastleID] [int] NULL , [tnType] [tinyint] NULL , [tnTax] [tinyint] NULL , [nTempMoney] [int] NULL , [nTaxMoney] [int] NULL , [tnTaxChangable] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblCharDelHistory] ( [intCID] [int] NOT NULL , [intUID] [int] NOT NULL , [dateInsertTime] [smalldatetime] NOT NULL , [dateDeleteTime] [smalldatetime] NOT NULL , [NewServerGroupID] [tinyint] NULL , [OldServerGroupID] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblEventItem] ( [nItemIndex] [int] NULL , [nItemAmount] [int] NULL , [nMaxAmount] [int] NULL , [StartTime] [smalldatetime] NULL , [EndTime] [smalldatetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblFertilityInfo] ( [nVeinColor] [int] NULL , [nFertility] [int] NULL , [tnZone] [tinyint] NULL , [tnChannel] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGameTime] ( [GuildTime] [tinyint] NULL , [RealmTime] [tinyint] NULL , [SiegeTime] [tinyint] NULL , [MiningTime] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildInfo] ( [nGuildID] [int] IDENTITY (10001, 1) NOT NULL , [strGuildName] [varchar] (20) NOT NULL , [tnGuildLevel] [tinyint] NOT NULL , [nGuildFame] [int] NOT NULL , [nGuildGold] [int] NOT NULL , [tLastLogout] [smalldatetime] NOT NULL , [tCheckMember] [smalldatetime] NOT NULL , [tGMLastLogout] [smalldatetime] NULL , [bGuildMark] [varbinary] (433) NULL , [bRight] [varbinary] (50) NULL , [tnNationType] [tinyint] NULL , [tChangeState] [smalldatetime] NULL , [OldServerGroupID] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildMember] ( [nGuildID] [int] NOT NULL , [nCID] [int] NOT NULL , [nPosition] [int] NOT NULL , [nPositionInGuild] [int] NULL , [tLeaveGuildTime] [smalldatetime] NULL , [nCampID] [int] NULL , [Tactics] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildRelation] ( [nGuildID] [int] NOT NULL , [nTargetGuildID] [int] NOT NULL , [tnRelation] [tinyint] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblGuildRestoreData] ( [nGuildID] [int] NULL , [strGuildName] [varchar] (20) NULL , [nGuildGold] [int] NULL , [tDeleteTime] [smalldatetime] NULL , [nGuildMCID] [int] NULL , [OldServerGroupID] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblItemLog] ( [InsertTime] [datetime] NULL , [UpdateTime] [datetime] NULL , [UID] [int] NULL , [CID] [int] NULL , [ItemSerial] [bigint] NULL , [CharName] [varchar] (20) NULL , [Qty] [int] NULL , [CheckField] [bit] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblLevelElm] ( [Level] [int] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblStatueInfo] ( [nIndex] [int] NULL , [tnChannel] [tinyint] NULL , [snKID] [smallint] NULL , [nLostHP] [int] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblUnifiedCharList] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [BeforeCID] [int] NOT NULL , [NewCID] [int] NOT NULL , [BeforeCharName] [varchar] (20) NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblUnifiedItemStore1] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Password] [char] (5) NULL , [Frag] [int] NULL , [Gold] [int] NULL , [Store] [varbinary] (7300) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblUnifiedItemStore1_TransferLOG] ( [InsertTime] [smalldatetime] NULL , [UID] [int] NULL , [OldServerGroupID] [tinyint] NULL , [Password] [char] (5) NULL , [Frag] [int] NULL , [Gold] [int] NULL , [Store] [varbinary] (7300) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblUnifiedItemStore2] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Store] [varbinary] (7300) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblUnifiedItemStore2_TransferLOG] ( [InsertTime] [smalldatetime] NULL , [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Store] [varbinary] (7300) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblWebItemInfo] ( [CreateID] [int] IDENTITY (1, 1) NOT NULL , [UID] [int] NULL , [CID] [int] NULL , [ItemPrototypeID] [smallint] NULL , [Amount] [tinyint] NULL , [MIN_DAMAGE] [tinyint] NULL , [MAX_DAMAGE] [tinyint] NULL , [ARMOR] [tinyint] NULL , [HIT_RATE] [tinyint] NULL , [EVADE] [tinyint] NULL , [MAX_HP] [tinyint] NULL , [HP_REGEN] [tinyint] NULL , [MAX_MP] [tinyint] NULL , [MP_REGEN] [tinyint] NULL , [CRITICAL] [tinyint] NULL , [BLOCK] [tinyint] NULL , [SPEED] [tinyint] NULL , [MAGIC_POWER] [tinyint] NULL , [MAGIC_RESIST] [tinyint] NULL , [ItemUID] [bigint] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TblWorldWeaponInfo] ( [tnZone] [tinyint] NULL , [tnChannel] [tinyint] NULL , [tnKarRemainSiegeTime] [tinyint] NULL , [tnMerRemainSiegeTime] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UserFirstLoginInfo] ( [UID] [int] NOT NULL , [FirstLogin] [tinyint] NULL , [TransferCharCount] [tinyint] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[UserInfo] ( [UID] [int] NOT NULL , [OldServerGroupID] [tinyint] NOT NULL , [Nation] [tinyint] NOT NULL , [Char1] [int] NULL , [Char2] [int] NULL , [Char3] [int] NULL , [Char4] [int] NULL , [Char5] [int] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[AdminCommandLog] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [Index] ) ON [PRIMARY] GO ALTER TABLE [dbo].[AdminList] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [UID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharDeleteData] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfo] WITH NOCHECK ADD CONSTRAINT [PK__CharInfo_7A8729A3] PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfoEx] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfo_Time] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharItem] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharItemEx] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharPos] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharSkill] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Friend] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[ItemUID] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [Server] ) ON [PRIMARY] GO ALTER TABLE [dbo].[PartyInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [PID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Quest] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCampInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nCampID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCampShopInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CampID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCastleCreatureInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nCreatureID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCharDelHistory] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [intCID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [nGuildID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildMember] WITH NOCHECK ADD CONSTRAINT [PK_GuildMember_Guildid_nCid] PRIMARY KEY CLUSTERED ( [nGuildID], [nCID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblGuildRelation] WITH NOCHECK ADD CONSTRAINT [PK_TblGuildRelation_1] PRIMARY KEY CLUSTERED ( [nGuildID], [nTargetGuildID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblUnifiedCharList] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [NewCID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblUnifiedItemStore1] WITH NOCHECK ADD CONSTRAINT [PK_TblUnifiedItemStore1_UID_SERID] PRIMARY KEY CLUSTERED ( [UID], [OldServerGroupID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblUnifiedItemStore2] WITH NOCHECK ADD CONSTRAINT [PK_TblUnifiedItemStore2_UID_SERID] PRIMARY KEY CLUSTERED ( [UID], [OldServerGroupID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TblWebItemInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [CreateID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[UserFirstLoginInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [UID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[UserInfo] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [UID], [OldServerGroupID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[AdminCommandLog] ADD CONSTRAINT [DF__AdminComma__Time__4C6B5938] DEFAULT (getdate()) FOR [Time] GO ALTER TABLE [dbo].[AdminList] ADD CONSTRAINT [DF__AdminList__Level__150615B5] DEFAULT (0) FOR [Level] GO ALTER TABLE [dbo].[CharInfo] ADD CONSTRAINT [DF__CharInfo_1__Sex__7C6F7215] DEFAULT (0) FOR [Sex], CONSTRAINT [DF__CharInfo_1__Hair__7D63964E] DEFAULT (0) FOR [Hair], CONSTRAINT [DF__CharInfo_1__Face__7E57BA87] DEFAULT (0) FOR [Face], CONSTRAINT [DF__CharInfo___race__7F4BDEC0] DEFAULT (0) FOR [Race], CONSTRAINT [DF__CharInfo___Class__004002F9] DEFAULT (1) FOR [Class], CONSTRAINT [DF__CharInfo___Merit__01342732] DEFAULT (0) FOR [Fame], CONSTRAINT [DF__CharInfo_1__Fame__02284B6B] DEFAULT (0) FOR [Mileage], CONSTRAINT [DF__CharInfo___Guild__031C6FA4] DEFAULT (0) FOR [Guild], CONSTRAINT [DF__CharInfo___Party__041093DD] DEFAULT (0) FOR [Party], CONSTRAINT [DF__CharInfo___Level__0504B816] DEFAULT (1) FOR [Level], CONSTRAINT [DF__CharInfo_1__IP__05F8DC4F] DEFAULT (0) FOR [IP], CONSTRAINT [DF__CharInfo_1__STR__06ED0088] DEFAULT (0) FOR [STR], CONSTRAINT [DF__CharInfo_1__DEX__07E124C1] DEFAULT (0) FOR [DEX], CONSTRAINT [DF__CharInfo_1__CON__08D548FA] DEFAULT (0) FOR [CON], CONSTRAINT [DF__CharInfo___Intel__09C96D33] DEFAULT (0) FOR [Intell], CONSTRAINT [DF__CharInfo_1__WIS__0ABD916C] DEFAULT (0) FOR [WIS], CONSTRAINT [DF__CharInfo_1__HP__0BB1B5A5] DEFAULT (0) FOR [HP], CONSTRAINT [DF__CharInfo_1__MP__0CA5D9DE] DEFAULT (0) FOR [MP], CONSTRAINT [DF__CharInfo_1__Exp__0D99FE17] DEFAULT (0) FOR [Exp], CONSTRAINT [DF__CharInfo___Chanc__7CF981FA] DEFAULT (0) FOR [Chance], UNIQUE NONCLUSTERED ( [Name] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CharInfoEx] ADD CONSTRAINT [DF__CharInfoE__Total__5CC1BC92] DEFAULT (0) FOR [Total], CONSTRAINT [DF__CharInfoE__Serve__5DB5E0CB] DEFAULT (0) FOR [ServerID], CONSTRAINT [DF__CharInfoE__Logou__4D5F7D71] DEFAULT (getdate()) FOR [LogoutTime] GO ALTER TABLE [dbo].[ItemUID] ADD CONSTRAINT [DF__ItemUID__Item__70C8B53F] DEFAULT (0) FOR [Item] GO CREATE INDEX [IDX_TblCampMineralInfo_nCampID] ON [dbo].[TblCampMineralInfo]([nCampID]) ON [PRIMARY] GO ALTER TABLE [dbo].[TblCharDelHistory] ADD CONSTRAINT [DF__TblCharDe__dateI__0C3BC58A] DEFAULT (getdate()) FOR [dateInsertTime] GO ALTER TABLE [dbo].[TblGuildInfo] ADD CONSTRAINT [DF__TblGuildI__nGuil__13DCE752] DEFAULT (0) FOR [nGuildGold], CONSTRAINT [DF__TblGuildI__tLast__14D10B8B] DEFAULT ('2010.12.31') FOR [tLastLogout], CONSTRAINT [DF__TblGuildI__tChec__15C52FC4] DEFAULT (getdate()) FOR [tCheckMember], CONSTRAINT [DF__TblGuildI__tGMLa__16B953FD] DEFAULT ('2010.12.31') FOR [tGMLastLogout], CONSTRAINT [uk_TblGuildInfo_strGuildName] UNIQUE NONCLUSTERED ( [strGuildName] ) ON [PRIMARY] , CHECK ([strGuildName] <> null) GO ALTER TABLE [dbo].[TblGuildMember] ADD CONSTRAINT [DF__TblGuildM__nCamp__36470DEF] DEFAULT (0) FOR [nCampID] GO ALTER TABLE [dbo].[TblGuildRelation] ADD CHECK ([tnRelation] = 1 or [tnRelation] = 2 or [tnRelation] = 3) GO ALTER TABLE [dbo].[TblItemLog] ADD CONSTRAINT [DF__TblItemLo__Inser__4A4E069C] DEFAULT (getdate()) FOR [InsertTime], CONSTRAINT [DF__TblItemLo__Updat__4B422AD5] DEFAULT (getdate()) FOR [UpdateTime], CONSTRAINT [DF__TblItemLo__Check__4D2A7347] DEFAULT (0) FOR [CheckField], CHECK ([Qty] > 0) GO CREATE INDEX [nidx_TblItemLog_UidCidItemSerial] ON [dbo].[TblItemLog]([UID], [CID], [ItemSerial]) ON [PRIMARY] GO CREATE INDEX [Idx_TblUnifiedCharList_U_Old] ON [dbo].[TblUnifiedCharList]([UID], [OldServerGroupID]) ON [PRIMARY] GO ALTER TABLE [dbo].[TblUnifiedItemStore1] ADD CONSTRAINT [DF__TblUnifie__Passw__77BFCB91] DEFAULT ('0000') FOR [Password] GO ALTER TABLE [dbo].[TblWebItemInfo] ADD CONSTRAINT [DF__TblWebIte__ItemU__10566F31] DEFAULT (0) FOR [ItemUID], CHECK ([ARMOR] = 7 or ([ARMOR] = 6 or ([ARMOR] = 5 or ([ARMOR] = 4 or ([ARMOR] = 3 or ([ARMOR] = 2 or [ARMOR] = 1)))))), CHECK ([BLOCK] = 7 or ([BLOCK] = 6 or ([BLOCK] = 5 or ([BLOCK] = 4 or ([BLOCK] = 3 or ([BLOCK] = 2 or [BLOCK] = 1)))))), CHECK ([CRITICAL] = 7 or ([CRITICAL] = 6 or ([CRITICAL] = 5 or ([CRITICAL] = 4 or ([CRITICAL] = 3 or ([CRITICAL] = 2 or [CRITICAL] = 1)))))), CHECK ([EVADE] = 7 or ([EVADE] = 6 or ([EVADE] = 5 or ([EVADE] = 4 or ([EVADE] = 3 or ([EVADE] = 2 or [EVADE] = 1)))))), CHECK ([HIT_RATE] = 7 or ([HIT_RATE] = 6 or ([HIT_RATE] = 5 or ([HIT_RATE] = 4 or ([HIT_RATE] = 3 or ([HIT_RATE] = 2 or [HIT_RATE] = 1)))))), CHECK ([HP_REGEN] = 7 or ([HP_REGEN] = 6 or ([HP_REGEN] = 5 or ([HP_REGEN] = 4 or ([HP_REGEN] = 3 or ([HP_REGEN] = 2 or [HP_REGEN] = 1)))))), CHECK ([MAGIC_POWER] = 7 or ([MAGIC_POWER] = 6 or ([MAGIC_POWER] = 5 or ([MAGIC_POWER] = 4 or ([MAGIC_POWER] = 3 or ([MAGIC_POWER] = 2 or [MAGIC_POWER] = 1)))))), CHECK ([MAGIC_RESIST] = 7 or ([MAGIC_RESIST] = 6 or ([MAGIC_RESIST] = 5 or ([MAGIC_RESIST] = 4 or ([MAGIC_RESIST] = 3 or ([MAGIC_RESIST] = 2 or [MAGIC_RESIST] = 1)))))), CHECK ([MAX_DAMAGE] = 7 or ([MAX_DAMAGE] = 6 or ([MAX_DAMAGE] = 5 or ([MAX_DAMAGE] = 4 or ([MAX_DAMAGE] = 3 or ([MAX_DAMAGE] = 2 or [MAX_DAMAGE] = 1)))))), CHECK ([MAX_HP] = 7 or ([MAX_HP] = 6 or ([MAX_HP] = 5 or ([MAX_HP] = 4 or ([MAX_HP] = 3 or ([MAX_HP] = 2 or [MAX_HP] = 1)))))), CHECK ([MAX_MP] = 7 or ([MAX_MP] = 6 or ([MAX_MP] = 5 or ([MAX_MP] = 4 or ([MAX_MP] = 3 or ([MAX_MP] = 2 or [MAX_MP] = 1)))))), CHECK ([MIN_DAMAGE] = 7 or ([MIN_DAMAGE] = 6 or ([MIN_DAMAGE] = 5 or ([MIN_DAMAGE] = 4 or ([MIN_DAMAGE] = 3 or ([MIN_DAMAGE] = 2 or [MIN_DAMAGE] = 1)))))), CHECK ([MP_REGEN] = 7 or ([MP_REGEN] = 6 or ([MP_REGEN] = 5 or ([MP_REGEN] = 4 or ([MP_REGEN] = 3 or ([MP_REGEN] = 2 or [MP_REGEN] = 1)))))), CHECK ([SPEED] = 7 or ([SPEED] = 6 or ([SPEED] = 5 or ([SPEED] = 4 or ([SPEED] = 3 or ([SPEED] = 2 or [SPEED] = 1)))))) GO CREATE INDEX [IDX_TblWebItemInfo_U_CID] ON [dbo].[TblWebItemInfo]([UID], [CID]) ON [PRIMARY] GO CREATE INDEX [IDX_TblWebItemInfo_ItemUID] ON [dbo].[TblWebItemInfo]([ItemUID]) ON [PRIMARY] GO ALTER TABLE [dbo].[UserFirstLoginInfo] ADD CONSTRAINT [DF__UserFirst__Trans__367C1819] DEFAULT (0) FOR [TransferCharCount] GO ALTER TABLE [dbo].[UserInfo] ADD CONSTRAINT [DF__UserInfo__Nation__15502E78] DEFAULT (0) FOR [Nation] GO ALTER TABLE [dbo].[CharInfoEx] ADD CONSTRAINT [FK_CharInfoEx_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharInfo_Time] ADD CONSTRAINT [FK_CharInfo_Time_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharItem] ADD CONSTRAINT [FK_CharItem_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharItemEx] ADD CONSTRAINT [FK_CharItemEx_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharPos] ADD CONSTRAINT [FK_CharPos_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[CharSkill] ADD CONSTRAINT [FK_CharSkill_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[Friend] ADD CONSTRAINT [FK_Friend_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[Quest] ADD CONSTRAINT [FK_Quest_CharInfo] FOREIGN KEY ( [CID] ) REFERENCES [dbo].[CharInfo] ( [CID] ) GO ALTER TABLE [dbo].[TblGuildMember] ADD CONSTRAINT [FK_TblGuildInfo_TblGuildMember] FOREIGN KEY ( [nGuildID] ) REFERENCES [dbo].[TblGuildInfo] ( [nGuildID] ) ON DELETE CASCADE GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO create view dbo.vUserInfo AS SELECT UID,OldServerGroupID,Nation,Char1 as CID FROM UserInfo UNION ALL SELECT UID,OldServerGroupID,Nation,Char2 FROM UserInfo UNION ALL SELECT UID,OldServerGroupID,Nation,Char3 FROM UserInfo UNION ALL SELECT UID,OldServerGroupID,Nation,Char4 FROM UserInfo UNION ALL SELECT UID,OldServerGroupID,Nation,Char5 FROM UserInfo GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteAdmin.sql ---------------------------------------------------------------------------------------------------------------------- /* 운영자 삭제 프로시져 */ CREATE PROCEDURE dbo.DeleteAdmin @UID AS INT /* 유저 고유 아이디 */ AS SET NOCOUNT ON DELETE FROM AdminList WHERE UID = @UID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC DeleteChar @user_uid INT,@user_pos INT,@CID INT,@NewServerGroupID TINYINT,@UserInfoType TINYINT AS SET NOCOUNT ON DECLARE @ColumnIndex INT DECLARE @QUERY NVARCHAR(1000) IF @user_pos = 0 SET @ColumnIndex = 1 ELSE IF @user_pos = 1 SET @ColumnIndex = 2 ELSE IF @user_pos = 2 SET @ColumnIndex = 3 ELSE IF @user_pos = 3 SET @ColumnIndex = 4 ELSE IF @user_pos = 4 SET @ColumnIndex = 5 SET @QUERY = 'Begin Tran' + ' UPDATE UserInfo SET Char' + CAST(@ColumnIndex AS CHAR(1)) + ' = 0 WHERE UID = @User_Uid AND OldServerGroupID = @UserInfoType' + ' IF @@ROWCOUNT <> 1' + ' BEGIN' + ' ROLLBACK TRAN' + ' RETURN' + ' END' + ' DELETE TblUnifiedCharList WHERE UID = @User_Uid AND NewCID = @CID ' + ' INSERT INTO TblCharDelHistory (intCID,intUID,dateDeleteTime,NewServerGroupID,OldServerGroupID)' + ' VALUES (@CID,@User_Uid,GETDATE() + 90,@NewServerGroupID,@UserInfoType)' + ' IF @@ROWCOUNT <> 1' + ' BEGIN' + ' ROLLBACK TRAN' + ' RETURN' + ' END' + ' COMMIT TRAN' + ' RETURN' Exec sp_executesql @QUERY,N'@User_Uid int,@CID int,@NewServerGroupID TINYINT,@UserInfoType TINYINT', @user_uid,@CID,@NewServerGroupID,@UserInfoType GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharEx.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 삭제 */ CREATE PROCEDURE dbo.DeleteCharEx @Char_uid AS INT,@NewServerGroupID TINYINT,@UserInfoType TINYINT AS DECLARE @UserID INT, @CharSlot INT SELECT @UserID = UID, @CharSlot = Char1 FROM UserInfo WHERE Char1 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 0, @Char_uid ,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char2 FROM UserInfo WHERE Char2 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 1, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char3 FROM UserInfo WHERE Char3 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 2, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char4 FROM UserInfo WHERE Char4 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 3, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END SELECT @UserID = UID, @CharSlot = Char5 FROM UserInfo WHERE Char5 = @Char_uid AND OldServerGroupID = @UserInfoType IF @UserID IS NOT NULL BEGIN EXEC DeleteChar @UserID, 4, @Char_uid,@NewServerGroupID , @UserInfoType RETURN END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteCharInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* 유저 정보 삭제 프로시져 */ CREATE PROCEDURE dbo.DeleteCharInfo @char_uid AS INT,@NewServerGroupID TINYINT AS SET NOCOUNT ON DELETE FROM CharInfoEx WHERE CID = @char_uid --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharItem SELECT @NewServerGroupID,* FROM CharItem WHERE CID = @char_uid DELETE FROM CharItem WHERE CID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharItemEx SELECT @NewServerGroupID,* FROM CharItemEx WHERE CID = @char_uid DELETE FROM CharItemEx WHERE CID = @char_uid INSERT INTO CharDelHistory.dbo.DelCharSkill SELECT @NewServerGroupID,* FROM CharSkill WHERE CID = @char_uid DELETE FROM CharSkill WHERE CID = @char_uid DELETE FROM CharPos WHERE CID = @char_uid DELETE FROM CharInfo_Time WHERE CID = @char_uid DELETE FROM Friend WHERE CID = @char_uid DELETE FROM Quest WHERE CID = @char_uid --INSERT BEFORE CHARINFO DELETED INSERT INTO CharDelHistory.dbo.DelCharInfo SELECT @NewServerGroupID,* FROM CharInfo WHERE CID = @char_uid DELETE FROM CharInfo WHERE CID = @char_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- 배틀로한용 캐릭터 삭제 스크립트 -- 캐릭터 3개로 세팅되어있음. CREATE PROC DeleteChar_BattleServer @user_uid INT,@user_pos INT,@CID INT,@OldServerGroupID TINYINT,@servergroupid TINYINT AS SET NOCOUNT ON IF @user_pos = 0 BEGIN BEGIN TRAN UPDATE UserInfo SET Char1 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 1 BEGIN BEGIN TRAN UPDATE UserInfo SET Char2 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 2 BEGIN BEGIN TRAN UPDATE UserInfo SET Char3 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 3 BEGIN BEGIN TRAN UPDATE UserInfo SET Char4 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END ELSE IF @user_pos = 4 BEGIN BEGIN TRAN UPDATE UserInfo SET Char5 = 0 WHERE UID = @user_uid IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN RETURN END /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@OldServerGroupID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN RETURN END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteParty.sql ---------------------------------------------------------------------------------------------------------------------- /* 파티 제거 프로시져 */ CREATE PROCEDURE dbo.DeleteParty @Party_uid AS INT /* 파티 아이디 */ AS SET NOCOUNT ON DELETE FROM PartyInfo WHERE PID = @Party_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- DeleteUser.sql ---------------------------------------------------------------------------------------------------------------------- /* 유저 삭제 프로시져 ( DeleteCharInfo 정의 되어 있어야 함. ) */ CREATE PROCEDURE dbo.DeleteUser @UID INT , @NewServerGroupID TINYINT , @UserInfoType TINYINT AS SET NOCOUNT ON -- in korea = @NewServerGroupID = 0 -- in china = @NewServerGroupID = { 1 , 3 , 4 .....} DECLARE @Char1 AS INT, @Char2 AS INT, @Char3 AS INT,@Char4 INT,@Char5 INT /* 캐릭터 삭제 */ SELECT @Char1 = Char1, @Char2 = Char2, @Char3 = Char3,@Char4 =Char4,@Char5 = Char5 FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType IF(@Char1 <> 0) BEGIN EXEC DeleteCharInfo @Char1,@NewServerGroupID END IF(@Char2 <> 0) BEGIN EXEC DeleteCharInfo @Char2,@NewServerGroupID END IF(@Char3 <> 0) BEGIN EXEC DeleteCharInfo @Char3,@NewServerGroupID END IF(@Char4 <> 0) BEGIN EXEC DeleteCharInfo @Char4,@NewServerGroupID END IF(@Char5 <> 0) BEGIN EXEC DeleteCharInfo @Char5,@NewServerGroupID END DELETE FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType DELETE FROM TblUnifiedItemStore1 WHERE UID = @UID DELETE FROM TblUnifiedItemStore2 WHERE UID = @UID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- FoundSlot.sql ---------------------------------------------------------------------------------------------------------------------- /* 슬롯 찾기 */ CREATE PROCEDURE dbo.FoundSlot @Char_uid AS INT /* 캐릭터 고유 아이디 */ AS DECLARE @UserID INT SELECT @UserID = UID FROM UserInfo WHERE Char1 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 0 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char2 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 1 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char3 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 2 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char4 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 3 RETURN END SELECT @UserID = UID FROM UserInfo WHERE Char5 = @Char_uid IF @UserID IS NOT NULL BEGIN SELECT @UserID, 4 RETURN END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- ADD Equip column CREATE PROCEDURE dbo.GetCharInfo @CID AS INT AS SET NOCOUNT ON SELECT CID, Name, Sex, Hair, Face, Race, Class, Fame, Mileage, Guild, Party, Level, Gold, IP, STR, DEX, CON, Intell, WIS, HP, MP, Exp , Chance,Equip FROM CharInfo WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharItem.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 아이템 정보 얻기 프로시져 */ CREATE PROCEDURE dbo.GetCharItem @CID AS INT /* 캐릭터 고유 아이디 */ AS SET NOCOUNT ON SELECT Quick, Equip, Inventory FROM CharItem WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 위치 정보 얻기 프로시져 */ CREATE PROCEDURE dbo.GetCharPos @CID AS INT /* 캐릭터 고유 아이디 */ AS SET NOCOUNT ON SELECT LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ FROM CharPos WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- GetCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* 스킬 정보 보기 프로시져 */ CREATE PROCEDURE dbo.GetCharSkill @CID AS INT /* 캐릭터 아이디 */ AS SET NOCOUNT ON SELECT Skill FROM CharSkill WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO /* 캐릭터 보기 얻기 프로시져 변경 */ CREATE PROCEDURE dbo.GetCharView @CID AS INT /* 캐릭터 고유 아이디 */ AS SET NOCOUNT ON SELECT CID, Name, Sex, Hair, Face, Race, Class, Fame, Mileage, Guild, Party, Level, Equip FROM CharInfo WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.GetPartyInfo @Party_uid AS INT /* 파티 아이디 */ AS SET NOCOUNT ON SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid -- 파티 정보 업데이트 -- GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO /* 파티 정보 보기 프로시져 */ CREATE PROCEDURE dbo.GetPartyInfo_Part2 @Party_uid AS INT /* 파티 아이디 */ AS SET NOCOUNT ON SELECT Party, UserInfo FROM PartyInfo WHERE PID = @Party_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE Proc GetUIDCIDFromName @Name varchar(16) as Declare @CID int set @CID = 0 Declare @UID int set @UID = 0 Select @CID = CID from CharInfo where Name = @Name if @CID = 0 Begin Select 0, 0 Return End Select @UID = UID from UserInfo where Char1 = @CID or Char2 = @CID or Char3 = @CID or Char4 = @CID or Char5 = @CID if @UID = 0 Begin Select 0, @CID Return End select @UID, @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC dbo.GetUnifiedCharList @UID INT AS SET NOCOUNT ON SELECT Name,BeforeCharName,NewCID,BeforeCID,Class,Level,OldServerGroupID FROM TblUnifiedCharList A JOIN CharInfo B ON A.NewCID = B.CID WHERE A.UID = @UID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE Proc dbo.GetUserCharInfo_Web @UID INT AS SET NOCOUNT ON --출력 예전 서버군ID / CID / 이름 / 클래스 / 레벨 / 명성 / 마일리지 DECLARE @TblReports TABLE ( OldServerGroupID INT , CID INT ) INSERT INTO @TblReports SELECT OldServerGroupID,Char1 FROM UserInfo WHERE UID = @UID and Char1 > 0 INSERT INTO @TblReports SELECT OldServerGroupID,Char2 FROM UserInfo WHERE UID = @UID and Char2 > 0 INSERT INTO @TblReports SELECT OldServerGroupID,Char3 FROM UserInfo WHERE UID = @UID and Char3 > 0 INSERT INTO @TblReports SELECT OldServerGroupID,Char4 FROM UserInfo WHERE UID = @UID and Char4> 0 INSERT INTO @TblReports SELECT OldServerGroupID,Char5 FROM UserInfo WHERE UID = @UID and Char5 > 0 SELECT OldServerGroupID,A.CID,Name,Class,Level,Fame,Mileage FROM @TblReports A JOIN CharInfo B ON A.CID = B.CID ORDER BY OldServerGroupID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.GetUserInfo @UID AS INT,@OldServerGroupID TINYINT AS SET NOCOUNT ON SELECT Char1, Char2, Char3 ,Char4 , Char5 , Nation , OldServerGroupID ,FirstLogin FROM UserInfo A JOIN UserFirstLoginInfo B ON A.UID = B.UID WHERE A.UID = @UID AND OldServerGroupID = @OldServerGroupID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- InsertAdmin.sql ---------------------------------------------------------------------------------------------------------------------- /* 어드민 추가 프로시져 */ CREATE PROCEDURE dbo.InsertAdmin @UID INT /* 사용자 아이디 */ AS SET NOCOUNT ON DECLARE @Div INT INSERT INTO AdminList (UID) VALUES (@UID) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.InsertChar @user_uid AS INT, /* 유저 고유 아이디 */ @user_pos AS INT, /* 캐릭터 위치 (3개의 슬롯) */ @user_name AS VARCHAR(16), /* 캐릭터 이름 */ @user_Sex AS TINYINT, /* 캐릭터 성 */ @user_Hair AS TINYINT, /* 캐릭터 머리 모양 */ @user_Face AS TINYINT, /* 캐릭터 얼굴 모양 */ @user_Nation AS TINYINT, /* 캐릭터 국가 */ @user_Class AS SMALLINT, /* 캐릭터 클래스 */ @C_Gold AS INT, /* 캐릭터 소지금 */ @C_STR AS SMALLINT, /* 캐릭터 STR */ @C_DEX AS SMALLINT, /* 캐릭터 DEX */ @C_CON AS SMALLINT, /* 캐릭터 CON */ @C_INT AS SMALLINT, /* 캐릭터 INT */ @C_WIS AS SMALLINT, /* 캐릭터 WIS */ @PointX AS REAL, /* 캐릭터 Point X 좌표 */ @PointY AS REAL, /* 캐릭터 Point Y 좌표 */ @PointZ AS REAL, /* 캐릭터 Point Z 좌표 */ @C_Equip AS varBINARY(30), /* 장비 (2 * 15 = 30) */ @Skill AS varBinary(84), @UserInfoType TINYINT, @CID INT OUTPUT AS SET NOCOUNT ON --DECLARE @UID INT DECLARE @C_HP INT, @C_MP INT /* 캐릭터 이름 확인 */ SELECT @CID = CID FROM CharInfo WHERE Name = @user_name IF @CID <> 0 BEGIN SET @CID = -1 /* 동일 이름 존재 */ RETURN END /* 슬롯 확인 */ DECLARE @CharSlot INT IF @user_pos = 0 BEGIN SELECT @CharSlot = Char1 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType END ELSE IF @user_pos = 1 BEGIN SELECT @CharSlot = Char2 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType END ELSE IF @user_pos = 2 BEGIN SELECT @CharSlot = Char3 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType END ELSE IF @user_pos = 3 BEGIN SELECT @CharSlot = Char4 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType END ELSE IF @user_pos = 4 BEGIN SELECT @CharSlot = Char5 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType END IF @CharSlot <> 0 BEGIN SET @CID = -2 /* 슬롯이 차있음 */ RETURN END SET @C_HP = 100 + @C_CON * 8 + 2 IF @C_INT > @C_WIS BEGIN SET @C_MP = 100 + @C_INT * 8 + 2 END ELSE BEGIN SET @C_MP = 100 + @C_WIS * 8 + 2 END BEGIN TRAN SELECT @CID = MAX(CID) + 1 FROM CharInfo WITH (UPDLOCK) IF (@CID IS NULL) SET @CID = 1 INSERT INTO CharInfo (CID,Name, Sex, Hair, Face, Race, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP) VALUES (@CID,@user_name, @user_Sex, @user_Hair, @user_Face, @user_Nation, @user_Class, @C_Equip, @C_Gold, @C_STR, @C_DEX, @C_CON, @C_INT, @C_WIS, @C_HP, @C_MP) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @CID = -100 RETURN END COMMIT TRAN INSERT INTO CharInfoEx (CID) VALUES (@CID) INSERT INTO CharItem (CID) VALUES (@CID) INSERT INTO CharItemEx (CID) VALUES (@CID) INSERT INTO CharSkill (CID, Skill) VALUES (@CID, @Skill) INSERT INTO CharPos (CID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ) INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@CID,GETDATE(),GETDATE()) INSERT INTO Friend (CID) VALUES (@CID) INSERT INTO Quest (CID) VALUES (@CID) -- UnifiedCharList정보테이블에 입력하기 INSERT TblUnifiedCharList(UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName) VALUES (@user_uid,@UserInfoType,@CID,@CID,@user_name) /* 유저 정보 테이블 업데이트 */ EXEC UpdateCharUID @user_uid, @user_pos, @CID , @UserInfoType GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- InsertParty.sql ---------------------------------------------------------------------------------------------------------------------- /* 파티 추가 프로시져 */ CREATE PROCEDURE dbo.InsertParty @Party AS varBINARY(202), /* 친구 리스트 */ @UserInfo AS varBINARY(72) /* 유저 정보 */ AS SET NOCOUNT ON INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo) /* 고유 아이디 돌려줌 */ SELECT CAST(SCOPE_IDENTITY() AS INT) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO /* 파티 추가 프로시져 */ CREATE PROCEDURE dbo.InsertParty_Part2 @Party AS varBINARY(202), /* 친구 리스트 */ @UserInfo AS varBINARY(72) /* 유저 정보 */ AS SET NOCOUNT ON INSERT INTO PartyInfo (Party, UserInfo) VALUES (@Party, @UserInfo) /* 고유 아이디 돌려줌 */ SELECT CAST(SCOPE_IDENTITY() AS INT) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.InsertUser @UID INT,@UserInfoType TINYINT AS SET NOCOUNT ON BEGIN TRAN INSERT INTO UserInfo (UID,OldServerGroupID) VALUES (@UID,@UserInfoType) IF NOT EXISTS (SELECT * FROM UserFirstLoginInfo WHERE UID = @UID) INSERT INTO UserFirstLoginInfo(UID) VALUES (@UID) INSERT TblUnifiedItemStore1(UID,OldServerGroupID,Frag) VALUES (@UID,@UserInfoType,1) INSERT TblUnifiedItemStore2(UID,OldServerGroupID) VALUES (@UID,@UserInfoType) COMMIT TRAN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC TransferStore @UID INT , @SourceSrvID TINYINT , @DestSrvID TINYINT AS SET NOCOUNT ON IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @SourceSrvID) BEGIN IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @SourceSrvID) BEGIN DECLARE @GETDATE SMALLDATETIME SET @GETDATE = GETDATE() BEGIN TRAN IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @DestSrvID AND ( (ISNULL(Frag,0) not in (0,1)) OR (ISNULL(Gold,0) <>0 ) OR (Store IS NOT NULL)) ) BEGIN INSERT INTO TblUnifiedItemStore1_TransferLOG SELECT @GETDATE,* FROM dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @DestSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END DELETE dbo.TblUnifiedItemStore1 WHERE UID = @UID AND OldServerGroupID = @DestSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END UPDATE dbo.TblUnifiedItemStore1 SET OldServerGroupID = @DestSrvID WHERE UID = @UID AND OldServerGroupID = @SourceSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END INSERT INTO dbo.TblUnifiedItemStore1(UID, OldServerGroupID) VALUES (@UID, @SourceSrvID) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END IF EXISTS (SELECT * FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID AND Store IS NOT NULL) BEGIN INSERT INTO TblUnifiedItemStore2_TransferLOG SELECT @GETDATE,* FROM dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END END DELETE dbo.TblUnifiedItemStore2 WHERE UID = @UID AND OldServerGroupID = @DestSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END UPDATE dbo.TblUnifiedItemStore2 SET OldServerGroupID = @DestSrvID WHERE UID = @UID AND OldServerGroupID = @SourceSrvID IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END INSERT INTO dbo.TblUnifiedItemStore2(UID, OldServerGroupID) VALUES (@UID, @SourceSrvID) IF @@ERROR <> 0 BEGIN ROLLBACK TRAN RETURN END COMMIT TRAN END END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USPCampCreate @nGuildID INT,@snObjectType SMALLINT,@tnZone TINYINT,@tnChannel TINYINT,@fPosX FLOAT,@fPosY FLOAT,@fPosZ FLOAT AS SET NOCOUNT ON DECLARE @nCampID INT SET @nCampID = 0 BEGIN TRAN INSERT INTO TblCampInfo (nGuildID,nHP,tnZone,tnChannel,snObjectType, tnState,tnSubState,tnUpgradeStep,RemainTime,LastUseTime,bRight,fPosX,fPosY,fPosZ) VALUES (@nGuildID,10,@tnZone,@tnChannel,@snObjectType,4,0,0,GETDATE(),GETDATE(),0x01030101010101010101,@fPosX,@fPosY,@fPosZ) IF @@ERROR <> 0 BEGIN SELECT @nCampID ROLLBACK TRAN RETURN END SET @nCampID = CAST(SCOPE_IDENTITY() AS INT) COMMIT TRAN SELECT @nCampID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USPCampDelete @CampID INT AS SET NOCOUNT ON DECLARE @RETURN INT DELETE TblCampInfo WHERE nCampID = @CampID SET @RETURN = @@ROWCOUNT SELECT @RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USPCastleUpdate @nCastleID INT,@nGuildID INT,@tnSiegeCount TINYINT, @tnInvincibleCount TINYINT,@snTotalSiegeCount SMALLINT,@nTotalTaxMoney INT, @snItemID SMALLINT,@tnItemNum TINYINT AS SET NOCOUNT ON DECLARE @RETURN INT UPDATE TblCastleInfo SET nGuildID = @nGuildID,tnSiegeCount = @tnSiegeCount,tnInvincibleCount = @tnInvincibleCount, snTotalSiegeCount = @snTotalSiegeCount,nTotalTaxMoney = @nTotalTaxMoney, snItemID = @snItemID,tnItemNum = @tnItemNum WHERE nCastleID = @nCastleID SET @RETURN = @@ROWCOUNT SELECT @RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- 길드 직위변경 CREATE PROC USPGuildChangePos @GuildID INT,@CID INT,@BeforePos INT,@AfterPos INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 IF (@BeforePos < @AfterPos) -- 강등... (1길드마스터 --> 7 일반회원) BEGIN BEGIN TRAN UPDATE TblGuildMember SET nPositionInGuild = @AfterPos WHERE nGuildID = @GuildID AND nCID = @CID AND nPositionInGuild = @BeforePos IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild - 1 WHERE nGuildID = @GuildID AND nCID <> @CID AND nPositionInGuild BETWEEN @BeforePos AND @AfterPos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN END ELSE IF (@BeforePos > @AfterPos) -- 상승... (8 --> 1 길드마스터) BEGIN BEGIN TRAN UPDATE TblGuildMember SET nPositionInGuild = @AfterPos WHERE nGuildID = @GuildID AND nCID = @CID AND nPositionInGuild = @BeforePos IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild + 1 WHERE nGuildID = @GuildID AND nCID <> @CID AND nPositionInGuild BETWEEN @AfterPos AND @BeforePos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN END SELECT @RETURN RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- 길드 생성 하기 CREATE PROC USPGuildCreate @GuildName VARCHAR(20),@tnNationType TINYINT,@GuildLevel Tinyint,@GuildFame INT,@bRight varBINARY(50), @OldServerGroupID TINYINT AS SET NOCOUNT ON -- 기본길드정보에 값을 입력하기. DECLARE @RETURN INT DECLARE @GuildID INT SET @RETURN = 0 SET @GuildID = 0 IF EXISTS (SELECT strGuildName FROM dbo.TblGuildInfo WHERE strGuildName = @GuildName) BEGIN SET @RETURN = 2 SELECT @RETURN,@GuildID-- 중복된 길드명입니다. RETURN END ELSE BEGIN BEGIN TRAN INSERT INTO TblGuildInfo (strGuildName,tnGuildLevel,nGuildFame,bRight,tnNationType,OldServerGroupID) VALUES (@GuildName,@GuildLevel,@GuildFame,@bRight,@tnNationType,@OldServerGroupID) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN,@GuildID RETURN END COMMIT TRAN -- 이미 입력된 길드의 아이디를 얻어온다. SELECT @GuildID = nGuildID FROM TblGuildInfo WHERE strGuildName = @GuildName SELECT @RETURN,@GuildID -- SUCCESS END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USPGuildDelete @GuildID INT AS SET NOCOUNT ON INSERT INTO TblGuildRestoreData (nGuildID,strGuildName,nGuildGold,tDeleteTime,nGuildMCID,OldServerGroupID) SELECT TOP 1 a.nGuildID,a.strGuildName,a.nGuildGold,Getdate(),nCID,OldServerGroupID FROM TblGuildInfo a Left OUTER JOIN TblGuildMember c ON a.nGuildID = c.nGuildID WHERE a.nGuildID = @GuildID ORDER BY c.nPositionInGuild ASC DECLARE @ROWID INT DECLARE @CID INT DECLARE @TEMPTABLE TABLE ( ROWID INT IDENTITY(1,1) , CID INT ) INSERT INTO @TEMPTABLE (CID) SELECT nCID FROM TblGuildMember WHERE nGuildID = @GuildID SET @ROWID = @@ROWCOUNT WHILE @ROWID > 0 BEGIN SELECT @CID=CID FROM @TEMPTABLE WHERE ROWID = @ROWID UPDATE CharInfo SET Guild = 0 WHERE CID = @CID SET @ROWID = @ROWID - 1 END DELETE TblGuildInfo WHERE nGuildID = @GuildID IF @@ERROR <> 0 SELECT 1 -- ERROR ELSE SELECT 0 -- SUCCESS GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USPGuildGiveMemberGold @GuildID INT,@Gold INT AS SET NOCOUNT ON DECLARE @Position INT UPDATE CharInfo SET Gold = Gold + @Gold FROM TblGuildMember a,Charinfo b WHERE a.nCID = b.CID AND a.nGuildID = @GuildID AND a.nPosition < 5 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- GUILD MEMBER 입력 CREATE PROC USPGuildMemberInsert @GuildID INT,@CID INT,@Position INT,@PositionInGuild INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 BEGIN TRAN INSERT INTO TblGuildMember (nGuildID,nCID,nPosition,nPositionInGuild) VALUES (@GuildID,@CID,@Position,@PositionInGuild) IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE CharInfo SET Guild = @GuildID WHERE CID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN SELECT @RETURN RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO --길드탈퇴.... CREATE PROC USPGuildMemberOut @GuildID INT,@CID INT,@Pos INT AS SET NOCOUNT ON DECLARE @RETURN INT SET @RETURN = 0 -- member 삭제... BEGIN TRAN DELETE TblGuildMember WHERE nGuildID = @GuildID AND nCID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END -- 서열순위 UPDATE TblGuildMember SET nPositionInGuild = nPositionInGuild - 1 WHERE nGuildID = @GuildID AND nPositionInGuild > @Pos IF @@ERROR <> 0 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END UPDATE CharInfo SET Guild = 0 WHERE CID = @CID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRAN SET @RETURN = 1 SELECT @RETURN RETURN END COMMIT TRAN SELECT @RETURN RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USP_InsertItemLog ( @UID INT, @CID INT, @ItemSerial BIGINT, @CharName VARCHAR(20), @Qty INT ) AS SET NOCOUNT ON DECLARE @bQty INT SET @bQty = 0 SELECT @bQty = Qty FROM TblItemLog WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0 IF (@bQty > 0 ) BEGIN IF (@bQty >= @Qty) BEGIN UPDATE TblItemLog SET UpdateTime = GETDATE() WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0 END ELSE BEGIN UPDATE TblItemLog SET UpdateTime = GETDATE(),Qty = @Qty WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0 END END ELSE BEGIN INSERT INTO TblItemLog (UID,CID,ItemSerial,CharName,Qty) Values (@UID, @CID, @ItemSerial, @CharName, @Qty) END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC USP_UpdateCheckField_ItemLog ( @UID INT, @CID INT, @ItemSerial BIGINT ) AS SET NOCOUNT ON UPDATE TblItemLog SET CheckField = 1,UpdateTime = Getdate() WHERE UID = @UID AND CID = @CID AND ItemSerial = @ItemSerial AND CheckField = 0 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharEquip.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 정보 변경 프로시져 */ CREATE PROCEDURE dbo.UpdateCharEquip @char_uid AS INT, /* 캐릭터 고유 아이디 */ @C_Equip AS varBINARY(30) /* 장비 (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharInfo SET Equip = @C_Equip WHERE CID = @char_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 정보 변경 프로시져 */ CREATE PROCEDURE dbo.UpdateCharInfo @char_uid AS INT, /* 캐릭터 고유 아이디 */ @char_Class AS SMALLINT, /* 캐릭터 클래스 */ @char_Fame AS INT, /* 캐릭터 명성 */ @char_Mileage AS INT, /* 캐릭터 마일리지 */ @char_Level AS TINYINT, /* 캐릭터 레벨 */ @char_Gold AS INT, /* 돈 */ @char_IP AS SMALLINT, /* 캐릭터 증가 포인트 */ @char_STR AS SMALLINT, /* 캐릭터 STR */ @char_DEX AS SMALLINT, /* 캐릭터 DEX */ @char_CON AS SMALLINT, /* 캐릭터 CON */ @char_INT AS SMALLINT, /* 캐릭터 INT */ @char_WIS AS SMALLINT, /* 캐릭터 WIS */ @char_HP AS SMALLINT, /* 캐릭터 HP */ @char_MP AS SMALLINT, /* 캐릭터 MP */ @char_Exp AS BIGINT, /* 캐릭터 경험점 */ @char_Chance AS TINYINT, /* 캐릭터 챈스 */ @char_Equip AS varBINARY(30) /* 장비 (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharInfo SET Class = @char_Class, Fame = @char_Fame, Mileage = @char_Mileage, Level = @char_Level, Equip = @char_Equip, Gold = @char_Gold, IP = @char_IP, STR = @char_STR, DEX = @char_DEX, CON = @char_CON, Intell = @char_INT, WIS = @char_WIS, HP = @char_HP, MP = @char_MP, Exp = @char_Exp, Chance = @char_Chance WHERE CID = @char_uid IF EXISTS (SELECT CID FROM CharInfo_Time WHERE CID = @char_uid) BEGIN UPDATE CharInfo_Time SET UpdateTime = GETDATE() WHERE CID = @char_uid END ELSE BEGIN INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime) VALUES (@char_uid,GETDATE(),GETDATE()) END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharItemQuick.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 정보 변경 프로시져 */ CREATE PROCEDURE dbo.UpdateCharItemQuick @char_uid AS INT, /* 캐릭터 고유 아이디 */ @C_Quick AS varBINARY(100) /* 장비 (2 * 15 = 30) */ AS SET NOCOUNT ON UPDATE CharItem SET Quick = @C_Quick WHERE CID = @char_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharParty.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 파티 관계 업데이트 */ CREATE PROCEDURE dbo.UpdateCharParty @CID AS INT, /* 캐릭터 고유 아이디 */ @Party AS INT /* 파티 */ AS SET NOCOUNT ON UPDATE CharInfo SET Party = @Party WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharPos.sql ---------------------------------------------------------------------------------------------------------------------- /* 캐릭터 위치 정보 업데이트 프로시져 */ CREATE PROCEDURE dbo.UpdateCharPos @CID AS INT, /* 캐릭터 고유 아이디 */ @LastPointX AS REAL, /* 캐릭터 Last Point X 좌표 */ @LastPointY AS REAL, /* 캐릭터 Last Point Y 좌표 */ @LastPointZ AS REAL, /* 캐릭터 Last Point Z 좌표 */ @SavePointX AS REAL, /* 캐릭터 Last Point X 좌표 */ @SavePointY AS REAL, /* 캐릭터 Last Point Y 좌표 */ @SavePointZ AS REAL /* 캐릭터 Last Point Z 좌표 */ AS SET NOCOUNT ON UPDATE CharPos SET LastPointX = @LastPointX, LastPointY = @LastPointY, LastPointZ = @LastPointZ, SavePointX = @SavePointX, SavePointY = @SavePointY, SavePointZ = @SavePointZ WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharSkill.sql ---------------------------------------------------------------------------------------------------------------------- /* 스킬 업데이트 */ CREATE PROCEDURE dbo.UpdateCharSkill @CID AS INT, /* 사용자 아이디 */ @Skill AS varBINARY(84) /* 스킬 슬롯 */ AS SET NOCOUNT ON UPDATE CharSkill SET Skill = @Skill WHERE CID = @CID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdateCharUID.sql ---------------------------------------------------------------------------------------------------------------------- /* 유저 정보 테이블 캐릭터 아이디 업데이트 프로시져 */ CREATE PROCEDURE dbo.UpdateCharUID @user_uid AS INT, /* 유저 고유 아이디 */ @user_pos AS INT, /* 캐릭터 위치 (3개의 슬롯) */ @char_uid AS INT , /* 캐릭터 고유 아이디 */ @UserInfoType TINYINT AS SET NOCOUNT ON IF @user_pos = 0 UPDATE UserInfo SET Char1 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 1 UPDATE UserInfo SET Char2 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 2 UPDATE UserInfo SET Char3 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 3 UPDATE UserInfo SET Char4 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType ELSE IF @user_pos = 4 UPDATE UserInfo SET Char5 = @char_uid WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ---------------------------------------------------------------------------------------------------------------------- -- UpdatePartyInfo.sql ---------------------------------------------------------------------------------------------------------------------- /* 파티 맴버 추가 프로시져 */ CREATE PROCEDURE dbo.UpdatePartyInfo @Party_uid AS INT, /* 파티 고유 아이디 */ @Party AS varBINARY(202), /* 친구 리스트 */ @UserInfo AS varBINARY(72) /* 유저 정보 */ AS SET NOCOUNT ON UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid -- 파티 추가 -- GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.UpdatePartyInfo_Part2 @Party_uid AS INT, /* 파티 고유 아이디 */ @Party AS varBINARY(202), /* 친구 리스트 */ @UserInfo AS varBINARY(72) /* 유저 정보 */ AS SET NOCOUNT ON UPDATE PartyInfo SET Party = @Party, UserInfo = @UserInfo WHERE PID = @Party_uid GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC dbo.UpdateUserFirstLogin @UID INT,@FirstLogin TINYINT AS SET NOCOUNT ON UPDATE UserFirstLoginInfo SET FirstLogin = @FirstLogin WHERE UID = @UID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE dbo.UpdateUserInfo @user_uid AS INT, @UserInfoType TINYINT, @nation TINYINT, @user_char1 AS INT, @user_char2 AS INT, @user_char3 AS INT, @user_char4 AS INT, @user_char5 AS INT AS SET NOCOUNT ON BEGIN TRAN UPDATE UserInfo SET Char1 = @user_char1, Char2 = @user_char2, Char3 = @user_char3 , Char4 = @user_char4 , Char5 = @user_char5 , Nation = @nation WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType COMMIT TRAN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO -- 새로추가될 내용 CREATE PROC dbo.UpdateUserInfoNation @UID INT,@Nation TINYINT,@UserInfoType TINYINT AS SET NOCOUNT ON UPDATE UserInfo SET Nation = @Nation WHERE UID = @UID AND OldServerGroupID = @UserInfoType GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC WEB_SelectCharName @UID INT, @UserInfoType TINYINT, @CharName1 VARCHAR(20) OUTPUT,@CharName2 VARCHAR(20) OUTPUT, @CharName3 VARCHAR(20) OUTPUT,@CharName4 VARCHAR(20) OUTPUT,@CharName5 VARCHAR(20) OUTPUT AS SET NOCOUNT ON DECLARE @Char1 INT,@Char2 INT,@Char3 INT,@Char4 INT,@Char5 INT SELECT @Char1 = (CASE WHEN Char1 IS NULL THEN 0 ELSE Char1 END), @Char2 = (CASE WHEN Char2 IS NULL THEN 0 ELSE Char2 END), @Char3= (CASE WHEN Char3 IS NULL THEN 0 ELSE Char3 END), @Char4= (CASE WHEN Char4 IS NULL THEN 0 ELSE Char4 END), @Char5= (CASE WHEN Char5 IS NULL THEN 0 ELSE Char5 END) FROM UserInfo WHERE UID = @UID AND OldServerGroupID = @UserInfoType IF (@Char1 <> 0 ) SELECT @CharName1 = Name FROM CharInfo WHERE CID = @Char1 IF (@Char2 <> 0 ) SELECT @CharName2 = Name FROM CharInfo WHERE CID = @Char2 IF (@Char3 <> 0 ) SELECT @CharName3 = Name FROM CharInfo WHERE CID = @Char3 IF (@Char4 <> 0 ) SELECT @CharName4 = Name FROM CharInfo WHERE CID = @Char4 IF (@Char5 <> 0 ) SELECT @CharName5 = Name FROM CharInfo WHERE CID = @Char5 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROC agt_CharDelHistory AS SET NOCOUNT ON DECLARE @ROWID INT DECLARE @CID INT DECLARE @NewServerGroupID TINYINT DECLARE @GETDATE SMALLDATETIME DECLARE @Table TABLE ( ROWID INT IDENTITY(1,1) PRIMARY KEY , intCID INT , NewServerGroupID TINYINT ) SET @GETDATE = GETDATE() INSERT INTO @Table SELECT intCID,NewServerGroupID FROM TblCharDelHistory WHERE dateDeleteTime < @GETDATE SET @ROWID = @@ROWCOUNT WHILE @ROWID <> 0 BEGIN SELECT @CID = intCID,@NewServerGroupID = NewServerGroupID FROM @Table WHERE ROWID = @ROWID /* 캐릭터 삭제 */ EXEC DeleteCharInfo @CID,@NewServerGroupID SET @ROWID = @ROWID - 1 END INSERT INTO CharDelHistory.dbo.TblCharDelHistory_LOG SELECT * FROM TblCharDelHistory WHERE dateDeleteTime < @GETDATE DELETE TblCharDelHistory WHERE dateDeleteTime < @GETDATE GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO