we have added the Rebirth System to our Source.
The System are working but after a Serverrestart the Platinlevel are not saved.
Have someone any Idea what could be the cause and how we could fix that?
CHARACTER_STR:
USE [CHARACTER_01_DBF]
GO
/****** Object: StoredProcedure [dbo].[CHARACTER_STR] Script Date: 14.05.2017 15:41:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[CHARACTER_STR]
@iGu CHAR(2) = 'S1',
@im_idPlayer CHAR(7) = '0000001',
@iserverindex CHAR(2) = '01',
/**********************************************
INSERT ¢¯e
**********************************************/
-- 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 ¢¯e
**********************************************/
-- 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_idMuerderer 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
-------------- (ADD : Version8-PK System)
,@im_nPKValue int=0
,@im_dwPKPropensity int=0
,@im_dwPKExp int=0,
-- 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(3072) = '',
@im_extInventory varchar(2000) = '',
@im_extBank varchar(2000) = '',
@im_InventoryPiercing varchar(8000) = '',
@im_BankPiercing varchar(8000) = '',
@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,
-------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Class)
@idwEventFlag bigint=0,
@idwEventTime int=0,
@idwEventElapsed int=0
-------------- (ADD : Version8-Angel System)
,@im_nAngelExp bigint=0
,@im_nAngelLevel int=0
--------------- Version 9 A©¬¡Æ¢® ¨¬I¨¬¨¢ Pet¡Æu¡¤A
,@iszInventoryPet varchar(4200) = '$'
,@iszBankPet varchar(4200) = '$'
,@im_dwPetId int = -1
,@im_nExpLog int = 0
,@im_nAngelExpLog int = 0
,@im_nCoupon int = 0
--------------- ver. 13
, @im_nHonor int = -1
, @im_nLayer int = 0
---------- Ver 15
--, @im_BankPW char(4) = '0000'
, @im_aCheckedQuest varchar(100) =''
, @im_nCampusPoint int = 0
, @im_idCampus int = 0
-- flyff fantasia custom
, @im_nMadigalGiftExp int = 0
, @im_tmLogout bigint = 0
, @im_nPvpKills1 int = 0
, @im_nPvpDeaths1 int = 0
, @im_nHideCoat int = 0
, @im_nPvpKills int = 0
, @im_nPvpDeaths int = 0
, @im_tmNextRoulette bigint = 0
, @im_nPerin bigint = 0
, @im_nChips bigint = 0
, @im_nPetFilter int = 0
, @im_nGCLevel int = 0
, @im_dwGCExp int = 0
, @im_nGCKills int = 0
, @im_nGCDeads int = 0
, @im_nPlatinumLevel int = 0
, @im_dwGlowColor int = 0
, @im_nReb int = 0
/************************************************** *****
Gu ¡¾¢¬¨¬¨¢
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
DECLARE @om_chLoginAuthority CHAR(1),@oaccount VARCHAR(32) @
slot INT
IF @iGu = 'S2' -- ¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
BEGIN
IF @iaccount = '' OR @im_szName = ''
BEGIN
SELECT m_chAuthority = '',fError = '1', fText = '¨úIE¡Ì¨¡©÷¢¬©÷'
RETURN
END
select playerslot,max(m_idPlayer) as m_idplayer
into #temp_realPlayerslot
from dbo.CHARACTER_TBL A
where A.isblock = 'F' AND A.account = @iaccount AND A.serverindex = @iserverindex
group by playerslot
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_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,
------------- ver. 13
A.m_nHonor,
last_connect = @last_connect
FROM CHARACTER_TBL as A
inner join INVENTORY_TBL as B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
inner join INVENTORY_EXT_TBL as D on B.serverindex = D.serverindex and B.m_idPlayer = D.m_idPlayer
inner join #temp_realPlayerslot as ttt on A.m_idPlayer = ttt.m_idPlayer AND A.playerslot= ttt.playerslot
left outer join GUILD_MEMBER_TBL as C on D.m_idPlayer = C.m_idPlayer and D.serverindex = C.serverindex
WHERE A.isblock = 'F'
AND A.account = @iaccount
AND A.serverindex = @iserverindex
ORDER BY A.playerslot
insert into CHARACTER_TBL_penya_check (account, m_szName, m_dwGold, check_sec, serverindex)
select @iaccount, m_szName, m_dwGold, 9, @iserverindex
from CHARACTER_TBL (nolock)
where account = @iaccount and serverindex = @iserverindex and TotalPlayTime < 1 and m_dwGold >= 1
RETURN
END
/*
¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
ex )
CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
CHARACTER_STR 'S2','0','02','seghope','1234'
*/
ELSE
IF @iGu = 'S3' -- ¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
BEGIN
SELECT m_szName, m_idPlayer,m_idCompany
FROM CHARACTER_TBL
WHERE serverindex = @iserverindex
-- AND isblock = 'F'
ORDER BY m_idPlayer
RETURN
END
/*
¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
ex )
CHARACTER_STR 'S3','',@iserverindex
CHARACTER_STR 'S3','','01'
*/
ELSE
IF @iGu = 'S4' -- A©¬¡Æ¢®CO ¨ú¨¡AIAU E¢çAI
BEGIN
declare @
account varchar(32), @i1_e_date datetime
declare @q1 nvarchar(4000)
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,
isnull(adwItemId5, 0) as adwItemId5, isnull(adwItemId6, 0) as adwItemId6, isnull(adwItemId7, 0) as adwItemId7, isnull(adwItemId8, 0) as adwItemId8, isnull(adwItemId9, 0) as adwItemId9, isnull(nUMPiercedSize, 0) as nUMPiercedSize,
isnull(adwUMItemId0, 0) as adwUMItemId0, isnull(adwUMItemId1, 0) as adwUMItemId1, isnull(adwUMItemId2, 0) as adwUMItemId2, isnull(adwUMItemId3, 0) as adwUMItemId3, isnull(adwUMItemId4, 0) as adwUMItemId4
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
RETURN
END
/*
¨ú¨¡AIAU E¢çAI
ex )
CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
CHARACTER_STR 'S4','000001','01'
*/
ELSE
IF @iGu = 'S5' -- ¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
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
/*
¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
ex )
CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S5','000001','01','¨¬©ªAU¡¤c',1,1
*/
ELSE
IF @iGu = 'S6' -- ¡íeA|CO ¨ú¨¡AIAU E¢çAI
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
/*
¨ú¨¡AIAU E¢çAI
ex )
CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
CHARACTER_STR 'S6','000001','01'
*/
ELSE
IF @iGu = 'S7' -- ¨ú¨¡AIAU ¡íeA|EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
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
/*
¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
ex )
CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S7','000001','01','¨¬©ªAU¡¤c',1,1
*/
IF @iGu = 'S8' -- ¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a
BEGIN
-- ©ö©£A¨Ï A¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a character ¨¬¡Æ
SELECT @om_chLoginAuthority = m_chLoginAuthority
FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL
WHERE account = @iaccount
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_idMuerderer,
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,'$') ,
SkillInfluence = ISNULL(E.SkillInfluence,'$'),
F.m_extInventory,
F.m_InventoryPiercing,
A.m_dwReturnWorldID,
A.m_vReturnPos_x,
A.m_vReturnPos_y,
A.m_vReturnPos_z,
last_connect = @last_connect,
A.m_SkillPoint,
A.m_SkillLv,
A.m_SkillExp,
-------------- (2006 11 13 A©¬¡Æ¢® ¨¬I¨¬¨¢ : Attedant Event)
A.dwEventFlag,
A.dwEventTime,
A.dwEventElapsed
-------------- (Version8 : PK System)
,A.PKValue as m_nPKValue
,A.PKPropensity as m_dwPKPropensity
,A.PKExp as m_dwPKExp
-------------- (Version8 : Angel System)
,A.AngelExp as m_nAngelExp
,A.AngelLevel as m_nAngelLevel
------------------- Version9 Pet
,F.szInventoryPet as szInventoryPet
,A.m_dwPetId
, A.m_nExpLog, A.m_nAngelExpLog
,m_nCoupon
------------ ver. 13
, A.m_nLayer
---------- Ver 15
, A.m_aCheckedQuest
, A.m_nCampusPoint
, A.idCampus
, isnull(R.m_nRestPoint, 0) m_nRestPoint
, isnull(R.m_LogOutTime, 0) m_LogOutTime
, A.m_tmLogout
, A.m_dwMadrigalGiftExp
, A.m_nHideCoat
, A.m_nPvpKills
, A.m_nPvpDeaths
, A.m_tmNextRoulette
, A.m_nPerin
, A.m_nReb
, ISNULL(A.m_nChips, 0) m_nChips
, ISNULL(A.m_nPetFilter, 0) m_nPetFilter
, ISNULL(PVP.m_nGCLevel, 0) m_nGCLevel
, ISNULL(PVP.m_dwGCExp, 0) m_dwGCExp
, ISNULL(PVP.m_nGCKills, 0) m_nGCKills
, ISNULL(PVP.m_nGCDeads, 0) m_nGCDeads
, ISNULL(PROF.m_Recipes, '$') m_Recipes
, ISNULL(PROF.m_Profession, -1) m_Profession
, ISNULL(PROF.m_ProfessionLevel, 0) m_ProfessionLevel
FROM CHARACTER_TBL A
inner join TASKBAR_TBL B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
inner join TASKBAR_ITEM_TBL C on B.m_idPlayer = C.m_idPlayer and B.serverindex = C.serverindex
inner join INVENTORY_TBL D on C.m_idPlayer = D.m_idPlayer and C.serverindex = D.serverindex
inner join SKILLINFLUENCE_TBL E on C.m_idPlayer = E.m_idPlayer and C.serverindex = E.serverindex
inner join INVENTORY_EXT_TBL F on E.m_idPlayer = F.m_idPlayer and E.serverindex = F.serverindex
left outer join GUILD_MEMBER_TBL G on E.serverindex = G.serverindex and E.m_idPlayer = G.m_idPlayer
left outer join BILING_ITEM_TBL H on E.serverindex = H.serverindex and E.m_idPlayer = H.m_idPlayer
left outer join tblRestPoint R on E.serverindex = R.serverindex and E.m_idPlayer = R.m_idPlayer
left join PVP_TBL PVP on R.serverindex = PVP.serverindex and R.m_idPlayer = PVP.m_idPlayer
left join PROFESSION_TBL PROF on PVP.serverindex = PROF.serverindex AND PVP.m_idPlayer = PROF.m_idPlayer
WHERE A.m_idPlayer = @im_idPlayer
AND A.serverindex = @iserverindex
AND A.account = lower(@iaccount)
insert into CHARACTER_TBL_validity_check (m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, sum_ability, CreateTime)
select m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, (m_nStr + m_nSta + m_nDex + m_nInt), CreateTime
from CHARACTER_TBL (nolock)
where m_idPlayer = @im_idPlayer and TotalPlayTime <= 1
and (m_dwGold >= 1 or m_nLevel >= 2 or m_nJob >= 1 or (m_nStr + m_nSta + m_nDex + m_nInt) > 60)
declare @m_dwGold_old bigint, @m_dwGold_now bigint
select @m_dwGold_old = m_dwGold from tblLogout_Penya (nolock) where m_idPlayer = @im_idPlayer
select @m_dwGold_now = m_dwGold from CHARACTER_TBL (nolock) where serverindex = @iserverindex and m_idPlayer = @im_idPlayer
if (@m_dwGold_old <> @m_dwGold_now)
begin
insert into tblLogout_Penya_Diff_Log (serverindex, m_idPlayer, m_dwGold_old, regdate_old, m_dwGold_now)
select serverindex, m_idPlayer, @m_dwGold_old, regdate, @m_dwGold_now
from tblLogout_Penya (nolock)
where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
end
-- ©ö©£A¨Ï A¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a account ¨¬¡Æ
-- 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 = @iaccount
AND c.isblock = 'F'
ORDER BY c.playerslot
-- Pocket Info
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
-- Battleground cooltime info
SELECT bgMode, bgCooltime
FROM BATTLEGROUND_COOLTIME_TBL
WHERE serverindex = @iserverindex AND m_idPlayer = @im_idPlayer
RETURN
END
/*
¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a New
ex )
CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S8','425120','01','ata3k'
*/
ELSE
IF @iGu = 'U1' -- A©ø¢¬?AI AuAa
BEGIN
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 A©¬¡Æ¢®
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_idMuerderer = @im_idMuerderer,
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_vReturnPos_x = @im_vReturnPos_x,
m_vReturnPos_y = @im_vReturnPos_y,
m_vReturnPos_z = @im_vReturnPos_z,
m_SkillPoint =@im_SkillPoint,
m_SkillLv =@im_SkillLv,
m_SkillExp =@im_SkillExp
-------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Event)
, dwEventFlag =@idwEventFlag
, dwEventTime =@idwEventTime
, dwEventElapsed =@idwEventElapsed
-------------- (ADD: Version8-PK System)
, PKValue = @im_nPKValue
, PKPropensity = @im_dwPKPropensity
, PKExp = @im_dwPKExp
-------------- (ADD: Version8-Angel System)
, AngelExp = @im_nAngelExp
, AngelLevel = @im_nAngelLevel
--------------------- Version9 Pet
, m_dwPetId = @im_dwPetId
, m_nExpLog = @im_nExpLog
, m_nAngelExpLog = @im_nAngelExpLog
, m_nCoupon = @im_nCoupon
------------- ver. 13
, m_nHonor = @im_nHonor
, m_nLayer = @im_nLayer
---------- Ver 15
, m_aCheckedQuest = @im_aCheckedQuest
, m_nCampusPoint = @im_nCampusPoint
, idCampus = @im_idCampus
, m_dwMadrigalGiftExp = @im_nMadigalGiftExp
, m_tmLogout = @im_tmLogout
, m_nPvpKills = @im_nPvpKills1
, m_nPvpDeaths = @im_nPvpDeaths1
, m_nHideCoat = @im_nHideCoat
, [m_nPvpK] = @im_nPvpKills
, [m_nPvpD] = @im_nPvpDeaths
, m_tmNextRoulette = @im_tmNextRoulette
, m_nPerin = @im_nPerin
, m_nReb = @im_nReb
, m_nChips = @im_nChips
, m_nPetFilter = @im_nPetFilter
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
IF EXISTS(SELECT * FROM PVP_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
UPDATE PVP_TBL set m_nGCLevel = @im_nGCLevel,
m_dwGCExp = @im_dwGCExp,
m_nGCKills = @im_nGCKills,
m_nGCDeads = @im_nGCDeads
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
ELSE
INSERT PVP_TBL (m_nGCLevel, m_dwGCExp, m_nGCKills, m_nGCDeads, m_idPlayer, serverindex)
VALUES ( @im_nGCLevel, @im_dwGCExp, @im_nGCKills, @im_nGCDeads, @im_idPlayer, @iserverindex )
-- if object_id('QUEST_TBL') is not null
-- EXEC QUEST_STR 'A1',@im_idPlayer,@iserverindex,@im_lpQuestCntArra y
update tblLogout_Penya
set m_dwGold = @im_dwGold, regdate = getdate()
where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
IF @im_nLevel>=120 BEGIN
UPDATE CHARACTER_TBL
SET FinalLevelDt=getdate()
WHERE serverindex=@iserverindex
AND m_idPlayer=@im_idPlayer
AND FinalLevelDt='2000-01-01'
END
--¨ùUCo¨ù¢ç ¢¯aA¡í¡ícC¡¿ ¨¬o¢¬¥ì ¡Æu¡¤A
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
/*
A¢´¨¬¢¬¨ú¡À¥ì¡ÍAI¨¡¢ç
ex )
CHARACTER_STR 'U1', ALL ...
CHARACTER_STR 'U1','000001','01' ...
*/
ELSE
IF @iGu = 'U2' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_szName = @im_szName
AND serverindex = @iserverindex
RETURN
END
/*
AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
ex )
CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U2','','01','','beat',10234
*/
ELSE
IF @iGu = 'U3' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ new
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
RETURN
END
/*
AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ (new)
ex )
CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U3','000001','01','','',10234
*/
ELSE
IF @iGu = 'U4' --A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_szName = @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
-- Ver 15
ELSE
IF @iGu = 'U5' --¡ícA| ¨¡¡ÀAI¨¡¢ç ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
BEGIN
UPDATE CHARACTER_TBL
SET m_nCampusPoint = m_nCampusPoint + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
declare @u5m_nCampusPoint int
select @u5m_nCampusPoint = m_nCampusPoint from CHARACTER_TBL (nolock) WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex
SELECT fError = '1', @u5m_nCampusPoint m_nCampusPoint
END
ELSE
RETURN
END
ELSE
IF @iGu = 'U6' -- ¡ícA| ID ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
BEGIN
UPDATE CHARACTER_TBL
SET idCampus = @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
SELECT fError = '1'
END
ELSE
BEGIN
SELECT fError = '0'
END
RETURN
END
/*
A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
ex )
CHARACTER_STR 'U4',@im_idPlayer,@iserverindex,@iaccount,@im_szNa me
CHARACTER_STR 'U4','000001','01','','¡íu¨¬¡Æ¡Æ©ªAO'
*/
ELSE
IF @iGu = 'D1' -- A©ø¢¬?AI ¡íeA|
BEGIN
IF @im_szName = ''
BEGIN
SELECT fError = '1', fText = '2A¡À ¨¬n©ö¨¢©ö©ªE¡Ì ¨¡©÷¢¬©÷'
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' ))
if exists (select * from BANK_TBL (nolock) where m_idPlayer = @im_idPlayer AND m_BankPw = @im_szName )
SET @Exists = 1
ELSE
SET @Exists = 0
END
*/
set @Exists = 1
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 = '¡¾©¡¥ìaAuA©¬'
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
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 = 'AO©öI©ö©ªE¡Ì¨¡©÷¢¬©÷'
RETURN
END
END
/*
A©ø¢¬?AI ¡íeA|
ex )
CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
CHARACTER_STR 'D1','001068','01','ata3k','1019311'
*/
ELSE
IF @iGu = 'I1' -- 초기 정보 입력
BEGIN
-- 20100218 생성 캐릭터 3개 초과 시
declare @i1_cnt int
select @i1_cnt = count(*) from CHARACTER_TBL where account = @iaccount and isblock = 'F'
if @i1_cnt > 2
begin
SELECT fError = '0', fText = '캐릭터 많음!'
RETURN
end
IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
WHERE m_szName = @im_szName AND serverindex = @iserverindex)
BEGIN
SELECT fError = '0', fText = '캐릭터 중복!'
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) ,
@
alPlayTime INT ,
@
block CHAR(1) ,
@
d_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_idMuerderer 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
---------- Ver 15
, @om_aCheckedQuest varchar(100)
, @om_nCampusPoint int
, @om_idCampus 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,
@
alPlayTime = TotalPlayTime,
@
block = isblock,
@
d_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_idMuerderer = m_idMuerderer,
@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_idMuerderer,
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,
m_SkillPoint,
m_SkillLv,
m_SkillExp
---------- Ver 15
, m_aCheckedQuest
, m_nCampusPoint
, idCampus
, m_dwMadrigalGiftExp
, m_tmLogout
, m_nHideCoat
, m_nPvpKills
, m_nPvpDeaths
, m_tmNextRoulette
, m_nPerin
, m_nChips
, m_nReb
)
VALUES
(
@om_idPlayer,
@iserverindex,
@iaccount,
@im_szName,
@iplayerslot,
@idwWorldID,
@im_dwIndex,
@om_vScale_x,
@om_dwMotion,
@im_vPos_x,
@im_vPos_y,
@im_vPos_z,
@om_fAngle,
@im_szCharacterKey,
@om_nHitPoint,
@om_nManaPoint,
@om_nFatiguePoint,
-1, --m_nFuel
@im_dwSkinSet,
@im_dwHairMesh,
@im_dwHairColor,
@im_dwHeadMesh,
@im_dwSex,
@om_dwRideItemIdx,
@om_dwGold,
@om_nJob,
@om_pActMover,
@om_nStr,
@om_nSta,
@om_nDex,
@om_nInt,
@om_nLevel,
1, --m_nMaximumLevel
@om_nExp1,
@om_nExp2,
@om_aJobSkill,
@om_aLicenseSkill,
@om_aJobLv,
@om_dwExpertLv,
@om_idMarkingWorld,
@om_vMarkingPos_x,
@om_vMarkingPos_y,
@om_vMarkingPos_z,
@om_nRemainGP,
@om_nRemainLP,
@om_nFlightLv,
@om_nFxp,
@om_nTxp,
@om_lpQuestCntArray,
'$', -- m_aCompleteQuest
@om_chAuthority,
@om_dwMode,
@om_idparty,
'000000', -- m_idCompany
@om_idMuerderer,
@om_nFame,
@om_nDeathExp,
@om_nDeathLevel,
@om_dwFlyTime ,
@om_nMessengerState,
@oblockby,
@
alPlayTime,
@
block,
@
d_Time,
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,
@im_SkillPoint,
@im_SkillLv,
@im_SkillExp
-- Ver 15
, '$'
, 0
, 0
, 0
, 0
, 0 -- xD
, 0
, 0
, 0
, 0
, 0
, 0
)
INSERT INVENTORY_TBL
(
m_idPlayer,
serverindex,
m_Inventory,
m_apIndex,
m_adwEquipment,
m_dwObjIndex
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_Inventory,
@om_apIndex,
@om_adwEquipment,
@om_dwObjIndex
)
-- INSERT CARD_CUBE_TBL
-- (
-- m_idPlayer,
-- serverindex,
-- m_Card,
-- m_Cube,
-- m_apIndex_Card,
-- m_dwObjIndex_Card,
-- m_apIndex_Cube,
-- m_dwObjIndex_Cube
-- )
-- VALUES
-- (
-- @om_idPlayer,
-- @iserverindex,
-- @om_Card,
-- @om_Cube,
-- @om_apIndex_Card,
-- @om_dwObjIndex_Card,
-- @om_apIndex_Cube,
-- @om_dwObjIndex_Cube
-- )
-- 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,
@om_aSlotApplet,
@om_aSlotQueue,
@om_SkillBar
)
INSERT TASKBAR_ITEM_TBL
(
m_idPlayer,
serverindex,
m_aSlotItem
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_aSlotItem
)
INSERT BANK_TBL
(
m_idPlayer,
serverindex,
m_Bank,
m_BankPw,
m_apIndex_Bank,
m_dwObjIndex_Bank ,
m_dwGoldBank
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_Bank,
'0000', -- m_BankPw
-- @im_BankPW,
@om_apIndex_Bank,
@om_dwObjIndex_Bank,
@om_dwGoldBank
)
INSERT SKILLINFLUENCE_TBL
(
m_idPlayer,
serverindex,
SkillInfluence
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$'
)
INSERT INVENTORY_EXT_TBL
(
m_idPlayer,
serverindex,
m_extInventory,
m_InventoryPiercing
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$','$'
)
INSERT BANK_EXT_TBL
(
m_idPlayer,
serverindex,
m_extBank,
m_BankPiercing
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$','$'
)
-- Skill Information
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)
-- 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, '$', '$', '$' )
------------------- ver. 13
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 1
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 2
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 3
------------------- ver. 15
insert into tblRestPoint (serverindex, m_idPlayer)
select @iserverindex, @om_idPlayer
------------ Penay check default setting
insert into tblLogout_Penya (serverindex, m_idPlayer)
select @iserverindex, @om_idPlayer
-------------------- Last Login ¡¾a¡¤I -----------
-- insert into tblLastLogin (serverindex, m_idPlayer, s_date)
-- select @iserverindex, @om_idPlayer, getdate()
SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
RETURN
END
END
/*
ex )
CHARACTER_STR 'I1','',@iserverindex,@iaccount,@im_szName,@iplaye rslot,@idwWorldID,
@im_dwIndex,@im_vPos_x,@im_vPos_y,@im_vPos_z,@im_s zCharacterKey,
@im_dwSkinSet,@im_dwHairMesh,@im_dwHairColor,@im_d wHeadMesh,@im_dwSex
CHARACTER_STR 'I1','','01','beat','¡íu¨¬¡Æ¡Æ©ªAO3',0,0,
0,0,0,0,'',
0,0,0,0,0
*/
set nocount off
RETURN
GO
/****** Object: StoredProcedure [dbo].[CHARACTER_STR] Script Date: 14.05.2017 15:41:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[CHARACTER_STR]
@iGu CHAR(2) = 'S1',
@im_idPlayer CHAR(7) = '0000001',
@iserverindex CHAR(2) = '01',
/**********************************************
INSERT ¢¯e
**********************************************/
-- 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 ¢¯e
**********************************************/
-- 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_idMuerderer 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
-------------- (ADD : Version8-PK System)
,@im_nPKValue int=0
,@im_dwPKPropensity int=0
,@im_dwPKExp int=0,
-- 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(3072) = '',
@im_extInventory varchar(2000) = '',
@im_extBank varchar(2000) = '',
@im_InventoryPiercing varchar(8000) = '',
@im_BankPiercing varchar(8000) = '',
@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,
-------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Class)
@idwEventFlag bigint=0,
@idwEventTime int=0,
@idwEventElapsed int=0
-------------- (ADD : Version8-Angel System)
,@im_nAngelExp bigint=0
,@im_nAngelLevel int=0
--------------- Version 9 A©¬¡Æ¢® ¨¬I¨¬¨¢ Pet¡Æu¡¤A
,@iszInventoryPet varchar(4200) = '$'
,@iszBankPet varchar(4200) = '$'
,@im_dwPetId int = -1
,@im_nExpLog int = 0
,@im_nAngelExpLog int = 0
,@im_nCoupon int = 0
--------------- ver. 13
, @im_nHonor int = -1
, @im_nLayer int = 0
---------- Ver 15
--, @im_BankPW char(4) = '0000'
, @im_aCheckedQuest varchar(100) =''
, @im_nCampusPoint int = 0
, @im_idCampus int = 0
-- flyff fantasia custom
, @im_nMadigalGiftExp int = 0
, @im_tmLogout bigint = 0
, @im_nPvpKills1 int = 0
, @im_nPvpDeaths1 int = 0
, @im_nHideCoat int = 0
, @im_nPvpKills int = 0
, @im_nPvpDeaths int = 0
, @im_tmNextRoulette bigint = 0
, @im_nPerin bigint = 0
, @im_nChips bigint = 0
, @im_nPetFilter int = 0
, @im_nGCLevel int = 0
, @im_dwGCExp int = 0
, @im_nGCKills int = 0
, @im_nGCDeads int = 0
, @im_nPlatinumLevel int = 0
, @im_dwGlowColor int = 0
, @im_nReb int = 0
/************************************************** *****
Gu ¡¾¢¬¨¬¨¢
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
DECLARE @om_chLoginAuthority CHAR(1),@oaccount VARCHAR(32) @
slot INTIF @iGu = 'S2' -- ¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
BEGIN
IF @iaccount = '' OR @im_szName = ''
BEGIN
SELECT m_chAuthority = '',fError = '1', fText = '¨úIE¡Ì¨¡©÷¢¬©÷'
RETURN
END
select playerslot,max(m_idPlayer) as m_idplayer
into #temp_realPlayerslot
from dbo.CHARACTER_TBL A
where A.isblock = 'F' AND A.account = @iaccount AND A.serverindex = @iserverindex
group by playerslot
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_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,
------------- ver. 13
A.m_nHonor,
last_connect = @last_connect
FROM CHARACTER_TBL as A
inner join INVENTORY_TBL as B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
inner join INVENTORY_EXT_TBL as D on B.serverindex = D.serverindex and B.m_idPlayer = D.m_idPlayer
inner join #temp_realPlayerslot as ttt on A.m_idPlayer = ttt.m_idPlayer AND A.playerslot= ttt.playerslot
left outer join GUILD_MEMBER_TBL as C on D.m_idPlayer = C.m_idPlayer and D.serverindex = C.serverindex
WHERE A.isblock = 'F'
AND A.account = @iaccount
AND A.serverindex = @iserverindex
ORDER BY A.playerslot
insert into CHARACTER_TBL_penya_check (account, m_szName, m_dwGold, check_sec, serverindex)
select @iaccount, m_szName, m_dwGold, 9, @iserverindex
from CHARACTER_TBL (nolock)
where account = @iaccount and serverindex = @iserverindex and TotalPlayTime < 1 and m_dwGold >= 1
RETURN
END
/*
¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
ex )
CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
CHARACTER_STR 'S2','0','02','seghope','1234'
*/
ELSE
IF @iGu = 'S3' -- ¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
BEGIN
SELECT m_szName, m_idPlayer,m_idCompany
FROM CHARACTER_TBL
WHERE serverindex = @iserverindex
-- AND isblock = 'F'
ORDER BY m_idPlayer
RETURN
END
/*
¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
ex )
CHARACTER_STR 'S3','',@iserverindex
CHARACTER_STR 'S3','','01'
*/
ELSE
IF @iGu = 'S4' -- A©¬¡Æ¢®CO ¨ú¨¡AIAU E¢çAI
BEGIN
declare @
account varchar(32), @i1_e_date datetimedeclare @q1 nvarchar(4000)
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,
isnull(adwItemId5, 0) as adwItemId5, isnull(adwItemId6, 0) as adwItemId6, isnull(adwItemId7, 0) as adwItemId7, isnull(adwItemId8, 0) as adwItemId8, isnull(adwItemId9, 0) as adwItemId9, isnull(nUMPiercedSize, 0) as nUMPiercedSize,
isnull(adwUMItemId0, 0) as adwUMItemId0, isnull(adwUMItemId1, 0) as adwUMItemId1, isnull(adwUMItemId2, 0) as adwUMItemId2, isnull(adwUMItemId3, 0) as adwUMItemId3, isnull(adwUMItemId4, 0) as adwUMItemId4
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
RETURN
END
/*
¨ú¨¡AIAU E¢çAI
ex )
CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
CHARACTER_STR 'S4','000001','01'
*/
ELSE
IF @iGu = 'S5' -- ¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
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
/*
¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
ex )
CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S5','000001','01','¨¬©ªAU¡¤c',1,1
*/
ELSE
IF @iGu = 'S6' -- ¡íeA|CO ¨ú¨¡AIAU E¢çAI
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
/*
¨ú¨¡AIAU E¢çAI
ex )
CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
CHARACTER_STR 'S6','000001','01'
*/
ELSE
IF @iGu = 'S7' -- ¨ú¨¡AIAU ¡íeA|EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
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
/*
¨ú¨¡AIAU Ao¡¾¨*EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
ex )
CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S7','000001','01','¨¬©ªAU¡¤c',1,1
*/
IF @iGu = 'S8' -- ¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a
BEGIN
-- ©ö©£A¨Ï A¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a character ¨¬¡Æ
SELECT @om_chLoginAuthority = m_chLoginAuthority
FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL
WHERE account = @iaccount
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_idMuerderer,
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,'$') ,
SkillInfluence = ISNULL(E.SkillInfluence,'$'),
F.m_extInventory,
F.m_InventoryPiercing,
A.m_dwReturnWorldID,
A.m_vReturnPos_x,
A.m_vReturnPos_y,
A.m_vReturnPos_z,
last_connect = @last_connect,
A.m_SkillPoint,
A.m_SkillLv,
A.m_SkillExp,
-------------- (2006 11 13 A©¬¡Æ¢® ¨¬I¨¬¨¢ : Attedant Event)
A.dwEventFlag,
A.dwEventTime,
A.dwEventElapsed
-------------- (Version8 : PK System)
,A.PKValue as m_nPKValue
,A.PKPropensity as m_dwPKPropensity
,A.PKExp as m_dwPKExp
-------------- (Version8 : Angel System)
,A.AngelExp as m_nAngelExp
,A.AngelLevel as m_nAngelLevel
------------------- Version9 Pet
,F.szInventoryPet as szInventoryPet
,A.m_dwPetId
, A.m_nExpLog, A.m_nAngelExpLog
,m_nCoupon
------------ ver. 13
, A.m_nLayer
---------- Ver 15
, A.m_aCheckedQuest
, A.m_nCampusPoint
, A.idCampus
, isnull(R.m_nRestPoint, 0) m_nRestPoint
, isnull(R.m_LogOutTime, 0) m_LogOutTime
, A.m_tmLogout
, A.m_dwMadrigalGiftExp
, A.m_nHideCoat
, A.m_nPvpKills
, A.m_nPvpDeaths
, A.m_tmNextRoulette
, A.m_nPerin
, A.m_nReb
, ISNULL(A.m_nChips, 0) m_nChips
, ISNULL(A.m_nPetFilter, 0) m_nPetFilter
, ISNULL(PVP.m_nGCLevel, 0) m_nGCLevel
, ISNULL(PVP.m_dwGCExp, 0) m_dwGCExp
, ISNULL(PVP.m_nGCKills, 0) m_nGCKills
, ISNULL(PVP.m_nGCDeads, 0) m_nGCDeads
, ISNULL(PROF.m_Recipes, '$') m_Recipes
, ISNULL(PROF.m_Profession, -1) m_Profession
, ISNULL(PROF.m_ProfessionLevel, 0) m_ProfessionLevel
FROM CHARACTER_TBL A
inner join TASKBAR_TBL B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
inner join TASKBAR_ITEM_TBL C on B.m_idPlayer = C.m_idPlayer and B.serverindex = C.serverindex
inner join INVENTORY_TBL D on C.m_idPlayer = D.m_idPlayer and C.serverindex = D.serverindex
inner join SKILLINFLUENCE_TBL E on C.m_idPlayer = E.m_idPlayer and C.serverindex = E.serverindex
inner join INVENTORY_EXT_TBL F on E.m_idPlayer = F.m_idPlayer and E.serverindex = F.serverindex
left outer join GUILD_MEMBER_TBL G on E.serverindex = G.serverindex and E.m_idPlayer = G.m_idPlayer
left outer join BILING_ITEM_TBL H on E.serverindex = H.serverindex and E.m_idPlayer = H.m_idPlayer
left outer join tblRestPoint R on E.serverindex = R.serverindex and E.m_idPlayer = R.m_idPlayer
left join PVP_TBL PVP on R.serverindex = PVP.serverindex and R.m_idPlayer = PVP.m_idPlayer
left join PROFESSION_TBL PROF on PVP.serverindex = PROF.serverindex AND PVP.m_idPlayer = PROF.m_idPlayer
WHERE A.m_idPlayer = @im_idPlayer
AND A.serverindex = @iserverindex
AND A.account = lower(@iaccount)
insert into CHARACTER_TBL_validity_check (m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, sum_ability, CreateTime)
select m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, (m_nStr + m_nSta + m_nDex + m_nInt), CreateTime
from CHARACTER_TBL (nolock)
where m_idPlayer = @im_idPlayer and TotalPlayTime <= 1
and (m_dwGold >= 1 or m_nLevel >= 2 or m_nJob >= 1 or (m_nStr + m_nSta + m_nDex + m_nInt) > 60)
declare @m_dwGold_old bigint, @m_dwGold_now bigint
select @m_dwGold_old = m_dwGold from tblLogout_Penya (nolock) where m_idPlayer = @im_idPlayer
select @m_dwGold_now = m_dwGold from CHARACTER_TBL (nolock) where serverindex = @iserverindex and m_idPlayer = @im_idPlayer
if (@m_dwGold_old <> @m_dwGold_now)
begin
insert into tblLogout_Penya_Diff_Log (serverindex, m_idPlayer, m_dwGold_old, regdate_old, m_dwGold_now)
select serverindex, m_idPlayer, @m_dwGold_old, regdate, @m_dwGold_now
from tblLogout_Penya (nolock)
where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
end
-- ©ö©£A¨Ï A¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a account ¨¬¡Æ
-- 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 = @iaccount
AND c.isblock = 'F'
ORDER BY c.playerslot
-- Pocket Info
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
-- Battleground cooltime info
SELECT bgMode, bgCooltime
FROM BATTLEGROUND_COOLTIME_TBL
WHERE serverindex = @iserverindex AND m_idPlayer = @im_idPlayer
RETURN
END
/*
¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a New
ex )
CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S8','425120','01','ata3k'
*/
ELSE
IF @iGu = 'U1' -- A©ø¢¬?AI AuAa
BEGIN
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 A©¬¡Æ¢®
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_idMuerderer = @im_idMuerderer,
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_vReturnPos_x = @im_vReturnPos_x,
m_vReturnPos_y = @im_vReturnPos_y,
m_vReturnPos_z = @im_vReturnPos_z,
m_SkillPoint =@im_SkillPoint,
m_SkillLv =@im_SkillLv,
m_SkillExp =@im_SkillExp
-------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Event)
, dwEventFlag =@idwEventFlag
, dwEventTime =@idwEventTime
, dwEventElapsed =@idwEventElapsed
-------------- (ADD: Version8-PK System)
, PKValue = @im_nPKValue
, PKPropensity = @im_dwPKPropensity
, PKExp = @im_dwPKExp
-------------- (ADD: Version8-Angel System)
, AngelExp = @im_nAngelExp
, AngelLevel = @im_nAngelLevel
--------------------- Version9 Pet
, m_dwPetId = @im_dwPetId
, m_nExpLog = @im_nExpLog
, m_nAngelExpLog = @im_nAngelExpLog
, m_nCoupon = @im_nCoupon
------------- ver. 13
, m_nHonor = @im_nHonor
, m_nLayer = @im_nLayer
---------- Ver 15
, m_aCheckedQuest = @im_aCheckedQuest
, m_nCampusPoint = @im_nCampusPoint
, idCampus = @im_idCampus
, m_dwMadrigalGiftExp = @im_nMadigalGiftExp
, m_tmLogout = @im_tmLogout
, m_nPvpKills = @im_nPvpKills1
, m_nPvpDeaths = @im_nPvpDeaths1
, m_nHideCoat = @im_nHideCoat
, [m_nPvpK] = @im_nPvpKills
, [m_nPvpD] = @im_nPvpDeaths
, m_tmNextRoulette = @im_tmNextRoulette
, m_nPerin = @im_nPerin
, m_nReb = @im_nReb
, m_nChips = @im_nChips
, m_nPetFilter = @im_nPetFilter
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
IF EXISTS(SELECT * FROM PVP_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
UPDATE PVP_TBL set m_nGCLevel = @im_nGCLevel,
m_dwGCExp = @im_dwGCExp,
m_nGCKills = @im_nGCKills,
m_nGCDeads = @im_nGCDeads
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
ELSE
INSERT PVP_TBL (m_nGCLevel, m_dwGCExp, m_nGCKills, m_nGCDeads, m_idPlayer, serverindex)
VALUES ( @im_nGCLevel, @im_dwGCExp, @im_nGCKills, @im_nGCDeads, @im_idPlayer, @iserverindex )
-- if object_id('QUEST_TBL') is not null
-- EXEC QUEST_STR 'A1',@im_idPlayer,@iserverindex,@im_lpQuestCntArra y
update tblLogout_Penya
set m_dwGold = @im_dwGold, regdate = getdate()
where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
IF @im_nLevel>=120 BEGIN
UPDATE CHARACTER_TBL
SET FinalLevelDt=getdate()
WHERE serverindex=@iserverindex
AND m_idPlayer=@im_idPlayer
AND FinalLevelDt='2000-01-01'
END
--¨ùUCo¨ù¢ç ¢¯aA¡í¡ícC¡¿ ¨¬o¢¬¥ì ¡Æu¡¤A
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
/*
A¢´¨¬¢¬¨ú¡À¥ì¡ÍAI¨¡¢ç
ex )
CHARACTER_STR 'U1', ALL ...
CHARACTER_STR 'U1','000001','01' ...
*/
ELSE
IF @iGu = 'U2' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_szName = @im_szName
AND serverindex = @iserverindex
RETURN
END
/*
AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
ex )
CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U2','','01','','beat',10234
*/
ELSE
IF @iGu = 'U3' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ new
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
RETURN
END
/*
AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ (new)
ex )
CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U3','000001','01','','',10234
*/
ELSE
IF @iGu = 'U4' --A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_szName = @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
-- Ver 15
ELSE
IF @iGu = 'U5' --¡ícA| ¨¡¡ÀAI¨¡¢ç ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
BEGIN
UPDATE CHARACTER_TBL
SET m_nCampusPoint = m_nCampusPoint + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
declare @u5m_nCampusPoint int
select @u5m_nCampusPoint = m_nCampusPoint from CHARACTER_TBL (nolock) WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex
SELECT fError = '1', @u5m_nCampusPoint m_nCampusPoint
END
ELSE
RETURN
END
ELSE
IF @iGu = 'U6' -- ¡ícA| ID ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
BEGIN
IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
BEGIN
UPDATE CHARACTER_TBL
SET idCampus = @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
SELECT fError = '1'
END
ELSE
BEGIN
SELECT fError = '0'
END
RETURN
END
/*
A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
ex )
CHARACTER_STR 'U4',@im_idPlayer,@iserverindex,@iaccount,@im_szNa me
CHARACTER_STR 'U4','000001','01','','¡íu¨¬¡Æ¡Æ©ªAO'
*/
ELSE
IF @iGu = 'D1' -- A©ø¢¬?AI ¡íeA|
BEGIN
IF @im_szName = ''
BEGIN
SELECT fError = '1', fText = '2A¡À ¨¬n©ö¨¢©ö©ªE¡Ì ¨¡©÷¢¬©÷'
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' ))
if exists (select * from BANK_TBL (nolock) where m_idPlayer = @im_idPlayer AND m_BankPw = @im_szName )
SET @Exists = 1
ELSE
SET @Exists = 0
END
*/
set @Exists = 1
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 = '¡¾©¡¥ìaAuA©¬'
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
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 = 'AO©öI©ö©ªE¡Ì¨¡©÷¢¬©÷'
RETURN
END
END
/*
A©ø¢¬?AI ¡íeA|
ex )
CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
CHARACTER_STR 'D1','001068','01','ata3k','1019311'
*/
ELSE
IF @iGu = 'I1' -- 초기 정보 입력
BEGIN
-- 20100218 생성 캐릭터 3개 초과 시
declare @i1_cnt int
select @i1_cnt = count(*) from CHARACTER_TBL where account = @iaccount and isblock = 'F'
if @i1_cnt > 2
begin
SELECT fError = '0', fText = '캐릭터 많음!'
RETURN
end
IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
WHERE m_szName = @im_szName AND serverindex = @iserverindex)
BEGIN
SELECT fError = '0', fText = '캐릭터 중복!'
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) ,
@
alPlayTime INT ,@
block CHAR(1) ,@
d_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_idMuerderer 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
---------- Ver 15
, @om_aCheckedQuest varchar(100)
, @om_nCampusPoint int
, @om_idCampus 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,
@
alPlayTime = TotalPlayTime,@
block = isblock,@
d_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_idMuerderer = m_idMuerderer,
@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_idMuerderer,
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,
m_SkillPoint,
m_SkillLv,
m_SkillExp
---------- Ver 15
, m_aCheckedQuest
, m_nCampusPoint
, idCampus
, m_dwMadrigalGiftExp
, m_tmLogout
, m_nHideCoat
, m_nPvpKills
, m_nPvpDeaths
, m_tmNextRoulette
, m_nPerin
, m_nChips
, m_nReb
)
VALUES
(
@om_idPlayer,
@iserverindex,
@iaccount,
@im_szName,
@iplayerslot,
@idwWorldID,
@im_dwIndex,
@om_vScale_x,
@om_dwMotion,
@im_vPos_x,
@im_vPos_y,
@im_vPos_z,
@om_fAngle,
@im_szCharacterKey,
@om_nHitPoint,
@om_nManaPoint,
@om_nFatiguePoint,
-1, --m_nFuel
@im_dwSkinSet,
@im_dwHairMesh,
@im_dwHairColor,
@im_dwHeadMesh,
@im_dwSex,
@om_dwRideItemIdx,
@om_dwGold,
@om_nJob,
@om_pActMover,
@om_nStr,
@om_nSta,
@om_nDex,
@om_nInt,
@om_nLevel,
1, --m_nMaximumLevel
@om_nExp1,
@om_nExp2,
@om_aJobSkill,
@om_aLicenseSkill,
@om_aJobLv,
@om_dwExpertLv,
@om_idMarkingWorld,
@om_vMarkingPos_x,
@om_vMarkingPos_y,
@om_vMarkingPos_z,
@om_nRemainGP,
@om_nRemainLP,
@om_nFlightLv,
@om_nFxp,
@om_nTxp,
@om_lpQuestCntArray,
'$', -- m_aCompleteQuest
@om_chAuthority,
@om_dwMode,
@om_idparty,
'000000', -- m_idCompany
@om_idMuerderer,
@om_nFame,
@om_nDeathExp,
@om_nDeathLevel,
@om_dwFlyTime ,
@om_nMessengerState,
@oblockby,
@
alPlayTime,@
block,@
d_Time,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,
@im_SkillPoint,
@im_SkillLv,
@im_SkillExp
-- Ver 15
, '$'
, 0
, 0
, 0
, 0
, 0 -- xD
, 0
, 0
, 0
, 0
, 0
, 0
)
INSERT INVENTORY_TBL
(
m_idPlayer,
serverindex,
m_Inventory,
m_apIndex,
m_adwEquipment,
m_dwObjIndex
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_Inventory,
@om_apIndex,
@om_adwEquipment,
@om_dwObjIndex
)
-- INSERT CARD_CUBE_TBL
-- (
-- m_idPlayer,
-- serverindex,
-- m_Card,
-- m_Cube,
-- m_apIndex_Card,
-- m_dwObjIndex_Card,
-- m_apIndex_Cube,
-- m_dwObjIndex_Cube
-- )
-- VALUES
-- (
-- @om_idPlayer,
-- @iserverindex,
-- @om_Card,
-- @om_Cube,
-- @om_apIndex_Card,
-- @om_dwObjIndex_Card,
-- @om_apIndex_Cube,
-- @om_dwObjIndex_Cube
-- )
-- 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,
@om_aSlotApplet,
@om_aSlotQueue,
@om_SkillBar
)
INSERT TASKBAR_ITEM_TBL
(
m_idPlayer,
serverindex,
m_aSlotItem
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_aSlotItem
)
INSERT BANK_TBL
(
m_idPlayer,
serverindex,
m_Bank,
m_BankPw,
m_apIndex_Bank,
m_dwObjIndex_Bank ,
m_dwGoldBank
)
VALUES
(
@om_idPlayer,
@iserverindex,
@om_Bank,
'0000', -- m_BankPw
-- @im_BankPW,
@om_apIndex_Bank,
@om_dwObjIndex_Bank,
@om_dwGoldBank
)
INSERT SKILLINFLUENCE_TBL
(
m_idPlayer,
serverindex,
SkillInfluence
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$'
)
INSERT INVENTORY_EXT_TBL
(
m_idPlayer,
serverindex,
m_extInventory,
m_InventoryPiercing
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$','$'
)
INSERT BANK_EXT_TBL
(
m_idPlayer,
serverindex,
m_extBank,
m_BankPiercing
)
VALUES
(
@om_idPlayer,
@iserverindex,
'$','$'
)
-- Skill Information
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)
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, '$', '$', '$' )
------------------- ver. 13
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 1
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 2
insert into tblMaster_all (serverindex, m_idPlayer, sec)
select @iserverindex, @om_idPlayer, 3
------------------- ver. 15
insert into tblRestPoint (serverindex, m_idPlayer)
select @iserverindex, @om_idPlayer
------------ Penay check default setting
insert into tblLogout_Penya (serverindex, m_idPlayer)
select @iserverindex, @om_idPlayer
-------------------- Last Login ¡¾a¡¤I -----------
-- insert into tblLastLogin (serverindex, m_idPlayer, s_date)
-- select @iserverindex, @om_idPlayer, getdate()
SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
RETURN
END
END
/*
ex )
CHARACTER_STR 'I1','',@iserverindex,@iaccount,@im_szName,@iplaye rslot,@idwWorldID,
@im_dwIndex,@im_vPos_x,@im_vPos_y,@im_vPos_z,@im_s zCharacterKey,
@im_dwSkinSet,@im_dwHairMesh,@im_dwHairColor,@im_d wHeadMesh,@im_dwSex
CHARACTER_STR 'I1','','01','beat','¡íu¨¬¡Æ¡Æ©ªAO3',0,0,
0,0,0,0,'',
0,0,0,0,0
*/
set nocount off
RETURN
Best Regards
bloody2009






