|
You last visited: Today at 08:32
Advertisement
[Error]Charakter Speichert nicht
Discussion on [Error]Charakter Speichert nicht within the Flyff Private Server forum part of the Flyff category.
03/04/2012, 17:39
|
#1
|
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
|
[Error]Charakter Speichert nicht
Hallo,
Es entsteht eine Error.log und ein LogFile.
Der Charakter ist nach dem neustart der Server wieder auf Lvl 1 und resetet
CQuery-LogFile_20120304.txt:
Quote:
2012/03/04 15:49:14
query:{call CHARACTER_STR('U1','0000002','01','',?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?, 0, 0, 0,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
SQLSTATE:42000 error:[Microsoft][SQL Server Native Client 10.0][SQL Server]Error converting data type varchar to int.
|
error_20120304.log:
Code:
2012/ 3/ 4 15:49:14
SavePlayer(Test2) - Exec RETURN FALSE, ThreadID : 3216
|
|
|
03/04/2012, 19:27
|
#2
|
elite*gold: 0
Join Date: Feb 2012
Posts: 40
Received Thanks: 4
|
Hast die die Sprache bei allen 4 einträgen auf englisch gesetzt? Schaut so aus als wäre da der fehler
|
|
|
03/04/2012, 19:30
|
#3
|
elite*gold: 0
Join Date: Feb 2012
Posts: 2,107
Received Thanks: 651
|
habe keine ahnung aber hat das vllt damit was zu tun?
Error converting data type varchar to int.
|
|
|
03/04/2012, 19:49
|
#4
|
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
|
Quote:
Originally Posted by stefan29102009
Hast die die Sprache bei allen 4 einträgen auf englisch gesetzt? Schaut so aus als wäre da der fehler
|
Ja habe bei allen 4 einträgen die Sprache auf englisch
wenn ich auf fertig stellen gehe kommt das und der test is auch erfolgreich:
Quote:
Microsoft SQL Server Native Client Version 10.50.1617
Data Source Name: character01
Data Source Description:
Server: MY-PC\SQLSERVER
Use Integrated Security: Yes
Database: CHARACTER_01_DBF
Language: English
Data Encryption: No
Trust Server Certificate: No
Multiple Active Result Sets(MARS): No
Mirror Server:
Translate Character Data: Yes
Log Long Running Queries: No
Log Driver Statistics: No
Use Regional Settings: No
Use ANSI Quoted Identifiers: Yes
Use ANSI Null, Paddings and Warnings: Yes
|
Quote:
Originally Posted by xXEpicSlayerXx
habe keine ahnung aber hat das vllt damit was zu tun?
Error converting data type varchar to int.
|
ich denke auch das es was damit zu tun hat aber wie kann ich das fixxen
|
|
|
03/04/2012, 19:52
|
#5
|
elite*gold: 0
Join Date: Feb 2012
Posts: 2,107
Received Thanks: 651
|
vllt db neu aufsetzen und die sedrika All-In-One DB
Oder halt mal in Character_01_DBF suchen
|
|
|
03/04/2012, 20:12
|
#6
|
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
|
Quote:
Originally Posted by xXEpicSlayerXx
vllt db neu aufsetzen und die sedrika All-In-One DB
Oder halt mal in Character_01_DBF suchen
|
das hat ja was mit character_str aufruf zu tun aber ich glaube das es iwie an meinem odbc liegt oder so weil db's hab ich schon mehrere ausprobiert und keine geht sollte nicht normalerweise der odbc treiber dazu in der lage sein von varchar nach int zu konvertieren?
villeicht gibt's ja irgendwie ne möglichkeit die odbc treiber manuell zu erneuern hab schon gegoogelt aber nix gescheites gefunden
|
|
|
03/04/2012, 20:18
|
#7
|
elite*gold: 0
Join Date: Feb 2012
Posts: 2,107
Received Thanks: 651
|
welches MsSQL verwendest du?
Hast du in den ODBC´s
SQL Server oder
SQL Server Native Client 10.0?
|
|
|
03/04/2012, 20:18
|
#8
|
ベトナム警察
elite*gold: 0
Join Date: Jan 2012
Posts: 16,496
Received Thanks: 3,518
|
character01 auf English.. den rest auf German.
Ansonsten spielst du mal die DB neu ein, dann müsste es gehen.
Irgendwas in der Source geändert / verändert ?
|
|
|
03/04/2012, 21:24
|
#9
|
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
|
Quote:
Originally Posted by xXEpicSlayerXx
welches MsSQL verwendest du?
2008r2 professional
Hast du in den ODBC´s
SQL Server oder
SQL Server Native Client 10.0?
hab SQL Server Native Client 10.0
|
Quote:
Originally Posted by Lumi'
character01 auf English.. den rest auf German.
Ansonsten spielst du mal die DB neu ein, dann müsste es gehen.
Irgendwas in der Source geändert / verändert ?
|
hab die db bereits mehrmals neu eingespielt und auch andere DB's versucht
und als source verwende ich den von Pixelfehler
|
|
|
03/05/2012, 15:04
|
#10
|
elite*gold: 0
Join Date: Oct 2010
Posts: 271
Received Thanks: 206
|
Haste am Db Src rumgespielt? Oder so?
[SQL Server]Error converting data type varchar to int.
Du willst eine Variable von Type VARCHAR zu INTENGER konvertieren, das funzt nit.
|
|
|
03/06/2012, 13:46
|
#11
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Wenn es keinen Fehler beim konvertieren gibt, muss das an der Prozedur liegen, oder an einer Tabelle, bei der eine Spalte einen falschen datatype hat.
Quote:
|
character01 auf English.. den rest auf German.
|
Ich weiß nicht, warum hier manche Leute ernsthaft die ODBC Einstellungen in Betracht ziehen oO Die haben rein GAR NICHTS damit zu tun, genauso wenig die Sprache. Und mal nebenbei, die Spracheinstellung betrifft NUR die Error-Ausgaben. Also ob Errors in Deutsch/Englisch/etc angezeigt werden sollen.
Also vergesst das mit der Sprache, das ist vollkommener SCHWACHSINN.
Quote:
|
CHARACTER_STR('U1','0000002','01','',?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?, 0, 0, 0,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
|
Code:
@iGu CHAR(2) = 'S1',
@im_idPlayer CHAR(7) = '0000001',
@iserverindex CHAR(2) = '01',
[COLOR=Red]@iaccount VARCHAR(32) = ''[/COLOR],
Scheinbar wird kein Account bei der Prozedur weitergegeben. Das könnte ein Fehler sein, aber auch nicht.
Code:
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_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
-- 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(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,
-------------- (추가 부분 : 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 추가 부분 Pet관련
,@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
/*******************************************************
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),@oplayerslot INT
IF @iGu = 'S2' -- 슬롯에 따른 플레이어리스트 인벤토리정보 가져오기
BEGIN
IF @iaccount = '' OR @im_szName = ''
BEGIN
SELECT m_chAuthority = '',fError = '1', fText = '암호틀림'
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_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 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
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
/*
슬롯에 따른 플레이어리스트 인벤토리정보 가져오기
ex )
CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
CHARACTER_STR 'S2','0','02','seghope','1234'
*/
ELSE
IF @iGu = 'S3' -- 서버가 처음실행을 할대 캐릭터의 idPlayer를 다 가지고옴
BEGIN
SELECT m_szName, m_idPlayer,m_idCompany
FROM CHARACTER_TBL
WHERE serverindex = @iserverindex
-- AND isblock = 'F'
ORDER BY m_idPlayer
RETURN
END
/*
서버가 처음실행을 할대 캐릭터의 idPlayer를 다 가지고옴
ex )
CHARACTER_STR 'S3','',@iserverindex
CHARACTER_STR 'S3','','01'
*/
ELSE
IF @iGu = 'S4' -- 추가할 아이템 확인
BEGIN
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, 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
/*
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
*/
RETURN
END
/*
아이템 확인
ex )
CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
CHARACTER_STR 'S4','000001','01'
*/
ELSE
IF @iGu = 'S5' -- 아이템 지급후 테이블에서 아이템 삭제
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
/*
아이템 지급후 테이블에서 아이템 삭제
ex )
CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S5','000001','01','빗자루',1,1
*/
ELSE
IF @iGu = 'S6' -- 삭제할 아이템 확인
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
/*
아이템 확인
ex )
CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
CHARACTER_STR 'S6','000001','01'
*/
ELSE
IF @iGu = 'S7' -- 아이템 삭제후 테이블에서 아이템 삭제
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
/*
아이템 지급후 테이블에서 아이템 삭제
ex )
CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S7','000001','01','빗자루',1,1
*/
IF @iGu = 'S8' -- 데이터 전체 가져오기
BEGIN
-- 뱅크 정보 가져오기 character 별
SELECT @om_chLoginAuthority = m_chLoginAuthority
FROM ACCOUNT.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,'NULL') ,
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 추가 부분 : 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
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
, tblRestPoint R
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 *= R.serverindex
AND F.m_idPlayer *= R.m_idPlayer
AND F.serverindex *= H.serverindex
AND F.m_idPlayer *= H.m_idPlayer
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
-- 뱅크 정보 가져오기 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
-- 휴대 가방 가져오기
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
/*
데이터 전체 가져오기 New
ex )
CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S8','425120','01','ata3k'
*/
ELSE
IF @iGu = 'U1' -- 캐릭터 저장
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 추가
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_nMessengerState = @im_nMessengerState,
--m_dwFlyTime = m_dwFlyTime + @im_dwFlyTime,
m_dwFlyTime = @im_dwFlyTime,
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
-------------- (추가 부분 : 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
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
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
--송현석 요청사항 빌링 관련
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
/*
정보업데이트
ex )
CHARACTER_STR 'U1', ALL ...
CHARACTER_STR 'U1','000001','01' ...
*/
ELSE
IF @iGu = 'U2' --총 이용시간 수정
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_szName = @im_szName
AND serverindex = @iserverindex
RETURN
END
/*
총 이용시간 수정
ex )
CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U2','','01','','beat',10234
*/
ELSE
IF @iGu = 'U3' --총 이용시간 수정 new
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
RETURN
END
/*
총 이용시간 수정 (new)
ex )
CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U3','000001','01','','',10234
*/
ELSE
IF @iGu = 'U4' --캐릭터 명 변경
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' --사제 포인트 업데이트 추가
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' -- 사제 ID 업데이트 추가
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
/*
캐릭터 명 변경
ex )
CHARACTER_STR 'U4',@im_idPlayer,@iserverindex,@iaccount,@im_szName
CHARACTER_STR 'U4','000001','01','','샛별공주'
*/
ELSE
IF @iGu = 'D1' -- 캐릭터 삭제
BEGIN
IF @im_szName = ''
BEGIN
SELECT fError = '1', fText = '주민번호틀림'
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.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.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 = '길드전중'
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.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 --: 1개월 이상 접속경험이 없는 계정대상 유저
-- 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.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,'캐릭터 보상 이벤트',0,''
--
-- if @retcode <> 1
-- set @cash = 0
--
-- insert RANKING.RANKING_DBF.dbo.event_member_tbl
-- (account,amount,m_idPlayer,serverindex,retcode,date)
-- values
-- (@iaccount,@cash,@im_idPlayer,@iserverindex,@retcode,getdate())
--
-- end
-- end
/****************************************************************************************/
/****************************************************************************************/
/****************************************************************************************/
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 = '주민번호틀림'
RETURN
END
END
/*
캐릭터 삭제
ex )
CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
CHARACTER_STR 'D1','001068','01','ata3k','1019311'
*/
ELSE
IF @iGu = 'I1' -- 초기 정보 입력
BEGIN
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) ,
@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_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,
@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_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
)
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,
@oTotalPlayTime,
@oisblock,
@oEnd_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
)
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
/*
지급 아이템 : 일회용 호버보드
지급 대상1 : 레벨 1~20 레벨을 가진 모든 캐릭터(인벤토리가 꽉차있으면 지급 하지 않음)
지급 대상2 : 아래의 일자에 생성되는 캐릭터
테스트 서버
패치후 23~27일까지(28 0시에 종료)
정식 서버
패치후 24~27일까지(28 0시에 종료)
*/
------------------- 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
/*"캐시받아가세요~!"*/
if (getdate() >= '2009-05-29 00:00:00' and getdate() < '2009-06-29 00:00:00')
begin
declare @i1_regdate datetime
select @i1_regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@i1_regdate >= '2009-05-29 00:00:00' and @i1_regdate < '2009-06-29 00:00:00')
begin
if not exists (select * from MANAGE_DBF.dbo.tblEvent_NewAcc_090529 where account = @iaccount)
begin
insert into ITEM_SEND_TBL (m_idPlayer, serverindex, Item_Name, Item_count, m_bCharged, idSender)
select @om_idPlayer, @iserverindex, '30191', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tblEvent_NewAcc_090529 (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
end
--[Event.4] 신규유저 발굴 프로젝트
if (getdate() >= '2009-12-29 10:00:00' and getdate() < '2010-03-02 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
declare @id_no1 char(6), @id_no2 char(7), @itcount int
if (@aregdate >= '2009-12-29 10:00:00' and @aregdate < '2010-03-02 10:00:00')
begin
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
/* 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지*/
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= '2009-12-29 10:00:00'
--Event.1 신규 가입 회원 : 생성한 캐릭터에 (거래불가)
if (@itcount = 0)
begin
/*
DECLARE @nMaxMailID int
SELECT @nMaxMailID = MAX(nMail) + 1 from MAIL_TBL where serverindex = @iserverindex
SET @nMaxMailID = ISNULL( @nMaxMailID, 0 )
EXEC dbo.MAIL_STR 'A1', @nMaxMailID, @iserverindex, @om_idPlayer, '0000000', 0, 0, 0, '목표 달성 이벤트', '신규캐릭터 생성을 축하드립니다.', '26205', 3, 0, 0, 0, 0, 2
*/
--ES 증폭의 두루마리(20) (인덱스: 26205)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26314', 3, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_NewAccount_0912 (account, serverindex, m_idPlayer, m_Jumin)
select @iaccount, @iserverindex, @om_idPlayer, @id_no1+@id_no2
end
end
-- Event.2 완소뉴비! 무차별 지원이벤트 ( 신규 계정)
if (getdate() >= '2010-02-22 10:00:00' and getdate() < '2010-02-23 10:00:00')
begin
--무차별 지원이벤트 ( 신규 계정)
-- @aregdate, @id_no1, @id_no2 위 이벤트에서 사용하던 변수 인계
if (@aregdate >= '2010-02-02 10:00:00' and @aregdate < '2010-02-23 10:00:00')
begin
/* 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지*/
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= '2010-01-29 10:00:00'
if (@itcount = 0 )
begin
-- 쿠폰 3종 지급
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26919', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26920', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26921', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001 (account, serverindex, m_idPlayer, m_Type)
select @iaccount, @iserverindex, @om_idPlayer, 'N'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001_account (account)
select @iaccount
end
end
--무차별 지원이벤트 (휴면 계정)
if not exists (select top 1 * from MANAGE_DBF.dbo.tbl_Event_WSNB_1001_account (nolock) where account = @iaccount)
begin
-- 쿠폰 3종 지급
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26919', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26920', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26921', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001 (account, serverindex, m_idPlayer, m_Type)
select @iaccount, @iserverindex, @om_idPlayer, 'H'
end
end
end
/*[Event.1-2]신규 가입하면 아이템이 펑펑~!! 및 친구야~ 노올자~ Start
if (getdate() >= '2009-07-28 10:00:00' and getdate() < '2009-09-01')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2009-07-28 10:00:00')
begin
declare @id_no1 char(6), @id_no2 char(7), @itcount int
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
-- select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(account, 4)), 2) <> '__'
-- 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= @aregdate
--Event.1 신규 가입 회원 : 최초 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0907 where account = @iaccount)
begin
if (@itcount = 1)
begin
--이벤트 선물 상자(인덱스: 30191)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
--프리프 선물 상자(인덱스: 26770)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26770', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0907 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
--Event.2 신규 가입 시 추천인을 입력한 계정 : 최초로 생성한 캐릭터에 (거래불가)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2009-07-28')
begin
--추천 받은계정 조회 (이벤트용 오리칼쿰 지급 : 2082)
declare @remem_id as varchar (32), @re_serverindex char(2), @re_m_idPlayer char(7)
select @remem_id = remem_id from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount
exec MANAGE_DBF.dbo.usp_Highest_Char @remem_id, @re_serverindex output, @re_m_idPlayer output
-- select @remem_id, @re_serverindex, @re_m_idPlayer
if @re_serverindex is not NULL and @re_m_idPlayer is not NULL
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 where account = @iaccount)
begin
if (@itcount = 1)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 (account, serverindex, m_idPlayer, m_Item)
select @iaccount, @iserverindex, @om_idPlayer, '30191'
-- 이벤트용 오리칼쿰 (지급)
declare @q001 nvarchar(4000)
set @q001 = '
insert into CHARACTER_[&server&]_DBF.dbo.ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @re_serverindex, @re_m_idPlayer, ''2082'', 2, 1, ''0000000'''
set @q001 = replace(@q001, '[&server&]', @re_serverindex)
exec sp_executesql @q001, N'@re_serverindex char(2), @re_m_idPlayer char(7)', @re_serverindex, @re_m_idPlayer
-- insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 (account, serverindex, m_idPlayer, m_Item)
-- select @remem_id, @re_serverindex, @re_m_idPlayer, '2082'
end
end
end
end
end
end
-- [Event.1-2]친신규 가입하면 아이템이 펑펑~!! 및 친구야~ 노올자~ End */
/* [Event.2]친구야~ 프리프 같이하자! Start
if (getdate() >= '2009-02-24 10:00:00' and getdate() <= '2009-03-24 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2009-02-24 10:00:00')
begin
declare @id_no1 char(6), @id_no2 char(7), @itcount int
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where id_no1 + id_no2 = @id_no1 + @id_no2 and left ((right(account, 4)), 2) <> '__'
--신규 가입 회원 : 최초 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0902 where account = @iaccount)
begin
if (@itcount = 1)
begin
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26666', 30, 1, '0000000'
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26667', 30, 1, '0000000'
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26668', 30, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0902 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
--신규 가입 시 추천인을 입력한 계정 : 최초로 생성한 캐릭터에 (거래불가)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2009-02-24')
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0902 where account = @iaccount)
begin
if (@itcount = 1)
begin
-- 아이템 귀속 속성문제로 아래 사항으로 변경 (2009-02-24 11:40) by 정순재
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0902 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
end*/
/* [Event.2]친구야~ 프리프 같이하자! End */
/* [Event.5] 여자라서 행복해요 ^^ Start
if (getdate() >= '2009-03-03 09:00:00' and getdate() <= '2009-03-31 09:00:00')
begin
declare @a2regdate datetime
declare @sex char(1)
select @a2regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
select @sex = [성별] from WEB.ONLINE_DBF.dbo.USER_TBL where [계정] = @iaccount
if (@a2regdate >= '2009-03-03 09:00:00' and @sex = '2')
begin
--- 처음 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_Women_0903 where account = @iaccount)
begin
--프리프 선물 상자
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26770', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_Women_0903 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end*/
/* [Event.5] 여자라서 행복해요 ^^ End */
/*
지급 아이템 : 일회용 호버보드
지급 대상1 : 레벨 1~20 레벨을 가진 모든 캐릭터(인벤토리가 꽉차있으면 지급 하지 않음)
지급 대상2 : 아래의 일자에 생성되는 캐릭터
테스트 서버
패치후 23~27일까지(28 0시에 종료)
정식 서버
패치후 24~27일까지(28 0시에 종료)
*/
/* if (getdate() <= '2008-02-12 09:00:00')
begin
declare @regdate datetime, @check int
select @check = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide where account = @iaccount
select @regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if ((@check = 0) and (@regdate >= '2008-01-08 11:00:00'))
begin
declare @channel_check char(4)
set @channel_check = right(@iaccount, 4)
if (@channel_check = '__an')
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26533', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
else if (@channel_check = '__bu')
begin
if (getdate() <= '2008-02-08 23:59:59')
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26534', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
else
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26532', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
end
*/
/* if (getdate() >= '2008-07-30 00:00:00' and getdate() <= '2008-09-15 23:59:59')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2008-07-30 00:00:00')
begin
declare @reaccount varchar(32)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount)
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL where account = @iaccount)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
*/
/* if (getdate() >= '2008-12-17 10:00:00' and getdate() <= '2009-01-27 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2008-12-17 10:00:00')
begin
declare @reaccount varchar(32)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2008-12-16')
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0812 where account = @iaccount)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0812 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
IF (GETDATE() BETWEEN '2004-06-23 18:00:00.000' AND '2004-06-27 23:59:59.999')
INSERT ITEM_SEND_TBL
(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, End_Time, m_bItemResist, m_nResistAbilityOption, m_bCharged)
VALUES
('261007','01','파워 다이스 12',2,0,NULL,0,0,1)
*/
SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
RETURN
END
END
/*
초기 정보 입력
ex )
CHARACTER_STR 'I1','',@iserverindex,@iaccount,@im_szName,@iplayerslot,@idwWorldID,
@im_dwIndex,@im_vPos_x,@im_vPos_y,@im_vPos_z,@im_szCharacterKey,
@im_dwSkinSet,@im_dwHairMesh,@im_dwHairColor,@im_dwHeadMesh,@im_dwSex
CHARACTER_STR 'I1','','01','beat','샛별공주3',0,0,
0,0,0,0,'',
0,0,0,0,0
*/
set nocount off
RETURN
GO
Hier die Prozedur, vielleicht hilft die.
|
|
|
03/06/2012, 14:13
|
#12
|
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
|
Quote:
Originally Posted by xTwiLightx
Wenn es keinen Fehler beim konvertieren gibt, muss das an der Prozedur liegen, oder an einer Tabelle, bei der eine Spalte einen falschen datatype hat.
Ich weiß nicht, warum hier manche Leute ernsthaft die ODBC Einstellungen in Betracht ziehen oO Die haben rein GAR NICHTS damit zu tun, genauso wenig die Sprache. Und mal nebenbei, die Spracheinstellung betrifft NUR die Error-Ausgaben. Also ob Errors in Deutsch/Englisch/etc angezeigt werden sollen.
Also vergesst das mit der Sprache, das ist vollkommener SCHWACHSINN.
Code:
@iGu CHAR(2) = 'S1',
@im_idPlayer CHAR(7) = '0000001',
@iserverindex CHAR(2) = '01',
[COLOR=Red]@iaccount VARCHAR(32) = ''[/COLOR],
Scheinbar wird kein Account bei der Prozedur weitergegeben. Das könnte ein Fehler sein, aber auch nicht.
Code:
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_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
-- 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(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,
-------------- (추가 부분 : 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 추가 부분 Pet관련
,@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
/*******************************************************
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),@oplayerslot INT
IF @iGu = 'S2' -- 슬롯에 따른 플레이어리스트 인벤토리정보 가져오기
BEGIN
IF @iaccount = '' OR @im_szName = ''
BEGIN
SELECT m_chAuthority = '',fError = '1', fText = '암호틀림'
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_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 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
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
/*
슬롯에 따른 플레이어리스트 인벤토리정보 가져오기
ex )
CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
CHARACTER_STR 'S2','0','02','seghope','1234'
*/
ELSE
IF @iGu = 'S3' -- 서버가 처음실행을 할대 캐릭터의 idPlayer를 다 가지고옴
BEGIN
SELECT m_szName, m_idPlayer,m_idCompany
FROM CHARACTER_TBL
WHERE serverindex = @iserverindex
-- AND isblock = 'F'
ORDER BY m_idPlayer
RETURN
END
/*
서버가 처음실행을 할대 캐릭터의 idPlayer를 다 가지고옴
ex )
CHARACTER_STR 'S3','',@iserverindex
CHARACTER_STR 'S3','','01'
*/
ELSE
IF @iGu = 'S4' -- 추가할 아이템 확인
BEGIN
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, 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
/*
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
*/
RETURN
END
/*
아이템 확인
ex )
CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
CHARACTER_STR 'S4','000001','01'
*/
ELSE
IF @iGu = 'S5' -- 아이템 지급후 테이블에서 아이템 삭제
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
/*
아이템 지급후 테이블에서 아이템 삭제
ex )
CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S5','000001','01','빗자루',1,1
*/
ELSE
IF @iGu = 'S6' -- 삭제할 아이템 확인
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
/*
아이템 확인
ex )
CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
CHARACTER_STR 'S6','000001','01'
*/
ELSE
IF @iGu = 'S7' -- 아이템 삭제후 테이블에서 아이템 삭제
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
/*
아이템 지급후 테이블에서 아이템 삭제
ex )
CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S7','000001','01','빗자루',1,1
*/
IF @iGu = 'S8' -- 데이터 전체 가져오기
BEGIN
-- 뱅크 정보 가져오기 character 별
SELECT @om_chLoginAuthority = m_chLoginAuthority
FROM ACCOUNT.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,'NULL') ,
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 추가 부분 : 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
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
, tblRestPoint R
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 *= R.serverindex
AND F.m_idPlayer *= R.m_idPlayer
AND F.serverindex *= H.serverindex
AND F.m_idPlayer *= H.m_idPlayer
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
-- 뱅크 정보 가져오기 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
-- 휴대 가방 가져오기
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
/*
데이터 전체 가져오기 New
ex )
CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
CHARACTER_STR 'S8','425120','01','ata3k'
*/
ELSE
IF @iGu = 'U1' -- 캐릭터 저장
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 추가
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_nMessengerState = @im_nMessengerState,
--m_dwFlyTime = m_dwFlyTime + @im_dwFlyTime,
m_dwFlyTime = @im_dwFlyTime,
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
-------------- (추가 부분 : 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
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
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
--송현석 요청사항 빌링 관련
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
/*
정보업데이트
ex )
CHARACTER_STR 'U1', ALL ...
CHARACTER_STR 'U1','000001','01' ...
*/
ELSE
IF @iGu = 'U2' --총 이용시간 수정
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_szName = @im_szName
AND serverindex = @iserverindex
RETURN
END
/*
총 이용시간 수정
ex )
CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U2','','01','','beat',10234
*/
ELSE
IF @iGu = 'U3' --총 이용시간 수정 new
BEGIN
UPDATE CHARACTER_TBL
SET TotalPlayTime = TotalPlayTime + @iplayerslot
WHERE m_idPlayer = @im_idPlayer
AND serverindex = @iserverindex
RETURN
END
/*
총 이용시간 수정 (new)
ex )
CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)
CHARACTER_STR 'U3','000001','01','','',10234
*/
ELSE
IF @iGu = 'U4' --캐릭터 명 변경
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' --사제 포인트 업데이트 추가
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' -- 사제 ID 업데이트 추가
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
/*
캐릭터 명 변경
ex )
CHARACTER_STR 'U4',@im_idPlayer,@iserverindex,@iaccount,@im_szName
CHARACTER_STR 'U4','000001','01','','샛별공주'
*/
ELSE
IF @iGu = 'D1' -- 캐릭터 삭제
BEGIN
IF @im_szName = ''
BEGIN
SELECT fError = '1', fText = '주민번호틀림'
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.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.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 = '길드전중'
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.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 --: 1개월 이상 접속경험이 없는 계정대상 유저
-- 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.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,'캐릭터 보상 이벤트',0,''
--
-- if @retcode <> 1
-- set @cash = 0
--
-- insert RANKING.RANKING_DBF.dbo.event_member_tbl
-- (account,amount,m_idPlayer,serverindex,retcode,date)
-- values
-- (@iaccount,@cash,@im_idPlayer,@iserverindex,@retcode,getdate())
--
-- end
-- end
/****************************************************************************************/
/****************************************************************************************/
/****************************************************************************************/
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 = '주민번호틀림'
RETURN
END
END
/*
캐릭터 삭제
ex )
CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
CHARACTER_STR 'D1','001068','01','ata3k','1019311'
*/
ELSE
IF @iGu = 'I1' -- 초기 정보 입력
BEGIN
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) ,
@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_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,
@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_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
)
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,
@oTotalPlayTime,
@oisblock,
@oEnd_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
)
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
/*
지급 아이템 : 일회용 호버보드
지급 대상1 : 레벨 1~20 레벨을 가진 모든 캐릭터(인벤토리가 꽉차있으면 지급 하지 않음)
지급 대상2 : 아래의 일자에 생성되는 캐릭터
테스트 서버
패치후 23~27일까지(28 0시에 종료)
정식 서버
패치후 24~27일까지(28 0시에 종료)
*/
------------------- 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
/*"캐시받아가세요~!"*/
if (getdate() >= '2009-05-29 00:00:00' and getdate() < '2009-06-29 00:00:00')
begin
declare @i1_regdate datetime
select @i1_regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@i1_regdate >= '2009-05-29 00:00:00' and @i1_regdate < '2009-06-29 00:00:00')
begin
if not exists (select * from MANAGE_DBF.dbo.tblEvent_NewAcc_090529 where account = @iaccount)
begin
insert into ITEM_SEND_TBL (m_idPlayer, serverindex, Item_Name, Item_count, m_bCharged, idSender)
select @om_idPlayer, @iserverindex, '30191', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tblEvent_NewAcc_090529 (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
end
--[Event.4] 신규유저 발굴 프로젝트
if (getdate() >= '2009-12-29 10:00:00' and getdate() < '2010-03-02 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
declare @id_no1 char(6), @id_no2 char(7), @itcount int
if (@aregdate >= '2009-12-29 10:00:00' and @aregdate < '2010-03-02 10:00:00')
begin
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
/* 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지*/
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= '2009-12-29 10:00:00'
--Event.1 신규 가입 회원 : 생성한 캐릭터에 (거래불가)
if (@itcount = 0)
begin
/*
DECLARE @nMaxMailID int
SELECT @nMaxMailID = MAX(nMail) + 1 from MAIL_TBL where serverindex = @iserverindex
SET @nMaxMailID = ISNULL( @nMaxMailID, 0 )
EXEC dbo.MAIL_STR 'A1', @nMaxMailID, @iserverindex, @om_idPlayer, '0000000', 0, 0, 0, '목표 달성 이벤트', '신규캐릭터 생성을 축하드립니다.', '26205', 3, 0, 0, 0, 0, 2
*/
--ES 증폭의 두루마리(20) (인덱스: 26205)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26314', 3, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_NewAccount_0912 (account, serverindex, m_idPlayer, m_Jumin)
select @iaccount, @iserverindex, @om_idPlayer, @id_no1+@id_no2
end
end
-- Event.2 완소뉴비! 무차별 지원이벤트 ( 신규 계정)
if (getdate() >= '2010-02-22 10:00:00' and getdate() < '2010-02-23 10:00:00')
begin
--무차별 지원이벤트 ( 신규 계정)
-- @aregdate, @id_no1, @id_no2 위 이벤트에서 사용하던 변수 인계
if (@aregdate >= '2010-02-02 10:00:00' and @aregdate < '2010-02-23 10:00:00')
begin
/* 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지*/
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= '2010-01-29 10:00:00'
if (@itcount = 0 )
begin
-- 쿠폰 3종 지급
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26919', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26920', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26921', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001 (account, serverindex, m_idPlayer, m_Type)
select @iaccount, @iserverindex, @om_idPlayer, 'N'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001_account (account)
select @iaccount
end
end
--무차별 지원이벤트 (휴면 계정)
if not exists (select top 1 * from MANAGE_DBF.dbo.tbl_Event_WSNB_1001_account (nolock) where account = @iaccount)
begin
-- 쿠폰 3종 지급
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26919', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26920', 1, 1, '0000000'
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26921', 1, 1, '0000000'
insert into MANAGE_DBF.dbo.tbl_Event_WSNB_1001 (account, serverindex, m_idPlayer, m_Type)
select @iaccount, @iserverindex, @om_idPlayer, 'H'
end
end
end
/*[Event.1-2]신규 가입하면 아이템이 펑펑~!! 및 친구야~ 노올자~ Start
if (getdate() >= '2009-07-28 10:00:00' and getdate() < '2009-09-01')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2009-07-28 10:00:00')
begin
declare @id_no1 char(6), @id_no2 char(7), @itcount int
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
-- select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(account, 4)), 2) <> '__'
-- 이벤트 신규계정에 케릭 없이 2계정 생성시 아이템 미 배포 되는 내용 방지
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL AA
inner join ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL BB on AA.account = BB.account
where id_no1 = @id_no1 and id_no2 = @id_no2 and left ((right(AA.account, 4)), 2) <> '__'
and regdate <= @aregdate
--Event.1 신규 가입 회원 : 최초 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0907 where account = @iaccount)
begin
if (@itcount = 1)
begin
--이벤트 선물 상자(인덱스: 30191)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
--프리프 선물 상자(인덱스: 26770)
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26770', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0907 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
--Event.2 신규 가입 시 추천인을 입력한 계정 : 최초로 생성한 캐릭터에 (거래불가)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2009-07-28')
begin
--추천 받은계정 조회 (이벤트용 오리칼쿰 지급 : 2082)
declare @remem_id as varchar (32), @re_serverindex char(2), @re_m_idPlayer char(7)
select @remem_id = remem_id from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount
exec MANAGE_DBF.dbo.usp_Highest_Char @remem_id, @re_serverindex output, @re_m_idPlayer output
-- select @remem_id, @re_serverindex, @re_m_idPlayer
if @re_serverindex is not NULL and @re_m_idPlayer is not NULL
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 where account = @iaccount)
begin
if (@itcount = 1)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 (account, serverindex, m_idPlayer, m_Item)
select @iaccount, @iserverindex, @om_idPlayer, '30191'
-- 이벤트용 오리칼쿰 (지급)
declare @q001 nvarchar(4000)
set @q001 = '
insert into CHARACTER_[&server&]_DBF.dbo.ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @re_serverindex, @re_m_idPlayer, ''2082'', 2, 1, ''0000000'''
set @q001 = replace(@q001, '[&server&]', @re_serverindex)
exec sp_executesql @q001, N'@re_serverindex char(2), @re_m_idPlayer char(7)', @re_serverindex, @re_m_idPlayer
-- insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0907 (account, serverindex, m_idPlayer, m_Item)
-- select @remem_id, @re_serverindex, @re_m_idPlayer, '2082'
end
end
end
end
end
end
-- [Event.1-2]친신규 가입하면 아이템이 펑펑~!! 및 친구야~ 노올자~ End */
/* [Event.2]친구야~ 프리프 같이하자! Start
if (getdate() >= '2009-02-24 10:00:00' and getdate() <= '2009-03-24 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2009-02-24 10:00:00')
begin
declare @id_no1 char(6), @id_no2 char(7), @itcount int
select @id_no1 = id_no1, @id_no2 = id_no2 from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where account = @iaccount
select @itcount = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL where id_no1 + id_no2 = @id_no1 + @id_no2 and left ((right(account, 4)), 2) <> '__'
--신규 가입 회원 : 최초 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0902 where account = @iaccount)
begin
if (@itcount = 1)
begin
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26666', 30, 1, '0000000'
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26667', 30, 1, '0000000'
--FLY/FOR/FUN카드 30개
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26668', 30, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_0902 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
--신규 가입 시 추천인을 입력한 계정 : 최초로 생성한 캐릭터에 (거래불가)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2009-02-24')
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0902 where account = @iaccount)
begin
if (@itcount = 1)
begin
-- 아이템 귀속 속성문제로 아래 사항으로 변경 (2009-02-24 11:40) by 정순재
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0902 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
end*/
/* [Event.2]친구야~ 프리프 같이하자! End */
/* [Event.5] 여자라서 행복해요 ^^ Start
if (getdate() >= '2009-03-03 09:00:00' and getdate() <= '2009-03-31 09:00:00')
begin
declare @a2regdate datetime
declare @sex char(1)
select @a2regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
select @sex = [성별] from WEB.ONLINE_DBF.dbo.USER_TBL where [계정] = @iaccount
if (@a2regdate >= '2009-03-03 09:00:00' and @sex = '2')
begin
--- 처음 생성한 캐릭터에 (거래불가)
if not exists (select * from WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_Women_0903 where account = @iaccount)
begin
--프리프 선물 상자
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '26770', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.tbl_Event_NewAccount_Women_0903 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end*/
/* [Event.5] 여자라서 행복해요 ^^ End */
/*
지급 아이템 : 일회용 호버보드
지급 대상1 : 레벨 1~20 레벨을 가진 모든 캐릭터(인벤토리가 꽉차있으면 지급 하지 않음)
지급 대상2 : 아래의 일자에 생성되는 캐릭터
테스트 서버
패치후 23~27일까지(28 0시에 종료)
정식 서버
패치후 24~27일까지(28 0시에 종료)
*/
/* if (getdate() <= '2008-02-12 09:00:00')
begin
declare @regdate datetime, @check int
select @check = count(*) from ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide where account = @iaccount
select @regdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if ((@check = 0) and (@regdate >= '2008-01-08 11:00:00'))
begin
declare @channel_check char(4)
set @channel_check = right(@iaccount, 4)
if (@channel_check = '__an')
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26533', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
else if (@channel_check = '__bu')
begin
if (getdate() <= '2008-02-08 23:59:59')
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26534', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
else
begin
insert into ITEM_SEND_TBL(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, idSender)
select @om_idPlayer, @iserverindex, '26532', 1, 0, '0000000'
insert into ACCOUNT.ACCOUNT_DBF.dbo.tblEvent_Board_Provide (account, serverindex, m_idPlayer, m_szName)
select @iaccount, @iserverindex, @om_idPlayer, @im_szName
end
end
end
*/
/* if (getdate() >= '2008-07-30 00:00:00' and getdate() <= '2008-09-15 23:59:59')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2008-07-30 00:00:00')
begin
declare @reaccount varchar(32)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount)
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL where account = @iaccount)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
*/
/* if (getdate() >= '2008-12-17 10:00:00' and getdate() <= '2009-01-27 10:00:00')
begin
declare @aregdate datetime
select @aregdate = regdate from ACCOUNT.ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL where account = @iaccount
if (@aregdate >= '2008-12-17 10:00:00')
begin
declare @reaccount varchar(32)
if exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_TBL where mem_id = @iaccount and regdate >= '2008-12-16')
begin
if not exists (select * from WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0812 where account = @iaccount)
begin
insert into ITEM_SEND_TBL (serverindex, m_idPlayer, Item_Name, Item_count, m_bCharged, idSender)
select @iserverindex, @om_idPlayer, '30191', 1, 1, '0000000'
insert into WEB.ONLINE_DBF.dbo.USER_Recommand_Provide_TBL_0812 (account, serverindex, m_idPlayer)
select @iaccount, @iserverindex, @om_idPlayer
end
end
end
end
IF (GETDATE() BETWEEN '2004-06-23 18:00:00.000' AND '2004-06-27 23:59:59.999')
INSERT ITEM_SEND_TBL
(m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, End_Time, m_bItemResist, m_nResistAbilityOption, m_bCharged)
VALUES
('261007','01','파워 다이스 12',2,0,NULL,0,0,1)
*/
SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
RETURN
END
END
/*
초기 정보 입력
ex )
CHARACTER_STR 'I1','',@iserverindex,@iaccount,@im_szName,@iplayerslot,@idwWorldID,
@im_dwIndex,@im_vPos_x,@im_vPos_y,@im_vPos_z,@im_szCharacterKey,
@im_dwSkinSet,@im_dwHairMesh,@im_dwHairColor,@im_dwHeadMesh,@im_dwSex
CHARACTER_STR 'I1','','01','beat','샛별공주3',0,0,
0,0,0,0,'',
0,0,0,0,0
*/
set nocount off
RETURN
GO
Hier die Prozedur, vielleicht hilft die.
|
Bekomme wenn ich die Prozedur ausführe denn error, dass es sich um nicht ansi operatoren handelt:
Code:
Meldung 4147, Ebene 15, Status 1, Prozedur CHARACTER_STR, Zeile 211
Die Abfrage verwendet Nicht-ANSI-Operatoren für äußere Joins ('*=' oder '=*'). Um diese Abfrage unverändert auszuführen, legen Sie mit der SET COMPATIBILITY_LEVEL-Option von ALTER DATABASE den Kompatibilitätsgrad für die aktuelle Datenbank auf 80 fest. Es wird dringend empfohlen, die Abfrage umzuschreiben und ANSI-Operatoren für äußere Joins (LEFT OUTER JOIN, RIGHT OUTER JOIN) zu verwenden. In zukünftigen Versionen von SQL Server werden Nicht-ANSI-Joinoperatoren nicht unterstützt, auch nicht in Abwärtskompatibilitätsmodi.
Meldung 4147, Ebene 15, Status 1, Prozedur CHARACTER_STR, Zeile 509
Die Abfrage verwendet Nicht-ANSI-Operatoren für äußere Joins ('*=' oder '=*'). Um diese Abfrage unverändert auszuführen, legen Sie mit der SET COMPATIBILITY_LEVEL-Option von ALTER DATABASE den Kompatibilitätsgrad für die aktuelle Datenbank auf 80 fest. Es wird dringend empfohlen, die Abfrage umzuschreiben und ANSI-Operatoren für äußere Joins (LEFT OUTER JOIN, RIGHT OUTER JOIN) zu verwenden. In zukünftigen Versionen von SQL Server werden Nicht-ANSI-Joinoperatoren nicht unterstützt, auch nicht in Abwärtskompatibilitätsmodi.
Wenn ich dann die Kompatibilität auf 80 setze und ausführen will kommt konflikt mit der Sortierung:
Code:
Meldung 468, Ebene 16, Status 9, Prozedur CHARACTER_STR, Zeile 206
Ein Sortierungskonflikt zwischen 'Latin1_General_BIN' und 'Latin1_General_CI_AS' im equal to-Vorgang kann nicht aufgelöst werden.
|
|
|
 |
Similar Threads
|
NDS R4i spiel speichert nicht
12/30/2011 - Consoles - 1 Replies
Hi,
mein kleiner bruder hat zu weihnachten ein r4i sdhc modul bekommen und wollte natürlich gleich pokemon weiss drauf haben. ich habs ihm auch drauf gemacht und alles und er hat dann auch gespielt aber als er dann eine pause machte und weiter spiele wollte war sein spielstand weg. ich habs dann ausprobiert und musste leider feststellen das wenn man speichert das beim nächstenmal nichtsmehr da ist. weiß den einer von euch woran das liegt? ich hab nämlich überhaupt keine ahnung von dem ding....
|
Server Speichert IP nicht
11/13/2011 - Metin2 Private Server - 2 Replies
Hey Leute. Mein server Speichert einfach nicht meine Hamachi ip in sysinstall oder wenn ich die bei daroo das make_install done oder wie das heißt mache.
Hamachi ist als Netzwerkadapter ausgewählt
|
Navicat speichert nicht.
02/06/2010 - Metin2 Private Server - 5 Replies
moin moin,
hab mich mal an nem eigenen server rangesetzt(just4fun)
ich bekomme ihn auch ans laufen.mit mit dem "rain" charakter im spiel drinne.
ich wollte einige sachen in de database änder.also habe ich mir navicat besorgt.ich konnte auch auf die db zugreifen.
allerdings anders als beschrieben.ich benutze den ssh-tunnel,da bei mir bei der option allgemein(verbindung erstellen bei navicat) das passowrt 123456 nicht anerkannt wird.
in der db habe ich dann sachen...
|
Speichert Ip nicht
12/02/2009 - Metin2 - 2 Replies
Hey Leute,
also eig. funtzt mein p-server supüer aber ist i-ein fehler und jetzt ist die 2 ip weg hab schon 100 mal wieder eingegeben aber sie verschwindet immer wida wenn ich unten auf ok dann ok dann chancel chancel exit install und dann rc..... eingeben und dann zurücksetzen oder reboot.
Wieso speichert er die nicht?
MFG
brunsi
|
datenbank speichert nicht!
09/10/2008 - Flyff Private Server - 6 Replies
wenn ich mich einlogge udn ien paar schritte laufe oder stats hinzufüge udn dann relogge ist wenn ich wieder drinn bin alles wieder beim alten!
was kann ich machen?
€: noch ne frage was muss ich ändern damit der chara gm is??
|
All times are GMT +1. The time now is 08:34.
|
|