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>
2444 lines
56 KiB
Transact-SQL
2444 lines
56 KiB
Transact-SQL
|
|
/************************************************
|
|
*
|
|
* PART 2
|
|
*
|
|
* 추가작업
|
|
- 2005-01-06 pm 4:00 : UserFirstLoginInfo 테이블에 TransferCharCount
|
|
|
|
- 2005-01-11 pm 4:50 : TblUnifiedItemStore1_TransferLOG
|
|
TblUnifiedItemStore2_TransferLOG 로그테이블 추가
|
|
TransferStore 프로시져 변경
|
|
|
|
- 2005-01-12 pm 3:30 : USPCampCreate 프로시져 변경 - @snObjectType 인자 추가
|
|
- 2005-01-17 : USPCampCreate 프로시져 변경 - @snObjectType 인자 순서수정
|
|
|
|
*************************************************/
|
|
|
|
GO
|
|
|
|
|
|
CREATE TABLE [TblUnifiedItemStore1_TransferLOG] (
|
|
InsertTime SMALLDATETIME NULL,
|
|
[UID] [int] NULL ,
|
|
[OldServerGroupID] [tinyint] NULL ,
|
|
[Password] [char] (5),
|
|
[Frag] [int] NULL ,
|
|
[Gold] [int] NULL ,
|
|
[Store] [varbinary] (7300) NULL
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE TABLE [TblUnifiedItemStore2_TransferLOG] (
|
|
InsertTime SMALLDATETIME NULL,
|
|
[UID] [int] NOT NULL ,
|
|
[OldServerGroupID] [tinyint] NOT NULL ,
|
|
[Store] [varbinary] (7300) NULL
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE TABLE dbo.UserFirstLoginInfo
|
|
(
|
|
UID INT NOT NULL PRIMARY KEY
|
|
, FirstLogin TINYINT
|
|
, TransferCharCount TINYINT DEFAULT(0)
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE TABLE [TblUnifiedItemStore1] (
|
|
[UID] [int] NOT NULL ,
|
|
[OldServerGroupID] [tinyint] NOT NULL ,
|
|
[Password] [char] (5) NULL default('0000'),
|
|
[Frag] [int] NULL ,
|
|
[Gold] [int] NULL ,
|
|
[Store] [varbinary] (7300) NULL,
|
|
CONSTRAINT PK_TblUnifiedItemStore1_UID_SERID PRIMARY KEY (UID,OldServerGroupID)
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
CREATE TABLE [TblUnifiedItemStore2] (
|
|
[UID] [int] NOT NULL ,
|
|
[OldServerGroupID] [tinyint] NOT NULL ,
|
|
[Store] [varbinary] (7300) NULL ,
|
|
CONSTRAINT PK_TblUnifiedItemStore2_UID_SERID PRIMARY KEY (UID,OldServerGroupID)
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
CREATE TABLE [TblUnifiedCharList] (
|
|
[UID] [int] NOT NULL ,
|
|
[OldServerGroupID] [tinyint] NOT NULL ,
|
|
[BeforeCID] [int] NOT NULL ,
|
|
[NewCID] [int] NOT NULL PRIMARY KEY,
|
|
[BeforeCharName] [varchar] (20) NOT NULL
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
CREATE INDEX Idx_TblUnifiedCharList_U_Old ON [TblUnifiedCharList] (UID,OldServerGroupID)
|
|
|
|
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].[CharInfo] (
|
|
[CID] [int] NOT NULL ,
|
|
[Name] [varchar] (16) NULL UNIQUE,
|
|
[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
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
ALTER TABLE dbo.[CharInfoEx]
|
|
ADD NameChangeCount TINYINT
|
|
|
|
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
|
|
) 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
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Quest] (
|
|
[CID] [int] NOT NULL ,
|
|
[Quest] [varbinary] (134) NULL ,
|
|
[History] [varbinary] (204) 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
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
CREATE TABLE dbo.TblCampMineralInfo
|
|
(
|
|
nCampID INT
|
|
, snMineralID SMALLINT
|
|
, snAmount SMALLINT
|
|
, tnFlag TINYINT
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE INDEX IDX_TblCampMineralInfo_nCampID ON dbo.TblCampMineralInfo(nCampID)
|
|
|
|
|
|
GO
|
|
|
|
CREATE TABLE dbo.TblFertilityInfo
|
|
(
|
|
nVeinColor int
|
|
, nFertility int
|
|
, tnZone TINYINT
|
|
, tnChannel TINYINT
|
|
)
|
|
|
|
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 ,
|
|
[snTax] [smallint] NULL ,
|
|
[nTaxMoney] [int] NULL ,
|
|
[tnZone] [tinyint] NULL ,
|
|
[tnTaxIncomeRemainDay] [tinyint] NULL ,
|
|
[tnInvincibleDay] [tinyint] NULL ,
|
|
[LastSiegeTime] [smalldatetime] NULL ,
|
|
[bRight] [varbinary] (10) NULL ,
|
|
[strCastleName] [varchar] (50) NULL ,
|
|
[fPosInX] [real] NULL ,
|
|
[fPosInY] [real] NULL ,
|
|
[fPosInZ] [real] NULL ,
|
|
[fPosOutX] [real] NULL ,
|
|
[fPosOutY] [real] NULL ,
|
|
[fPosOutZ] [real] 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,
|
|
[OldServerGroupID] TINYINT
|
|
) 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].[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 --ADD
|
|
) 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
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[TblGuildOtherList] (
|
|
[nGuildID] [int] NOT NULL ,
|
|
[nOtherGuildID] [int] NOT NULL ,
|
|
[tnRelation] [tinyint] NOT NULL ,
|
|
[tnState] [tinyint] NOT NULL ,
|
|
[waitTime] [smalldatetime] 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
|
|
) 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].[UserInfo] (
|
|
[UID] [int] NOT NULL ,
|
|
[OldServerGroupID] [tinyint] NOT NULL,
|
|
[Nation] [tinyint] NOT NULL DEFAULT(0) ,
|
|
[Char1] [int] NULL ,
|
|
[Char2] [int] NULL ,
|
|
[Char3] [int] NULL ,
|
|
[Char4] [int] NULL ,
|
|
[Char5] [int] NULL
|
|
) ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[AdminList] WITH NOCHECK ADD
|
|
PRIMARY KEY CLUSTERED
|
|
(
|
|
[UID]
|
|
) 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].[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].[TblGuildOtherList] WITH NOCHECK ADD
|
|
CONSTRAINT [PK_TblGuildOtherList_1] PRIMARY KEY CLUSTERED
|
|
(
|
|
[nGuildID],
|
|
[nOtherGuildID]
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[UserInfo] WITH NOCHECK ADD
|
|
PRIMARY KEY CLUSTERED
|
|
(
|
|
[UID],[OldServerGroupID]
|
|
) ON [PRIMARY]
|
|
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]
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[CharInfoEx] ADD
|
|
CONSTRAINT [DF__CharInfoE__Total__5CC1BC92] DEFAULT (0) FOR [Total],
|
|
CONSTRAINT [DF__CharInfoE__Serve__5DB5E0CB] DEFAULT (0) FOR [ServerID]
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ItemUID] ADD
|
|
CONSTRAINT [DF__ItemUID__Item__70C8B53F] DEFAULT (0) FOR [Item]
|
|
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].[TblGuildOtherList] ADD
|
|
CHECK ([tnRelation] = 0 or [tnRelation] = 1 or [tnRelation] = 2)
|
|
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
|
|
|
|
ALTER TABLE [dbo].[Quest] ADD
|
|
CONSTRAINT [FK_Quest_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].[CharPos] ADD
|
|
CONSTRAINT [FK_CharPos_CharInfo] FOREIGN KEY
|
|
(
|
|
[CID]
|
|
) REFERENCES [dbo].[CharInfo] (
|
|
[CID]
|
|
)
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[CharInfoEx] ADD
|
|
CONSTRAINT [FK_CharInfoEx_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].[CharInfo_Time] ADD
|
|
CONSTRAINT [FK_CharInfo_Time_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].[Friend] ADD
|
|
CONSTRAINT [FK_Friend_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
|
|
|
|
|
|
ALTER TABLE [dbo].[TblGuildOtherList] ADD
|
|
CONSTRAINT [FK_TblGuildInfo_TblGuildOtherList] FOREIGN KEY
|
|
(
|
|
[nGuildID]
|
|
) REFERENCES [dbo].[TblGuildInfo] (
|
|
[nGuildID]
|
|
) ON DELETE CASCADE
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- DeleteAdmin.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
운영자 삭제 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.DeleteAdmin
|
|
@UID AS INT /* 유저 고유 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
DELETE FROM AdminList WHERE UID = @UID
|
|
|
|
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
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- DeleteParty.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
파티 제거 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.DeleteParty
|
|
@Party_uid AS INT /* 파티 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
|
|
DELETE FROM PartyInfo WHERE PID = @Party_uid
|
|
|
|
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
|
|
-- 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
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- GetCharItem.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
캐릭터 아이템 정보 얻기 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.GetCharItem
|
|
@CID AS INT /* 캐릭터 고유 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
SELECT Quick, Equip, Inventory FROM CharItem WHERE CID = @CID
|
|
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- GetCharSkill.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
스킬 정보 보기 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.GetCharSkill
|
|
@CID AS INT /* 캐릭터 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
SELECT Skill FROM CharSkill WHERE CID = @CID
|
|
|
|
|
|
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
|
|
|
|
/*******************
|
|
CREATE PROCEDURE dbo.GetItemStore
|
|
@UID AS INT
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
SELECT Password, Frag, Gold FROM ItemStore1 WHERE UID = @UID
|
|
*********************/
|
|
|
|
GO
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- GetPartyInfo.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
파티 정보 보기 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.GetPartyInfo
|
|
@Party_uid AS INT /* 파티 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
SELECT Party FROM PartyInfo WHERE PID = @Party_uid
|
|
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- GetUserInfo.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
유저 정보 얻기 프로시져
|
|
*/
|
|
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- InsertAdmin.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
어드민 추가 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.InsertAdmin
|
|
@UID INT /* 사용자 아이디 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE @Div INT
|
|
|
|
INSERT INTO AdminList (UID) VALUES (@UID)
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- InsertParty.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
파티 추가 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.InsertParty
|
|
@Party AS varBINARY(202) /* 친구 리스트 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
|
|
INSERT INTO PartyInfo (Party) VALUES (@Party)
|
|
|
|
/* 고유 아이디 돌려줌 */
|
|
SELECT CAST(SCOPE_IDENTITY() AS INT)
|
|
|
|
|
|
GO
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- InsertUser.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
유저 추가 프로시져
|
|
*/
|
|
|
|
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
|
|
|
|
/**********************************************
|
|
-- 복원프로시져
|
|
CREATE PROC RestoreCharInfo @user_uid INT,@CID INT,@user_name VARCHAR(20),@NewServerGroupID TINYINT,@UserInfoType TINYINT = 0
|
|
AS
|
|
|
|
DECLARE @UID INT
|
|
DECLARE @C_HP INT, @C_MP INT
|
|
|
|
-- 캐릭터 이름 확인
|
|
SELECT @UID = CID FROM CharInfo WHERE Name = @user_name
|
|
IF @UID <> 0
|
|
BEGIN
|
|
SELECT -1 -- 동일 이름 존재
|
|
RETURN
|
|
END
|
|
|
|
-- 슬롯 확인
|
|
DECLARE @user_pos INT
|
|
DECLARE @CharSlot1 INT
|
|
SET @CharSlot1 = 0
|
|
DECLARE @CharSlot2 INT
|
|
SET @CharSlot2 = 0
|
|
DECLARE @CharSlot3 INT
|
|
SET @CharSlot3 = 0
|
|
DECLARE @CharSlot4 INT
|
|
SET @CharSlot4 = 0
|
|
DECLARE @CharSlot5 INT
|
|
SET @CharSlot5 = 0
|
|
|
|
SELECT @CharSlot1 = Char1,@CharSlot2=Char2,@CharSlot3=Char3,@CharSlot4=Char4,@CharSlot5=Char5
|
|
FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
|
|
|
IF @CharSlot1 = 0
|
|
SET @user_pos = 0
|
|
ELSE IF @CharSlot2 = 0
|
|
SET @user_pos = 1
|
|
ELSE IF @CharSlot3 = 0
|
|
SET @user_pos = 2
|
|
ELSE IF @CharSlot4 = 0
|
|
SET @user_pos = 3
|
|
ELSE IF @CharSlot5 = 0
|
|
SET @user_pos = 4
|
|
ELSE
|
|
BEGIN
|
|
SELECT -2 -- 슬롯이 차있음
|
|
RETURN
|
|
END
|
|
|
|
|
|
INSERT INTO CharInfo (UID,Name,Sex,Hair,Face,Nationality,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,MP,Exp,Chance)
|
|
SELECT UID,Name,Sex,Hair,Face,Race,Class,Fame,Mileage,Guild,Party,Level,Equip,Gold,IP,STR,DEX,CON,Intell,WIS,HP,MP,Exp,Chance
|
|
FROM CharDelHistory.dbo.DelCharInfo
|
|
WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
IF @@ERROR <> 0
|
|
BEGIN
|
|
SELECT -100
|
|
RETURN
|
|
END
|
|
|
|
DELETE CharDelHistory.dbo.DelCharInfo WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
INSERT INTO CharSkill (UID, Skill)
|
|
SELECT UID,Skill FROM CharDelHistory.dbo.DelCharSkill WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
DELETE CharDelHistory.dbo.DelCharSkill WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
INSERT INTO CharPos (UID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ)
|
|
VALUES (@CID, 0, 0, 0, 0, 0, 0)
|
|
|
|
INSERT INTO CharInfoEx (UID) VALUES (@CID)
|
|
|
|
INSERT INTO CharItem
|
|
SELECT UID,Quick,Equip,Inventory,Extra FROM CharDelHistory.dbo.DelCharItem WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
DELETE CharDelHistory.dbo.DelCharItem WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
INSERT INTO CharItemEx (UID,Exchange)
|
|
SELECT UID,Exchange FROM CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
DELETE CharDelHistory.dbo.DelCharItemEx WHERE UID = @CID and NewServerGroupID = @NewServerGroupID
|
|
|
|
INSERT INTO Friend (UID) VALUES (@CID)
|
|
INSERT INTO Quest (UID) VALUES (@CID)
|
|
|
|
|
|
INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime)
|
|
VALUES (@CID,GETDATE(),GETDATE())
|
|
|
|
-- 유저 정보 테이블 업데이트
|
|
--EXEC UpdateCharUID @user_uid, @user_pos, @CID
|
|
exec UpdateCharUID @user_uid, @user_pos, @UID , @NewServerGroupID
|
|
|
|
select 0 as success
|
|
|
|
*******************************************************/
|
|
|
|
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
|
|
|
|
|
|
CREATE PROC USPCampDelete @CampID INT
|
|
AS
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE @RETURN INT
|
|
|
|
DELETE TblCampInfo
|
|
WHERE nCampID = @CampID
|
|
|
|
SET @RETURN = @@ROWCOUNT
|
|
|
|
SELECT @RETURN
|
|
|
|
GO
|
|
|
|
CREATE PROC USPCastleUpdate @nCastleID INT,@nGuildID INT,@snTax SMALLINT,@nTaxMoney INT,
|
|
@tnTaxIncomeRemainDay TINYINT,@tnInvincibleDay TINYINT
|
|
AS
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE @RETURN INT
|
|
|
|
UPDATE TblCastleInfo
|
|
SET nGuildID = @nGuildID,snTax = @snTax,nTaxMoney=@nTaxMoney,
|
|
tnTaxIncomeRemainDay=@tnTaxIncomeRemainDay,tnInvincibleDay = @tnInvincibleDay
|
|
WHERE nCastleID = @nCastleID
|
|
|
|
SET @RETURN = @@ROWCOUNT
|
|
|
|
SELECT @RETURN
|
|
|
|
|
|
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
|
|
|
|
-- 길드 생성 하기
|
|
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
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
-- 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
|
|
|
|
--길드탈퇴....
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- 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
|
|
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- UpdatePartyInfo.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
파티 맴버 추가 프로시져
|
|
*/
|
|
|
|
CREATE PROCEDURE dbo.UpdatePartyInfo
|
|
@Party_uid AS INT, /* 파티 고유 아이디 */
|
|
@Party AS varBINARY(202) /* 친구 리스트 */
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
|
|
UPDATE PartyInfo SET Party = @Party WHERE PID = @Party_uid
|
|
|
|
|
|
GO
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
-- UpdateUserInfo.sql
|
|
----------------------------------------------------------------------------------------------------------------------
|
|
/*
|
|
유저 정보 변경 프로시져
|
|
*/
|
|
|
|
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
|
|
|
|
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
|
|
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
|
|
|
|
-- 새로추가될 내용
|
|
|
|
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
|
|
|
|
CREATE PROC dbo.UpdateUserFirstLogin @UID INT,@FirstLogin TINYINT
|
|
AS
|
|
SET NOCOUNT ON
|
|
|
|
UPDATE UserFirstLoginInfo SET FirstLogin = @FirstLogin WHERE UID = @UID
|
|
|
|
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
|
|
-- 배틀로한용 캐릭터 삭제 스크립트
|
|
-- 캐릭터 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
|
|
|
|
|
|
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
|
|
|
|
|
|
CREATE TABLE dbo.TblWebItemInfo
|
|
(
|
|
CreateID INT IDENTITY(1,1) PRIMARY KEY
|
|
, UID INT
|
|
, CID INT
|
|
, ItemPrototypeID SMALLINT
|
|
, Amount TINYINT
|
|
, MIN_DAMAGE TINYINT CHECK (MIN_DAMAGE IN (1,2,3,4,5,6,7))
|
|
, MAX_DAMAGE TINYINT CHECK (MAX_DAMAGE IN (1,2,3,4,5,6,7))
|
|
, ARMOR TINYINT CHECK (ARMOR IN (1,2,3,4,5,6,7))
|
|
, HIT_RATE TINYINT CHECK (HIT_RATE IN (1,2,3,4,5,6,7))
|
|
, EVADE TINYINT CHECK (EVADE IN (1,2,3,4,5,6,7))
|
|
, MAX_HP TINYINT CHECK (MAX_HP IN (1,2,3,4,5,6,7))
|
|
, HP_REGEN TINYINT CHECK (HP_REGEN IN (1,2,3,4,5,6,7))
|
|
, MAX_MP TINYINT CHECK (MAX_MP IN (1,2,3,4,5,6,7))
|
|
, MP_REGEN TINYINT CHECK (MP_REGEN IN (1,2,3,4,5,6,7))
|
|
, CRITICAL TINYINT CHECK (CRITICAL IN (1,2,3,4,5,6,7))
|
|
, BLOCK TINYINT CHECK (BLOCK IN (1,2,3,4,5,6,7))
|
|
, SPEED TINYINT CHECK (SPEED IN (1,2,3,4,5,6,7))
|
|
, MAGIC_POWER TINYINT CHECK (MAGIC_POWER IN (1,2,3,4,5,6,7))
|
|
, MAGIC_RESIST TINYINT CHECK (MAGIC_RESIST IN (1,2,3,4,5,6,7))
|
|
, ItemUID BIGINT NOT NULL DEFAULT(0)
|
|
)
|
|
|
|
GO
|
|
|
|
CREATE INDEX IDX_TblWebItemInfo_U_CID ON dbo.TblWebItemInfo (UID,CID)
|
|
|
|
GO
|
|
|
|
CREATE INDEX IDX_TblWebItemInfo_ItemUID ON dbo.TblWebItemInfo (ItemUID)
|
|
|
|
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
|
|
|
|
|