[Help]Official Files Database server

Results 1 to 3 of 3
  1. #1

    [Help]Official Files Database server

    Okay so I get this error now and honestly it doesn't make sense to me at all.

    2009/10/15 01:43:35
    query:uspLoadPlayerData '01'
    SQLSTATE:42S02 error:[Microsoft][SQL Native Client][SQL Server]Invalid object name 'CHARACTER_TBL'.

    ---------- Post added at 06:46 AM ---------- Previous post was at 06:45 AM ----------

    Ohh and I checked another error part and I got this error as well

    2009/10/15 01:45:14 LoadPlayerData - query: uspLoadPlayerData '01'


  2. #2
    GoPlay Labs Changzu is offline
    MemberRank
    Jun 2007 Join Date
    KoreaLocation
    491Posts

    Re: [Help]Official Files Database server

    Create new database "CHARACTER_01_DBF" execute:
    CREATE DATABASE [CHARACTER_01_DBF]
    ON PRIMARY
    ( NAME = [CHARACTER_01_DBF_Data],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF.MDF',
    SIZE = 632 MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 100 MB ),
    FILEGROUP [CHARACTER_01_DBF_FG1]
    ( NAME = [CHARACTER_01_DBF_Data1],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF_1.NDF',
    SIZE = 1024 MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 100 MB ),
    FILEGROUP [CHARACTER_01_DBF_FG2]
    ( NAME = [CHARACTER_01_DBF_Data2],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF_2.NDF',
    SIZE = 1024 MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 100 MB ),
    FILEGROUP [CHARACTER_01_DBF_FG3]
    ( NAME = [CHARACTER_01_DBF_Data3],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF_3.NDF',
    SIZE = 500 MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 50 MB ),
    FILEGROUP [CHARACTER_01_DBF_FGI]
    ( NAME = [CHARACTER_01_DBF_DataI],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF_4.NDF',
    SIZE = 500 MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 50 MB )
    LOG ON
    ( NAME = [CHARACTER_01_DBF_Log],
    FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CHARACTER_01_DBF_5.LDF',
    SIZE = 138 MB,
    MAXSIZE = 1024 MB,
    FILEGROWTH = 10 MB )
    COLLATE Latin1_General_BIN
    GO

    USE [CHARACTER_01_DBF]
    GO

    --
    -- Definition for user eocrm :
    --

    CREATE USER [eocrm]
    WITHOUT LOGIN
    WITH DEFAULT_SCHEMA = [dbo]
    GO

    --
    -- Definition for table 1-BANK_TBL :
    --

    CREATE TABLE [dbo].[1-BANK_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NULL,
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [m_Bank] varchar(8000) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table 1-GUILD_BANK_TBL :
    --

    CREATE TABLE [dbo].[1-GUILD_BANK_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NULL,
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NULL,
    [m_GuildBank] varchar(8000) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table 1-INVENTORY_TBL :
    --

    CREATE TABLE [dbo].[1-INVENTORY_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NULL,
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [m_Inventory] varchar(8000) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table BANK_EXT_TBL :
    --

    CREATE TABLE [dbo].[BANK_EXT_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_extBank] varchar(1296) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_EXT_TBL_m_extBank] DEFAULT '$' NULL,
    [m_BankPiercing] varchar(1872) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_EXT_TBL_m_BankPiercing] DEFAULT $0.0000 NULL,
    [szBankPet] varchar(2688) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_EXT_TBL_szBankPet] DEFAULT $0.0000 NULL
    )
    ON [CHARACTER_01_DBF_FG2]
    GO

    --
    -- Definition for table BANK_TBL :
    --

    CREATE TABLE [dbo].[BANK_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_BankPw] char(4) COLLATE Latin1_General_BIN NULL,
    [m_Bank] varchar(4290) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_TBL_m_Bank] DEFAULT $0.0000 NULL,
    [m_apIndex_Bank] varchar(215) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_TBL_m_apIndex_Bank] DEFAULT $0.0000 NULL,
    [m_dwObjIndex_Bank] varchar(215) COLLATE Latin1_General_BIN CONSTRAINT [DF_BANK_TBL_m_dwObjIndex_Bank] DEFAULT $0.0000 NULL,
    [m_dwGoldBank] int NULL
    )
    ON [CHARACTER_01_DBF_FG2]
    GO

    --
    -- Definition for table BASE_VALUE_TBL :
    --

    CREATE TABLE [dbo].[BASE_VALUE_TBL] (
    [g_nSex] char(1) COLLATE Latin1_General_BIN NULL,
    [m_vScale_x] real NULL,
    [m_dwMotion] int NULL,
    [m_fAngle] real NULL,
    [m_nHitPoint] int NULL,
    [m_nManaPoint] int NULL,
    [m_nFatiguePoint] int NULL,
    [m_dwRideItemIdx] int NULL,
    [m_dwGold] int NULL,
    [m_nJob] int NULL,
    [m_pActMover] varchar(50) COLLATE Latin1_General_BIN NULL,
    [m_nStr] int NULL,
    [m_nSta] int NULL,
    [m_nDex] int NULL,
    [m_nInt] int NULL,
    [m_nLevel] int NULL,
    [m_nExp1] bigint NULL,
    [m_nExp2] bigint NULL,
    [m_aJobSkill] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_aLicenseSkill] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_aJobLv] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_dwExpertLv] int NULL,
    [m_idMarkingWorld] int NULL,
    [m_vMarkingPos_x] real NULL,
    [m_vMarkingPos_y] real NULL,
    [m_vMarkingPos_z] real NULL,
    [m_nRemainGP] int NULL,
    [m_nRemainLP] int NULL,
    [m_nFlightLv] int NULL,
    [m_nFxp] int NULL,
    [m_nTxp] int NULL,
    [m_lpQuestCntArray] varchar(1024) COLLATE Latin1_General_BIN NULL,
    [m_chAuthority] char(1) COLLATE Latin1_General_BIN NULL,
    [m_dwMode] int NULL,
    [blockby] varchar(32) COLLATE Latin1_General_BIN NULL,
    [TotalPlayTime] int NULL,
    [isblock] char(1) COLLATE Latin1_General_BIN NULL,
    [m_Inventory] varchar(6940) COLLATE Latin1_General_BIN NULL,
    [m_apIndex] varchar(345) COLLATE Latin1_General_BIN NULL,
    [m_adwEquipment] varchar(135) COLLATE Latin1_General_BIN NULL,
    [m_aSlotApplet] varchar(3100) COLLATE Latin1_General_BIN NULL,
    [m_aSlotItem] varchar(6885) COLLATE Latin1_General_BIN NULL,
    [m_aSlotQueue] varchar(225) COLLATE Latin1_General_BIN NULL,
    [m_SkillBar] smallint NULL,
    [m_dwObjIndex] varchar(345) COLLATE Latin1_General_BIN NULL,
    [m_Card] varchar(1980) COLLATE Latin1_General_BIN NULL,
    [m_Cube] varchar(1980) COLLATE Latin1_General_BIN NULL,
    [m_apIndex_Card] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_dwObjIndex_Card] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_apIndex_Cube] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_dwObjIndex_Cube] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_idparty] int NULL,
    [m_nNumKill] int NULL,
    [m_idMuerderer] int NULL,
    [m_nSlaughter] int NULL,
    [m_nFame] int NULL,
    [m_nDeathExp] int NULL,
    [m_nDeathLevel] int NULL,
    [m_dwFlyTime] int NULL,
    [m_nMessengerState] int NULL,
    [m_Bank] varchar(4290) COLLATE Latin1_General_BIN NULL,
    [m_apIndex_Bank] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_dwObjIndex_Bank] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_dwGoldBank] int NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table BILING_ITEM_TBL :
    --

    CREATE TABLE [dbo].[BILING_ITEM_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_dwSMTime] varchar(2560) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table CHARACTER_TBL :
    --

    CREATE TABLE [dbo].[CHARACTER_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [account] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_szName] varchar(32) COLLATE Latin1_General_BIN NULL,
    [playerslot] int NULL,
    [dwWorldID] int NULL,
    [m_dwIndex] int NULL,
    [m_vScale_x] real NULL,
    [m_dwMotion] int NULL,
    [m_vPos_x] real NULL,
    [m_vPos_y] real NULL,
    [m_vPos_z] real NULL,
    [m_fAngle] real NULL,
    [m_szCharacterKey] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_nHitPoint] int NULL,
    [m_nManaPoint] int NULL,
    [m_nFatiguePoint] int NULL,
    [m_nFuel] int CONSTRAINT [m_nFuel_default] DEFAULT -1 NULL,
    [m_dwSkinSet] int NULL,
    [m_dwHairMesh] int NULL,
    [m_dwHairColor] int NULL,
    [m_dwHeadMesh] int NULL,
    [m_dwSex] int NULL,
    [m_dwRideItemIdx] int NULL,
    [m_dwGold] int NULL,
    [m_nJob] int NULL,
    [m_pActMover] varchar(50) COLLATE Latin1_General_BIN NULL,
    [m_nStr] int NULL,
    [m_nSta] int NULL,
    [m_nDex] int NULL,
    [m_nInt] int NULL,
    [m_nLevel] int NULL,
    [m_nMaximumLevel] int NULL,
    [m_nExp1] bigint NULL,
    [m_nExp2] bigint NULL,
    [m_aJobSkill] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_aLicenseSkill] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_aJobLv] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_dwExpertLv] int NULL,
    [m_idMarkingWorld] int NULL,
    [m_vMarkingPos_x] real NULL,
    [m_vMarkingPos_y] real NULL,
    [m_vMarkingPos_z] real NULL,
    [m_nRemainGP] int NULL,
    [m_nRemainLP] int NULL,
    [m_nFlightLv] int NULL,
    [m_nFxp] int NULL,
    [m_nTxp] int NULL,
    [m_lpQuestCntArray] varchar(3072) COLLATE Latin1_General_BIN NULL,
    [m_chAuthority] char(1) COLLATE Latin1_General_BIN NULL,
    [m_dwMode] int NULL,
    [m_idparty] int NULL,
    [m_idCompany] char(6) COLLATE Latin1_General_BIN NULL,
    [m_idMuerderer] int NULL,
    [m_nFame] int NULL,
    [m_nDeathExp] bigint NULL,
    [m_nDeathLevel] int NULL,
    [m_dwFlyTime] int NULL,
    [m_nMessengerState] int NULL,
    [blockby] varchar(32) COLLATE Latin1_General_BIN NULL,
    [TotalPlayTime] int NULL,
    [isblock] char(1) COLLATE Latin1_General_BIN NULL,
    [End_Time] char(12) COLLATE Latin1_General_BIN NULL,
    [BlockTime] char(8) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL,
    [m_tmAccFuel] int NULL,
    [m_tGuildMember] char(14) COLLATE Latin1_General_BIN NULL,
    [m_dwSkillPoint] int NULL,
    [m_aCompleteQuest] varchar(1024) COLLATE Latin1_General_BIN NULL,
    [m_dwReturnWorldID] int NULL,
    [m_vReturnPos_x] real NULL,
    [m_vReturnPos_y] real NULL,
    [m_vReturnPos_z] real NULL,
    [MultiServer] int NULL,
    [SkillPoint] int CONSTRAINT [DF_CHARACTER_SkillPoint] DEFAULT 0 NOT NULL,
    [SkillLv] int CONSTRAINT [DF_CHARACTER_SkillLv] DEFAULT 0 NOT NULL,
    [SkillExp] bigint CONSTRAINT [DF_CHARACTER_SkillExp] DEFAULT 0 NOT NULL,
    [dwEventFlag] bigint CONSTRAINT [DF_CHARACTER_dwEventFlag] DEFAULT 0 NULL,
    [dwEventTime] int CONSTRAINT [DF_CHARACTER_dwEventTime] DEFAULT 0 NULL,
    [dwEventElapsed] int CONSTRAINT [DF_CHARACTER_dwEventElapsed] DEFAULT 0 NULL,
    [AngelExp] bigint CONSTRAINT [DF_CHARACTER_AngelExp] DEFAULT 0 NOT NULL,
    [AngelLevel] int CONSTRAINT [DF_CHARACTER_AngelLevel] DEFAULT 0 NOT NULL,
    [PKValue] int CONSTRAINT [DF_CHARACTER_PKValue] DEFAULT 0 NOT NULL,
    [PKPropensity] int CONSTRAINT [DF_CHARACTER_PKPropensity] DEFAULT 0 NOT NULL,
    [PKExp] int CONSTRAINT [DF_CHARACTER_PKExp] DEFAULT 0 NOT NULL,
    [m_dwPetId] int CONSTRAINT [DF__CHARACTER__m_dwP__6225902D] DEFAULT -1 NULL,
    [m_nExpLog] int CONSTRAINT [DF__CHARACTER__m_nEx__6E8B6712] DEFAULT 0 NULL,
    [m_nAngelExpLog] int CONSTRAINT [DF__CHARACTER__m_nAn__6F7F8B4B] DEFAULT 0 NULL,
    [m_nCoupon] int CONSTRAINT [DF__CHARACTER__m_nCo__5A4F643B] DEFAULT 0 NOT NULL
    )
    ON [CHARACTER_01_DBF_FG3]
    GO

    --
    -- Definition for table COMPANY_TBL :
    --

    CREATE TABLE [dbo].[COMPANY_TBL] (
    [m_idCompany] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_szCompany] varchar(16) COLLATE Latin1_General_BIN NULL,
    [m_leaderid] char(6) COLLATE Latin1_General_BIN NULL,
    [isuse] char(1) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_BANK_EXT_TBL :
    --

    CREATE TABLE [dbo].[GUILD_BANK_EXT_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_extGuildBank] varchar(1296) COLLATE Latin1_General_BIN NULL,
    [m_GuildBankPiercing] varchar(1872) COLLATE Latin1_General_BIN NULL,
    [szGuildBankPet] varchar(2688) COLLATE Latin1_General_BIN CONSTRAINT [DF_GUILD_BANK_EXT_TBL_szGuildBankPet] DEFAULT '$' NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_BANK_TBL :
    --

    CREATE TABLE [dbo].[GUILD_BANK_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_apIndex] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_dwObjIndex] varchar(215) COLLATE Latin1_General_BIN NULL,
    [m_GuildBank] text COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    TEXTIMAGE_ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL :
    --

    CREATE TABLE [dbo].[GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [combatID] int NOT NULL,
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NOT NULL,
    [m_nSeq] int NULL,
    [Start_Time] datetime NULL,
    [End_Time] datetime NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_COMBAT_1TO1_BATTLE_TBL :
    --

    CREATE TABLE [dbo].[GUILD_COMBAT_1TO1_BATTLE_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [combatID] int NOT NULL,
    [m_idWorld] int NOT NULL,
    [Start_Time] datetime CONSTRAINT [DF__GUILD_COM__Start__74444068] DEFAULT getdate() NOT NULL,
    [End_Time] datetime NULL,
    [m_idGuild_1st] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [m_idGuild_2nd] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_COMBAT_1TO1_TENDER_TBL :
    --

    CREATE TABLE [dbo].[GUILD_COMBAT_1TO1_TENDER_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [combatID] int NOT NULL,
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [m_nPenya] int CONSTRAINT [DF__GUILD_COM__m_nPe__7167D3BD] DEFAULT 0 NOT NULL,
    [s_date] datetime CONSTRAINT [DF__GUILD_COM__s_dat__725BF7F6] DEFAULT getdate() NOT NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_MEMBER_TBL :
    --

    CREATE TABLE [dbo].[GUILD_MEMBER_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [m_szAlias] varchar(20) COLLATE Latin1_General_BIN NULL,
    [m_nWin] int NULL,
    [m_nLose] int NULL,
    [m_nSurrender] int NULL,
    [m_nMemberLv] int NULL,
    [m_nGiveGold] bigint NULL,
    [m_nGivePxp] int NULL,
    [m_idWar] int NULL,
    [m_idVote] int NULL,
    [isuse] char(1) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL,
    [m_nClass] int NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_QUEST_TBL :
    --

    CREATE TABLE [dbo].[GUILD_QUEST_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [n_Id] int NOT NULL,
    [nState] int NULL,
    [s_date] char(14) COLLATE Latin1_General_BIN NULL,
    [e_date] char(14) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_TBL :
    --

    CREATE TABLE [dbo].[GUILD_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [Lv_1] int NULL,
    [Lv_2] int NULL,
    [Lv_3] int NULL,
    [Lv_4] int NULL,
    [Pay_0] int NULL,
    [Pay_1] int NULL,
    [Pay_2] int NULL,
    [Pay_3] int NULL,
    [Pay_4] int NULL,
    [m_szGuild] varchar(48) COLLATE Latin1_General_BIN NULL,
    [m_nLevel] int NULL,
    [m_nGuildGold] int NULL,
    [m_nGuildPxp] int NULL,
    [m_nWin] int NULL,
    [m_nLose] int NULL,
    [m_nSurrender] int NULL,
    [m_nWinPoint] int NULL,
    [m_dwLogo] int NULL,
    [m_szNotice] varchar(127) COLLATE Latin1_General_BIN NULL,
    [isuse] char(1) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_VOTE_TBL :
    --

    CREATE TABLE [dbo].[GUILD_VOTE_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_idVote] int NULL,
    [m_cbStatus] char(1) COLLATE Latin1_General_BIN NULL,
    [m_szTitle] varchar(128) COLLATE Latin1_General_BIN NULL,
    [m_szQuestion] varchar(255) COLLATE Latin1_General_BIN NULL,
    [m_szString1] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_szString2] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_szString3] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_szString4] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_cbCount1] int NULL,
    [m_cbCount2] int NULL,
    [m_cbCount3] int NULL,
    [m_cbCount4] int NULL,
    [CreateTime] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table GUILD_WAR_TBL :
    --

    CREATE TABLE [dbo].[GUILD_WAR_TBL] (
    [m_idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_idWar] int NULL,
    [f_idGuild] char(6) COLLATE Latin1_General_BIN NULL,
    [m_nDeath] int NULL,
    [m_nSurrender] int NULL,
    [m_nCount] int NULL,
    [m_nAbsent] int NULL,
    [f_nDeath] int NULL,
    [f_nSurrender] int NULL,
    [f_nCount] char(10) COLLATE Latin1_General_BIN NULL,
    [f_nAbsent] int NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL,
    [StartTime] char(12) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table G_TOP_VOID_ACCOUNT :
    --

    CREATE TABLE [dbo].[G_TOP_VOID_ACCOUNT] (
    [account_name] varchar(50) COLLATE Latin1_General_BIN NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table G_TOP_VOID_CHAR :
    --

    CREATE TABLE [dbo].[G_TOP_VOID_CHAR] (
    [character_name] varchar(32) COLLATE Latin1_General_CI_AS NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table INVENTORY_EXT_TBL :
    --

    CREATE TABLE [dbo].[INVENTORY_EXT_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_extInventory] varchar(1296) COLLATE Latin1_General_BIN NULL,
    [m_InventoryPiercing] varchar(1872) COLLATE Latin1_General_BIN NULL,
    [szInventoryPet] varchar(2688) COLLATE Latin1_General_BIN CONSTRAINT [DF_INVENTORY_EXT_TBL_szInventoryPet] DEFAULT '$' NULL
    )
    ON [CHARACTER_01_DBF_FG2]
    GO

    --
    -- Definition for table INVENTORY_TBL :
    --

    CREATE TABLE [dbo].[INVENTORY_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_Inventory] varchar(6000) COLLATE Latin1_General_BIN NULL,
    [m_apIndex] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_adwEquipment] varchar(500) COLLATE Latin1_General_BIN NULL,
    [m_dwObjIndex] varchar(512) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG2]
    GO

    --
    -- Definition for table ITEM_REMOVE_TBL :
    --

    CREATE TABLE [dbo].[ITEM_REMOVE_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [Item_Name] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_nAbilityOption] int NULL,
    [Item_count] int NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL,
    [m_nNo] int IDENTITY(1, 1) NOT NULL,
    [End_Time] char(8) COLLATE Latin1_General_BIN NULL,
    [m_bItemResist] int NULL,
    [m_nResistAbilityOption] int NULL,
    [ItemFlag] int CONSTRAINT [DF_RemoveItemFlag] DEFAULT 0 NULL,
    [ReceiveDt] datetime CONSTRAINT [DF_ITEM_REMOVE_TBL_ReceiveDt] DEFAULT getdate() NULL,
    [DeleteDt] datetime NULL,
    [RequestUser] varchar(30) COLLATE Latin1_General_BIN CONSTRAINT [DF_RequestUser] DEFAULT 'UNKNOWN' NULL,
    [RandomOption] bigint CONSTRAINT [DF_ITEM_REMOVE_RandomOpt] DEFAULT 0 NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table ITEM_SEND_TBL :
    --

    CREATE TABLE [dbo].[ITEM_SEND_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [Item_Name] varchar(32) COLLATE Latin1_General_BIN NULL,
    [Item_count] int NULL,
    [m_nAbilityOption] int NULL,
    [m_nNo] int IDENTITY(1, 1) NOT NULL,
    [End_Time] char(8) COLLATE Latin1_General_BIN NULL,
    [m_bItemResist] int NULL,
    [m_nResistAbilityOption] int NULL,
    [m_bCharged] int NULL,
    [idSender] char(7) COLLATE Latin1_General_BIN CONSTRAINT [DF_ITEM_SEND_TBL_idRecvd] DEFAULT '000000' NULL,
    [nPiercedSize] int NULL,
    [adwItemId0] int NULL,
    [adwItemId1] int NULL,
    [adwItemId2] int NULL,
    [adwItemId3] int NULL,
    [m_dwKeepTime] bigint NULL,
    [ItemFlag] int CONSTRAINT [DF_ItemFlag] DEFAULT 0 NULL,
    [ReceiveDt] datetime CONSTRAINT [DF_ReceiveDt] DEFAULT getdate() NULL,
    [ProvideDt] datetime NULL,
    [nRandomOptItemId] bigint CONSTRAINT [DF_ITEM_SEND_RandomOpt] DEFAULT 0 NULL,
    [adwItemId4] int CONSTRAINT [DF_ITEM_SEND_adwItemId4] DEFAULT 0 NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table MAIL_TBL :
    --

    CREATE TABLE [dbo].[MAIL_TBL] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [nMail] bigint NOT NULL,
    [idReceiver] char(7) COLLATE Latin1_General_BIN NULL,
    [idSender] char(7) COLLATE Latin1_General_BIN NULL,
    [nGold] bigint NOT NULL,
    [tmCreate] int CONSTRAINT [DF_MAIL_TBL_tmCreate] DEFAULT 0 NULL,
    [byRead] int CONSTRAINT [DF_MAIL_TBL_byRead] DEFAULT 0 NULL,
    [szTitle] varchar(128) COLLATE Latin1_General_BIN NOT NULL,
    [szText] varchar(255) COLLATE Latin1_General_BIN NOT NULL,
    [dwItemId] int NOT NULL,
    [nItemNum] int NOT NULL,
    [nRepairNumber] int NOT NULL,
    [nHitPoint] int NOT NULL,
    [nMaxHitPoint] int NOT NULL,
    [nMaterial] int NOT NULL,
    [byFlag] int NOT NULL,
    [dwSerialNumber] int NOT NULL,
    [nOption] int NOT NULL,
    [bItemResist] int NOT NULL,
    [nResistAbilityOption] int NOT NULL,
    [idGuild] int NOT NULL,
    [nResistSMItemId] int NOT NULL,
    [bCharged] int NOT NULL,
    [dwKeepTime] int NOT NULL,
    [nRandomOptItemId] bigint NULL,
    [nPiercedSize] int NOT NULL,
    [dwItemId1] int NOT NULL,
    [dwItemId2] int NOT NULL,
    [dwItemId3] int NOT NULL,
    [dwItemId4] int NOT NULL,
    [SendDt] datetime NULL,
    [ReadDt] datetime NULL,
    [GetGoldDt] datetime NULL,
    [DeleteDt] datetime NULL,
    [ItemFlag] int CONSTRAINT [DF_MAIL_TBL_ItemFlag] DEFAULT 0 NOT NULL,
    [ItemReceiveDt] datetime NULL,
    [GoldFlag] int CONSTRAINT [DF_MAIL_TBL_GoldFag] DEFAULT 0 NOT NULL,
    [bPet] int CONSTRAINT [DF__MAIL_TBL__bPet__6319B466] DEFAULT 0 NULL,
    [nKind] int CONSTRAINT [DF__MAIL_TBL__nKind__640DD89F] DEFAULT 0 NULL,
    [nLevel] int CONSTRAINT [DF__MAIL_TBL__nLevel__6501FCD8] DEFAULT 0 NULL,
    [dwExp] int CONSTRAINT [DF__MAIL_TBL__dwExp__65F62111] DEFAULT 0 NULL,
    [wEnergy] int CONSTRAINT [DF__MAIL_TBL__wEnerg__66EA454A] DEFAULT 0 NULL,
    [wLife] int CONSTRAINT [DF__MAIL_TBL__wLife__67DE6983] DEFAULT 0 NULL,
    [anAvailLevel_D] int CONSTRAINT [DF__MAIL_TBL__anAvai__68D28DBC] DEFAULT 0 NULL,
    [anAvailLevel_C] int CONSTRAINT [DF__MAIL_TBL__anAvai__69C6B1F5] DEFAULT 0 NULL,
    [anAvailLevel_B] int CONSTRAINT [DF__MAIL_TBL__anAvai__6ABAD62E] DEFAULT 0 NULL,
    [anAvailLevel_A] int CONSTRAINT [DF__MAIL_TBL__anAvai__6BAEFA67] DEFAULT 0 NULL,
    [anAvailLevel_S] int CONSTRAINT [DF__MAIL_TBL__anAvai__6CA31EA0] DEFAULT 0 NULL,
    [dwItemId5] int CONSTRAINT [DF__MAIL_TBL__dwItem__6D9742D9] DEFAULT 0 NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table MESSENGER_TBL :
    --

    CREATE TABLE [dbo].[MESSENGER_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [f_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [m_nJob] int NULL,
    [m_dwSex] int NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL,
    [m_dwState] int NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table MESSENGER_TBL_sos :
    --

    CREATE TABLE [dbo].[MESSENGER_TBL_sos] (
    [f_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [m_nJob] int NULL,
    [m_dwSex] int NULL,
    [m_dwState] char(1) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table ONLINE_TBL :
    --

    CREATE TABLE [dbo].[ONLINE_TBL] (
    [account] varchar(50) COLLATE Latin1_General_BIN NULL,
    [name] varchar(50) COLLATE Latin1_General_BIN NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table PARTY_TBL :
    --

    CREATE TABLE [dbo].[PARTY_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [partyname] varchar(16) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table QUEST_TBL :
    --

    CREATE TABLE [dbo].[QUEST_TBL] (
    [m_idPlayer] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_wId] int NULL,
    [m_nState] tinyint NULL,
    [m_wTime] int NULL,
    [m_nKillNPCNum_0] tinyint NULL,
    [m_nKillNPCNum_1] tinyint NULL,
    [m_bPatrol] tinyint NULL,
    [m_bDialog] tinyint NULL,
    [m_bReserve3] tinyint NULL,
    [m_bReserve4] tinyint NULL,
    [m_bReserve5] tinyint NULL,
    [m_bReserve6] tinyint NULL,
    [m_bReserve7] tinyint NULL,
    [m_bReserve8] tinyint NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table SKILLINFLUENCE_TBL :
    --

    CREATE TABLE [dbo].[SKILLINFLUENCE_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NULL,
    [SkillInfluence] varchar(7500) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table SKILL_TBL :
    --

    CREATE TABLE [dbo].[SKILL_TBL] (
    [Index] float NULL,
    [szName] nvarchar(255) COLLATE Latin1_General_BIN NULL,
    [job] float NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table TAG_TBL :
    --

    CREATE TABLE [dbo].[TAG_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [f_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [m_Message] varchar(255) COLLATE Latin1_General_BIN NULL,
    [State] char(1) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table TASKBAR_ITEM_TBL :
    --

    CREATE TABLE [dbo].[TASKBAR_ITEM_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_aSlotItem] varchar(6885) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table TASKBAR_TBL :
    --

    CREATE TABLE [dbo].[TASKBAR_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [m_aSlotApplet] varchar(3100) COLLATE Latin1_General_BIN NULL,
    [m_aSlotQueue] varchar(225) COLLATE Latin1_General_BIN NULL,
    [m_SkillBar] smallint NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table WANTED_TBL :
    --

    CREATE TABLE [dbo].[WANTED_TBL] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [penya] bigint NULL,
    [szMsg] varchar(40) COLLATE Latin1_General_BIN NULL,
    [s_date] char(12) COLLATE Latin1_General_BIN NULL,
    [CreateTime] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table byGMCharacter :
    --

    CREATE TABLE [dbo].[byGMCharacter] (
    [account] varchar(32) COLLATE Latin1_General_BIN NULL,
    [m_szName] varchar(32) COLLATE Latin1_General_BIN NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table event_item :
    --

    CREATE TABLE [dbo].[event_item] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [min] int NULL,
    [max] int NULL,
    [rid] int IDENTITY(1, 1) NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table item2row_tbl :
    --

    CREATE TABLE [dbo].[item2row_tbl] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NULL,
    [m_dwItemId] int NULL,
    [m_nItemNum] int NULL,
    [m_nAbilityOption] int NULL,
    [m_dwObjId] int NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table item_stat_tbl :
    --

    CREATE TABLE [dbo].[item_stat_tbl] (
    [m_dwItemId] int NULL,
    [szName] nvarchar(459) COLLATE Latin1_General_BIN NULL,
    [lv 1-10] int NULL,
    [lv 11-20] int NULL,
    [lv 21-30] int NULL,
    [lv 31-40] int NULL,
    [lv 41-50] int NULL,
    [lv 51-60] int NULL,
    [lv 61-70] int NULL,
    [lv 71-80] int NULL,
    [lv 81-90] int NULL,
    [lv 91-100] int NULL,
    [lv 101-110] int NULL,
    [lv 111-120] int NULL,
    [lv 121-130] int NULL,
    [lv 131-140] int NULL,
    [lv 141-150] int NULL,
    [lv 151-160] int NULL,
    [lv 161-170] int NULL,
    [lv 171-180] int NULL,
    [lv 181-190] int NULL,
    [lv 191-200] int NULL,
    [lv 201-210] int NULL,
    [lv 211-220] int NULL,
    [lv 221-230] int NULL,
    [lv 231-240] int NULL,
    [lv 241-250] int NULL,
    [lv 251-260] int NULL,
    [lv 261-270] int NULL,
    [lv 271-280] int NULL,
    [lv 281-290] int NULL,
    [lv 291-300] int NULL,
    [cnt] int NULL,
    [dwItemLV] int NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table level :
    --

    CREATE TABLE [dbo].[level] (
    [Col001] float NULL,
    [Col002] float NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table stat_pet_inven :
    --

    CREATE TABLE [dbo].[stat_pet_inven] (
    [rid] int NULL,
    [petlevel] int NULL,
    [petdiv] int NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblCharacterRank :
    --

    CREATE TABLE [dbo].[tblCharacterRank] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [CharName] varchar(32) COLLATE Latin1_General_BIN NOT NULL,
    [account] varchar(32) COLLATE Latin1_General_BIN NOT NULL,
    [Level] int NOT NULL,
    [Exp] bigint NOT NULL,
    [PlayTime] bigint NOT NULL,
    [RankDt] smalldatetime NOT NULL,
    [m_nJob] int NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblCombatInfo :
    --

    CREATE TABLE [dbo].[tblCombatInfo] (
    [CombatID] int NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [Status] varchar(3) COLLATE Latin1_General_BIN NOT NULL,
    [StartDt] datetime NULL,
    [EndDt] datetime NULL,
    [Comment] varchar(1000) COLLATE Latin1_General_BIN CONSTRAINT [DF_tblCombatInfo_Comment] DEFAULT '' NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblCombatJoinGuild :
    --

    CREATE TABLE [dbo].[tblCombatJoinGuild] (
    [CombatID] int NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [GuildID] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [Status] varchar(3) COLLATE Latin1_General_BIN NOT NULL,
    [ApplyDt] datetime NOT NULL,
    [CombatFee] bigint NOT NULL,
    [ReturnCombatFee] bigint NOT NULL,
    [Reward] bigint NOT NULL,
    [Point] int NOT NULL,
    [RewardDt] datetime NULL,
    [CancelDt] datetime NULL,
    [StraightWin] int CONSTRAINT [DF_tblCombatJoinGuild_StraightWin] DEFAULT 0 NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblCombatJoinPlayer :
    --

    CREATE TABLE [dbo].[tblCombatJoinPlayer] (
    [CombatID] int NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [GuildID] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [PlayerID] char(7) COLLATE Latin1_General_BIN NULL,
    [Status] varchar(3) COLLATE Latin1_General_BIN CONSTRAINT [DF_tblCombatJoinPlayer_Status] DEFAULT '30' NOT NULL,
    [Point] int CONSTRAINT [DF_tblCombatJoinPlayer_Point] DEFAULT 0 NOT NULL,
    [Reward] bigint CONSTRAINT [DF_tblCombatJoinPlayer_Reward] DEFAULT 0 NOT NULL,
    [RewardDt] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblMessenger :
    --

    CREATE TABLE [dbo].[tblMessenger] (
    [idPlayer] char(7) COLLATE Latin1_General_BIN NOT NULL,
    [idFriend] char(7) COLLATE Latin1_General_BIN NOT NULL,
    [bBlock] int CONSTRAINT [DF_tblMessenger_dwState] DEFAULT 0 NOT NULL,
    [chUse] char(1) COLLATE Latin1_General_BIN CONSTRAINT [DF_tblMessenger_chUse] DEFAULT 'T' NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblPocket :
    --

    CREATE TABLE [dbo].[tblPocket] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [idPlayer] char(7) COLLATE Latin1_General_BIN NOT NULL,
    [nPocket] int NOT NULL,
    [szItem] varchar(4290) COLLATE Latin1_General_BIN NOT NULL,
    [szIndex] varchar(215) COLLATE Latin1_General_BIN NOT NULL,
    [szObjIndex] varchar(215) COLLATE Latin1_General_BIN NOT NULL,
    [bExpired] int NOT NULL,
    [tExpirationDate] int NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblPocketExt :
    --

    CREATE TABLE [dbo].[tblPocketExt] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [idPlayer] char(7) COLLATE Latin1_General_BIN NOT NULL,
    [nPocket] int NOT NULL,
    [szExt] varchar(2000) COLLATE Latin1_General_BIN NOT NULL,
    [szPiercing] varchar(2000) COLLATE Latin1_General_BIN NOT NULL,
    [szPet] varchar(2688) COLLATE Latin1_General_BIN NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblRemoveItemFromGuildBank :
    --

    CREATE TABLE [dbo].[tblRemoveItemFromGuildBank] (
    [nNum] int IDENTITY(1, 1) NOT NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [idGuild] char(6) COLLATE Latin1_General_BIN NOT NULL,
    [ItemIndex] varchar(32) COLLATE Latin1_General_BIN NOT NULL,
    [ItemSerialNum] int NOT NULL,
    [ItemCnt] int CONSTRAINT [DF_tblRemoveItemFromGuildBank_ItemCnt] DEFAULT 0 NOT NULL,
    [DeleteRequestCnt] int CONSTRAINT [DF_tblRemoveItemFromGuildBank_DeleteRequestCnt] DEFAULT 0 NOT NULL,
    [DeleteCnt] int CONSTRAINT [DF_tblRemoveItemFromGuildBank_DeleteCnt] DEFAULT 0 NOT NULL,
    [ItemFlag] int CONSTRAINT [DF_tblRemoveItemFromGuildBank_ItemFlag] DEFAULT 0 NOT NULL,
    [RegisterDt] datetime CONSTRAINT [DF_tblRemoveItemFromGuildBank_RegisterDt] DEFAULT getdate() NOT NULL,
    [DeleteDt] datetime NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblSkillPoint :
    --

    CREATE TABLE [dbo].[tblSkillPoint] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [PlayerID] char(7) COLLATE Latin1_General_BIN NULL,
    [SkillID] int NOT NULL,
    [SkillLv] int NOT NULL,
    [SkillPosition] int NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblevent_2007_newyear :
    --

    CREATE TABLE [dbo].[tblevent_2007_newyear] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [regdate] datetime CONSTRAINT [DF__tblevent___regda__3EA749C6] DEFAULT getdate() NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tblevent_2007_xmas :
    --

    CREATE TABLE [dbo].[tblevent_2007_xmas] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [regdate] datetime CONSTRAINT [DF__tblevent___regda__3CBF0154] DEFAULT getdate() NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table tcr :
    --

    CREATE TABLE [dbo].[tcr] (
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [CharName] varchar(32) COLLATE Latin1_General_BIN NOT NULL,
    [account] varchar(32) COLLATE Latin1_General_BIN NOT NULL,
    [Level] int NOT NULL,
    [Exp] bigint NOT NULL,
    [PlayTime] bigint NOT NULL,
    [RankDt] smalldatetime NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for table temp1 :
    --

    CREATE TABLE [dbo].[temp1] (
    [m_dwItemId] int NULL,
    [dwItemLV] int NULL
    )
    ON [PRIMARY]
    GO

    --
    -- Definition for table tmp01 :
    --

    CREATE TABLE [dbo].[tmp01] (
    [m_idPlayer] char(7) COLLATE Latin1_General_BIN NULL,
    [serverindex] char(2) COLLATE Latin1_General_BIN NOT NULL,
    [rid] int IDENTITY(1, 1) NOT NULL
    )
    ON [CHARACTER_01_DBF_FG1]
    GO

    --
    -- Definition for stored procedure ADD_BANK_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.ADD_BANK_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].ADD_BANK_STR
    @iGu CHAR(2) = 'U1',
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    -- BANK_TBL
    @im_Bank VARCHAR(4290)= '',
    @im_apIndex_Bank VARCHAR(215)= '',
    @im_dwObjIndex_Bank VARCHAR(215)= '',
    @im_dwGoldBank INT = 0,
    @im_extBank varchar(2000) = '',
    @im_BankPiercing varchar(2000) = ''
    , @iszBankPet varchar(2688) = '$'

    /*******************************************************
    Gu 구분
    S : SELECT
    I : INSERT
    U : UPDATE
    D : DELETE
    *******************************************************/
    AS
    set nocount on
    IF @iGu = 'U1' -- 캐릭터 저장
    BEGIN
    UPDATE BANK_TBL
    SET m_Bank = @im_Bank,
    m_apIndex_Bank = @im_apIndex_Bank,
    m_dwObjIndex_Bank = @im_dwObjIndex_Bank,
    m_dwGoldBank = @im_dwGoldBank
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE BANK_EXT_TBL
    SET m_extBank = @im_extBank,
    m_BankPiercing = @im_BankPiercing,
    szBankPet = @iszBankPet
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex

    SELECT fError = '1', fText = 'OK'
    RETURN
    END
    /*

    정보업데이트
    ex )
    ADD_BANK_STR 'U1', @iGu,@im_idPlayer,@iserverindex,@im_Bank ,@im_apIndex_Bank ,@im_dwObjIndex_Bank,@im_dwGoldBank
    ADD_BANK_STR 'U1','000001','01','$','$','$',1000

    */
    set nocount off
    RETURN
    GO

    --
    -- Definition for stored procedure BACKSYSTEM_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.BACKSYSTEM_STR Script Date: 7/29/2008 3:34:04 AM ******/




    CREATE PROCEDURE [dbo].[BACKSYSTEM_STR]
    @iGu CHAR(2) = 'S1',
    @iIndex INT = 0
    AS
    set nocount on
    IF @iGu = 'G1' -- Base GameSetting
    BEGIN
    select * from Base_GameSetteing
    RETURN
    END
    ELSE
    IF @iGu = 'G2' -- QUEST_TBL Data Insert
    BEGIN
    RETURN
    END

    set nocount off
    GO

    --
    -- Definition for stored procedure BANK_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.BANK_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].BANK_STR
    @iGu CHAR(1) ,
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    @im_BankPw CHAR(4)

    AS
    set nocount on
    IF @iGu = 'U'
    BEGIN
    UPDATE BANK_TBL
    SET m_BankPw = @im_BankPw
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    RETURN
    END
    /*

    BANK 비밀번호 저장하기
    ex )
    BANK_STR 'U',@im_idPlayer,@iserverindex,@im_BankPw
    BANK_STR 'U','000001','01','1234'

    */
    GO

    --
    -- Definition for stored procedure CHARACTER_DELETE_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.CHARACTER_DELETE_STR Script Date: 7/29/2008 3:34:04 AM ******/










    CREATE PROC [dbo].CHARACTER_DELETE_STR
    AS
    DECLARE @serverindex char(2)

    DECLARE Delete_Server CURSOR FOR
    SELECT serverindex FROM CHARACTER_TBL GROUP BY serverindex ORDER BY serverindex

    OPEN Delete_Server

    FETCH NEXT FROM Delete_Server
    INTO @serverindex

    WHILE @@FETCH_STATUS = 0
    BEGIN

    DELETE CHARACTER_TBL WHERE isblock='D' AND End_Time <= convert(char(8),DATEADD(d,-10,getdate()),112) and serverindex = @serverindex

    DECLARE @name varchar(256)
    DECLARE Delete_Cursor CURSOR FOR

    SELECT B.name
    FROM syscolumns A,sysobjects B
    WHERE A.id = B.id
    AND B.name NOT IN('CHARACTER_TBL','MESSENGER_TBL')
    AND A.name = 'm_idPlayer'
    AND B.type='U'
    ORDER BY B.name

    OPEN Delete_Cursor

    FETCH NEXT FROM Delete_Cursor
    INTO @name

    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT @name + ' TABLE DELETE'
    EXEC('DELETE ' + @name + ' WHERE m_idPlayer NOT IN (SELECT m_idPlayer FROM CHARACTER_TBL where serverindex = ''' + @serverindex + ''') and serverindex = ''' + @serverindex + '''')
    FETCH NEXT FROM Delete_Cursor
    INTO @name
    END

    PRINT 'NOTE DELETE'
    DELETE TAG_TBL WHERE f_idPlayer NOT IN (SELECT m_idPlayer FROM CHARACTER_TBL where serverindex = @serverindex) and serverindex = @serverindex

    PRINT 'FRIEND LIST DELETE(OTHER USER)'
    EXEC MESSENGER_STR 'D2','',@serverindex

    CLOSE Delete_Cursor
    DEALLOCATE Delete_Cursor

    FETCH NEXT FROM Delete_Server
    INTO @serverindex

    END
    CLOSE Delete_Server
    DEALLOCATE Delete_Server

    RETURN
    GO

    --
    -- Definition for stored procedure CHARACTER_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.CHARACTER_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE proc [dbo].[CHARACTER_STR]
    @iGu CHAR(2) = 'S1',
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    /**********************************************
    INSERT 용
    **********************************************/
    -- CHARACTER_TBL
    @iaccount VARCHAR(32) = '',
    @im_szName VARCHAR(32) = '',
    @iplayerslot INT = 0,
    @idwWorldID INT = 0,
    @im_dwIndex INT = 0,
    @im_vPos_x REAL = 0,
    @im_vPos_y REAL = 0,
    @im_vPos_z REAL = 0,
    @im_szCharacterKey VARCHAR(32) = '',
    @im_dwSkinSet INT = 0,
    @im_dwHairMesh INT = 0,
    @im_dwHairColor INT = 0,
    @im_dwHeadMesh INT = 0,
    @im_dwSex INT = 0,
    /**********************************************
    UPDATE 용
    **********************************************/
    -- CHARACTER_TBL
    @im_vScale_x REAL = 0,
    @im_dwMotion INT = 0,
    @im_fAngle REAL = 0,
    @im_nHitPoint INT = 0,
    @im_nManaPoint INT = 0,
    @im_nFatiguePoint INT = 0,
    @im_dwRideItemIdx INT = 0,
    @im_dwGold INT = 0,
    @im_nJob INT = 0,
    @im_pActMover VARCHAR(50) = '',
    @im_nStr INT = 0,
    @im_nSta INT = 0,
    @im_nDex INT = 0,
    @im_nInt INT = 0,
    @im_nLevel INT = 0,
    @im_nExp1 BIGINT = 0,
    @im_nExp2 BIGINT = 0,
    @im_aJobSkill VARCHAR(500) ='',
    @im_aLicenseSkill VARCHAR(500) ='',
    @im_aJobLv VARCHAR(500) ='',
    @im_dwExpertLv INT = 0,
    @im_idMarkingWorld INT = 0,
    @im_vMarkingPos_x REAL = 0,
    @im_vMarkingPos_y REAL = 0,
    @im_vMarkingPos_z REAL = 0,
    @im_nRemainGP INT = 0,
    @im_nRemainLP INT = 0,
    @im_nFlightLv INT = 0,
    @im_nFxp INT = 0,
    @im_nTxp INT = 0,
    @im_lpQuestCntArray VARCHAR(3072)= '',
    @im_chAuthority CHAR(1) = '',
    @im_dwMode INT = 0,
    @im_idparty INT = 0,
    --@im_nNumKill INT = 0,
    @im_idMuerderer INT = 0,
    --@im_nSlaughter INT = 0,
    @im_nFame INT = 0,
    @im_nDeathExp BIGINT = 0,
    @im_nDeathLevel INT = 0,
    @im_dwFlyTime INT = 0,
    @im_nMessengerState INT = 0,
    @iTotalPlayTime INT = 0,
    ---------- Additional end ----------
    -- PK Variable
    @im_nPKValue int=0,
    @im_dwPKPropensity int=0,
    @im_dwPKExp int=0,
    ---------- Additional end ----------
    -- CARD_CUBE_TBL
    @im_Card VARCHAR(1980)= '',
    @im_Index_Card VARCHAR(215) = '',
    @im_ObjIndex_Card VARCHAR(215) = '',
    @im_Cube VARCHAR(1980)= '',
    @im_Index_Cube VARCHAR(215) = '',
    @im_ObjIndex_Cube VARCHAR(215) = '',
    -- INVENTORY_TBL
    @im_Inventory VARCHAR(6940)= '',
    @im_apIndex VARCHAR(345) = '',
    @im_adwEquipment VARCHAR(135) = '',
    @im_dwObjIndex VARCHAR(345) = '',
    -- TASKBAR_TBL
    @im_aSlotApplet VARCHAR(3100)= '',
    -- TASKBAR_ITEM_TBL
    @im_aSlotItem VARCHAR(6885)= '',
    -- TASKBAR_TBL
    @im_aSlotQueue VARCHAR(225)= '',
    @im_SkillBar SMALLINT = 0,
    -- BANK_TBL
    @im_Bank VARCHAR(4290)= '',
    @im_apIndex_Bank VARCHAR(215)= '',
    @im_dwObjIndex_Bank VARCHAR(215)= '',
    @im_dwGoldBank INT = 0,
    @im_nFuel INT = -1,
    @im_tmAccFuel INT = 0,
    @im_dwSMTime VARCHAR(2560)='',
    @iSkillInfluence varchar(2048) ='',
    @im_dwSkillPoint INT = 0,
    @im_aCompleteQuest varchar(1024) = '',
    @im_extInventory varchar(2000) = '',
    @im_extBank varchar(2000) = '',
    @im_InventoryPiercing varchar(2000) = '',
    @im_BankPiercing varchar(2000) = '',
    @im_dwReturnWorldID INT = 1,
    @im_vReturnPos_x REAL = 0,
    @im_vReturnPos_y REAL = 0,
    @im_vReturnPos_z REAL= 0
    -------------- ( Version 7 : Skill Update)
    , @im_SkillPoint int=0
    , @im_SkillLv int=0
    , @im_SkillExp bigint=0
    -------------- (Additional end)
    , @idwEventFlag bigint=0,
    @idwEventTime int=0,
    @idwEventElapsed int=0
    -------------- (Additional end)
    ----------Additional end----------
    -- PVP (Additional end)
    ,@im_nAngelExp bigint=0
    ,@im_nAngelLevel int=0
    ----------Additional end ----------
    --------------- Version 9 Relation of additional partial Pet
    ,@iszInventoryPet varchar(2688) = '$'
    ,@iszBankPet varchar(2688) = '$'
    ,@im_dwPetId int = -1
    ,@im_nExpLog int = 0
    ,@im_nAngelExpLog int = 0
    --------- Ver 11 Coupon
    ,@im_nCoupon int = 0

    /*******************************************************
    Gu Dividing
    S : SELECT
    I : INSERT
    U : UPDATE
    D : DELETE


    2005.04.11 updated

    ALTER TABLE CHARACTER_TBL ADD m_aCompleteQuest varchar(1024) NULL
    ALTER TABLE CHARACTER_TBL ALTER COLUMN m_lpQuestCntArray VARCHAR(3072) NULL

    *******************************************************/
    AS
    set nocount on
    declare @last_connect tinyint
    set @last_connect = 1

    IF @iGu = 'S2' -- Is a player list which follows in the slot cuts coil information bringing,
    BEGIN
    IF @iaccount = '' OR @im_szName = ''
    BEGIN
    SELECT m_chAuthority = '',fError = '1', fText = 'Wrong password'
    RETURN
    END
    SELECT A.dwWorldID,
    A.m_szName,
    A.playerslot,
    A.End_Time,
    A.BlockTime,
    A.m_dwIndex,
    A.m_idPlayer,
    A.m_idparty,
    A.m_dwSkinSet,
    A.m_dwHairMesh,
    A.m_dwHeadMesh,
    A.m_dwHairColor,
    A.m_dwSex,
    A.m_nJob,
    A.m_nLevel,
    A.m_vPos_x,
    A.m_vPos_y,
    A.m_vPos_z,
    A.m_nStr,
    A.m_nSta,
    A.m_nDex,
    A.m_nInt,
    --A.m_nSlaughter, -- raidersAddition 2005.5.11
    A.m_aJobLv,
    A.m_chAuthority,
    A.m_idCompany,
    A.m_nMessengerState,
    B.m_Inventory,
    B.m_apIndex,
    B.m_adwEquipment,
    B.m_dwObjIndex,
    m_idGuild = CASE WHEN C.m_idGuild IS NULL THEN '0' ELSE C.m_idGuild END ,
    m_idWar = CASE WHEN C.m_idWar IS NULL THEN '0' ELSE C.m_idWar END,
    D.m_extInventory,
    D.m_InventoryPiercing,
    A.m_idCompany,
    last_connect = @last_connect
    FROM CHARACTER_TBL A, INVENTORY_TBL B,GUILD_MEMBER_TBL C, INVENTORY_EXT_TBL D
    WHERE A.m_idPlayer = B.m_idPlayer
    AND A.serverindex= B.serverindex
    AND B.m_idPlayer = D.m_idPlayer
    AND B.serverindex = D.serverindex
    AND D.m_idPlayer *= C.m_idPlayer
    AND D.serverindex *= C.serverindex
    AND A.isblock = 'F'
    AND A.account = @iaccount
    AND A.serverindex= @iserverindex
    ORDER BY A.playerslot
    RETURN
    END
    /*

    Is a player list which follows in the slot cuts coil information bringing,
    ex )
    CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
    CHARACTER_STR 'S2','0','02','seghope','1234'


    */

    ELSE
    IF @iGu = 'S3' -- The server initially idPlayer of characters which will execute all the branch, coming,
    BEGIN
    SELECT m_szName, m_idPlayer,m_idCompany
    FROM CHARACTER_TBL
    WHERE serverindex = @iserverindex
    -- AND isblock = 'F'
    ORDER BY m_idPlayer
    RETURN
    END
    /*

    The server initially idPlayer of characters which will execute all the branch, coming,
    ex )
    CHARACTER_STR 'S3','',@iserverindex
    CHARACTER_STR 'S3','','02'



    */

    ELSE
    IF @iGu = 'S4' -- The item confirmation which will add
    BEGIN
    /* if (getdate() >= '2007-10-29 00:00:00' and getdate() <= '2007-10-31 23:59:59')
    begin
    if not exists (select * from EOCRM.MANAGE_DBF.dbo.tblEvent_Halloween_2007 where serverindex = @iserverindex and m_idPlayer = @im_idPlayer)
    begin
    declare @q1 nvarchar(4000)
    declare @ktime bigint
    select @ktime = cast(replace(replace(replace(convert(char(16), dateadd(hh, 72, getdate()), 21), '-', ''), ' ', ''), ':', '') as bigint)

    set @q1 = '
    insert into ITEM_SEND_TBL (m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, m_bItemResist, m_nResistAbilityOption, m_bCharged, m_dwKeepTime)
    select @im_idPlayer, @iserverindex, ''26425'', 1, 0, 0, 0, 0, @ktime'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2), @ktime bigint', @im_idPlayer, @iserverindex, @ktime

    set @q1 = '

    insert into EOCRM.MANAGE_DBF.dbo.tblEvent_Halloween_2007 (serverindex, m_idPlayer)
    select @iserverindex, @im_idPlayer'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex

    set @q1 = '
    SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption, m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex

    end

    else

    begin
    SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption, m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0
    end
    end
    else
    begin

    SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption, m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0

    end*/
    declare @q1 nvarchar(4000)

    /* if ((getdate() >= '2007-12-23 00:00:00') and (getdate() <= '2007-12-25 23:59:59'))
    begin
    if not exists (select * from tblevent_2007_xmas where m_idPlayer = @im_idPlayer)
    begin
    declare @m_dwSex int
    declare @xmas_Item varchar(32)
    select @m_dwSex = m_dwSex from CHARACTER_TBL where m_idPlayer = @im_idPlayer
    if @m_dwSex = 0
    begin
    set @xmas_Item = '26339'
    end
    else
    begin
    set @xmas_Item = '26340'
    end

    set @q1 = 'insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
    select @im_idPlayer, ''01'', @xmas_Item, 1, 0, ''0000000'''
    exec sp_executesql @q1, N'@im_idPlayer char(7), @xmas_Item varchar(32)', @im_idPlayer, @xmas_Item

    insert into tblevent_2007_xmas (m_idPlayer)
    select @im_idPlayer

    set @q1 = 'SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
    m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, m_dwKeepTime
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
    end
    else
    begin
    set @q1 = 'SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
    m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, m_dwKeepTime
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
    end
    end*/
    if ((getdate() >= '2007-12-31 00:00:00') and (getdate() <= '2007-12-31 23:59:59'))
    begin
    if not exists (select * from tblevent_2007_newyear where m_idPlayer = @im_idPlayer)
    begin
    declare @newyear_Item varchar(32)
    set @newyear_Item = '2904'
    set @q1 = 'insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
    select @im_idPlayer, ''01'', @newyear_Item, 5, 0, ''0000000'''
    exec sp_executesql @q1, N'@im_idPlayer char(7), @newyear_Item varchar(32)', @im_idPlayer, @newyear_Item

    insert into tblevent_2007_newyear (m_idPlayer)
    select @im_idPlayer

    set @q1 = 'SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
    m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, adwItemId4, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
    end
    else
    begin
    set @q1 = 'SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
    m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, adwItemId4, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
    end
    end
    else
    begin
    set @q1 = 'SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
    m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, adwItemId4, m_dwKeepTime, nRandomOptItemId
    FROM ITEM_SEND_TBL
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND ItemFlag = 0'
    exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
    end
    RETURN
    END
    /*


    Item confirmation
    ex )
    CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
    CHARACTER_STR 'S4','000001','01'

    */

    ELSE
    IF @iGu = 'S5' -- From table after item utmost urgency item elimination
    BEGIN
    -- DELETE ITEM_SEND_TBL
    UPDATE ITEM_SEND_TBL SET ProvideDt=getdate(), ItemFlag=1
    WHERE m_nNo = @iplayerslot
    IF @@ROWCOUNT = 0
    SELECT fError = '0'
    ELSE
    SELECT fError = '1'
    RETURN
    END
    /*

    From table after item utmost urgency item elimination
    ex )
    CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
    CHARACTER_STR 'S5','000001','01','Broom',1,1
    */

    ELSE
    IF @iGu = 'S6' -- The item confirmation which will eliminate
    BEGIN
    SELECT Item_Name,
    Item_count,
    m_nAbilityOption,
    m_nNo,
    State,
    m_bItemResist,
    m_nResistAbilityOption
    FROM ITEM_REMOVE_TBL
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND ItemFlag = 0
    RETURN
    END
    /*
    Item confirmation
    ex )
    CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
    CHARACTER_STR 'S6','000001','01'
    */

    ELSE
    IF @iGu = 'S7' -- After item eliminating from table item elimination
    BEGIN
    -- DELETE ITEM_REMOVE_TBL
    UPDATE ITEM_REMOVE_TBL SET DeleteDt=getdate(), ItemFlag=1
    WHERE m_nNo = @iplayerslot

    IF @@ROWCOUNT = 0
    SELECT fError = '0'
    ELSE
    SELECT fError = '1'
    RETURN
    END
    /*
    From table after item utmost urgency item elimination
    ex )
    CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
    CHARACTER_STR 'S7','000001','01','Broom',1,1
    */

    IF @iGu = 'S8' -- The data whole bringing,
    BEGIN
    PRINT @iaccount

    DECLARE @om_chLoginAuthority CHAR(1)
    -- Bank information character stars bringing

    SET @om_chLoginAuthority = 'F'
    --SELECT @om_chLoginAuthority = m_chLoginAuthority
    -- FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL
    --WHERE lower(account) = lower(@iaccount)
    --INSERT INTO [ONLINE_TBL] ([account] ,[name]) VALUES(@iaccount,@im_idPlayer)
    SELECT m_chLoginAuthority = @om_chLoginAuthority,
    A.account,
    A.m_idPlayer,
    A.playerslot,
    A.serverindex,
    A.dwWorldID,
    A.m_szName,
    A.m_dwIndex,
    A.m_vScale_x,
    A.m_dwMotion,
    A.m_vPos_x,
    A.m_vPos_y,
    A.m_vPos_z,
    A.m_fAngle,
    A.m_szCharacterKey,
    A.m_idPlayer,
    A.m_nHitPoint,
    A.m_nManaPoint,
    A.m_nFatiguePoint,
    A.m_nFuel,
    A.m_dwSkinSet,
    A.m_dwHairMesh,
    A.m_dwHairColor,
    A.m_dwHeadMesh,
    A.m_dwSex,
    A.m_dwRideItemIdx,
    A.m_dwGold,
    A.m_nJob,
    A.m_pActMover,
    A.m_nStr,
    A.m_nSta,
    A.m_nDex,
    A.m_nInt,
    A.m_nLevel,
    A.m_nMaximumLevel,
    A.m_nExp1,
    A.m_nExp2,
    A.m_aJobSkill,
    A.m_aLicenseSkill,
    A.m_aJobLv,
    A.m_dwExpertLv,
    A.m_idMarkingWorld,

    A.m_vMarkingPos_x,
    A.m_vMarkingPos_y,
    A.m_vMarkingPos_z,
    A.m_nRemainGP,
    A.m_nRemainLP,
    A.m_nFlightLv,
    A.m_nFxp,
    A.m_nTxp,
    A.m_lpQuestCntArray,
    m_aCompleteQuest = ISNULL(A.m_aCompleteQuest,'$'),
    A.m_chAuthority,
    A.m_dwMode,
    A.m_idparty,
    A.m_idCompany,
    --A.m_nNumKill,
    A.m_idMuerderer,
    --A.m_nSlaughter,
    A.m_nFame,
    A.m_nDeathExp,
    A.m_nDeathLevel,
    A.m_dwFlyTime,
    A.m_nMessengerState,
    A.End_Time,
    A.BlockTime,
    A.blockby,
    A.isblock,
    A.TotalPlayTime,
    A.CreateTime,
    A.m_dwSkillPoint,
    B.m_aSlotApplet,
    B.m_aSlotQueue,
    B.m_SkillBar,
    C.m_aSlotItem,
    D.m_Inventory,
    D.m_apIndex,
    D.m_adwEquipment,
    D.m_dwObjIndex,
    m_idGuild = ISNULL(G.m_idGuild,'0'),

    m_idWar = ISNULL(G.m_idWar,'0'),
    A.m_tmAccFuel,
    A.m_tGuildMember,
    m_dwSMTime = ISNULL(H.m_dwSMTime,'NULL') ,
    SkillInfluence = ISNULL(E.SkillInfluence,'$'),
    F.m_extInventory,
    F.m_InventoryPiercing,
    A.m_dwReturnWorldID,
    A.m_idCompany,
    A.m_vReturnPos_x,
    A.m_vReturnPos_y,
    A.m_vReturnPos_z
    ------------------ ( ADD : Version7-Skill System)
    , m_SkillPoint = SkillPoint
    , m_SkillLv = SkillLv
    , m_SkillExp = SkillExp
    -------------- (Additional start)
    , A.dwEventFlag,
    A.dwEventTime,
    A.dwEventElapsed
    -------------- (Additional start)
    ----------Additional start ----------
    , A.PKValue as m_nPKValue,
    A.PKPropensity as m_dwPKPropensity,
    A.PKExp as m_dwPKExp
    ----------Additional end ----------
    ----------Additional end ----------
    ,AngelExp as m_nAngelExp
    ,AngelLevel as m_nAngelLevel
    ----------Additional end ----------
    ------------------- Version9 Pet
    , F.szInventoryPet as szInventoryPet
    , A.m_dwPetId
    , A.m_nExpLog, A.m_nAngelExpLog
    ------------- Ver 11 Coupon
    , m_nCoupon
    , last_connect = @last_connect
    FROM CHARACTER_TBL A,
    TASKBAR_TBL B,
    TASKBAR_ITEM_TBL C,
    INVENTORY_TBL D,
    SKILLINFLUENCE_TBL E,
    INVENTORY_EXT_TBL F,
    GUILD_MEMBER_TBL G,
    BILING_ITEM_TBL H
    WHERE A.m_idPlayer = @im_idPlayer
    AND A.serverindex = @iserverindex
    AND A.m_idPlayer = B.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.m_idPlayer = C.m_idPlayer
    AND B.serverindex = C.serverindex
    AND C.m_idPlayer = D.m_idPlayer
    AND C.serverindex = D.serverindex
    AND D.m_idPlayer = E.m_idPlayer
    AND D.serverindex = E.serverindex
    AND E.m_idPlayer = F.m_idPlayer
    AND E.serverindex = F.serverindex
    AND F.serverindex *= G.serverindex
    AND F.m_idPlayer *= G.m_idPlayer
    AND F.serverindex *= H.serverindex
    AND F.m_idPlayer *= H.m_idPlayer
    AND A.account = lower(@iaccount)


    -- Bank information account stars bringing

    -- DECLARE @bank TABLE (m_idPlayer CHAR(6),serverindex CHAR(2),playerslot INT)
    --
    -- INSERT @bank
    -- (m_idPlayer,serverindex,playerslot)
    -- SELECT m_idPlayer,serverindex,playerslot
    -- FROM CHARACTER_TBL
    -- WHERE account = @iaccount
    -- AND isblock = 'F'
    -- ORDER BY playerslot

    SELECT a.m_idPlayer,
    c.playerslot,
    a.m_Bank,
    a.m_apIndex_Bank,
    a.m_dwObjIndex_Bank,
    a.m_dwGoldBank,
    a.m_BankPw,
    b.m_extBank,
    b.m_BankPiercing, b.szBankPet
    FROM dbo.BANK_TBL a,
    dbo.BANK_EXT_TBL b,
    dbo.CHARACTER_TBL c
    WHERE a.m_idPlayer = b.m_idPlayer
    AND a.serverindex = b.serverindex
    AND b.m_idPlayer = c.m_idPlayer
    AND b.serverindex = c.serverindex
    AND c.account = lower(@iaccount)
    AND c.isblock = 'F'
    ORDER BY c.playerslot

    ------------- Ver11 Pocket
    SELECT a.nPocket,
    a.szItem,
    a.szIndex,
    a.szObjIndex,
    a.bExpired,
    a.tExpirationDate,
    b.szExt,
    b.szPiercing,
    b.szPet
    FROM tblPocket as a inner join tblPocketExt as b
    on a.serverindex = b.serverindex AND a.idPlayer = b.idPlayer AND a.nPocket = b.nPocket
    WHERE a.serverindex = @iserverindex AND a.idPlayer = @im_idPlayer
    ORDER BY a.nPocket

    RETURN
    END
    /*

    The data whole bringing, New
    ex )
    CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
    CHARACTER_STR 'S8','425120','01','ata3k'
    */
    ELSE
    IF @iGu = 'U1' -- Character store
    BEGIN
    --DELETE FROM ONLINE_TBL WHERE name = @im_idPlayer
    UPDATE CHARACTER_TBL
    SET dwWorldID = @idwWorldID,
    m_dwIndex = @im_dwIndex,
    m_dwSex = @im_dwSex,
    m_vScale_x = @im_vScale_x,
    m_dwMotion = @im_dwMotion,
    m_vPos_x = @im_vPos_x,
    m_vPos_y = @im_vPos_y,
    m_vPos_z = @im_vPos_z,
    m_dwHairMesh = @im_dwHairMesh,
    m_dwHairColor = @im_dwHairColor,
    m_dwHeadMesh = @im_dwHeadMesh, -- 2004/11/08 Addition
    m_fAngle = 0, --@im_fAngle,
    m_szCharacterKey = @im_szCharacterKey,

    m_nHitPoint = @im_nHitPoint,
    m_nManaPoint = @im_nManaPoint,
    m_nFatiguePoint = @im_nFatiguePoint,
    m_nFuel = @im_nFuel,
    m_dwRideItemIdx = @im_dwRideItemIdx,
    m_dwGold = @im_dwGold,
    m_nJob = @im_nJob,
    m_pActMover = @im_pActMover,
    m_nStr = @im_nStr,
    m_nSta = @im_nSta,
    m_nDex = @im_nDex,
    m_nInt = @im_nInt,

    m_nLevel = @im_nLevel,
    m_nMaximumLevel = CASE WHEN m_nMaximumLevel < @im_nLevel THEN @im_nLevel ELSE m_nMaximumLevel END,
    m_nExp1 = @im_nExp1,
    m_nExp2 = @im_nExp2,
    m_aJobSkill = @im_aJobSkill,
    m_aLicenseSkill = @im_aLicenseSkill,
    m_aJobLv = @im_aJobLv,
    m_dwExpertLv = @im_dwExpertLv,
    m_idMarkingWorld = @im_idMarkingWorld,
    m_vMarkingPos_x = @im_vMarkingPos_x,
    m_vMarkingPos_y = @im_vMarkingPos_y,
    m_vMarkingPos_z = @im_vMarkingPos_z,
    m_nRemainGP = @im_nRemainGP,
    m_nRemainLP = @im_nRemainLP,
    m_nFlightLv = @im_nFlightLv,
    m_nFxp = @im_nFxp,
    m_nTxp = @im_nTxp,
    m_lpQuestCntArray = @im_lpQuestCntArray,
    m_aCompleteQuest = @im_aCompleteQuest,
    m_dwMode = @im_dwMode,
    m_idparty = @im_idparty,
    --m_nNumKill = @im_nNumKill,
    m_idMuerderer = @im_idMuerderer,
    --m_nSlaughter = @im_nSlaughter ,

    m_nFame = @im_nFame,
    m_nDeathExp = @im_nDeathExp,
    m_nDeathLevel = @im_nDeathLevel,

    -- m_dwFlyTime = m_dwFlyTime + @im_dwFlyTime,
    m_dwFlyTime = @im_dwFlyTime,
    m_nMessengerState = @im_nMessengerState,
    TotalPlayTime = TotalPlayTime + @iTotalPlayTime,
    m_tmAccFuel = @im_tmAccFuel,
    m_dwSkillPoint = @im_dwSkillPoint,
    m_dwReturnWorldID= @im_dwReturnWorldID,
    m_idCompany = 0,
    m_vReturnPos_x = @im_vReturnPos_x,
    m_vReturnPos_y = @im_vReturnPos_y,
    m_vReturnPos_z = @im_vReturnPos_z
    -------------- (ADD: Version7-SkillSystem)
    , SkillPoint = @im_SkillPoint
    , SkillLv = @im_SkillLv
    , SkillExp = @im_SkillExp
    -------------- (Additional part)
    , dwEventFlag =@idwEventFlag,
    dwEventTime =@idwEventTime,
    dwEventElapsed =@idwEventElapsed
    -------------- (Additional part)
    ----------Additional start ----------
    , PKValue = @im_nPKValue,
    PKPropensity = @im_dwPKPropensity,
    PKExp = @im_dwPKExp
    ----------Additional end ----------
    ----------Additional start ----------
    , AngelExp= @im_nAngelExp
    , AngelLevel= @im_nAngelLevel
    ----------Additional end ----------
    --------------------- Version9 Pet
    , m_dwPetId = @im_dwPetId
    , m_nExpLog = @im_nExpLog
    , m_nAngelExpLog = @im_nAngelExpLog
    ------------ Ver 11
    , m_nCoupon = @im_nCoupon
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    -- if object_id('QUEST_TBL') is not null
    -- EXEC QUEST_STR 'A1',@im_idPlayer,@iserverindex,@im_lpQuestCntArray

    --Relation of [song] present three request fact Bill rings
    IF @im_dwSMTime > ''
    BEGIN
    IF EXISTS(SELECT * FROM BILING_ITEM_TBL WHERE m_idPlayer= @im_idPlayer AND serverindex = @iserverindex)
    UPDATE BILING_ITEM_TBL
    SET m_dwSMTime = @im_dwSMTime
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    ELSE
    INSERT BILING_ITEM_TBL
    (m_idPlayer,serverindex,m_dwSMTime)
    VALUES
    (@im_idPlayer,@iserverindex,@im_dwSMTime)
    END
    ELSE
    DELETE BILING_ITEM_TBL
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex


    -- UPDATE CARD_CUBE_TBL
    -- SET m_Card = @im_Card,
    -- m_apIndex_Card = @im_Index_Card,
    -- m_dwObjIndex_Card= @im_ObjIndex_Card,
    -- m_Cube = @im_Cube,
    -- m_apIndex_Cube = @im_Index_Cube,
    -- m_dwObjIndex_Cube=@im_ObjIndex_Cube
    -- WHERE m_idPlayer = @im_idPlayer
    -- AND serverindex = @iserverindex

    UPDATE INVENTORY_TBL
    SET m_Inventory = @im_Inventory,
    m_apIndex = @im_apIndex,
    m_adwEquipment = @im_adwEquipment,
    m_dwObjIndex = @im_dwObjIndex
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex


    UPDATE TASKBAR_TBL
    SET m_aSlotApplet = @im_aSlotApplet,
    m_aSlotQueue = @im_aSlotQueue,
    m_SkillBar = @im_SkillBar
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex


    UPDATE TASKBAR_ITEM_TBL
    SET m_aSlotItem = @im_aSlotItem
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE BANK_TBL
    SET m_Bank = @im_Bank,
    m_apIndex_Bank = @im_apIndex_Bank,
    m_dwObjIndex_Bank = @im_dwObjIndex_Bank,
    m_dwGoldBank = @im_dwGoldBank
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE SKILLINFLUENCE_TBL
    SET SkillInfluence = @iSkillInfluence
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE INVENTORY_EXT_TBL
    SET m_extInventory = @im_extInventory,
    m_InventoryPiercing = @im_InventoryPiercing
    , szInventoryPet = @iszInventoryPet
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex

    UPDATE BANK_EXT_TBL
    SET m_extBank = @im_extBank,
    m_BankPiercing = @im_BankPiercing
    , szBankPet = @iszBankPet
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex

    SELECT fError = '1', fText = 'OK'
    RETURN
    END
    /*

    Information update
    ex )
    CHARACTER_STR 'U1', ALL ...
    CHARACTER_STR 'U1','000001','01' ...
    */

    ELSE
    IF @iGu = 'U2' -- Total use time correction
    BEGIN
    UPDATE CHARACTER_TBL
    SET TotalPlayTime = TotalPlayTime + @iplayerslot
    WHERE m_szName = @im_szName
    AND serverindex = @iserverindex
    RETURN
    END

    /*

    Total use time correction
    ex )
    CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
    CHARACTER_STR 'U2','','01','','beat',10234
    */

    ELSE
    IF @iGu = 'U3' --Total use time correction new
    BEGIN
    UPDATE CHARACTER_TBL
    SET TotalPlayTime = TotalPlayTime + @iplayerslot
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    RETURN
    END
    /*

    Total use time correction (new)
    ex )
    CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)

    CHARACTER_STR 'U3','000001','01','','',10234
    */

    ELSE
    IF @iGu = 'U4' --Character life fringe land
    BEGIN
    IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE lower(m_szName) = lower(@im_szName) AND serverindex = @iserverindex)
    BEGIN
    SELECT fError = '0'
    END
    ELSE
    BEGIN
    UPDATE CHARACTER_TBL
    SET m_szName = @im_szName
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    SELECT fError = '1'
    END
    RETURN
    END

    /*


    Character life fringe land
    ex)
    CHARACTER_STR ' U4' @im_idPlayer, @iserverindex, @iaccount and @im_szName
    CHARACTER_STR ' U4' ' 000001' ' 01' ' ' ' The morning star princess'
    */
    ELSE
    IF @iGu = 'D1' -- Character elimination
    BEGIN

    -- The part which the box tries to close once in the class arctic regions #1 2007-03-21
    IF @im_szName = ''
    BEGIN
    SELECT fError = '1', fText = 'Resident number error'
    RETURN
    END
    if not exists (select * from CHARACTER_TBL where m_idPlayer = @im_idPlayer and account = @iaccount and serverindex = @iserverindex)
    begin
    select fError = '1'
    return
    end

    DECLARE @Exists int

    -- IF EXISTS(SELECT name from syscolumns where name='m_idPlayer' AND collation= 'Japanese_BIN')
    -- BEGIN
    -- IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (password = @im_szName OR member = 'B' ))
    SET @Exists = 1
    -- ELSE
    -- SET @Exists = 0
    -- END
    -- ELSE
    -- BEGIN
    -- IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (id_no2 = @im_szName OR member = 'B' ))
    -- SET @Exists = 1
    -- ELSE
    -- SET @Exists = 0
    -- END

    IF @Exists > 0
    BEGIN
    DECLARE @currDate char(12)
    SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)



    IF EXISTS(SELECT m_idPlayer FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND m_idWar > 0)
    BEGIN
    SELECT fError = '3', fText = 'In before guild'
    RETURN
    END
    ELSE
    BEGIN
    UPDATE CHARACTER_TBL

    SET isblock = 'D',
    End_Time = @currDate ,

    BlockTime = LEFT(@currDate,8)
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE MESSENGER_TBL
    SET State = 'D'
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    UPDATE MESSENGER_TBL
    SET State = 'D'
    WHERE f_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex



    /****************************************************************************************/
    /** 200506 event **/
    /****************************************************************************************/


    -- if (not exists(select account from RANKING_DBF.dbo.last_1_month_tbl where account = @iaccount)
    -- and convert(char(10),getdate(),120) between '2005-07-05' and '2005-07-12')
    --
    -- begin --: Of 1 or more month the account objective type writing which is not connection experience
    -- declare @cash int,@get_cach int
    -- select @cash = case when m_nLevel between 10 and 19 then 500
    -- when m_nLevel between 20 and 39 then 1000
    -- when m_nLevel between 40 and 49 then 1500
    -- when m_nLevel between 50 and 59 then 2000
    -- when m_nLevel between 60 and 69 then 2500
    -- when m_nLevel >= 70 then 3000
    -- else 0 end
    -- from CHARACTER_TBL
    -- where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
    --
    -- select @get_cach = isnull(sum(amount),0)
    -- from RANKING_DBF.dbo.event_member_tbl
    -- where account = @iaccount
    -- group by account
    --
    -- if @cash + @get_cach > 5000
    -- set @cash = 5000 - @get_cach
    --
    -- if @cash > 0
    --
    -- begin
    -- declare @retcode int
    --
    -- if not exists(select * from BILLING.QLORD_MASTER.dbo.BX_TG_USERINFO where USER_ID = @iaccount)
    -- exec BILLING.QLORD_MASTER.dbo.BX_SP_PROCESS_USERINFO @iaccount,@iaccount,'FLYF',' ','1111111111118',' ',' ',''
    --
    -- exec @retcode = BILLING.QLORD_MASTER.dbo.BX_SP_INSERT_BONUS_IN @iaccount,@iaccount,'FLYF','IN00000004',@cash,'Character compensation event',0,''
    --
    -- if @retcode <> 1
    -- set @cash = 0
    --
    -- insert RANKING_DBF.dbo.event_member_tbl
    -- (account,amount,m_idPlayer,serverindex,retcode,date)
    -- values
    -- (@iaccount,@cash,@im_idPlayer,@iserverindex,@retcode,getdate())
    --
    -- end
    -- end
    /****************************************************************************************/
    /****************************************************************************************/
    /****************************************************************************************/


    -- The part which the box tries to close once in the class arctic regions #2 2007-03-21
    IF EXISTS(SELECT m_idPlayer FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
    BEGIN
    SELECT fError = '4', fText = m_idGuild FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex
    RETURN
    END
    ELSE
    BEGIN
    SELECT fError = '0', fText = 'DELETE OK'
    RETURN
    END


    END
    END
    ELSE
    BEGIN
    SELECT fError = '1', fText = 'Resident number error'
    RETURN
    END

    -- At the price which is not eliminated unconditionally return
    select fError = '1', fText = 'Resident number error'
    END
    /*

    Character elimination
    ex )
    CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
    CHARACTER_STR 'D1','001068','01','ata3k','1019311'

    */

    ELSE
    IF @iGu = 'I1' -- Initially information input
    BEGIN
    IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
    WHERE m_szName = @im_szName AND serverindex = @iserverindex)
    BEGIN
    SELECT fError = '0', fText = 'Character duplication!'
    RETURN
    END
    ELSE
    BEGIN
    DECLARE
    @om_idPlayer CHAR (7) ,
    @om_vScale_x REAL ,
    @om_dwMotion INT ,
    @om_fAngle REAL ,
    @om_nHitPoint INT ,
    @om_nManaPoint INT ,
    @om_nFatiguePoint INT ,
    @om_dwRideItemIdx INT ,
    @om_dwGold INT ,
    @om_nJob INT ,
    @om_pActMover VARCHAR(50) ,
    @om_nStr INT ,
    @om_nSta INT ,
    @om_nDex INT ,
    @om_nInt INT ,
    @om_nLevel INT ,

    @om_nExp1 BIGINT ,
    @om_nExp2 BIGINT ,
    @om_aJobSkill VARCHAR (500),
    @om_aLicenseSkill VARCHAR (500),
    @om_aJobLv VARCHAR (500),
    @om_dwExpertLv INT ,
    @om_idMarkingWorld INT ,
    @om_vMarkingPos_x REAL ,
    @om_vMarkingPos_y REAL ,
    @om_vMarkingPos_z REAL ,
    @om_nRemainGP INT ,
    @om_nRemainLP INT ,
    @om_nFlightLv INT ,
    @om_nFxp INT ,
    @om_nTxp INT ,

    @om_lpQuestCntArray VARCHAR(1024),
    @om_chAuthority CHAR(1) ,
    @om_dwMode INT ,
    @oblockby VARCHAR(32) ,
    @oTotalPlayTime INT ,
    @oisblock CHAR(1) ,
    @oEnd_Time CHAR(12) ,
    @om_Inventory VARCHAR(6940),
    @om_apIndex VARCHAR(345) ,
    @om_adwEquipment VARCHAR(135) ,
    @om_aSlotApplet VARCHAR(3100),
    @om_aSlotItem VARCHAR(6885),
    @om_aSlotQueue VARCHAR(225),
    @om_SkillBar SMALLINT,
    @om_dwObjIndex VARCHAR(345) ,
    @om_Card VARCHAR(1980),
    @om_Cube VARCHAR(1980),
    @om_apIndex_Card VARCHAR(215) ,
    @om_dwObjIndex_Card VARCHAR(215) ,
    @om_apIndex_Cube VARCHAR(215) ,
    @om_dwObjIndex_Cube VARCHAR(215) ,
    @om_idparty INT ,
    --@om_nNumKill INT ,
    @om_idMuerderer INT ,
    --@om_nSlaughter INT ,
    @om_nFame INT ,
    @om_nDeathExp BIGINT ,
    @om_nDeathLevel INT ,
    @om_dwFlyTime INT ,
    @om_nMessengerState INT ,
    @om_Bank VARCHAR(4290),
    @om_apIndex_Bank VARCHAR(215) ,
    @om_dwObjIndex_Bank VARCHAR(215) ,
    @om_dwGoldBank INT

    IF EXISTS (SELECT * FROM CHARACTER_TBL WHERE serverindex = @iserverindex)
    SELECT @om_idPlayer = RIGHT('0000000' + CONVERT(VARCHAR(7),MAX(m_idPlayer)+1),7)
    FROM CHARACTER_TBL
    WHERE serverindex = @iserverindex
    ELSE
    SELECT @om_idPlayer = '0000001'

    SELECT @om_vScale_x = m_vScale_x,
    @om_dwMotion = m_dwMotion,
    @om_fAngle = m_fAngle,
    @om_nHitPoint = m_nHitPoint,
    @om_nManaPoint = m_nManaPoint,
    @om_nFatiguePoint = m_nFatiguePoint,
    @om_dwRideItemIdx = m_dwRideItemIdx,
    @om_dwGold = m_dwGold,
    @om_nJob = m_nJob,
    @om_pActMover = m_pActMover,
    @om_nStr = m_nStr,
    @om_nSta = m_nSta,
    @om_nDex = m_nDex,
    @om_nInt = m_nInt,
    @om_nLevel = m_nLevel,
    @om_nExp1 = m_nExp1,
    @om_nExp2 = m_nExp2,
    @om_aJobSkill = m_aJobSkill,
    @om_aLicenseSkill = m_aLicenseSkill,
    @om_aJobLv = m_aJobLv,

    @om_dwExpertLv = m_dwExpertLv,
    @om_idMarkingWorld = m_idMarkingWorld,
    @om_vMarkingPos_x = m_vMarkingPos_x,
    @om_vMarkingPos_y = m_vMarkingPos_y,
    @om_vMarkingPos_z = m_vMarkingPos_z,
    @om_nRemainGP = m_nRemainGP,
    @om_nRemainLP = m_nRemainLP,
    @om_nFlightLv = m_nFlightLv,
    @om_nFxp = m_nFxp,
    @om_nTxp = m_nTxp,
    @om_lpQuestCntArray = m_lpQuestCntArray,
    @om_chAuthority = m_chAuthority,
    @om_dwMode = m_dwMode,
    @oblockby = blockby,
    @oTotalPlayTime = TotalPlayTime,
    @oisblock = isblock,
    @oEnd_Time = CONVERT(CHAR(8),DATEADD(yy,3,GETDATE()),112) + '0000',
    @om_Inventory = m_Inventory,
    @om_apIndex = m_apIndex,
    @om_adwEquipment = m_adwEquipment,
    @om_aSlotApplet = m_aSlotApplet,
    @om_aSlotItem = m_aSlotItem,
    @om_aSlotQueue = m_aSlotQueue,
    @om_SkillBar = m_SkillBar,
    @om_dwObjIndex = m_dwObjIndex,
    @om_Card = m_Card,
    @om_Cube = m_Cube,
    @om_apIndex_Card = m_apIndex_Card,
    @om_dwObjIndex_Card = m_dwObjIndex_Card,
    @om_apIndex_Cube = m_apIndex_Cube,

    @om_dwObjIndex_Cube = m_dwObjIndex_Cube,
    @om_idparty = m_idparty,
    --@om_nNumKill = m_nNumKill,
    @om_idMuerderer = m_idMuerderer,
    --@om_nSlaughter = m_nSlaughter ,
    @om_nFame = m_nFame,
    @om_nDeathExp = m_nDeathExp,
    @om_nDeathLevel = m_nDeathLevel,
    @om_dwFlyTime = m_dwFlyTime,
    @om_nMessengerState = m_nMessengerState,
    @om_Bank = m_Bank,
    @om_apIndex_Bank = m_apIndex_Bank,
    @om_dwObjIndex_Bank = m_dwObjIndex_Bank,
    @om_dwGoldBank = m_dwGoldBank

    FROM BASE_VALUE_TBL
    WHERE g_nSex = @im_dwSex



    INSERT CHARACTER_TBL
    (
    m_idPlayer,
    serverindex,
    account,
    m_szName,
    playerslot,
    dwWorldID,
    m_dwIndex,
    m_vScale_x,
    m_dwMotion,
    m_vPos_x,

    m_vPos_y,
    m_vPos_z,
    m_fAngle,
    m_szCharacterKey,
    m_nHitPoint,
    m_nManaPoint,
    m_nFatiguePoint,
    m_nFuel,
    m_dwSkinSet,
    m_dwHairMesh,
    m_dwHairColor,
    m_dwHeadMesh,
    m_dwSex,
    m_dwRideItemIdx,
    m_dwGold,
    m_nJob,
    m_pActMover,
    m_nStr,
    m_nSta,
    m_nDex,
    m_nInt,
    m_nLevel,
    m_nMaximumLevel,
    m_nExp1,
    m_nExp2,
    m_aJobSkill,
    m_aLicenseSkill,
    m_aJobLv,
    m_dwExpertLv,
    m_idMarkingWorld,
    m_vMarkingPos_x,
    m_vMarkingPos_y,
    m_vMarkingPos_z,
    m_nRemainGP,
    m_nRemainLP,
    m_nFlightLv,
    m_nFxp,
    m_nTxp,
    m_lpQuestCntArray,
    m_aCompleteQuest,
    m_chAuthority,
    m_dwMode,
    m_idparty,
    m_idCompany,
    --m_nNumKill,
    m_idMuerderer,
    --m_nSlaughter,
    m_nFame,
    m_nDeathExp,
    m_nDeathLevel,

    m_dwFlyTime,
    m_nMessengerState,
    blockby,
    TotalPlayTime,
    isblock,
    End_Time,
    BlockTime,
    CreateTime,
    m_tmAccFuel,
    m_tGuildMember,
    m_dwSkillPoint,
    m_dwReturnWorldID,
    m_vReturnPos_x,
    m_vReturnPos_y,
    m_vReturnPos_z
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    @iaccount,
    @im_szName,
    @iplayerslot,
    @idwWorldID,
    @im_dwIndex,
    '1',

    '0',
    @im_vPos_x,
    @im_vPos_y,
    @im_vPos_z,
    '0',
    @im_szCharacterKey,
    '230',
    '63',
    '32',
    -1, --m_nFuel
    @im_dwSkinSet,
    @im_dwHairMesh,
    @im_dwHairColor,
    @im_dwHeadMesh,
    @im_dwSex,
    '0',
    '0',
    '0',
    '1,0',
    '15',
    '15',
    '15',
    '15',
    '1',
    '1', --m_nMaximumLevel
    '0',
    '0',
    '',
    '',
    '0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '0',
    '$',
    '$', -- m_aCompleteQuest
    'F',
    '131072',
    '0',
    '0', -- m_idCompany
    --@om_nNumKill,
    '0',
    --@om_nSlaughter,
    '0',
    '0',
    '0',
    '0' ,
    '0',
    @oblockby,
    '0',
    'F',
    '200811030000',
    CONVERT(CHAR(8),DATEADD(d,-1,GETDATE()),112),
    GETDATE(),
    0,
    CONVERT(CHAR(8),DATEADD(d,-1,GETDATE()),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,DATEADD(d,-1,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,DATEADD(d,-1,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(ss,DATEADD(d,-1,GETDATE()))),2),
    0, --m_dwSkillPoint
    1,
    0,
    0,
    0
    )
    declare @invi1 VARCHAR(8000)
    declare @invi2 VARCHAR(8000)
    declare @invi3 VARCHAR(8000)
    declare @invi4 VARCHAR(8000)

    IF @im_dwSex = '1'
    BEGIN
    SET @invi1 = '0,512,0,0,,1,0,4500000,0,0,0,-1118993182,0,0,0,0,0/1,504,0,0,,1,0,9000000,0,0,0,946307614,0,0,0,0,0/42,508,0,0,,1,0,5850000,0,0,0,750110947,0,0,0,0,0/44,21,0,0,,1,0,7200000,0,0,0,-2111939376,0,0,0,0,0/$'
    SET @invi2 = '45/43/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/-1/-1/1/-1/42/0/-1/-1/-1/-1/44/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/$'
    SET @invi3 = '0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$'
    SET @invi4 = '47/44/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/46/1/52/0/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/$'
    END
    ELSE
    BEGIN
    SET @invi1 = '0,506,0,0,,1,0,5850000,0,0,0,-2005860201,0,0,0,0,0/1,502,0,0,,1,0,9000000,0,0,0,688242964,0,0,0,0,0/2,510,0,0,,1,0,4500000,0,0,0,583094601,0,0,0,0,0/44,21,0,0,,1,0,7200000,0,0,0,-2111939376,0,0,0,0,0/$'
    SET @invi2 = '45/42/43/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/-1/-1/1/-1/0/2/-1/-1/-1/-1/44/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/$'
    SET @invi3 = '0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$'
    SET @invi4 = '46/44/47/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/1/2/52/0/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/-1/$'
    END

    INSERT INVENTORY_TBL
    (
    m_idPlayer,
    serverindex,
    m_Inventory,
    m_apIndex,
    m_adwEquipment,
    m_dwObjIndex
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    @invi1,
    @invi2,
    @invi3,
    @invi4
    )


    IF @@SERVERNAME = 'WEB' OR @@SERVERNAME = 'SERVER4'
    SET @om_aSlotApplet = '0,2,400,0,0,0,0/1,2,398,0,1,0,0/2,2,2010,0,2,0,0/3,2,1005,0,3,0,0/4,3,25,0,4,0,0/$'

    INSERT TASKBAR_TBL
    (
    m_idPlayer,
    serverindex,
    m_aSlotApplet,
    m_aSlotQueue,
    m_SkillBar

    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$',
    '$',
    '100'
    )


    INSERT TASKBAR_ITEM_TBL
    (
    m_idPlayer,
    serverindex,
    m_aSlotItem
    )

    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$'
    )

    INSERT BANK_TBL
    (
    m_idPlayer,
    serverindex,
    m_Bank,
    m_BankPw,
    m_apIndex_Bank,
    m_dwObjIndex_Bank ,
    m_dwGoldBank
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$',
    '0000', -- m_BankPw
    '$',
    '$',
    '0'
    )

    INSERT SKILLINFLUENCE_TBL
    (
    m_idPlayer,
    serverindex,
    SkillInfluence
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$'
    )

    INSERT INVENTORY_EXT_TBL
    (
    m_idPlayer,
    serverindex,
    m_extInventory,
    m_InventoryPiercing,
    szInventoryPet
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$','$','$'
    )

    INSERT BANK_EXT_TBL
    (
    m_idPlayer,
    serverindex,
    m_extBank,
    m_BankPiercing,
    szBankPet
    )
    VALUES
    (
    @om_idPlayer,
    @iserverindex,
    '$','$','$'
    )

    INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
    VALUES (@iserverindex, @om_idPlayer, 1, 0, 0)
    INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
    VALUES (@iserverindex, @om_idPlayer, 2, 0, 1)
    INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
    VALUES (@iserverindex, @om_idPlayer, 3, 0, 2)

    ------------ Ver11 Pocket
    INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
    VALUES ( @iserverindex, @om_idPlayer, 0, '$', '$', '$', 0, 0 )

    INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
    VALUES ( @iserverindex, @om_idPlayer, 0, '$', '$', '$' )

    INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
    VALUES ( @iserverindex, @om_idPlayer, 1, '$', '$', '$', 1, 0 )

    INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
    VALUES ( @iserverindex, @om_idPlayer, 1, '$', '$', '$' )

    INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
    VALUES ( @iserverindex, @om_idPlayer, 2, '$', '$', '$', 1, 0 )

    INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
    VALUES ( @iserverindex, @om_idPlayer, 2, '$', '$', '$' )


    /*
    2007-06-21 ~ 2007-07-18 New character item urgent event
    */
    declare @ntime datetime
    select @ntime = getdate()

    if(@ntime >= '2007-06-21 00:00:00.000' and @ntime <= '2007-07-18 23:59:59.999')
    begin
    declare @etime bigint
    select @etime = cast(replace(replace(replace(convert(char(16), dateadd(d, 7, getdate()), 21), '-', ''), ' ', ''), ':', '') as bigint)

    if(@im_dwSex = 0)
    begin
    insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, idSender)
    select @om_idPlayer, @iserverindex, '26314', 1, '0000000'

    insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_dwKeepTime, idSender)
    select @om_idPlayer, @iserverindex, '15200', 1, @etime, '0000000'

    end
    if(@im_dwSex = 1)
    begin
    insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, idSender)
    select @om_idPlayer, @iserverindex, '26314', 1, '0000000'

    insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_dwKeepTime, idSender)
    select @om_idPlayer, @iserverindex, '15202', 1, @etime, '0000000'

    end
    end

    SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
    RETURN
    END
    END

    set nocount off
    RETURN
    GO

    --
    -- Definition for stored procedure COMPANY_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.COMPANY_STR Script Date: 7/29/2008 3:34:04 AM ******/





    CREATE PROC [dbo].COMPANY_STR
    @iGu CHAR(2) ,
    @im_idCompany CHAR(6) = '000001',
    @iserverindex CHAR(2) = '01',
    @im_leaderid CHAR(6) = '000001',
    @im_szCompany VARCHAR(16) = ''

    AS
    set nocount on
    IF @iGu = 'A1'
    BEGIN
    IF EXISTS(SELECT * FROM COMPANY_TBL WHERE m_szCompany = @im_szCompany AND serverindex = @iserverindex AND isuse = 'T')
    BEGIN
    SELECT fError = '1', fText = '중복된 컴파니 이름'
    RETURN
    END
    ELSE
    IF EXISTS(SELECT * FROM COMPANY_TBL WHERE m_leaderid = @im_leaderid AND serverindex = @iserverindex AND isuse = 'T')
    BEGIN
    SELECT fError = '2', fText = '중복된 리더'
    RETURN
    END

    ELSE
    BEGIN

    UPDATE CHARACTER_TBL SET m_idCompany = @im_idCompany WHERE m_idPlayer = @im_leaderid AND serverindex = @iserverindex
    INSERT COMPANY_TBL
    (m_idCompany,serverindex,m_szCompany,m_leaderid,isuse)
    VALUES
    (@im_idCompany,@iserverindex,@im_szCompany,@im_leaderid,'T')

    SELECT fError = '0', fText = 'OK'
    RETURN

    END
    END
    /*

    컴파니 이름 저장하기
    ex )
    COMPANY_STR 'A1',@im_idCompany,@iserverindex,@im_leaderid,@im_szCompany
    COMPANY_STR 'A1','000001','01','000001','불타는닭갈비'

    */

    ELSE
    IF @iGu = 'A2'
    BEGIN
    UPDATE CHARACTER_TBL
    SET m_idCompany = @im_idCompany
    WHERE m_idPlayer = @im_leaderid
    AND serverindex = @iserverindex
    RETURN
    END
    /*

    컴파니 가입하기
    ex )
    COMPANY_STR 'A2',@im_idCompany,@iserverindex,@im_leaderid(m_idPlayer),@im_szCompany
    COMPANY_STR 'A2','000001','01','000001'

    */

    ELSE
    IF @iGu = 'S1'
    BEGIN
    DECLARE @maxid CHAR(6)
    SELECT @maxid = max(m_idCompany) FROM COMPANY_TBL
    SELECT m_idCompany,m_szCompany,m_leaderid,maxid = @maxid
    FROM COMPANY_TBL
    WHERE serverindex = @iserverindex
    AND isuse = 'T'
    ORDER BY m_idCompany
    RETURN
    END
    /*

    컴파니 모두 가져오기
    ex )
    COMPANY_STR 'S1',@im_idCompany,@iserverindex
    COMPANY_STR 'S1','','01'

    */

    ELSE
    IF @iGu = 'D1'
    BEGIN
    UPDATE COMPANY_TBL
    SET isuse = 'F'
    WHERE m_idCompany = @im_idCompany
    AND serverindex = @iserverindex

    UPDATE CHARACTER_TBL
    SET m_idCompany = '000000'
    WHERE m_idCompany = @im_idCompany
    AND serverindex = @iserverindex
    SELECT fError = '0', fText = 'OK'
    RETURN
    END
    /*

    컴파니 해체
    ex )
    COMPANY_STR 'D1',@im_idCompany,@iserverindex
    COMPANY_STR 'D1','000001','01'

    */

    ELSE
    IF @iGu = 'D2'
    BEGIN
    UPDATE CHARACTER_TBL
    SET m_idCompany = '000000'
    WHERE m_idPlayer = @im_idCompany
    AND serverindex = @iserverindex
    SELECT fError = '0', fText = 'OK'
    RETURN
    END
    /*

    컴파니 탈퇴
    ex )
    COMPANY_STR 'D2',@im_idCompany(m_idPlayer),@iserverindex
    COMPANY_STR 'D2','000001','01'

    */

    set nocount off
    GO

    --
    -- Definition for stored procedure DEL_FALSE_CHARACTER_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.DEL_FALSE_CHARACTER_STR Script Date: 7/29/2008 3:34:04 AM ******/





    CREATE PROC [dbo].DEL_FALSE_CHARACTER_STR
    @serverindex char(2) = '01'
    AS
    UPDATE CHARACTER_TBL
    SET isblock = 'D'
    --select m_idPlayer,TotalPlayTime from CHARACTER_TBL
    where m_idPlayer in (
    select x.m_idPlayer
    from
    (
    select a.m_idPlayer
    from CHARACTER_TBL a,
    (
    select account, playerslot
    from CHARACTER_TBL
    where isblock='F'
    and serverindex =@serverindex
    group by account,playerslot
    having count(account)>1
    ) b
    where a.account=b.account
    and a.playerslot =b.playerslot
    and serverindex =@serverindex
    and a.isblock = 'F'
    ) x
    where x.m_idPlayer NOT IN( select m_idPlayer = min(m_idPlayer)
    from CHARACTER_TBL
    where isblock='F'
    and serverindex =@serverindex
    group by account,playerslot
    having count(account)>1)
    )
    and isblock = 'F'
    and serverindex =@serverindex
    RETURN
    GO

    --
    -- Definition for stored procedure GET_INSERT_SCRIPT_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GET_INSERT_SCRIPT_STR Script Date: 7/29/2008 3:34:04 AM ******/





    CREATE PROC [dbo].GET_INSERT_SCRIPT_STR
    @tbl_name VARCHAR(128)
    AS
    /*

    email : beatchoi@yahoo.co.kr
    Program : Sukjoon Choi
    Date : 2005.4.29
    */


    -- DECLARE @tbl_name VARCHAR(128)
    --
    -- SET @tbl_name = 'sysfiles'

    DECLARE @column VARCHAR(8000)
    DECLARE @value VARCHAR(8000)

    DECLARE @columnsStr VARCHAR(8000)
    DECLARE @valuesStr VARCHAR(8000)

    SET @column = ''
    SET @value = ''
    SET @columnsStr = ''
    SET @valuesStr = ''

    DECLARE TBL_Column_Cursor CURSOR
    FOR
    SELECT
    [column] = QUOTENAME(a.name) + ',',
    [value] = CASE WHEN b.xprec = 23
    THEN ''''''' + CONVERT(VARCHAR,(ISNULL('+ a.name + ',''''))) + '''''
    WHEN b.xprec = 0
    THEN ''''''' + ISNULL('+ a.name + ','''') + '''''
    ELSE ''' + CONVERT(VARCHAR,(ISNULL('+ a.name + ',''''))) + '
    END +''','
    FROM syscolumns a,systypes b
    WHERE a.id = object_id( @tbl_name)
    AND a.xtype = b.xtype
    ORDER BY a.colid

    OPEN TBL_Column_Cursor

    FETCH NEXT FROM TBL_Column_Cursor
    INTO @column,@value

    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @columnsStr = @columnsStr + @column
    SET @valuesStr = @valuesStr + @value

    FETCH NEXT FROM TBL_Column_Cursor
    INTO @column,@value
    END

    SET @columnsStr = LEFT(@columnsStr,LEN(@columnsStr) -1)
    SET @valuesStr = LEFT(@valuesStr,LEN(@valuesStr) -1)

    CLOSE TBL_Column_Cursor
    DEALLOCATE TBL_Column_Cursor

    EXEC('SELECT ''INSERT INTO ' + @tbl_name + ' (' + @columnsStr + '''' +' + '') VALUES (' + @valuesStr + ')''
    FROM ' + @tbl_name)

    RETURN
    GO

    --
    -- Definition for stored procedure GUILD_BANK_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GUILD_BANK_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].GUILD_BANK_STR
    @iGu CHAR(2) ,
    @im_idGuild CHAR(6) ,
    @iserverindex CHAR(2) ,
    @im_nGuildGold INT = 0,
    @im_apIndex VARCHAR(215) = '',
    @im_dwObjIndex VARCHAR(215) = '',
    @im_GuildBank TEXT = '',
    @im_idPlayer CHAR(7) = '',
    @im_extGuildBank varchar(2000) = '',
    @im_GuildBankPiercing varchar(2000) = ''
    , @iszGuildBankPet varchar(2688) = '$'
    AS
    set nocount on
    IF @iGu = 'S1'
    BEGIN
    SELECT A.m_idGuild, A.serverindex, B.m_nGuildGold, A.m_apIndex, A.m_dwObjIndex, A.m_GuildBank,C.m_extGuildBank,C.m_GuildBankPiercing, C.szGuildBankPet
    FROM GUILD_BANK_TBL A, GUILD_TBL B, GUILD_BANK_EXT_TBL C
    WHERE A.m_idGuild = B.m_idGuild
    AND B.m_idGuild = C.m_idGuild
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    RETURN
    END
    /*
    GUILD BANK 전체 불러오기
    ex )
    GUILD_BANK_STR 'S1',@im_idGuild,@iserverindex
    GUILD_BANK_STR 'S1','000000','01'

    */
    IF @iGu = 'U1'
    BEGIN

    DECLARE @om_nGuildGold INT

    SELECT @om_nGuildGold = m_nGuildGold - @im_nGuildGold
    FROM GUILD_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_BANK_TBL
    SET m_apIndex = @im_apIndex,
    m_dwObjIndex = @im_dwObjIndex,
    m_GuildBank = @im_GuildBank
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_BANK_EXT_TBL
    SET m_extGuildBank = @im_extGuildBank,
    m_GuildBankPiercing = @im_GuildBankPiercing
    , szGuildBankPet = @iszGuildBankPet
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_TBL
    SET m_nGuildGold = @im_nGuildGold
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    IF (@om_nGuildGold > 0 and @im_idPlayer <> '0000000')
    BEGIN
    UPDATE GUILD_MEMBER_TBL
    SET m_nGiveGold = m_nGiveGold - @om_nGuildGold
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    END
    RETURN
    END
    /*
    GUILD BANK 저장하기
    ex )
    GUILD_BANK_STR 'U1',@im_idGuild,@iserverindex,@im_nGuildGold,@im_apIndex,@im_dwObjIndex,@im_GuildBank,@im_idPlayer
    GUILD_BANK_STR 'U1','000001','01',0,'$','$','$', 1000
    GUILD_BANK_STR 'U1','000001','01',0,'$','$','$', 0
    */


    set nocount off
    GO

    --
    -- Definition for stored procedure GUILD_QUEST_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GUILD_QUEST_STR Script Date: 7/29/2008 3:34:04 AM ******/














    CREATE PROC [dbo].GUILD_QUEST_STR
    @iGu CHAR(2) = 'S1',
    @im_idGuild CHAR(6) = '000001',
    @iserverindex CHAR(2) = '01',
    @in_Id INT = 0,
    @in_State INT = 0
    AS
    set nocount on


    DECLARE @odate CHAR(14)
    SELECT @odate = CONVERT(CHAR(8),GETDATE(),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(ss,GETDATE())),2)

    IF @iGu = 'S1'
    BEGIN
    SELECT m_idGuild,serverindex,n_Id,nState,s_date,e_date
    FROM GUILD_QUEST_TBL
    WHERE serverindex = @iserverindex
    ORDER BY m_idGuild,serverindex,n_Id
    RETURN
    END
    /*
    길드 퀘스트 다 불러오기
    ex )
    GUILD_QUEST_STR 'S1', @im_idGuild,@iserverindex

    GUILD_QUEST_STR 'S1', '','01'
    */
    ELSE
    IF @iGu = 'A1'
    BEGIN
    IF NOT EXISTS(SELECT * FROM GUILD_QUEST_TBL WHERE m_idGuild= @im_idGuild AND serverindex = @iserverindex AND n_Id = @in_Id)
    INSERT GUILD_QUEST_TBL
    (m_idGuild,serverindex,n_Id,nState,s_date,e_date)
    VALUES
    (@im_idGuild,@iserverindex,@in_Id,0,@odate,'')
    RETURN
    END
    /*
    길드 퀘스트 시작
    ex )
    GUILD_QUEST_STR 'A1', @im_idGuild,@iserverindex,@in_Id

    GUILD_QUEST_STR 'A1', '000001','01',0
    */
    ELSE
    IF @iGu = 'U1'
    BEGIN
    UPDATE GUILD_QUEST_TBL
    SET nState = @in_State,
    e_date = @odate
    WHERE m_idGuild= @im_idGuild
    AND serverindex = @iserverindex
    AND n_Id = @in_Id
    RETURN
    END
    /*
    길드 퀘스트 종료
    ex )
    GUILD_QUEST_STR 'U1', @im_idGuild,@iserverindex,@in_Id,@in_State

    GUILD_QUEST_STR 'U1', '000001','01',0,1
    */
    ELSE
    IF @iGu = 'D1'
    BEGIN
    DELETE GUILD_QUEST_TBL
    WHERE m_idGuild= @im_idGuild
    AND serverindex = @iserverindex
    AND n_Id = @in_Id
    RETURN
    END
    /*
    길드 퀘스트 삭제
    ex )
    GUILD_QUEST_STR 'D1', @im_idGuild,@iserverindex,@in_Id,@in_State

    GUILD_QUEST_STR 'D1', '000001','01',0,1
    */
    set nocount off
    GO

    --
    -- Definition for stored procedure GUILD_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GUILD_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].GUILD_STR
    @iGu CHAR(2) = 'S1',
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    @im_idGuild CHAR(6) = '000001',
    @im_szGuild varCHAR(48) ='',
    @iLv_1 INT =1,
    @iLv_2 INT =1,
    @iLv_3 INT =1,
    @iLv_4 INT =1,
    @im_nLevel INT =1,
    @im_nGuildGold INT =0,
    @im_nGuildPxp INT =0,
    @im_nWin INT =0,
    @im_nLose INT =0,
    @im_nSurrender INT =0,
    @im_dwLogo INT =0,
    @im_szNotice VARCHAR(127) ='',
    @im_nClass INT =0
    AS
    set nocount on
    IF @iGu = 'S1'
    BEGIN
    SELECT m_idGuild,serverindex,Lv_1,Lv_2,Lv_3,Lv_4,Pay_0,Pay_1,Pay_2,Pay_3,Pay_4,m_szGuild,m_nLevel,
    m_nGuildGold,m_nGuildPxp,m_nWin,m_nLose,m_nSurrender,m_nWinPoint,
    m_dwLogo,m_szNotice
    FROM GUILD_TBL
    WHERE serverindex = @iserverindex
    AND isuse='T'
    ORDER BY m_idGuild
    RETURN
    END
    /*



    SELECT * FROM GUILD_TBL
    SELECT * FROM GUILD_MEMBER_TBL
    SELECT * FROM GUILD_BANK_TBL WHERE serverindex ='07'

    DELETE GUILD_TBL WHERE serverindex ='07'
    DELETE GUILD_MEMBER_TBL WHERE serverindex ='07'
    DELETE GUILD_BANK_TBL WHERE serverindex ='07'

    GUILD 전체 불러오기 - 강현민
    ex )
    GUILD_STR 'S1',@im_idPlayer,@iserverindex
    GUILD_STR 'S1','','01'

    */
    ELSE
    IF @iGu = 'S2'
    BEGIN
    SELECT A.m_idPlayer,A.serverindex,A.m_idGuild,A.m_szAlias,A.m_nWin,A.m_nLose,A.m_nSurrender,
    A.m_nMemberLv,A.m_nClass,A.m_nGiveGold,A.m_nGivePxp,B.m_nJob,B.m_nLevel,B.m_dwSex,
    m_idWar=ISNULL(A.m_idWar,0),m_idVote=ISNULL(A.m_idVote,0)
    FROM GUILD_MEMBER_TBL A, CHARACTER_TBL B
    WHERE A.m_idPlayer = B.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = @iserverindex
    -- AND B.isblock='F'
    AND A.isuse = 'T'
    ORDER BY A.m_idPlayer
    RETURN
    END

    /*


    GUILD 멤버 전체 불러오기- 강현민
    ex )
    GUILD_STR 'S2',@im_idPlayer,@iserverindex
    GUILD_STR 'S2','','01'

    */
    ELSE
    IF @iGu = 'A1'
    BEGIN
    -- IF NOT EXISTS (SELECT * FROM GUILD_TBL WHERE m_szGuild = @im_szGuild AND serverindex = @iserverindex)
    -- BEGIN
    IF (NOT EXISTS (SELECT * FROM GUILD_TBL WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex) and NOT EXISTS (SELECT * FROM GUILD_BANK_TBL WHERE m_idGuild = @im_szGuild AND serverindex = @iserverindex))
    BEGIN
    INSERT GUILD_TBL
    (
    m_idGuild,serverindex,Lv_1,Lv_2,Lv_3,Lv_4,Pay_0,Pay_1,Pay_2,Pay_3,Pay_4,
    m_szGuild,m_nLevel,m_nGuildGold,m_nGuildPxp,
    m_nWin,m_nLose,m_nSurrender,m_nWinPoint,m_dwLogo,
    m_szNotice,isuse,CreateTime
    )
    VALUES
    (
    @im_idGuild,@iserverindex,@iLv_1,@iLv_2,@iLv_3,@iLv_4,0,0,0,0,0,
    @im_szGuild,1,0,0,
    0,0,0,0,@im_dwLogo,
    @im_szNotice,'T',GETDATE()
    )
    INSERT GUILD_BANK_TBL
    (
    m_idGuild,serverindex,m_apIndex,
    m_dwObjIndex,m_GuildBank
    )
    VALUES
    (
    @im_idGuild,@iserverindex,'$',
    '$','$'
    )

    INSERT GUILD_BANK_EXT_TBL
    (
    m_idGuild,serverindex,m_extGuildBank,m_GuildBankPiercing
    )
    VALUES
    (
    @im_idGuild,@iserverindex,'$','$'
    )
    -- IF @@SERVERNAME='CHAR-DB1'
    -- BEGIN
    -- INSERT [LOG].LOG_DBF.dbo.GUILD_TBL --로그 디비에 길드 생성 정진형 팀장 요청사항
    -- (
    -- m_idGuild,serverindex,m_szGuild,isuse
    -- )
    -- VALUES
    -- (
    -- @im_idGuild,@iserverindex,@im_szGuild,'T'
    -- )
    -- END
    SELECT nError = '1', fText = '길드 생성 OK'
    END
    ELSE
    BEGIN
    SELECT nError = '2', fText = '길드 아이디 중복'
    END
    -- END
    -- ELSE
    -- BEGIN
    -- SELECT nError = '3', fText = '길드 이름 중복'
    -- END
    -- RETURN
    END
    /*

    GUILD 생성- 강현민
    ex )
    GUILD_STR 'A1',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp,@im_nWin,@im_nLose,@im_nSurrender,@im_dwLogo,@im_szNotice

    GUILD_STR 'A1','000000','01','000004','멋쟁이길드',1,1,1,1,1,0,
    0,0,0,0,0,'안녕하십니까? 길드원이 되신걸 환영합니다.'

    */
    ELSE
    IF @iGu = 'A2'
    BEGIN
    IF NOT EXISTS( SELECT * FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND m_idGuild = @im_idGuild)
    INSERT GUILD_MEMBER_TBL
    (
    m_idPlayer,serverindex,m_idGuild,m_szAlias,
    m_nWin,m_nLose,m_nSurrender,m_nMemberLv,m_nClass,
    m_nGiveGold,m_nGivePxp,m_idWar,m_idVote,isuse,CreateTime
    )
    VALUES
    (
    @im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild, --(@im_szGuild = m_szAlias)
    0,0,0,@im_nLevel, 0, --(@iLv_1 = m_nPay , @im_nLevel = m_nMemberLv)
    @im_nGuildGold,@im_nGuildPxp,0,'','T',GETDATE() --(@im_nGuildGold = m_nGiveGold,@im_nGuildPxp= m_nGivePxp)
    )
    RETURN
    END
    /*

    GUILD 가입
    ex )
    GUILD_STR 'A2',@im_idPlayer,@iserverindex,@im_idGuild(@im_szGuild = m_szAlias),@im_szGuild,@iLv_1(@iLv_1 = m_nPay),
    @iLv_2,@iLv_3,@iLv_4,@im_nLevel(@im_nLevel = m_nMemberLv),@im_nGuildGold(@im_nGuildGold = m_nGiveGold),
    @im_nGuildPxp(@im_nGuildPxp= m_nGivePxp)

    GUILD_STR 'A2','000023','01','000001','',1,
    0,0,0,0,1,0,
    0
    */
    ELSE
    IF @iGu = 'U1'
    BEGIN
    UPDATE GUILD_TBL
    SET Lv_1 = @iLv_1,
    Lv_2 = @iLv_2,
    Lv_3 = @iLv_3,
    Lv_4 = @iLv_4
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND isuse = 'T'
    RETURN
    END
    /*

    GUILD 권한 변경 - 송현석
    ex )
    GUILD_STR 'U1',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4

    GUILD_STR 'U1','000000','01','000001','',0,0,0,0,0
    */

    ELSE
    IF @iGu = 'U2'
    BEGIN
    UPDATE GUILD_MEMBER_TBL
    SET m_nMemberLv = @im_nLevel,
    m_nClass = 0 -- 송현석 요청사항
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND isuse = 'T'
    RETURN
    END
    /*

    GUILD 멤버 권한 변경- 강현민
    ex )
    GUILD_STR 'U2',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel

    GUILD_STR 'U2','000000','01','000001','',0,0,0,0,0,12
    */
    ELSE
    IF @iGu = 'U3'
    BEGIN
    UPDATE GUILD_TBL
    SET m_dwLogo = @im_dwLogo
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    RETURN
    END
    /*

    GUILD 로고 변경하기- 이혁재
    ex )
    GUILD_STR 'U3',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp,@im_nWin,@im_nLose,@im_nSurrender,@im_dwLogo,@im_szNotice

    GUILD_STR 'U3','000000','01','000001','',0,0,0,0,0,0,
    0,0,0,0,0,123,@im_szNotice

    */


    ELSE
    IF @iGu = 'U4'
    BEGIN
    UPDATE GUILD_TBL
    SET m_nLevel = @im_nLevel,
    m_nGuildGold = @im_nGuildGold,
    m_nGuildPxp = @im_nGuildPxp
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_MEMBER_TBL
    SET m_nGiveGold = m_nGiveGold + @iLv_1,
    m_nGivePxp = m_nGivePxp + @iLv_2
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_idPlayer = @im_idPlayer
    RETURN
    END
    /*

    GUILD 공헌 - 이혁재
    ex )
    GUILD_STR 'U4',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp

    GUILD_STR 'U4','000000','01','000001','',0,0,0,0,16,1000,
    14

    */


    ELSE
    IF @iGu = 'U5'
    BEGIN
    UPDATE GUILD_TBL
    SET m_szNotice = @im_szNotice
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    RETURN
    END

    /*

    GUILD 공지변경 - 이혁재
    ex )
    GUILD_STR 'U5',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp,@im_nWin,@im_nLose,@im_nSurrender,@im_dwLogo,@im_szNotice

    GUILD_STR 'U5','000000','01','000001','',0,0,0,0,0,0,
    0,0,0,0,0,0,'안녕하십니까? 길드원이 되신걸 환영합니다.'

    */


    ELSE
    IF @iGu = 'U6'
    BEGIN
    UPDATE GUILD_TBL
    SET Pay_0 = @im_dwLogo,
    Pay_1 = @iLv_1,
    Pay_2 = @iLv_2,
    Pay_3 = @iLv_3,
    Pay_4 = @iLv_4
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    RETURN
    END

    /*

    GUILD 월급지정 - 송현석
    ex )
    GUILD_STR 'U6',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp,@im_nWin,@im_nLose,@im_nSurrender,@im_dwLogo

    GUILD_STR 'U6','000000','01','000001','',****80,60,40,0,0,
    0,0,0,0,0,20

    */


    ELSE
    IF @iGu = 'U7'
    BEGIN
    INSERT ITEM_SEND_TBL
    (m_idPlayer,serverindex,Item_Name,Item_count,m_nAbilityOption,End_Time)

    SELECT A.m_idPlayer,
    A.serverindex,
    'penya',
    CASE A.m_nMemberLv WHEN 0 THEN B.Pay_0
    WHEN 1 THEN B.Pay_1
    WHEN 2 THEN B.Pay_2
    WHEN 3 THEN B.Pay_3
    WHEN 4 THEN B.Pay_4
    ELSE 0 END ,
    0,
    NULL
    FROM GUILD_MEMBER_TBL A,GUILD_TBL B
    WHERE A.m_idGuild =B.m_idGuild
    AND B.m_idGuild = @im_idGuild
    AND A.serverindex = B.serverindex
    AND B.serverindex = @iserverindex
    AND A.isuse = 'T'
    AND (
    (A.m_nMemberLv = 0 AND B.Pay_0 > 0) OR
    (A.m_nMemberLv = 1 AND B.Pay_1 > 0) OR
    (A.m_nMemberLv = 2 AND B.Pay_2 > 0) OR
    (A.m_nMemberLv = 3 AND B.Pay_3 > 0) OR
    (A.m_nMemberLv = 4 AND B.Pay_4 > 0)
    )

    UPDATE GUILD_TBL
    SET m_nGuildGold = @iLv_1
    WHERE m_idGuild = @im_idGuild AND serverindex = @iserverindex
    SELECT nError = '1',fText ='OK'
    RETURN
    END

    /*

    GUILD 월급지급 - 송현석
    ex )
    GUILD_STR 'U7',@im_idPlayer,@iserverindex,@im_idGuild,'',@iLv_1

    GUILD_STR 'U7','000000','02','000029','',10000


    */

    ELSE
    IF @iGu = 'U8'
    BEGIN
    UPDATE GUILD_TBL
    SET m_szGuild = @im_szGuild
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    -- IF @@SERVERNAME='CHAR-DB1'
    -- BEGIN
    -- UPDATE [LOG].LOG_DBF.dbo.GUILD_TBL --로그 디비에 이름 변경 정진형 팀장 요청사항
    -- SET m_szGuild = @im_szGuild
    -- WHERE m_idGuild = @im_idGuild
    -- AND serverindex = @iserverindex
    -- END
    RETURN
    END


    /*

    GUILD 이름 변경 - 송현석
    ex )
    GUILD_STR 'U8',@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild

    GUILD_STR 'U8', '000000', '01', '000001', 'asasas'


    */
    ELSE
    IF @iGu = 'U9'
    BEGIN
    UPDATE GUILD_MEMBER_TBL
    SET m_nClass = @im_nClass
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    RETURN
    END


    /*

    GUILD원 등급 변경 - 송현석
    ex )
    GUILD_STR 'U9',,@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild,@iLv_1,@iLv_2,@iLv_3,@iLv_4,@im_nLevel,@im_nGuildGold,
    @im_nGuildPxp,@im_nWin,@im_nLose,@im_nSurrender,@im_dwLogo,@im_nClass

    GUILD_STR 'U9','000000','01','000001','',****80,60,40,0,0,
    0,0,0,0,0,20,2


    */

    ELSE
    IF @iGu = 'UA'
    BEGIN
    UPDATE GUILD_MEMBER_TBL
    SET m_szAlias = @im_szGuild --m_szAlias
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    RETURN
    END


    /*

    GUILD원 별칭 변경 - 송현석
    ex )
    GUILD_STR 'UA',,@im_idPlayer,@iserverindex,@im_idGuild,@im_szGuild(m_szAlias)

    GUILD_STR 'UA','000000','01','000001','시다바리'


    */
    ELSE
    IF @iGu = 'D1'
    BEGIN

    UPDATE CHARACTER_TBL
    SET m_tGuildMember = CONVERT(CHAR(8),DATEADD(d,2,GETDATE()),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,DATEADD(d,2,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,DATEADD(d,2,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(ss,DATEADD(d,2,GETDATE()))),2)
    FROM CHARACTER_TBL A,GUILD_MEMBER_TBL B
    WHERE A.m_idPlayer = B.m_idPlayer
    AND B.m_idGuild = @im_idGuild
    AND A.serverindex = B.serverindex
    AND B.serverindex = @iserverindex

    DELETE GUILD_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    DELETE GUILD_MEMBER_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    DELETE GUILD_BANK_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    DELETE GUILD_BANK_EXT_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    -- IF @@SERVERNAME='CHAR-DB1'
    -- BEGIN
    -- UPDATE [LOG].LOG_DBF.dbo.GUILD_TBL --로그 디비에 이름 변경 정진형 팀장 요청사항
    -- SET isuse = 'D'
    -- WHERE m_idGuild = @im_idGuild
    -- AND serverindex = @iserverindex
    --
    -- END





    -- 임시로 딜리트 (강현민 요청사항)
    -- UPDATE GUILD_TBL
    -- SET isuse = 'F'
    -- WHERE m_idGuild = @im_idGuild
    -- AND serverindex = @iserverindex
    --
    -- UPDATE GUILD_MEMBER_TBL
    -- SET isuse = 'F'
    -- WHERE m_idGuild = @im_idGuild
    -- AND serverindex = @iserverindex
    RETURN
    END

    /*

    GUILD 해체- 강현민
    ex )
    GUILD_STR 'D1',@im_idPlayer,@iserverindex,@im_idGuild

    GUILD_STR 'D1','000000','01','000001'

    */

    ELSE
    IF @iGu = 'D2'
    BEGIN

    UPDATE CHARACTER_TBL
    SET m_tGuildMember = CONVERT(CHAR(8),DATEADD(d,2,GETDATE()),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,DATEADD(d,2,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,DATEADD(d,2,GETDATE()))),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(ss,DATEADD(d,2,GETDATE()))),2)
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex


    DELETE GUILD_MEMBER_TBL
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex


    -- 임시로 딜리트 (강현민 요청사항)
    -- UPDATE GUILD_MEMBER_TBL
    -- SET isuse = 'F'
    -- WHERE m_idGuild = @im_idGuild
    -- AND serverindex = @iserverindex
    RETURN
    END

    /*

    GUILD 탈퇴/추방 - 강현민
    ex )
    GUILD_STR 'D2',@im_idPlayer,@iserverindex,@im_idGuild

    GUILD_STR 'D2','000000','01','000001'

    */
    set nocount off
    GO

    --
    -- Definition for stored procedure GUILD_VOTE_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GUILD_VOTE_STR Script Date: 7/29/2008 3:34:04 AM ******/





    CREATE PROC [dbo].GUILD_VOTE_STR
    @iGu CHAR(2) ='S1',
    @iserverindex CHAR(2) = '01',
    @im_idGuild CHAR(6) = '000000',
    @im_idVote INT = 0,
    @im_szTitle VARCHAR(128) ='',
    @im_szQuestion VARCHAR(255) = '',
    @im_szString1 VARCHAR(32) = '',
    @im_szString2 VARCHAR(32) = '',
    @im_szString3 VARCHAR(32) = '',
    @im_szString4 VARCHAR(32) = '',
    @im_cbCount INT = 0
    AS
    set nocount on
    IF @iGu = 'S1'
    BEGIN
    SELECT m_idGuild,serverindex,m_idVote,m_cbStatus,m_szTitle,m_szQuestion,
    m_szString1,m_szString2,m_szString3,m_szString4,
    m_cbCount1,m_cbCount2,m_cbCount3,m_cbCount4
    FROM GUILD_VOTE_TBL
    WHERE serverindex = @iserverindex
    AND m_cbStatus IN ('1','2')
    ORDER BY m_idGuild,m_idVote DESC
    RETURN
    END

    /*
    GUILD 투표 전부 가져오기
    ex )
    GUILD_VOTE_STR 'S1', @iserverindex
    GUILD_VOTE_STR 'S1', '01'

    */
    ELSE
    IF @iGu = 'A1'
    BEGIN
    DECLARE @om_idVote INT,@oCount INT,@om_idVoteMin INT

    SELECT @om_idVote = ISNULL(MAX(m_idVote),0) + 1
    FROM GUILD_VOTE_TBL
    WHERE serverindex = @iserverindex

    SELECT @oCount = COUNT(m_idGuild),@om_idVoteMin = MIN(m_idVote)
    FROM GUILD_VOTE_TBL
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_cbStatus IN ('1','2')

    IF @oCount >= 20
    UPDATE GUILD_VOTE_TBL
    SET m_cbStatus = '3'
    WHERE m_idVote = @om_idVoteMin
    AND m_idGuild = @im_idGuild


    INSERT GUILD_VOTE_TBL
    (
    m_idGuild,serverindex,m_idVote,m_cbStatus,m_szTitle,m_szQuestion,
    m_szString1,m_szString2,m_szString3,m_szString4,
    m_cbCount1,m_cbCount2,m_cbCount3,m_cbCount4,CreateTime
    )
    VALUES
    (
    @im_idGuild,@iserverindex,@om_idVote,'1',@im_szTitle,@im_szQuestion,
    @im_szString1,@im_szString2,@im_szString3,@im_szString4,
    0,0,0,0,GETDATE()
    )
    SELECT m_idVote = @om_idVote
    RETURN
    END
    /*
    GUILD 투표 저장하기
    ex )
    GUILD_VOTE_STR 'A1', @iserverindex,@im_idGuild,@im_idVote,@im_szTitle,@im_szQuestion,
    @im_szString1,@im_szString2,@im_szString3,@im_szString4

    GUILD_VOTE_STR 'A1', '01','000001',0,'노무현 탄핵?','탄핵이 옳을까요? 아닐까요?',
    '옳다','아니다','모르겠다',''

    */
    ELSE
    IF @iGu = 'U1'
    BEGIN
    IF EXISTS(SELECT * FROM GUILD_MEMBER_TBL WHERE m_idPlayer= @im_idGuild AND serverindex = @iserverindex AND m_idVote = @im_idVote)
    SELECT n_Error = '2',f_Text = '이미 투표하셨습니다.'
    ELSE
    BEGIN
    DECLARE @om_cbCount CHAR(1)
    SET @om_cbCount = CONVERT(CHAR(1),@im_cbCount)
    EXEC('
    UPDATE GUILD_VOTE_TBL
    SET m_cbCount ' + @om_cbCount + ' = m_cbCount' + @om_cbCount + ' + 1
    WHERE m_idVote = + ' + @im_idVote + '
    UPDATE GUILD_MEMBER_TBL
    SET m_idVote = ''' + @im_idVote + '''
    WHERE m_idPlayer= ''' + @im_idGuild + '''
    AND serverindex = ''' + @iserverindex + ''''
    )
    SELECT n_Error = '1',f_Text = 'OK.'
    END
    RETURN
    END
    /*
    GUILD 투표 하기
    ex )
    GUILD_VOTE_STR 'U1', @iserverindex,@im_idGuild,@im_idVote,@im_szTitle,@im_szQuestion,
    @im_szString1,@im_szString2,@im_szString3,@im_szString4,
    @im_cbCount
    GUILD_VOTE_STR 'U1', '01','000001',0,'노무현 탄핵?','탄핵이 옳을까요? 아닐까요?',
    '옳다','아니다','모르겠다','',
    0

    */
    IF @iGu = 'U2'
    BEGIN
    UPDATE GUILD_VOTE_TBL
    SET m_cbStatus = '2'
    WHERE m_idVote = @im_idVote
    AND serverindex = @iserverindex
    RETURN
    END

    /*
    GUILD 투표 마감하기
    ex )
    GUILD_VOTE_STR 'U2',@iserverindex,@im_idGuild,@im_idVote
    GUILD_VOTE_STR 'U2','01','000000',123

    */
    IF @iGu = 'D1'
    BEGIN
    UPDATE GUILD_VOTE_TBL
    SET m_cbStatus = '3'
    WHERE m_idVote = @im_idVote
    AND serverindex = @iserverindex
    RETURN
    END

    /*
    GUILD 투표 삭제하기
    ex )
    GUILD_VOTE_STR 'D1',@iserverindex,@im_idGuild,@im_idVote
    GUILD_VOTE_STR 'D1','01','000000',123

    */

    set nocount off
    GO

    --
    -- Definition for stored procedure GUILD_WAR_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.GUILD_WAR_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].GUILD_WAR_STR
    @iGu CHAR(2) ,
    @im_idGuild CHAR(6) ,
    @iserverindex CHAR(2) ,
    @im_idWar INT =0,
    @iState CHAR(1) = '', -- 0:진행 1:개최측일반승 2:개최측기권승 3:개최측일반패 4:개최측기권패 9:무승부
    @if_idGuild CHAR(7) = '',
    @im_idPlayer CHAR(7)='',
    @im_nWinPoint INT =0,
    @if_nWinPoint INT =0
    AS
    set nocount on
    IF @iGu = 'S1'
    BEGIN


    SELECT m_idGuild,serverindex,f_idGuild,m_idWar,m_nDeath,m_nSurrender,m_nCount,m_nAbsent,f_nDeath,f_nSurrender,f_nCount,f_nAbsent,State,StartTime
    FROM GUILD_WAR_TBL
    WHERE serverindex = @iserverindex
    AND State = '0'
    -- UNION ALL
    -- SELECT m_idGuild=f_idGuild,serverindex,m_idWar,m_nDeath=f_nDeath,m_nSurrender=f_nSurrender,m_nCount=f_nCount,State,StartTime
    -- FROM GUILD_WAR_TBL
    -- WHERE serverindex = @iserverindex
    -- AND State = '0'
    ORDER BY m_idWar,serverindex
    RETURN
    END
    /*
    GUILD WAR 전체 가져오기
    ex )
    GUILD_WAR_STR 'S1',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild
    GUILD_WAR_STR 'S1','000000','01'

    */
    ELSE
    IF @iGu = 'S2'
    BEGIN
    SELECT Max_m_idWar = ISNULL(MAX(m_idWar),0)
    FROM GUILD_WAR_TBL
    WHERE serverindex = @iserverindex
    RETURN
    END
    /*
    Max m_idWAR 가져오기
    ex )
    GUILD_WAR_STR 'S2','',@iserverindex
    GUILD_WAR_STR 'S2','','01'

    */

    ELSE
    IF @iGu = 'A1'
    BEGIN
    DECLARE @currDate char(12),@om_nCount INT,@of_nCount INT
    SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)


    SELECT @om_nCount = COUNT(m_idGuild) FROM GUILD_MEMBER_TBL WHERE m_idGuild = @im_idGuild AND isuse = 'T'
    SELECT @of_nCount = COUNT(m_idGuild) FROM GUILD_MEMBER_TBL WHERE m_idGuild = @if_idGuild AND isuse = 'T'

    INSERT GUILD_WAR_TBL
    (
    m_idGuild,serverindex,m_idWar,f_idGuild,m_nDeath,m_nSurrender,m_nCount,m_nAbsent,f_nDeath,f_nSurrender,f_nCount,f_nAbsent,State,StartTime
    )
    VALUES
    (
    @im_idGuild,@iserverindex,@im_idWar,@if_idGuild,0,0,@om_nCount,0,0,0,@of_nCount,0,'0',@currDate
    )
    UPDATE GUILD_MEMBER_TBL
    SET m_idWar = @im_idWar
    WHERE m_idGuild IN (@im_idGuild,@if_idGuild)
    AND serverindex = @iserverindex
    AND isuse = 'T'

    RETURN
    END
    /*
    GUILD 전 생성하기
    ex )
    GUILD_WAR_STR 'A1',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild
    GUILD_WAR_STR 'A1','000001','01',123,'','000002'

    */
    ELSE
    IF @iGu = 'U1'
    BEGIN
    UPDATE GUILD_WAR_TBL
    SET m_nSurrender = m_nSurrender + 1
    WHERE m_idWar = @im_idWar
    AND m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND State = '0'

    UPDATE GUILD_WAR_TBL
    SET f_nSurrender = f_nSurrender + 1
    WHERE m_idWar = @im_idWar
    AND f_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND State = '0'

    UPDATE GUILD_MEMBER_TBL
    SET m_idWar = 0,
    m_nSurrender = m_nSurrender + 1
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND m_idWar > 0

    RETURN
    END
    /*
    GUILD 개인 항복
    ex )
    GUILD_WAR_STR 'U1',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild,@im_idPlayer
    GUILD_WAR_STR 'U1','000001','01',123,'','000002'

    */
    ELSE
    IF @iGu = 'U2'
    BEGIN
    UPDATE GUILD_WAR_TBL
    SET m_nDeath = m_nDeath + 1
    WHERE m_idWar = @im_idWar
    AND m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_WAR_TBL
    SET f_nDeath = f_nDeath + 1
    WHERE m_idWar = @im_idWar
    AND f_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    RETURN
    END
    /*
    GUILD 개인 사망
    ex )
    GUILD_WAR_STR 'U2',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild (m_idPlayer)
    GUILD_WAR_STR 'U2','000001','01',123,'','000002'

    */
    ELSE
    IF @iGu = 'U3'
    BEGIN
    UPDATE GUILD_WAR_TBL
    SET State = @iState
    WHERE m_idWar = @im_idWar
    AND serverindex = serverindex

    IF @iState = '1' -- 개최측 일반승리
    BEGIN
    UPDATE GUILD_TBL
    SET m_nWin = m_nWin + 1,m_nWinPoint = @im_nWinPoint
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_TBL
    SET m_nLose = m_nLose + 1,m_nWinPoint = @if_nWinPoint
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_MEMBER_TBL
    SET m_nWin = m_nWin + 1
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'

    UPDATE GUILD_MEMBER_TBL
    SET m_nLose = m_nLose + 1
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'
    END
    ELSE
    IF @iState = '2' -- 개최측 기권승리
    BEGIN
    UPDATE GUILD_TBL
    SET m_nWin = m_nWin + 1,m_nWinPoint = @im_nWinPoint
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_TBL
    SET m_nSurrender = m_nSurrender + 1,m_nWinPoint = @if_nWinPoint
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_MEMBER_TBL
    SET m_nWin = m_nWin + 1
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'

    UPDATE GUILD_MEMBER_TBL
    SET m_nLose = m_nLose + 1
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'
    END
    ELSE
    IF @iState = '3' -- 개최측 일반패배
    BEGIN
    UPDATE GUILD_TBL
    SET m_nLose = m_nLose + 1,m_nWinPoint = @im_nWinPoint
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_TBL
    SET m_nWin = m_nWin + 1,m_nWinPoint = @if_nWinPoint
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_MEMBER_TBL
    SET m_nLose = m_nLose + 1
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'

    UPDATE GUILD_MEMBER_TBL
    SET m_nWin = m_nWin + 1
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'
    END
    ELSE
    IF @iState = '4' -- 개최측 기권패배
    BEGIN
    UPDATE GUILD_TBL
    SET m_nSurrender = m_nSurrender + 1,m_nWinPoint = @im_nWinPoint
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_TBL
    SET m_nWin = m_nWin + 1,m_nWinPoint = @if_nWinPoint
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_MEMBER_TBL
    SET m_nLose = m_nLose + 1
    WHERE m_idGuild = @im_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'

    UPDATE GUILD_MEMBER_TBL
    SET m_nWin = m_nWin + 1
    WHERE m_idGuild = @if_idGuild
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'
    END

    UPDATE GUILD_MEMBER_TBL
    SET m_idWar = 0
    WHERE m_idWar = @im_idWar
    AND serverindex = @iserverindex
    AND m_idWar > 0
    AND isuse='T'

    RETURN
    END
    /*
    GUILD 전 종료
    ex )
    GUILD_WAR_STR 'U3',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild
    GUILD_WAR_STR 'U3','000001','01',123,'','000002'

    */
    ELSE
    IF @iGu = 'U4'
    BEGIN
    UPDATE GUILD_WAR_TBL
    SET m_nAbsent=m_nAbsent+1
    WHERE m_idWar = @im_idWar
    AND m_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    UPDATE GUILD_WAR_TBL
    SET f_nAbsent=f_nAbsent+1
    WHERE m_idWar = @im_idWar
    AND f_idGuild = @im_idGuild
    AND serverindex = @iserverindex

    RETURN
    END
    /*
    GUILD 마스터 부재
    ex )
    GUILD_WAR_STR 'U4',@im_idGuild,@iserverindex,@im_idWar,@iState,@if_idGuild (m_idPlayer)
    GUILD_WAR_STR 'U4','000001','01',123,'','000002'

    */
    set nocount off
    GO

    --
    -- Definition for stored procedure G_TOP_CHARACTERS :
    --
    GO
    /****** Object: Stored Procedure dbo.G_TOP_CHARACTERS Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROCEDURE [dbo].G_TOP_CHARACTERS
    --CREATE PROCEDURE G_TOP_CHARACTERS
    @topNum INT = 50,
    @topLevel INT = 50
    AS
    SET ANSI_WARNINGS ON
    SET ANSI_NULLS ON
    SET NOCOUNT ON
    DECLARE @currDate AS CHAR(8)
    DECLARE @QRY AS VARCHAR(480)

    SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
    SET @QRY = "INSERT INTO G_TOP_CHARACTER SELECT TOP " + CAST(@topNum AS VARCHAR(3)) + " a.m_szName, a.m_nLevel" +
    " FROM CHARACTER_TBL a JOIN" +
    " ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL b" +
    " ON a.account = b.account WHERE" +
    " a.account NOT IN (SELECT * FROM G_TOP_VOID_ACCOUNT) AND" +
    " a.m_szName NOT IN (SELECT * FROM G_TOP_VOID_CHAR) AND" +
    " a.m_nLevel >= " + CAST(@topLevel AS VARCHAR(3)) + " AND a.m_chAuthority='F' AND" +
    " b.m_chLoginAuthority='F' AND" +
    " (b.BlockTime <= " + @currDate + " AND b.WebTime <= " + @currDate +
    ") ORDER BY a.m_nLevel DESC, a.TotalPlayTime ASC"

    --SET @QRY="SELECT TOP " + CAST(@topNum AS VARCHAR(3)) + " a.m_szName, a.m_nLevel" +
    -- " FROM CHARACTER_TBL a JOIN" +
    -- " ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL b" +
    -- " ON a.account = b.account WHERE" +
    -- " a.account NOT IN (SELECT * FROM G_TOP_VOID_ACCOUNT) AND" +
    -- " a.m_szName NOT IN (SELECT * FROM G_TOP_VOID_CHAR) AND" +
    -- " a.m_nLevel >= " + CAST(@topLevel AS VARCHAR(3)) + " AND a.m_chAuthority='F' AND" +
    -- " b.m_chLoginAuthority='F' AND" +
    -- " (b.BlockTime <= " + @currDate + " AND b.WebTime <= " + @currDate +
    -- ") ORDER BY a.m_nLevel DESC, a.TotalPlayTime ASC"

    --PRINT @QRY

    --DELETE FROM G_TOP_CHARACTER
    EXECUTE(@QRY)

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure G_TOP_CHARACTERS :
    --
    GO
    CREATE PROCEDURE [dbo].G_TOP_CHARACTERS;2
    --CREATE PROCEDURE G_TOP_CHARACTERS;2
    @topNum INT = 50,
    @topLevel INT = 50
    AS
    SET ANSI_WARNINGS ON
    SET ANSI_NULLS ON
    SET NOCOUNT ON
    DECLARE @currDate AS CHAR(8)
    DECLARE @QRY AS VARCHAR(480)

    SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
    --SET @QRY = "INSERT INTO G_TOP_CHARACTER SELECT TOP " + CAST(@topNum AS VARCHAR(3)) + " a.m_szName, a.m_nLevel" +
    -- " FROM CHARACTER_TBL a JOIN" +
    -- " ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL b" +
    -- " ON a.account = b.account WHERE" +
    -- " a.account NOT IN (SELECT * FROM G_TOP_VOID_ACCOUNT) AND" +
    -- " a.m_szName NOT IN (SELECT * FROM G_TOP_VOID_CHAR) AND" +
    -- " a.m_nLevel >= " + CAST(@topLevel AS VARCHAR(3)) + " AND a.m_chAuthority='F' AND" +
    -- " b.m_chLoginAuthority='F' AND" +
    -- " (b.BlockTime <= " + @currDate + " AND b.WebTime <= " + @currDate +
    -- ") ORDER BY a.m_nLevel DESC, a.TotalPlayTime ASC"

    SET @QRY="SELECT TOP " + CAST(@topNum AS VARCHAR(3)) + " a.m_szName, a.m_nLevel, a.m_nJob" +
    " FROM CHARACTER_TBL a JOIN" +
    " ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL b" +
    " ON a.account = b.account WHERE" +
    " a.account NOT IN (SELECT * FROM G_TOP_VOID_ACCOUNT) AND" +
    " a.m_szName NOT IN (SELECT * FROM G_TOP_VOID_CHAR) AND" +
    " a.m_nLevel >= " + CAST(@topLevel AS VARCHAR(3)) + " AND a.m_chAuthority='F' AND" +
    " b.m_chLoginAuthority='F' AND" +
    " (b.BlockTime <= " + @currDate + " AND b.WebTime <= " + @currDate +
    ") ORDER BY a.m_nLevel DESC, a.TotalPlayTime ASC"

    --PRINT @QRY

    --DELETE FROM G_TOP_CHARACTER
    EXECUTE(@QRY)

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure MAIL_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.MAIL_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE proc [dbo].MAIL_STR
    @iGu CHAR(2),
    @nMail INT,
    @serverindex CHAR(2),
    @idReceiver CHAR(7) = '0000000',
    @idSender CHAR(7) = '0000000',
    @nGold INT = 0,
    @tmCreate INT = 0,
    @byRead INT = 0,
    @szTitle VARCHAR(128) = '',
    @szText VARCHAR(1024) = '',
    @dwItemId INT = 0,
    @nItemNum INT = 0,
    @nRepairNumber INT = 0,
    @nHitPoint INT = 0,
    @nMaxHitPoint INT = 0,
    @nMaterial INT = 0,
    @byFlag INT = 0,
    @dwSerialNumber INT = 0,
    @nOption INT = 0,
    @bItemResist INT = 0,
    @nResistAbilityOption INT = 0,
    @idGuild INT = 0,
    @nResistSMItemId INT = 0,
    @bCharged INT = 0,
    @dwKeepTime INT = 0,
    @nRandomOptItemId bigINT = 0,
    @nPiercedSize INT = 0,
    @dwItemId1 INT = 0,
    @dwItemId2 INT = 0,
    @dwItemId3 INT = 0,
    @dwItemId4 INT = 0
    ------------------- Version9 Pet
    ,@bPet int = 0,
    @nKind int = 0,
    @nLevel int = 0,
    @dwExp int = 0,
    @wEnergy int = 0,
    @wLife int = 0,
    @anAvailLevel_D int = 0,
    @anAvailLevel_C int = 0,
    @anAvailLevel_B int = 0,
    @anAvailLevel_A int = 0,
    @anAvailLevel_S int = 0,

    @dwItemId5 int = 0

    AS
    set nocount on
    IF @iGu = 'S1'
    BEGIN
    SELECT * FROM MAIL_TBL WHERE serverindex = @serverindex AND byRead<90 order by nMail
    RETURN
    END
    ELSE
    IF @iGu = 'A1'
    BEGIN
    INSERT MAIL_TBL
    (
    nMail,
    serverindex,
    idReceiver,
    idSender,
    nGold,
    tmCreate,
    byRead,
    szTitle,
    szText,
    dwItemId,
    nItemNum,
    nRepairNumber,
    nHitPoint,
    nMaxHitPoint,
    nMaterial,
    byFlag,
    dwSerialNumber,
    nOption,
    bItemResist,
    nResistAbilityOption,
    idGuild,
    nResistSMItemId,
    bCharged,
    dwKeepTime,
    nRandomOptItemId,
    nPiercedSize,
    dwItemId1,
    dwItemId2,
    dwItemId3,
    dwItemId4,
    SendDt
    ,bPet, nKind, nLevel, dwExp, wEnergy, wLife, anAvailLevel_D, anAvailLevel_C, anAvailLevel_B, anAvailLevel_A, anAvailLevel_S, dwItemId5
    )
    VALUES
    (
    @nMail,
    @serverindex,
    @idReceiver,
    @idSender,
    @nGold,
    @tmCreate,
    @byRead,
    @szTitle,
    @szText,
    @dwItemId,
    @nItemNum,
    @nRepairNumber,
    @nHitPoint,
    @nMaxHitPoint,
    @nMaterial,
    @byFlag,
    @dwSerialNumber,
    @nOption,
    @bItemResist,
    @nResistAbilityOption,
    @idGuild,
    @nResistSMItemId,
    @bCharged,
    @dwKeepTime,
    @nRandomOptItemId,
    @nPiercedSize,
    @dwItemId1,
    @dwItemId2,
    @dwItemId3,
    @dwItemId4,
    getdate()
    ,@bPet, @nKind, @nLevel, @dwExp, @wEnergy, @wLife, @anAvailLevel_D, @anAvailLevel_C, @anAvailLevel_B, @anAvailLevel_A, @anAvailLevel_S ,@dwItemId5
    )
    RETURN
    END
    IF @iGu = 'D1'
    BEGIN
    UPDATE MAIL_TBL SET byRead=90, DeleteDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
    RETURN
    END

    IF @iGu = 'U1'
    BEGIN
    UPDATE MAIL_TBL SET
    ItemFlag=90, ItemReceiveDt=getdate()
    WHERE nMail = @nMail AND serverindex = @serverindex
    RETURN
    END

    IF @iGu = 'U2'
    BEGIN
    UPDATE MAIL_TBL SET GoldFlag=90, GetGoldDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
    RETURN
    END


    IF @iGu = 'U3'
    BEGIN
    UPDATE MAIL_TBL SET byRead = 1, ReadDt=getdate() WHERE nMail = @nMail AND serverindex = @serverindex
    RETURN
    END

    set nocount off
    GO

    --
    -- Definition for stored procedure MAIL_STR_REALTIME :
    --
    GO
    /****** Object: Stored Procedure dbo.MAIL_STR_REALTIME Script Date: 7/29/2008 3:34:04 AM ******/
    create proc [dbo].MAIL_STR_REALTIME

    @iGu CHAR(2),
    @serverindex CHAR(2),
    @nMail_Before INT = 0,
    @nMail_After INT = 0,
    @idPlayer CHAR(7) = '0000000',
    @nLevel INT = 0,
    @iaccount VARCHAR(32) = '',
    @tmCreate INT = 0,
    @dwSerialNumber INT = 0,
    @nHitPoint INT = 0
    as
    set nocount on

    declare @sdate datetime
    declare @edate datetime
    declare @iserverindex char(2)

    set @sdate = '2007-07-18 00:00:00'--'2007-07-10 00:00:00' -- '2007-07-18 00:00:00'
    set @edate = '2007-08-31 23:59:00'--'2007-07-10 23:00:00' -- '2007-08-31 23:59:00'
    set @iserverindex = cast((cast(@serverindex as int) + 50) as char(2))

    IF @iGu = 'S1'
    BEGIN
    SELECT * FROM MAIL_TBL
    WHERE serverindex = @iserverindex AND byRead<90
    ORDER BY nMail
    RETURN
    END
    ELSE
    IF @iGu = 'U1'
    BEGIN
    UPDATE MAIL_TBL SET nMail = @nMail_After, serverindex = @serverindex, dwSerialNumber = @dwSerialNumber, nHitPoint = @nHitPoint
    WHERE serverindex = @iserverindex and nMail = @nMail_Before
    RETURN
    END
    ELSE
    IF @iGu = 'I1'
    BEGIN
    -- 추천 이벤트 기간인지 확인
    IF(getdate() < @sdate or getdate() > @edate) BEGIN
    RETURN
    END
    -- 추천인 인지 확인 -- select top 10 * from ACCOUNT_DBF.dbo.tblEventRecommend
    -- IF( NOT EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.tblEventRecommend where byaccount = @iaccount ) ) BEGIN
    -- RETURN
    -- END

    -- 받을수 있는 아이템이 있는지 확인
    DECLARE @ItemID int
    DECLARE @ItemNum int
    DECLARE @bBinds int
    SET @ItemID = 0
    SET @ItemNum = 1
    SET @bBinds = 2


    IF( @nLevel = 20 ) BEGIN
    SET @ItemID = 26112
    END
    ELSE IF( @nLevel = 40 ) BEGIN
    SET @ItemID = 26211
    END
    ELSE IF( @nLevel = 60 ) BEGIN
    SET @ItemID = 26103
    END
    ELSE IF( @nLevel = 80 ) BEGIN
    SET @ItemID = 30135
    END
    ELSE IF( @nLevel = 100 ) BEGIN
    SET @ItemID = 5800
    SET @bBinds = 0
    END
    ELSE IF( @nLevel = 120 ) BEGIN
    SET @ItemID = 4703
    SET @bBinds = 0
    END

    IF( @ItemID = 0 ) BEGIN
    RETURN
    END

    -- 메일 아이디 할당 하기
    DECLARE @nMaxMailID int
    SELECT @nMaxMailID = MAX(nMail)+1 from MAIL_TBL where serverindex = @iserverindex
    SET @nMaxMailID = ISNULL( @nMaxMailID, 0 )

    -- 아이템 주기
    DECLARE @szTitle VARCHAR(128)
    DECLARE @szText VARCHAR(1024)
    SET @szTitle = '레벨 업을 축하 드립니다!'
    SET @szText = '캐릭터 레벨 업 기념 상품을 보내드립니다 ^ㅁ^* 프리프와 함께 즐거운 하루 보내시기 바랍니다. 감사합니다.'

    EXEC dbo.MAIL_STR 'A1', @nMaxMailID, @iserverindex, @idPlayer, '0000000', 0, @tmCreate, 0, @szTitle, @szText,@ItemID, @ItemNum, 0, 0, 0, 0, @bBinds
    RETURN
    END
    GO

    --
    -- Definition for stored procedure MAKE_RANKING_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.MAKE_RANKING_STR Script Date: 7/29/2008 3:34:04 AM ******/










    CREATE PROC [dbo].MAKE_RANKING_STR
    @iserverindex CHAR(2) = '01'
    AS
    set nocount on
    DECLARE @currDate char(10),@om_nCount INT,@of_nCount INT
    SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
    + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
    -- + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)


    --R1 : 최강길드
    --R2 : 최다승
    --R3 : 최다패
    --R4 : 최다항복패
    --R5 : 최고결속력
    --R6 : 최고자금
    --R7 : 평균고랩
    --R8 : 최대플레이

    --SELECT * FROM RANKING_DBF.dbo.RANKING_TBL
    --DELETE RANKING_DBF.dbo.RANKING_TBL
    --R1 : 최강길드


    IF EXISTS(SELECT * FROM RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex)
    BEGIN
    DELETE RANKING_DBF.dbo.RANKING_TBL WHERE s_date = @currDate and serverindex = @iserverindex
    END

    BEGIN
    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R1',s_date = @currDate,-- m_Title = '최강길드',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority ='F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nWinPoint DESC,m_nWin DESC



    --R2 : 최다승

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R2',s_date = @currDate,--m_Title = '최다승',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nWin DESC,CreateTime

    --R3 : 최다패

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,

    m_szGuild,

    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R3',s_date = @currDate,-- m_Title = '최다패',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nLose DESC,m_nSurrender DESC

    --R4 : 최다항복패

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R4',s_date = @currDate,-- m_Title = '최다항복패',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nSurrender DESC,m_nLose DESC

    --R5 : 최고결속력

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R5',s_date = @currDate,-- m_Title = '최고결속력',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_MaximumUnity DESC,CreateTime

    --R6 : 최고자금

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R6',s_date = @currDate,-- m_Title = '최고자금',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nGuildGold DESC,CreateTime

    --R7 : 평균고랩

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R7',s_date = @currDate,-- m_Title = '평균고랩',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND A.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_AvgLevel DESC,CreateTime

    --R8 : 최대플레이

    INSERT RANKING_DBF.dbo.RANKING_TBL
    (
    Gu, s_date,
    serverindex,
    m_dwLogo,
    m_idGuild,
    m_szGuild,
    m_szName,
    m_nWin,
    m_nLose,
    m_nSurrender,
    m_MaximumUnity,
    m_AvgLevel,
    m_nGuildGold,
    m_nWinPoint,
    m_nPlayTime,
    CreateTime
    )
    SELECT TOP 20 Gu = 'R8',s_date = @currDate,-- m_Title = '평균고랩',
    serverindex = MAX(A.serverindex),
    m_dwLogo = MAX(A.m_dwLogo),
    B.m_idGuild,
    m_szGuild = MAX(A.m_szGuild),
    m_szName = MAX(C.m_szName),
    m_nWin = MAX(A.m_nWin),
    m_nLose = MAX(A.m_nLose)+ MAX(A.m_nSurrender),
    m_nSurrender = MAX(A.m_nSurrender),
    m_MaximumUnity = CONVERT(REAL,MAX(A.m_nWin)-(COUNT(B.m_nSurrender)/MAX(A.m_nLevel))),
    m_AvgLevel = ISNULL(AVG(E.m_nLevel),0),
    m_nGuildGold = ISNULL(MAX(A.m_nGuildGold),0),
    m_nWinPoint = ISNULL(MAX(A.m_nWinPoint),0),
    m_nPlayTime = ISNULL(SUM(E.TotalPlayTime),0),
    CreateTime = MAX(A.CreateTime)
    FROM GUILD_TBL A,GUILD_MEMBER_TBL B,CHARACTER_TBL C,ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL D,CHARACTER_TBL E
    WHERE A.m_idGuild = B.m_idGuild
    AND C.serverindex = E.serverindex
    AND C.m_idPlayer = E.m_idPlayer
    AND B.m_nMemberLv = 0
    AND B.m_idPlayer = C.m_idPlayer
    AND A.serverindex = B.serverindex
    AND B.serverindex = C.serverindex
    AND C.serverindex = @iserverindex
    AND D.m_chLoginAuthority = 'F'
    AND C.account = D.account
    GROUP BY B.m_idGuild
    ORDER BY m_nPlayTime DESC,CreateTime
    END
    set nocount off
    GO

    --
    -- Definition for stored procedure MESSENGER_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.MESSENGER_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE Procedure dbo.MESSENGER_STR
    @iGu char(2) = 'S1',
    @im_idPlayer char(7) = '0000001',
    @iserverindex char(2) = '01',
    @if_idPlayer char(7) = '',
    @im_dwSex int = 0,
    @im_nJob int = 0,
    @iState char(1) ='',
    @im_dwState int = 0
    AS
    SET NOCOUNT ON

    DECLARE @sql nvarchar(4000)
    SET @sql=''

    IF @iGu = 'A1'
    BEGIN
    IF EXISTS(SELECT * FROM MESSENGER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND f_idPlayer = @if_idPlayer)
    UPDATE MESSENGER_TBL
    SET State = 'T',
    m_dwState = @im_dwState
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND f_idPlayer = @if_idPlayer
    ELSE
    INSERT MESSENGER_TBL
    (m_idPlayer,serverindex,f_idPlayer,m_nJob,m_dwSex,m_dwState,State,CreateTime)
    VALUES
    (@im_idPlayer,@iserverindex,@if_idPlayer,@im_nJob,@im_dwSex,0,'T',GETDATE())
    RETURN
    END
    /*

    메신저 친구 저장하기
    ex )
    MESSENGER_STR 'A1',@im_idPlayer,@iserverindex,@if_idPlayer,@im_nJob,@im_dwSex
    MESSENGER_STR 'A1','000001','01','000002',1,1
    */
    ELSE
    ----------------------------------------
    -- 메신저 리스트 가져오기
    -- MESSENGER_STR 'S1','000001','01'
    IF @iGu = 'S1' BEGIN
    SET @sql=N'
    EXEC uspLoadMessengerList @pserverindex, @pPlayerID
    '

    EXECUTE sp_executesql @sql,
    N'@pPlayerID char(7), @pserverindex char(2)',
    @im_idPlayer, @iserverindex

    RETURN
    END
    ----------------------------------------
    -- 나를 등록한 메신저 리스트 가져오기
    -- MESSENGER_STR 'S2','000001','02'
    ELSE
    IF @iGu = 'S2' BEGIN
    SET @sql=N'
    EXEC uspLoadMessengerListRegisterMe @pserverindex, @pPlayerID
    '

    EXECUTE sp_executesql @sql,
    N'@pPlayerID char(7), @pserverindex char(2)',
    @im_idPlayer, @iserverindex

    RETURN
    END
    ELSE
    IF @iGu = 'D1'
    BEGIN
    UPDATE MESSENGER_TBL
    SET State = 'D'
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND f_idPlayer = @if_idPlayer
    AND State = 'T'
    RETURN
    END
    ELSE
    IF @iGu = 'D2'
    BEGIN
    DELETE MESSENGER_TBL
    WHERE m_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL where serverindex = @iserverindex)
    and serverindex = @iserverindex

    DELETE MESSENGER_TBL
    WHERE f_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL where serverindex = @iserverindex)
    and serverindex = @iserverindex

    DELETE MESSENGER_TBL
    WHERE State = 'D'
    and serverindex = @iserverindex
    RETURN
    END

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure MoveUserToTown :
    --
    GO
    /****** Object: Stored Procedure dbo.MoveUserToTown Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROCEDURE dbo.MoveUserToTown
    @pName varchar(32),
    @serverindex char(2),
    @pDestination int = 0

    AS
    SET NOCOUNT ON

    DECLARE @PosX REAL, @PosY REAL, @PosZ REAL

    IF NOT EXISTS ( SELECT * FROM CHARACTER_TBL WHERE m_szName=@pName ) BEGIN
    SELECT retValue = 9001, retMsg='There are no user'
    RETURN
    END

    IF @pDestination=2 BEGIN
    SET @PosX=3896
    SET @PosY=59
    SET @PosZ=4378
    END
    ELSE IF @pDestination=1 BEGIN
    SET @PosX=8321
    SET @PosY=100
    SET @PosZ=3720
    END
    ELSE BEGIN
    SET @PosX=7161
    SET @PosY=100
    SET @PosZ=3264
    END

    UPDATE CHARACTER_TBL SET dwWorldID=1, m_vPos_x=@PosX, m_vPos_y=@PosY, m_vPos_z=@PosZ, m_idCompany=1
    WHERE m_szName=@pName

    IF @@ROWCOUNT=0
    SELECT retValue=9002, retMsg='Error during update data'
    ELSE
    SELECT retValue=1, retMsg='Move user success'


    RETURN
    GO

    --
    -- Definition for stored procedure NEW_MESSENGER_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.NEW_MESSENGER_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE Procedure dbo.NEW_MESSENGER_STR
    @iGu char(2) = 'S1',
    @im_idPlayer char(7) = '0000001',
    @iserverindex char(2) = '01',
    @if_idPlayer char(7) = '',
    @im_dwSex int = 0,
    @im_nJob int = 0,
    @iState char(1) ='',
    @im_dwState int = 0
    AS
    SET NOCOUNT ON

    DECLARE @sql nvarchar(4000)
    SET @sql=''

    IF @iGu = 'A1'
    BEGIN
    IF EXISTS(SELECT * FROM MESSENGER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND f_idPlayer = @if_idPlayer)
    UPDATE MESSENGER_TBL
    SET State = 'T',
    m_dwState = @im_dwState
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND f_idPlayer = @if_idPlayer
    ELSE
    INSERT MESSENGER_TBL
    (m_idPlayer,serverindex,f_idPlayer,m_nJob,m_dwSex,m_dwState,State,CreateTime)
    VALUES
    (@im_idPlayer,@iserverindex,@if_idPlayer,@im_nJob,@im_dwSex,0,'T',GETDATE())
    RETURN
    END
    /*

    메신저 친구 저장하기
    ex )
    NEW_MESSENGER_STR 'A1',@im_idPlayer,@iserverindex,@if_idPlayer,@im_nJob,@im_dwSex
    NEW_MESSENGER_STR 'A1','000001','01','000002',1,1
    */
    ELSE
    ----------------------------------------
    -- 메신저 리스트 가져오기
    -- NEW_MESSENGER_STR 'S1','000001','01'
    IF @iGu = 'S1' BEGIN
    SET @sql=N'
    EXEC uspLoadMessengerList @pserverindex, @pPlayerID
    '

    EXECUTE sp_executesql @sql,
    N'@pPlayerID char(7), @pserverindex char(2)',
    @im_idPlayer, @iserverindex

    RETURN
    END
    ----------------------------------------
    -- 나를 등록한 메신저 리스트 가져오기
    -- NEW_MESSENGER_STR 'S2','000001','02'
    ELSE
    IF @iGu = 'S2' BEGIN
    SET @sql=N'
    EXEC uspLoadMessengerListRegisterMe @pserverindex, @pPlayerID
    '

    EXECUTE sp_executesql @sql,
    N'@pPlayerID char(7), @pserverindex char(2)',
    @im_idPlayer, @iserverindex

    RETURN
    END
    ELSE
    IF @iGu = 'D1'
    BEGIN
    UPDATE MESSENGER_TBL
    SET State = 'D'
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND f_idPlayer = @if_idPlayer
    AND State = 'T'
    RETURN
    END
    ELSE
    IF @iGu = 'D2'
    BEGIN
    DELETE MESSENGER_TBL
    WHERE m_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL where serverindex = @iserverindex)
    and serverindex = @iserverindex

    DELETE MESSENGER_TBL
    WHERE f_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL where serverindex = @iserverindex)
    and serverindex = @iserverindex

    DELETE MESSENGER_TBL
    WHERE State = 'D'
    and serverindex = @iserverindex
    RETURN
    END

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure PARTY_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.PARTY_STR Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROC [dbo].PARTY_STR
    @iGu CHAR(2) = 'S1',
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    @ipartyname VARCHAR(16) = ''
    AS
    set nocount on
    IF @iGu = 'A1'
    BEGIN
    IF EXISTS(SELECT * FROM PARTY_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
    UPDATE PARTY_TBL
    SET partyname = @ipartyname
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    ELSE
    INSERT PARTY_TBL
    (m_idPlayer,serverindex,partyname)
    VALUES
    (@im_idPlayer,@iserverindex,@ipartyname)
    RETURN
    END
    /*

    파티이름 저장하기
    ex )
    PARTY_STR 'A1',@im_idPlayer,@iserverindex,@ipartyname
    PARTY_STR 'A1','000001','01','불타는닭갈비'

    */

    ELSE
    IF @iGu = 'S1'
    BEGIN
    SELECT partyname
    FROM PARTY_TBL
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    RETURN
    END
    /*

    나의 파티이름 가져오기
    ex )
    PARTY_STR 'S1',@im_idPlayer,@iserverindex
    PARTY_STR 'S1','000001','01'

    */

    ELSE
    IF @iGu = 'S2'
    BEGIN
    SELECT partyname,m_idPlayer
    FROM PARTY_TBL
    WHERE serverindex = @iserverindex
    ORDER BY partyname
    RETURN
    END
    /*

    나의 파티이름 전체 가져오기
    ex )
    PARTY_STR 'S2','',@iserverindex
    PARTY_STR 'S2','','01'

    */
    set nocount off
    GO

    --
    -- Definition for stored procedure QUEST_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.QUEST_STR Script Date: 7/29/2008 3:34:04 AM ******/
    -- select m_idPlayer,serverindex,m_wId from QUEST_TBL
    -- GROUP BY m_idPlayer,serverindex,m_wId
    --
    -- QUEST_STR 'D1','001011','02',36
    -- QUEST_STR 'S1','001022','01'

    CREATE PROC [dbo].QUEST_STR
    @iGu CHAR(2) = 'S1',
    @m_idPlayer CHAR(7) = '0000001',
    @serverindex CHAR(2) = '01',
    @m_wId int = null,
    @m_nState tinyint = null,
    @m_wTime int = null,
    @m_nKillNPCNum_0 tinyint = null,
    @m_nKillNPCNum_1 tinyint = null,
    @m_bPatrol tinyint = null,
    @m_bDialog tinyint = null,
    @m_bReserve3 tinyint = null,
    @m_bReserve4 tinyint = null,
    @m_bReserve5 tinyint = null,
    @m_bReserve6 tinyint = null,
    @m_bReserve7 tinyint = null,
    @m_bReserve8 tinyint = null,
    @m_Inventory varchar(6940) = '',
    @m_apIndex varchar(345) = '',
    @m_adwEquipment varchar(135) = '',
    @m_dwObjIndex varchar(345) = ''
    AS
    IF @iGu = 'S1'
    BEGIN
    SELECT m_idPlayer,serverindex,m_wId,m_nState,m_wTime,m_nKillNPCNum_0,m_nKillNPCNum_1,
    m_bPatrol,m_bDialog,m_bReserve3,m_bReserve4,m_bReserve5,m_bReserve6,m_bReserve7,m_bReserve8
    FROM QUEST_TBL
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    ORDER BY m_idPlayer,serverindex,m_wId
    END
    /*

    퀘스트 전체 가져오기
    ex )
    QUEST_STR 'S1',@m_idPlayer,@serverindex
    QUEST_STR 'S1','000001','01'

    */
    IF @iGu = 'A1'
    BEGIN
    IF NOT EXISTS(SELECT * FROM QUEST_TBL WHERE m_idPlayer = @m_idPlayer AND serverindex = @serverindex AND m_wId = @m_wId)
    INSERT QUEST_TBL
    ( m_idPlayer,serverindex,m_wId,m_nState,m_wTime,m_nKillNPCNum_0,m_nKillNPCNum_1,
    m_bPatrol,m_bDialog,m_bReserve3,m_bReserve4,m_bReserve5,m_bReserve6,m_bReserve7,m_bReserve8)
    VALUES
    (@m_idPlayer,@serverindex,@m_wId,@m_nState,@m_wTime,@m_nKillNPCNum_0,@m_nKillNPCNum_1,
    @m_bPatrol,@m_bDialog,@m_bReserve3,@m_bReserve4,@m_bReserve5,@m_bReserve6,@m_bReserve7,@m_bReserve8)
    ELSE
    UPDATE QUEST_TBL
    SET m_nState = @m_nState,
    m_wTime = @m_wTime,
    m_nKillNPCNum_0 = @m_nKillNPCNum_0,
    m_nKillNPCNum_1 = @m_nKillNPCNum_1,
    m_bPatrol = @m_bPatrol,
    m_bDialog = @m_bDialog,
    m_bReserve3 = @m_bReserve3,
    m_bReserve4 = @m_bReserve4,
    m_bReserve5 = @m_bReserve5,
    m_bReserve6 = @m_bReserve6,
    m_bReserve7 = @m_bReserve7,
    m_bReserve8 = @m_bReserve8
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    AND m_wId = @m_wId

    IF @m_Inventory <> ''
    UPDATE INVENTORY_TBL
    SET m_Inventory = @m_Inventory,
    m_apIndex = @m_apIndex,
    m_adwEquipment = @m_adwEquipment,
    m_dwObjIndex = @m_dwObjIndex
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    END
    /*

    퀘스트 저장하기
    ex )
    QUEST_STR 'A1',@m_idPlayer,@serverindex,@m_wId,@m_nState,@m_wTime,@m_nKillNPCNum_0,@m_nKillNPCNum_1,@m_bPatrol,@m_bDialog,
    @m_bReserve3,@m_bReserve4,@m_bReserve5,@m_bReserve6,@m_bReserve7,@m_bReserve8,@m_Inventory, @m_apIndex, @m_adwEquipmen, @m_dwObjIndex

    QUEST_STR 'A1',@m_idPlayer,@serverindex,@m_wId = 1,@m_nState = 0,@m_wTime = 65535,@m_nKillNPCNum_0 = 0,@m_nKillNPCNum_1 = 0,@m_bPatrol = 0,@m_bDialog = 0,
    @m_bReserve3 = 0,@m_bReserve4 = 0,@m_bReserve5 = 0,@m_bReserve6 = 0,@m_bReserve7 = 0,@m_bReserve8 = 0,@m_Inventory = '$', @m_apIndex = '$', @m_adwEquipmen = '$', @m_dwObjIndex = '$'


    */

    IF @iGu = 'U1'
    BEGIN
    UPDATE QUEST_TBL
    SET m_nState = @m_nState,
    m_wTime = @m_wTime,
    m_nKillNPCNum_0 = @m_nKillNPCNum_0,
    m_nKillNPCNum_1 = @m_nKillNPCNum_1,
    m_bPatrol = @m_bPatrol,
    m_bDialog = @m_bDialog,
    m_bReserve3 = @m_bReserve3,
    m_bReserve4 = @m_bReserve4,
    m_bReserve5 = @m_bReserve5,
    m_bReserve6 = @m_bReserve6,
    m_bReserve7 = @m_bReserve7,
    m_bReserve8 = @m_bReserve8
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    AND m_wId = @m_wId

    IF @m_Inventory <> ''
    UPDATE INVENTORY_TBL
    SET m_Inventory = @m_Inventory,
    m_apIndex = @m_apIndex,
    m_adwEquipment = @m_adwEquipment,
    m_dwObjIndex = @m_dwObjIndex
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex

    END

    /*

    퀘스트 수정하기
    ex )
    QUEST_STR 'U1',@m_idPlayer,@serverindex,@m_wId,@m_nState,@m_wTime,@m_nKillNPCNum_0,@m_nKillNPCNum_1,@m_bPatrol,@m_bDialog,
    @m_bReserve3,@m_bReserve4,@m_bReserve5,@m_bReserve6,@m_bReserve7,@m_bReserve8,@m_Inventory, @m_apIndex, @m_adwEquipmen, @m_dwObjIndex

    QUEST_STR 'U1',@m_idPlayer,@serverindex,@m_wId = 1,@m_nState = 0,@m_wTime = 65535,@m_nKillNPCNum_0 = 0,@m_nKillNPCNum_1 = 0,@m_bPatrol = 0,@m_bDialog = 0,
    @m_bReserve3 = 0,@m_bReserve4 = 0,@m_bReserve5 = 0,@m_bReserve6 = 0,@m_bReserve7 = 0,@m_bReserve8 = 0,@m_Inventory = '$', @m_apIndex = '$', @m_adwEquipmen = '$', @m_dwObjIndex = '$'


    */
    IF @iGu = 'D1'
    BEGIN
    DELETE QUEST_TBL
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    AND m_wId = @m_wId

    IF @m_Inventory <> ''
    UPDATE INVENTORY_TBL
    SET m_Inventory = @m_Inventory,
    m_apIndex = @m_apIndex,
    m_adwEquipment = @m_adwEquipment,
    m_dwObjIndex = @m_dwObjIndex
    WHERE m_idPlayer = @m_idPlayer
    AND serverindex = @serverindex
    END
    /*

    퀘스트 삭제하기
    ex )
    QUEST_STR 'D1',@m_idPlayer,@serverindex,@m_wId,@m_nState,@m_wTime,@m_nKillNPCNum_0,@m_nKillNPCNum_1,@m_bPatrol,@m_bDialog,
    @m_bReserve3,@m_bReserve4,@m_bReserve5,@m_bReserve6,@m_bReserve7,@m_bReserve8,@m_Inventory, @m_apIndex, @m_adwEquipmen, @m_dwObjIndex

    QUEST_STR 'D1',@m_idPlayer,@serverindex,@m_wId = 1,@m_nState = 0,@m_wTime = 65535,@m_nKillNPCNum_0 = 0,@m_nKillNPCNum_1 = 0,@m_bPatrol = 0,@m_bDialog = 0,
    @m_bReserve3 = 0,@m_bReserve4 = 0,@m_bReserve5 = 0,@m_bReserve6 = 0,@m_bReserve7 = 0,@m_bReserve8 = 0,@m_Inventory = '$', @m_apIndex = '$', @m_adwEquipmen = '$', @m_dwObjIndex = '$'


    */

    RETURN
    GO

    --
    -- Definition for stored procedure TAG_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.TAG_STR Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE PROC [dbo].TAG_STR
    @iGu CHAR(2) = 'S1',
    @im_idPlayer CHAR(7) = '0000001',
    @iserverindex CHAR(2) = '01',
    @if_idPlayer CHAR(7) = '',
    @im_Message VARCHAR(255) = ''
    AS
    set nocount on

    IF @iGu = 'A1'
    BEGIN
    DECLARE @count int
    SELECT @count = COUNT(*)
    FROM TAG_TBL
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex
    AND State = 'T'

    IF @count < 20
    BEGIN
    INSERT TAG_TBL
    (m_idPlayer,serverindex,f_idPlayer,m_Message,State,CreateTime)
    VALUES
    (@im_idPlayer,@iserverindex,@if_idPlayer,@im_Message,'T',GETDATE())
    SELECT fError='0'
    RETURN
    END
    ELSE
    BEGIN
    SELECT fError='1'
    RETURN
    END
    END
    /*

    쪽지 저장하기
    ex )
    TAG_STR 'A1',@im_idPlayer,@iserverindex,@if_idPlayer,@im_Message
    TAG_STR 'A1','000001','01','000002','안녕하세요?'
    */
    ELSE
    IF @iGu = 'S1'
    BEGIN
    SELECT a.f_idPlayer, b.m_szName, a.m_Message,CreateTime=CONVERT(CHAR(8),a.CreateTime,112)
    FROM TAG_TBL a, CHARACTER_TBL b
    WHERE a.m_idPlayer = @im_idPlayer
    AND a.m_idPlayer = b.m_idPlayer
    AND a.serverindex = @iserverindex
    AND a.serverindex = b.serverindex
    AND a.State = 'T'
    ORDER BY a.CreateTime

    UPDATE TAG_TBL
    SET State = 'D'
    WHERE m_idPlayer = @im_idPlayer
    AND serverindex = @iserverindex

    SELECT fError='0'
    RETURN
    END
    /*

    쪽지 가져오기
    ex )
    TAG_STR 'S1',@im_idPlayer,@iserverindex
    TAG_STR 'S1','000001','01'


    */


    ELSE
    IF @iGu = 'D1'
    BEGIN
    DELETE TAG_TBL
    WHERE m_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL)

    DELETE TAG_TBL
    WHERE f_idPlayer NOT IN
    (SELECT m_idPlayer
    FROM CHARACTER_TBL)

    DELETE TAG_TBL
    WHERE State = 'D'
    AND CreateTime < DATEADD(d,-7,GETDATE())
    RETURN
    END

    /*

    쪽지 삭제하기( 캐릭터 삭제했을시, 일정시간이 지났을때 )
    ex )
    TAG_STR 'D1'
    TAG_STR 'D1'

    */
    set nocount off
    GO

    --
    -- Definition for stored procedure WANTED_STR :
    --
    GO
    /****** Object: Stored Procedure dbo.WANTED_STR Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE PROC [dbo].WANTED_STR
    @iGu char(2) = 'S1',
    @im_idPlayer CHAR(7) = '',
    @iserverindex CHAR(2) = '',
    @ipenya INT = 0,
    @iszMsg VARCHAR(40) = ''
    AS
    SET NOCOUNT ON
    IF @iGu = 'A1'
    BEGIN
    IF EXISTS(SELECT m_idPlayer FROM WANTED_TBL WHERE m_idPlayer =@im_idPlayer AND serverindex = @iserverindex)
    UPDATE WANTED_TBL
    SET penya = penya + @ipenya,
    szMsg = CASE WHEN @iszMsg = '' THEN szMsg ELSE @iszMsg END,
    s_date = CONVERT(CHAR(8),DATEADD(d,30,GETDATE()),112) + '2359'
    WHERE m_idPlayer =@im_idPlayer
    AND serverindex = @iserverindex
    ELSE
    INSERT WANTED_TBL
    (m_idPlayer,serverindex,penya,szMsg,s_date,CreateTime)
    VALUES
    (@im_idPlayer,@iserverindex,@ipenya, @iszMsg,CONVERT(CHAR(8),DATEADD(d,30,GETDATE()),112) + '2359',GETDATE())
    END
    /*

    현상금 걸기
    ex )
    WANTED_STR 'A1',@im_idPlayer,@iserverindex,@ipenya,@iszMsg
    WANTED_STR 'A1','000001','01',1000,1
    */
    ELSE
    IF @iGu = 'S1'
    BEGIN
    IF EXISTS(SELECT m_idPlayer FROM WANTED_TBL WHERE s_date <= CONVERT(CHAR(8),GETDATE(),112) + '2359' AND serverindex = @iserverindex)
    DELETE WANTED_TBL
    WHERE s_date <= CONVERT(CHAR(8),GETDATE(),112) + '2359'
    AND serverindex = @iserverindex

    SELECT A.m_idPlayer,A.serverindex,B.m_szName,szMsg = ISNULL(A.szMsg,''),A.penya,A.s_date
    FROM WANTED_TBL A,CHARACTER_TBL B
    WHERE A.m_idPlayer = B.m_idPlayer
    AND A.serverindex = B.serverindex
    END
    /*

    현상금 리스트 가져오기
    ex )
    WANTED_STR 'S1',@im_idPlayer,@iserverindex
    WANTED_STR 'S1','','01'
    */
    ELSE
    IF @iGu = 'D1'
    BEGIN
    DELETE WANTED_TBL
    WHERE m_idPlayer =@im_idPlayer
    AND serverindex = @iserverindex
    END
    /*

    현상금 삭제
    ex )
    WANTED_STR 'D1',@im_idPlayer,@iserverindex
    WANTED_STR 'D1','000001','01'
    */
    RETURN
    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspAddMessenger :
    --
    GO
    /****** Object: Stored Procedure dbo.uspAddMessenger Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspAddMessenger
    @serverindex char(2),
    @idPlayer char(7),
    @idFriend char(7)
    AS
    SET NOCOUNT ON

    IF EXISTS(SELECT * FROM tblMessenger WHERE serverindex = @serverindex AND idPlayer = @idPlayer AND idFriend = @idFriend)
    BEGIN
    UPDATE tblMessenger SET chUse = 'T', bBlock = 0
    WHERE serverindex = @serverindex AND idPlayer = @idPlayer AND idFriend = @idFriend
    END
    ELSE
    BEGIN
    INSERT tblMessenger (serverindex, idPlayer, idFriend) VALUES (@serverindex, @idPlayer, @idFriend)
    END

    IF EXISTS(SELECT * FROM tblMessenger WHERE serverindex = @serverindex AND idPlayer = @idFriend AND idFriend = @idPlayer)
    BEGIN
    UPDATE tblMessenger SET chUse = 'T', bBlock = 0
    WHERE serverindex = @serverindex AND idPlayer = @idFriend AND idFriend = @idPlayer
    END
    ELSE
    BEGIN
    INSERT tblMessenger (serverindex, idPlayer, idFriend) VALUES (@serverindex, @idFriend, @idPlayer)
    END
    GO

    --
    -- Definition for stored procedure uspAddNewCombat :
    --
    GO
    /****** Object: Stored Procedure dbo.uspAddNewCombat Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspAddNewCombat
    @pCombatID int,
    @pserverindex char(2),
    @pComment varchar(1000)=''
    AS
    SET NOCOUNT ON

    INSERT INTO tblCombatInfo(CombatID,serverindex,Status,StartDt,EndDt,Comment)
    VALUES (@pCombatID, @pserverindex, '10', NULL, NULL, @pComment)

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspCancelGuildToCombat :
    --
    GO
    /****** Object: Stored Procedure dbo.uspCancelGuildToCombat Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspCancelGuildToCombat
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6)
    AS
    SET NOCOUNT ON

    UPDATE tblCombatJoinGuild SET Status='11' WHERE CombatID=@pCombatID AND serverindex=@pserverindex AND GuildID=@pGuildID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspChangeMultiServer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspChangeMultiServer Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE PROCEDURE [dbo].uspChangeMultiServer
    @pserverindex char(2),
    @pidPlayer char(7),
    @pMultiServer int
    AS
    SET NOCOUNT ON
    /* UPDATE CHARACTER_TBL SET MultiServer=@pMultiServer
    WHERE m_idPlayer=@pidPlayer and serverindex=@pserverindex

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001
    RETURN
    END

    */ SELECT 1
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspCombatContinue :
    --
    GO
    /****** Object: Stored Procedure dbo.uspCombatContinue Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspCombatContinue
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pStraightWin int
    AS
    SET NOCOUNT ON

    UPDATE dbo.tblCombatJoinGuild
    SET StraightWin = @pStraightWin
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspConvertCharacterSkill :
    --
    GO
    /****** Object: Stored Procedure dbo.uspConvertCharacterSkill Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE proc dbo.uspConvertCharacterSkill
    @serverindex char(2),
    @pPlayerID char(7)='',
    @pEndPlayerID char(7)='',
    @pSkillList varchar(5000)=''
    AS
    SET NOCOUNT ON

    DECLARE @SkillExp int,
    @SkillLevel int,
    @SkillID int,
    @SkillStatus int

    DECLARE @SkillString varchar(500),
    @SkillStringLength int

    DECLARE @SkillSetStartPos int,
    @SkillSetEndPos int,
    @SkillSetLength int

    DECLARE @SkillElemStartPos int,
    @SkillElemEndPos int,
    @SkillElemLength int,
    @SkillElemIndex int,
    @SkillElemString int

    SELECT -1 as SkillExp,
    -1 as SkillLevel,
    -1 as SkillID,
    -1 as SkillStatus
    INTO #TMP

    DECLARE @CharacterLevel int,
    @Job int,
    @CharExp bigint

    DECLARE @ExtraPointForJob int,
    @ExtraPointForLevelExp int,
    @LevelExpRatio int,
    @FinalSkillPoint int


    IF @pPlayerID='' BEGIN
    DELETE FROM tblSkillPoint WHERE serverindex=@serverindex
    END
    ELSE BEGIN
    DELETE FROM tblSkillPoint WHERE serverindex=@serverindex and PlayerID BETWEEN @pPlayerID and @pEndPlayerID
    END


    IF @pPlayerID='' BEGIN
    DECLARE curCharacter CURSOR FOR
    SELECT m_idPlayer, m_nJob, m_nLevel, m_aJobSkill, m_nExp1 FROM CHARACTER_TBL WHERE serverindex=@serverindex AND isblock<>'D'
    END
    ELSE BEGIN
    DECLARE curCharacter CURSOR FOR
    SELECT m_idPlayer, m_nJob, m_nLevel, m_aJobSkill, m_nExp1 FROM CHARACTER_TBL WHERE serverindex=@serverindex and m_idPlayer BETWEEN @pPlayerID and @pEndPlayerID
    END

    OPEN curCharacter

    FETCH NEXT FROM curCharacter INTO @pPlayerID, @Job, @CharacterLevel, @pSkillList, @CharExp

    --PRINT 'START'
    WHILE(@@FETCH_STATUS=0) BEGIN
    --PRINT 'START'
    -- READ FROM TABLE
    --SELECT @CharacterLevel=m_nLevel , @pSkillList=m_aJobSkill FROM CHARACTER_TBL WHERE m_idPlayer=@pPlayerID and serverindex=@serverindex

    SELECT @SkillStringLength = LEN(@pSkillList)
    SELECT @SkillSetStartPos = 0
    SELECT @SkillSetEndPos = -1

    DECLARE @SkillPosition int, @SkillPoint int, @Point int
    SET @SkillPosition=0
    SET @SkillPoint=0
    SET @Point=0
    SET @ExtraPointForJob =0
    SET @ExtraPointForLevelExp =0
    SET @LevelExpRatio =0
    SET @FinalSkillPoint=0


    --PRINT @SkillSetEndPos
    SET @SkillPosition=-1
    SET @ExtraPointForJob=0
    SET @ExtraPointForLevelExp=0
    SET @LevelExpRatio=0
    SET @SkillPoint=0

    WHILE ( @SkillSetEndPos <> 0 ) BEGIN
    SET @Point=0

    SET @SkillPosition = @SkillPosition + 1
    SELECT @SkillSetStartPos = @SkillSetEndPos+1
    SELECT @SkillSetEndPos = CHARINDEX('/', @pSkillList, @SkillSetStartPos)
    --PRINT @SkillSetEndPos

    IF @SkillSetEndPos=0 BREAK

    SELECT @SkillSetLength = @SkillSetEndPos - @SkillSetStartPos

    IF (@SkillSetEndPos>@SkillStringLength)
    BREAK
    ELSE BEGIN
    SELECT @SkillString = SUBSTRING(@pSkillList, @SkillSetStartPos, @SkillSetLength) + ','
    --PRINT @SkillString

    SET @SkillElemStartPos = 1
    SET @SkillElemEndPos = CHARINDEX(',', @SkillString, @SkillElemStartPos)
    SET @SkillElemLength = @SkillElemEndPos-@SkillElemStartPos

    SET @SkillExp = SUBSTRING(@SkillString, @SkillElemStartPos, @SkillElemLength)

    SET @SkillElemStartPos=@SkillElemEndPos+1
    SET @SkillElemEndPos=CHARINDEX(',',@SkillString, @SkillElemStartPos)
    SET @SkillElemLength = @SkillElemEndPos-@SkillElemStartPos

    SET @SkillLevel = SUBSTRING(@SkillString, @SkillElemStartPos, @SkillElemLength)

    SET @SkillElemStartPos=@SkillElemEndPos+1
    SET @SkillElemEndPos=CHARINDEX(',',@SkillString, @SkillElemStartPos)
    SET @SkillElemLength = @SkillElemEndPos-@SkillElemStartPos

    SET @SkillID = SUBSTRING(@SkillString, @SkillElemStartPos, @SkillElemLength)

    SET @SkillElemStartPos=@SkillElemEndPos+1
    SET @SkillElemEndPos=CHARINDEX(',',@SkillString, @SkillElemStartPos)
    SET @SkillElemLength = @SkillElemEndPos-@SkillElemStartPos

    SET @SkillStatus = SUBSTRING(@SkillString, @SkillElemStartPos, @SkillElemLength)

    --SELECT @SkillPosition as 'Skill Position', @SkillExp as 'Skill Exp', @SkillLevel as 'Skill Level', @SkillID as 'Skill ID', @SkillStatus as 'Skill Status'
    END

    SELECT @Point=CASE WHEN job=0 THEN 1
    WHEN job in (1,2,3,4,5) THEN 2
    WHEN job>5 THEN 3
    ELSE 0 END * @SkillLevel
    FROM MANAGE_DBF.dbo.SKILL_TBL WITH (NOLOCK)
    WHERE [Index]=@SkillID

    --PRINT @Point

    SET @SkillPoint = @SkillPoint + @Point

    --PRINT @SkillPoint

    IF @SkillID > -1 BEGIN
    INSERT INTO tblSkillPoint(serverindex, SkillPosition, PlayerID, SkillID, SkillLv)
    SELECT @serverindex, @SkillPosition, @pPlayerID, @SkillID, 0
    END

    END -- END OF WHILE

    -- EXTRA POINT FOR JOB
    SELECT @ExtraPointForJob=CASE WHEN @Job=0 THEN 0
    WHEN @Job in (1,2,3,4,5) THEN 30
    WHEN @Job>5 THEN 60
    ELSE 0 END

    -- EXTRA POINT FOR LEVEL EXP
    SELECT @LevelExpRatio = MANAGE_DBF.dbo.fn_GetExpRatio(@CharacterLevel, @CharExp)

    SELECT @ExtraPointForLevelExp = CASE WHEN @LevelExpRatio < 33 THEN 0
    WHEN @LevelExpRatio BETWEEN 33 AND 65 THEN 1
    WHEN @LevelExpRatio BETWEEN 66 AND 98 THEN 2
    WHEN @LevelExpRatio BETWEEN 99 AND 100 THEN 3
    ELSE 0 END

    IF @SkillPoint<(@CharacterLevel-1)*3
    SET @SkillPoint = (@CharacterLevel-1)*3

    UPDATE CHARACTER_TBL SET SkillExp =0,
    SkillPoint =@SkillPoint +@ExtraPointForLevelExp + @ExtraPointForJob,
    SkillLv =@SkillPoint +@ExtraPointForLevelExp
    WHERE m_idPlayer=@pPlayerID AND serverindex=@serverindex

    FETCH NEXT FROM curCharacter INTO @pPlayerID, @Job, @CharacterLevel, @pSkillList, @CharExp
    END -- END OF CURSOR

    CLOSE curCharacter
    DEALLOCATE curCharacter

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspDeleteMessenger :
    --
    GO
    /****** Object: Stored Procedure dbo.uspDeleteMessenger Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspDeleteMessenger
    @serverindex char(2),
    @idPlayer char(7),
    @idFriend char(7)
    AS
    SET NOCOUNT ON

    UPDATE tblMessenger
    SET chUse = 'F'
    WHERE serverindex = @serverindex
    AND ( ( idPlayer = @idPlayer AND idFriend = @idFriend ) OR ( idPlayer = @idFriend AND idFriend = @idPlayer ) )
    GO

    --
    -- Definition for stored procedure uspEndCombat :
    --
    GO
    /****** Object: Stored Procedure dbo.uspEndCombat Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspEndCombat
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    UPDATE tblCombatInfo SET Status='30',EndDt=getdate() WHERE CombatID=@pCombatID AND serverindex=@pserverindex

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN 1

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspExpireCombatReward :
    --
    GO
    /****** Object: Stored Procedure dbo.uspExpireCombatReward Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure [dbo].uspExpireCombatReward
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pPlayerID char(7) = '0000000'
    AS
    SET NOCOUNT ON

    IF @pPlayerID='0000000' BEGIN
    UPDATE tblCombatJoinGuild SET Status='32'
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END
    END
    ELSE BEGIN
    UPDATE tblCombatJoinPlayer SET Status='32'
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID
    AND PlayerID=@pPlayerID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9002 as retValue
    RETURN
    END
    END

    SELECT 1 as retValue

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspGradeCombatGuild :
    --
    GO
    /****** Object: Stored Procedure dbo.uspGradeCombatGuild Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspGradeCombatGuild
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pPoint int,
    @pReturnCombatFee bigint=0,
    @pReward bigint=0,
    @pStraightWin int=0
    AS
    SET NOCOUNT ON

    DECLARE @Status varchar(3)

    IF @pReward=0 AND @pReturnCombatFee=0
    SET @Status='31'
    ELSE
    SET @Status='30'

    UPDATE tblCombatJoinGuild
    SET Point=@pPoint,
    ReturnCombatFee=@pReturnCombatFee,
    Reward=@pReward,
    StraightWin=@pStraightWin,
    Status=@Status
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID


    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspGradeCombatPlayer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspGradeCombatPlayer Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure [dbo].uspGradeCombatPlayer
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pPlayerID char(7),
    @pPoint int,
    @pReward bigint=0
    AS
    SET NOCOUNT ON

    INSERT INTO tblCombatJoinPlayer(CombatID, serverindex, GuildID, PlayerID, Point, Reward, Status)
    VALUES (@pCombatID, @pserverindex, @pGuildID, @pPlayerID, @pPoint, @pReward, DEFAULT)

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspInitMultiServer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspInitMultiServer Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE PROCEDURE [dbo].uspInitMultiServer
    @pserverindex char(2),
    @pMultiServer int
    AS
    SET NOCOUNT ON
    /* UPDATE CHARACTER_TBL SET MultiServer=0
    WHERE serverindex=@pserverindex AND MultiServer=@pMultiServer

    */ SELECT 1
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspJoinGuildToCombat :
    --
    GO
    /****** Object: Stored Procedure dbo.uspJoinGuildToCombat Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspJoinGuildToCombat
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pCombatFee bigint = 0,
    @pStraightWin int = 0
    AS
    SET NOCOUNT ON

    IF EXISTS ( SELECT * FROM tblCombatJoinGuild WHERE CombatID=@pCombatID and GuildID=@pGuildID and serverindex=@pserverindex) BEGIN
    UPDATE tblCombatJoinGuild SET Status='12', CombatFee=@pCombatFee, ApplyDt=getdate(), CancelDt=getdate(), StraightWin=@pStraightWin
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9003 as retValue
    RETURN
    END
    END
    ELSE BEGIN
    INSERT INTO tblCombatJoinGuild(CombatID, serverindex, GuildID, Status, ApplyDt, CombatFee, ReturnCombatFee, Reward, Point, RewardDt, CancelDt, StraightWin)
    VALUES (@pCombatID, @pserverindex, @pGuildID, '10', getdate(), @pCombatFee, 0, 0, 0, NULL, NULL, @pStraightWin)
    END

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN


    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLearnSkill :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLearnSkill Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE PROCEDURE dbo.uspLearnSkill
    @serverindex char(2),
    @pPlayerID char(7),
    @pSkillID int,
    @pSkillLv int,
    @pSkillPosition int
    AS
    SET NOCOUNT ON

    IF @pSkillID=-1 BEGIN
    IF EXISTS ( SELECT * FROM dbo.tblSkillPoint WHERE serverindex=@serverindex AND PlayerID=@pPlayerID AND SkillPosition=@pSkillPosition) BEGIN

    DELETE tblSkillPoint
    WHERE serverindex=@serverindex AND PlayerID=@pPlayerID and SkillPosition=@pSkillPosition

    END
    END
    ELSE BEGIN
    IF EXISTS ( SELECT * FROM dbo.tblSkillPoint WHERE serverindex=@serverindex AND PlayerID=@pPlayerID AND SkillPosition=@pSkillPosition) BEGIN

    UPDATE tblSkillPoint
    SET SkillID=@pSkillID,SkillLv=@pSkillLv
    WHERE serverindex=@serverindex AND PlayerID=@pPlayerID AND SkillPosition=@pSkillPosition

    END
    ELSE BEGIN

    INSERT INTO tblSkillPoint VALUES (@serverindex, @pPlayerID, @pSkillID, @pSkillLv, @pSkillPosition)

    END
    END

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCharacterSkill :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCharacterSkill Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE PROCEDURE dbo.uspLoadCharacterSkill
    @serverindex char(2),
    @pPlayerID char(7)
    AS
    SET NOCOUNT ON

    SELECT PlayerID, SkillID, SkillLv, SkillPosition FROM tblSkillPoint
    WHERE PlayerID=@pPlayerID
    and serverindex=@serverindex

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatBestPlayer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatBestPlayer Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadCombatBestPlayer
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT TOP 1 PlayerID
    FROM tblCombatJoinPlayer
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND Reward>0

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatGuildInfo :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatGuildInfo Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadCombatGuildInfo
    @pserverindex char(2),
    @pGuildID char(6)
    AS
    SET NOCOUNT ON

    SELECT a.CombatID, a.GuildID, a.Status, a.CombatFee, a.ReturnCombatFee, a.Point, a.Reward
    FROM tblCombatJoinGuild a
    WHERE a.serverindex=@pserverindex
    AND a.GuildID=@pGuildID
    AND a.RewardDt is NULL

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatGuildList :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatGuildList Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure [dbo].uspLoadCombatGuildList
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT CombatID, serverindex, GuildID, Status, ApplyDt, CombatFee, StraightWin, Reward, Point
    FROM tblCombatJoinGuild
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    order by ApplyDt

    RETURN
    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatInfo :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatInfo Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadCombatInfo
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT CombatID, serverindex, Status, StartDt, EndDt, Comment
    FROM tblCombatInfo
    WHERE serverindex=@pserverindex
    AND CombatID=@pCombatID

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatList :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatList Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadCombatList
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT CombatID, serverindex, Status, StartDt, EndDt, Comment
    FROM tblCombatInfo
    WHERE serverindex=@pserverindex

    RETURN


    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadCombatUnpaidList :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadCombatUnpaidList Script Date: 7/29/2008 3:34:05 AM ******/


    CREATE Procedure [dbo].uspLoadCombatUnpaidList
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT 'G' as Flag, CombatID, serverindex, GuildID, Status, '0000000' as PlayerID, CombatFee, ReturnCombatFee, Reward
    FROM tblCombatJoinGuild
    WHERE serverindex=@pserverindex
    AND Status='30'
    UNION ALL
    SELECT 'P' as Flag, CombatID, serverindex, GuildID, Status, PlayerID, 0 as CombatFee, 0 as ReturnCombatFee,Reward
    FROM tblCombatJoinPlayer
    WHERE serverindex=@pserverindex
    AND Status='30'
    AND Reward>0
    ORDER BY CombatID, Flag, Reward, ReturnCombatFee, GuildID

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadGuildMember :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadGuildMember Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadGuildMember
    @pserverindex char(2),
    @pGuildID char(6)
    AS
    SET NOCOUNT ON

    SELECT m_idPlayer
    FROM GUILD_MEMBER_TBL
    WHERE m_idGuild=@pGuildID

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadMaxCombatID :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadMaxCombatID Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadMaxCombatID
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT ISNULL(MAX(CombatID),0) as MaxNum FROM tblCombatInfo
    WHERE serverindex=@pserverindex

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadMaxMailID :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadMaxMailID Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE Procedure dbo.uspLoadMaxMailID
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT MAX(nMail) as MaxMailID
    FROM dbo.MAIL_TBL
    WHERE serverindex=@pserverindex

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadMessenger :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadMessenger Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspLoadMessenger
    @serverindex char(2),
    @idPlayer char(7)
    AS
    SET NOCOUNT ON
    SELECT idPlayer, idFriend, bBlock FROM tblMessenger
    WHERE serverindex = @serverindex AND idPlayer = @idPlayer AND chUse = 'T'
    GO

    --
    -- Definition for stored procedure uspLoadMessengerList :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadMessengerList Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure dbo.uspLoadMessengerList
    @pserverindex char(2),
    @pPlayerID char(7)
    AS
    SET NOCOUNT ON

    --select f_idPlayer, m_nJob, m_dwSex, m_dwState
    --from MESSENGER_TBL_sos

    SELECT a.f_idPlayer, b.m_nJob, b.m_dwSex, a.m_dwState
    FROM dbo.MESSENGER_TBL a
    INNER JOIN dbo.CHARACTER_TBL b
    ON (a.serverindex=b.serverindex AND a.f_idPlayer=b.m_idPlayer)
    WHERE a.serverindex=@pserverindex
    AND a.m_idPlayer=@pPlayerID
    AND a.State='T'
    AND b.isblock='F'
    ORDER BY a.CreateTime

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadMessengerListRegisterMe :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadMessengerListRegisterMe Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure dbo.uspLoadMessengerListRegisterMe
    @pserverindex char(2),
    @pPlayerID char(7)
    AS
    SET NOCOUNT ON

    --select f_idPlayer, m_dwState
    --from MESSENGER_TBL_sos

    SELECT a.f_idPlayer, count(a.f_idPlayer)
    FROM MESSENGER_TBL a, MESSENGER_TBL b
    WHERE a.f_idPlayer=b.m_idPlayer
    AND a.serverindex=b.serverindex
    AND a.m_idPlayer = @pPlayerID
    AND a.serverindex = @pserverindex
    AND a.State = 'T'
    AND b.State = 'T'
    GROUP BY a.f_idPlayer

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadPlayerData :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadPlayerData Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspLoadPlayerData
    @iserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT m_idPlayer, m_szName, m_dwSex, m_nLevel, m_nJob, m_nMessengerState
    FROM CHARACTER_TBL
    WHERE serverindex = @iserverindex ORDER BY m_idPlayer
    GO

    --
    -- Definition for stored procedure uspLoadRemoveItemFromGuildBank :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadRemoveItemFromGuildBank Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadRemoveItemFromGuildBank
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT nNum,
    idGuild,
    ItemIndex,
    ItemSerialNum,
    ItemCnt,
    DeleteCnt,
    DeleteRequestCnt
    FROM tblRemoveItemFromGuildBank
    WHERE serverindex=@pserverindex
    AND ItemFlag=0

    -- Error Handling

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspLoadSealChar :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadSealChar Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspLoadSealChar
    @serverindex char(2),
    @account VARCHAR(32) = ''
    AS
    SET NOCOUNT ON
    select TOP 3 playerslot,m_idPlayer,m_szName
    from CHARACTER_TBL
    where serverindex=@serverindex and account= @account and isblock='F'
    order by playerslot
    GO

    --
    -- Definition for stored procedure uspLoadWinnerGuildInfo :
    --
    GO
    /****** Object: Stored Procedure dbo.uspLoadWinnerGuildInfo Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspLoadWinnerGuildInfo
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT CombatID, serverindex, GuildID, Status, ApplyDt, CombatFee, StraightWin, Reward, Point
    FROM tblCombatJoinGuild
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND StraightWin>0

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspProvideItemToCharacter :
    --
    GO
    /****** Object: Stored Procedure dbo.uspProvideItemToCharacter Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure dbo.uspProvideItemToCharacter
    @pPlayerID char(7),
    @pserverindex char(2),
    @pItemIndex int,
    @pItemCnt int=1,
    @pAbilityOption int=0,
    @pEndTime char(8)=NULL,
    @pItemResist int=0,
    @pResAbilityOpt int=0,
    @pCharged int=0,
    @pSender char(7)='0000000',
    @pRandomOption int=0,
    @pPiercedSize int=0,
    @pPierceID1 int=0,
    @pPierceID2 int=0,
    @pPierceID3 int=0,
    @pPierceID4 int=0,
    @pKeepTime int=0
    AS
    SET NOCOUNT ON

    DECLARE @ItemName varchar(32)

    IF @pItemIndex=12 OR @pItemIndex=13 OR @pItemIndex=14 OR @pItemIndex=15 BEGIN
    SET @ItemName='penya'
    END
    ELSE BEGIN
    SET @ItemName=@pItemIndex
    END

    INSERT INTO ITEM_SEND_TBL
    (m_idPlayer, serverindex,
    Item_Name, Item_count, m_nAbilityOption, End_Time, m_bItemResist, m_nResistAbilityOption, nRandomOptItemId,
    m_bCharged, idSender,
    nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3,
    m_dwKeepTime)
    VALUES
    (@pPlayerID, @pserverindex,
    @ItemName, @pItemCnt, @pAbilityOption, @pEndTime, @pItemResist, @pResAbilityOpt, @pRandomOption,
    @pCharged, @pSender,
    @pPiercedSize, @pPierceID1, @pPierceID2, @pPierceID3, @pPierceID4,
    @pKeepTime)
    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspRankGuildCombatPlayer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspRankGuildCombatPlayer Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE Procedure [dbo].uspRankGuildCombatPlayer
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    SELECT a.PlayerID, max(b.m_nJob) as Job, sum(a.Point) as PointSummary
    FROM tblCombatJoinPlayer a INNER JOIN CHARACTER_TBL b ON (a.PlayerID=b.m_idPlayer)
    GROUP BY a.PlayerID
    HAVING sum(a.Point)>0
    ORDER BY sum(a.Point)

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspRemoveItemFromGuildBank :
    --
    GO
    /****** Object: Stored Procedure dbo.uspRemoveItemFromGuildBank Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspRemoveItemFromGuildBank
    @pserverindex char(2),
    @pNum int,
    @pDeleteCnt int
    AS
    SET NOCOUNT ON

    UPDATE tblRemoveItemFromGuildBank
    SET ItemFlag=1, DeleteCnt=@pDeleteCnt, DeleteDt=getdate()
    WHERE serverindex=@pserverindex
    AND nNum=@pNum

    IF @@ROWCOUNT=0 BEGIN
    SELECT retValue ='0'
    END
    ELSE BEGIN
    SELECT retValue = '1'
    END

    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspReservRemoveItemFromCharacter :
    --
    GO
    /****** Object: Stored Procedure dbo.uspReservRemoveItemFromCharacter Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure dbo.uspReservRemoveItemFromCharacter
    @pserverindex char(2),
    @pPlayerID char(7),
    @pItemIndex int,
    @pItemCnt int=1,
    @pStorage char(1)='I',
    @pAbilityOpt int=0,
    @pItemResist int=0,
    @pResAbilityOpt int=0,
    @pRandomOpt int=0,
    @pPiercedSize int=0,
    @pPierceID1 int=0,
    @pPierceID2 int=0,
    @pPierceID3 int=0,
    @pPierceID4 int=0,
    @pRequestUser varchar(32)='EoCRM'
    AS
    SET NOCOUNT ON

    INSERT INTO ITEM_REMOVE_TBL
    (serverindex, m_idPlayer,
    Item_Name, Item_count, m_nAbilityOption, m_bItemResist, m_nResistAbilityOption, RandomOption,
    State,
    RequestUser)
    VALUES
    (@pserverindex, @pPlayerID,
    @pItemIndex, @pItemCnt, @pAbilityOpt, @pItemResist, @pResAbilityOpt, @pRandomOpt,
    @pStorage,
    @pRequestUser)

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspReservRemoveItemFromCharacter_1 :
    --
    GO
    /****** Object: Stored Procedure dbo.uspReservRemoveItemFromCharacter_1 Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE proc [dbo].uspReservRemoveItemFromCharacter_1
    @pserverindex char(2),
    @pPlayerID char(7),
    @pItemIndex varchar(32),
    @pItemCnt int=1,
    @pStorage char(1)='I',
    @pAbilityOpt varchar(20),
    @pItemResist int=0,
    @pResAbilityOpt varchar(20),
    @pRandomOpt int=0,
    @pPiercedSize int=0,
    @pPierceID1 int=0,
    @pPierceID2 int=0,
    @pPierceID3 int=0,
    @pPierceID4 int=0,
    @pRequestUser varchar(32)='EoCRM'
    AS
    SET NOCOUNT ON

    if @pAbilityOpt = '&4' or @pResAbilityOpt = '&8'
    select @pAbilityOpt = 0, @pResAbilityOpt = 0, @pItemResist = 0, @pRandomOpt = 0

    INSERT INTO ITEM_REMOVE_TBL
    (serverindex, m_idPlayer, Item_Name, Item_count, m_nAbilityOption, m_bItemResist, m_nResistAbilityOption, RandomOption, State, RequestUser)
    VALUES
    (@pserverindex, @pPlayerID, @pItemIndex, @pItemCnt, cast(@pAbilityOpt as int), @pItemResist, cast(@pResAbilityOpt as int), @pRandomOpt, @pStorage, @pRequestUser)
    GO

    --
    -- Definition for stored procedure uspRewardCombatGuild :
    --
    GO
    /****** Object: Stored Procedure dbo.uspRewardCombatGuild Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspRewardCombatGuild
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6)
    AS
    SET NOCOUNT ON

    UPDATE tblCombatJoinGuild
    SET RewardDt=getdate(),
    Status='31'
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspRewardCombatPlayer :
    --
    GO
    /****** Object: Stored Procedure dbo.uspRewardCombatPlayer Script Date: 7/29/2008 3:34:05 AM ******/
    CREATE Procedure [dbo].uspRewardCombatPlayer
    @pCombatID int,
    @pserverindex char(2),
    @pGuildID char(6),
    @pPlayerID char(7)
    AS
    SET NOCOUNT ON

    UPDATE tblCombatJoinPlayer
    SET RewardDt=getdate(),
    Status='31'
    WHERE CombatID=@pCombatID
    AND serverindex=@pserverindex
    AND GuildID=@pGuildID
    AND PlayerID=@pPlayerID

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspSavePocket :
    --
    GO
    /****** Object: Stored Procedure dbo.uspSavePocket Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspSavePocket
    @serverindex CHAR(2),
    @idPlayer CHAR(7),
    @nPocket int,
    @pszItem VARCHAR(4290) = '$',
    @pszIndex VARCHAR(215) = '$',
    @pszObjIndex VARCHAR(215) = '$',
    @pszExt VARCHAR(2000) = '$',
    @pszPiercing VARCHAR(2000) = '$',
    @pszPet VARCHAR(2689) = '$',
    @bExpired int = 1,
    @tExpirationDate int = 0
    AS
    set nocount on

    UPDATE tblPocket
    SET szItem = @pszItem,
    szIndex = @pszIndex,
    szObjIndex = @pszIndex,
    bExpired = @bExpired,
    tExpirationDate = @tExpirationDate
    WHERE serverindex = @serverindex AND idPlayer = @idPlayer AND nPocket = @nPocket

    UPDATE tblPocketExt
    SET szExt = @pszExt,
    szPiercing = @pszPiercing,
    szPet = @pszPet
    WHERE serverindex = @serverindex AND idPlayer = @idPlayer AND nPocket = @nPocket
    GO

    --
    -- Definition for stored procedure uspSetSealChar :
    --
    GO
    /****** Object: Stored Procedure dbo.uspSetSealChar Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspSetSealChar
    @serverindex char(2),
    @im_idPlayer CHAR(7) = ''
    AS
    SET NOCOUNT ON

    UPDATE CHARACTER_TBL
    SET isblock = 'S'
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @serverindex

    UPDATE MESSENGER_TBL
    SET State = 'D'
    WHERE m_idPlayer = @im_idPlayer AND serverindex = @serverindex AND State = 'T'

    UPDATE MAIL_TBL
    SET byRead=90, DeleteDt = getdate()
    WHERE idReceiver = @im_idPlayer AND serverindex = @serverindex AND byRead<>90
    RETURN
    GO

    --
    -- Definition for stored procedure uspSetSealCharUpdate :
    --
    GO
    /****** Object: Stored Procedure dbo.uspSetSealCharUpdate Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspSetSealCharUpdate
    @serverindex char(2),
    @im_idPlayer CHAR(7) = '',
    @account VARCHAR(32) = '',
    @nPlayerSlot INT =0,
    @im_idPlayerW CHAR(7) = ''
    AS
    SET NOCOUNT ON

    UPDATE CHARACTER_TBL
    SET isblock = 'F' ,account = @account, playerslot = @nPlayerSlot
    WHERE m_idPlayer = @im_idPlayerW AND serverindex = @serverindex AND isblock = 'S'
    RETURN
    GO

    --
    -- Definition for stored procedure uspStartCombat :
    --
    GO
    /****** Object: Stored Procedure dbo.uspStartCombat Script Date: 7/29/2008 3:34:04 AM ******/

    CREATE Procedure [dbo].uspStartCombat
    @pCombatID int,
    @pserverindex char(2)
    AS
    SET NOCOUNT ON

    UPDATE tblCombatInfo SET Status='20' WHERE CombatID=@pCombatID AND serverindex=@pserverindex AND Status='10'

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9001 as retValue
    RETURN
    END

    UPDATE tblCombatJoinGuild SET Status='20' WHERE CombatID=@pCombatID AND serverindex=@pserverindex AND Status='10'

    IF @@ROWCOUNT=0 BEGIN
    SELECT 9002 as retValue
    RETURN
    END

    SELECT 1 as retValue
    RETURN

    SET NOCOUNT OFF
    GO

    --
    -- Definition for stored procedure uspUpdateMessenger :
    --
    GO
    /****** Object: Stored Procedure dbo.uspUpdateMessenger Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].uspUpdateMessenger
    @serverindex char(2),
    @idPlayer char(7),
    @idFriend char(7),
    @bBlock int
    AS
    SET NOCOUNT ON

    UPDATE tblMessenger
    SET bBlock = @bBlock
    WHERE serverindex = @serverindex
    AND idPlayer = @idPlayer
    AND idFriend = @idFriend
    GO

    --
    -- Definition for stored procedure usp_Guild_Combat_1to1_Battle :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_Guild_Combat_1to1_Battle Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].usp_Guild_Combat_1to1_Battle
    @serverindex char(2),
    @combatID int,
    @m_idWorld int,
    @m_idGuild_1st char(6),
    @m_idGuild_2nd char(6),
    @State char(1),
    @iGu char(2)
    as
    set nocount on
    set xact_abort on

    if @iGu = 'I1'
    begin
    delete from GUILD_COMBAT_1TO1_BATTLE_TBL
    where serverindex = @serverindex and combatID = @combatID and m_idWorld = @m_idWorld

    insert into GUILD_COMBAT_1TO1_BATTLE_TBL(serverindex, combatID, m_idWorld, m_idGuild_1st, m_idGuild_2nd, State)
    select @serverindex, @combatID, @m_idWorld, @m_idGuild_1st, @m_idGuild_2nd, @State
    end

    if @iGu = 'U1'
    begin
    update GUILD_COMBAT_1TO1_BATTLE_TBL
    set End_Time = getdate(), State = @State
    where serverindex = @serverindex and combatID = @combatID and m_idWorld = @m_idWorld
    end
    GO

    --
    -- Definition for stored procedure usp_Guild_Combat_1to1_Battle_Person :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_Guild_Combat_1to1_Battle_Person Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].usp_Guild_Combat_1to1_Battle_Person
    @serverindex char(2),
    @combatID int,
    @m_idGuild char(6),
    @m_idPlayer char(7),
    @m_nSeq int,
    @State char(1),
    @iGu char(2)
    as
    set nocount on
    set xact_abort on

    if @iGu = 'I1'
    begin
    insert into GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL (serverindex, combatID, m_idGuild, m_idPlayer, m_nSeq, State)
    select @serverindex, @combatID, @m_idGuild, @m_idPlayer, @m_nSeq, @State
    end

    if @iGu = 'U1'
    begin
    if @State = 'N'
    begin
    update GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL
    set Start_Time = getdate(), State = @State
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild and m_idPlayer = @m_idPlayer
    end
    else
    begin
    update GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL
    set End_Time = getdate(), State = @State
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild and m_idPlayer = @m_idPlayer
    end
    end

    if @iGu = 'S1'
    begin
    select m_idPlayer
    from GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild
    order by m_nSeq
    end

    if @iGu = 'D1'
    begin
    delete from GUILD_COMBAT_1TO1_BATTLE_PERSON_TBL
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild
    end
    GO

    --
    -- Definition for stored procedure usp_Guild_Combat_1to1_CombatID :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_Guild_Combat_1to1_CombatID Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].usp_Guild_Combat_1to1_CombatID
    @serverindex char(2)
    as
    set nocount on

    if not exists (select * from GUILD_COMBAT_1TO1_TENDER_TBL where serverindex = @serverindex)
    begin
    select 0 as combatID
    end
    else
    begin
    select max(combatID) as combatID
    from GUILD_COMBAT_1TO1_TENDER_TBL
    where serverindex = @serverindex
    end
    GO

    --
    -- Definition for stored procedure usp_Guild_Combat_1to1_Tender :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_Guild_Combat_1to1_Tender Script Date: 7/29/2008 3:34:05 AM ******/
    create proc [dbo].usp_Guild_Combat_1to1_Tender
    @serverindex char(2),
    @combatID int,
    @m_idGuild char(6),
    @m_nPenya int,
    @State char(1),
    @iGu char(2)
    as
    set nocount on
    set xact_abort on

    if @iGu = 'I1'
    begin
    insert into GUILD_COMBAT_1TO1_TENDER_TBL(serverindex, combatID, m_idGuild, m_nPenya, State)
    select @serverindex, @combatID, @m_idGuild, @m_nPenya, @State
    end

    -- T : 입찰 및 추가 입찰
    -- F : 입찰 실패
    -- C : 입찰 취소
    -- E : 대전 종료
    -- G : 입찰 실패 길드 신청금 수령 완료
    -- N : 입찰 실패 길드 신청금 수령 없이 다음 1:1길드대전 오픈
    if @iGu = 'U1'
    begin
    if @State = 'F' or @State = 'C' or @State = 'E'
    begin
    update GUILD_COMBAT_1TO1_TENDER_TBL
    set m_nPenya = @m_nPenya, State = @State, s_date = getdate()
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild and State = 'T'
    end
    else if @State ='N' or @State = 'G'
    begin
    update GUILD_COMBAT_1TO1_TENDER_TBL
    set m_nPenya = @m_nPenya, State = @State, s_date = getdate()
    where serverindex = @serverindex and m_idGuild = @m_idGuild and State = 'F'
    end
    else
    begin
    update GUILD_COMBAT_1TO1_TENDER_TBL
    set m_nPenya = @m_nPenya, State = @State, s_date = getdate()
    where serverindex = @serverindex and combatID = @combatID and m_idGuild = @m_idGuild
    end
    end

    -- 입찰 길드 목록
    if @iGu = 'S1'
    begin
    select m_idGuild, m_nPenya
    from GUILD_COMBAT_1TO1_TENDER_TBL
    where serverindex = @serverindex and combatID = @combatID and State = 'T'
    order by m_nPenya desc, s_date asc
    end

    -- 입찰 실패 길드 목록
    if @iGu = 'S2'
    begin
    select m_idGuild, m_nPenya
    from GUILD_COMBAT_1TO1_TENDER_TBL
    where serverindex = @serverindex and State = 'F'
    -- where combatID in (select max(combatID), (max(combatID) - 1) from GUILD_COMBAT_1TO1_TENDER_TBL where State = 'F') and State = 'F'
    order by m_nPenya desc
    end
    GO

    --
    -- Definition for stored procedure usp_get_item_dupes :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_get_item_dupes Script Date: 7/29/2008 4:44:43 AM ******/
    CREATE proc [dbo].[usp_get_item_dupes]
    @server char(2)
    as
    set nocount on

    Create table #scantemp(
    ObjectID bigint,
    ItemIndex bigint,
    ItemName varchar(500),
    ItemCount bigint,
    ItemSerialNum bigint not null,
    ItemAbilityOpt bigint,
    ItemResist bigint,
    ItemResistAbility bigint,
    RandomOption bigint,
    Ultimate varchar(5000))

    Create table #chartemp(
    ItemSerialNum bigint not null,
    ItemIndex int,
    ItemCnt int,
    m_szName varchar(40))

    create index sid on #chartemp (ItemSerialNum)

    create index sid on #scantemp (ItemSerialNum)

    create table #names (
    m_szName varchar(40),
    m_Inventory varchar(5000))

    exec('insert into #names select m_szName,m_Inventory from openquery(,''select top 5000 m_szName,m_Inventory from INVENTORY_TBL i with(nolock) left join CHARACTER_TBL c with(nolock) on c.m_idPlayer=i.m_idPlayer'')')

    declare tmp cursor for
    select * from #names

    open tmp
    declare @m_Inv varchar(5000)
    declare @m_szName varchar(40)
    fetch next from tmp into @m_szName, @m_Inv
    while(@@fetch_status=0) begin
    insert into #scantemp exec uspInquiryItemList_New @m_Inv, '', '', ''

    insert into #chartemp select ItemSerialNum,ItemIndex,ItemCount,@m_szName from #scantemp
    truncate table #scantemp

    fetch next from tmp into @m_szName,@m_Inv
    if(@@fetch_status<>0) begin
    break
    end
    end

    close tmp
    deallocate tmp


    delete from #chartemp where ItemIndex in (select distinct(ItemIndex) from #chartemp where ItemCnt>1)

    --select ItemSerialNum from #scantemp
    select m_szName,ItemSerialNum,ItemIndex,szNameEn,(select count(*)from #chartemp p where c.ItemSerialNum=p.ItemSerialNum) as count
    from #chartemp c left join ITEM_DBF.dbo.ITEM_TBL i on i.[Index]=c.ItemIndex where ItemSerialNum in (
    select sid from (select count(*) count,ItemSerialNum sid,ItemIndex from #chartemp group by ItemSerialNum,ItemIndex)a where count>1 and sid!=0
    )
    order by count desc, ItemSerialNum

    drop table #chartemp
    drop table #scantemp
    drop table #names
    GO

    --
    -- Definition for stored procedure usp_ranking :
    --
    GO
    /****** Object: Stored Procedure dbo.usp_ranking Script Date: 7/29/2008 3:34:04 AM ******/
    CREATE proc [dbo].usp_ranking

    as

    /**************************************************
    created by soondai@aeonsoft.co.kr
    서버별 일일 개인 랭킹순의 집계
    집계순위 : 레벨↑, 경험치↑, 플레이시간↓
    ***************************************************/

    set nocount on
    set xact_abort on

    declare @RankDt smalldatetime

    set @RankDt = getdate()

    select account into #tmpaccount
    from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority <> 'F'

    insert into #tmpaccount select account from byGMCharacter

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp1
    from CHARACTER_01_DBF.dbo.CHARACTER_TBL
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp2
    from CHARACTER_02_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp3
    from CHARACTER_03_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp4
    from CHARACTER_04_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp5
    from CHARACTER_05_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp6
    from CHARACTER_06_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    select top 100 serverindex, m_szName, account, m_nLevel, m_nExp1, TotalPlayTime, @RankDt as RankDt, m_nJob into #tmp7
    from CHARACTER_07_DBF.dbo.CHARACTER_TBL
    --where m_chAuthority ='F' and account in (select account from ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where m_chLoginAuthority = 'F')
    where m_chAuthority ='F' and account not in (select account from #tmpaccount)
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    truncate table tblCharacterRank

    insert into tblCharacterRank
    select * from #tmp1
    union all
    select * from #tmp2
    union all
    select * from #tmp3
    union all
    select * from #tmp4
    union all
    select * from #tmp5
    union all
    select * from #tmp6
    union all
    select * from #tmp7
    order by m_nLevel desc, m_nExp1 desc, TotalPlayTime asc

    drop table #tmp1, #tmp2, #tmp3, #tmp4, #tmp5, #tmp6, #tmp7, #tmpaccount

    set nocount off
    set xact_abort off
    GO

    --
    -- Data for table dbo.BANK_EXT_TBL (LIMIT 0,500)
    --

    INSERT INTO [dbo].[BANK_EXT_TBL] ([m_idPlayer], [serverindex], [m_extBank], [m_BankPiercing], [szBankPet])
    VALUES
    (N'0000002', N'01', N'0,0,3015168/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/1,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,21/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,36257565639719936/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/0,0,0/$', N'4,3217,3217,3217,3217/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/$', N'0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/1,5,1,9841,178,1,1/0/0/0/0/0/0/0/0/0/0/$')
    GO

  3. #3

    Re: [Help]Official Files Database server

    Thanks! I forgot to update this thread and say I fixed it, I was missing a OBDC thing



Advertisement