Files
Client/Server/Database/DBScript/v.1800] Part2_GameDB Creation(Global).sql
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

3566 lines
168 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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