Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.44 KB | None | 0 0
  1. USE [CHARACTER_01_DBF]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[CHARACTER_STR] Script Date: 21/01/2020 03:24:51 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. ALTER proc [dbo].[CHARACTER_STR]
  10. @iGu CHAR(2) = 'S1',
  11. @im_idPlayer CHAR(7) = '0000001',
  12. @iserverindex CHAR(2) = '01',
  13. /**********************************************
  14. INSERT ¢¯e
  15. **********************************************/
  16. -- CHARACTER_TBL
  17. @iaccount VARCHAR(32) = '',
  18. @im_szName VARCHAR(32) = '',
  19. @iplayerslot INT = 0,
  20. @idwWorldID INT = 0,
  21. @im_dwIndex INT = 0,
  22. @im_vPos_x REAL = 0,
  23. @im_vPos_y REAL = 0,
  24. @im_vPos_z REAL = 0,
  25. @im_szCharacterKey VARCHAR(32) = '',
  26. @im_dwSkinSet INT = 0,
  27. @im_dwHairMesh INT = 0,
  28. @im_dwHairColor INT = 0,
  29. @im_dwHeadMesh INT = 0,
  30. @im_dwSex INT = 0,
  31. /**********************************************
  32. UPDATE ¢¯e
  33. **********************************************/
  34. -- CHARACTER_TBL
  35. @im_vScale_x REAL = 0,
  36. @im_dwMotion INT = 0,
  37. @im_fAngle REAL = 0,
  38. @im_nHitPoint INT = 0,
  39. @im_nManaPoint INT = 0,
  40. @im_nFatiguePoint INT = 0,
  41. @im_dwRideItemIdx INT = 0,
  42. @im_dwGold INT = 0,
  43. @im_nJob INT = 0,
  44. @im_pActMover VARCHAR(50) = '',
  45. @im_nStr INT = 0,
  46. @im_nSta INT = 0,
  47. @im_nDex INT = 0,
  48. @im_nInt INT = 0,
  49. @im_nLevel INT = 0,
  50. @im_nExp1 BIGINT = 0,
  51. @im_nExp2 BIGINT = 0,
  52. @im_aJobSkill VARCHAR(500) ='',
  53. @im_aLicenseSkill VARCHAR(500) ='',
  54. @im_aJobLv VARCHAR(500) ='',
  55. @im_dwExpertLv INT = 0,
  56. @im_idMarkingWorld INT = 0,
  57. @im_vMarkingPos_x REAL = 0,
  58. @im_vMarkingPos_y REAL = 0,
  59. @im_vMarkingPos_z REAL = 0,
  60. @im_nRemainGP INT = 0,
  61. @im_nRemainLP INT = 0,
  62. @im_nFlightLv INT = 0,
  63. @im_nFxp INT = 0,
  64. @im_nTxp INT = 0,
  65. @im_lpQuestCntArray VARCHAR(3072)= '',
  66. @im_chAuthority CHAR(1) = '',
  67. @im_dwMode INT = 0,
  68. @im_idparty INT = 0,
  69. @im_idMuerderer INT = 0,
  70. @im_nFame INT = 0,
  71. @im_nDeathExp BIGINT = 0,
  72. @im_nDeathLevel INT = 0,
  73. @im_dwFlyTime INT = 0,
  74. @im_nMessengerState INT = 0,
  75. @iTotalPlayTime INT = 0
  76. -------------- (ADD : Version8-PK System)
  77. ,@im_nPKValue int=0
  78. ,@im_dwPKPropensity int=0
  79. ,@im_dwPKExp int=0
  80. -- CARD_CUBE_TBL
  81. ,@im_Card VARCHAR(1980)= '',
  82. @im_Index_Card VARCHAR(215) = '',
  83. @im_ObjIndex_Card VARCHAR(215) = '',
  84. @im_Cube VARCHAR(1980)= '',
  85. @im_Index_Cube VARCHAR(215) = '',
  86. @im_ObjIndex_Cube VARCHAR(215) = '',
  87. -- INVENTORY_TBL
  88. @im_Inventory VARCHAR(MAX)= '',
  89. @im_apIndex VARCHAR(2500) = '',
  90. @im_adwEquipment VARCHAR(135) = '',
  91. @im_dwObjIndex VARCHAR(2500) = '',
  92. -- TASKBAR_TBL
  93. @im_aSlotApplet VARCHAR(3100)= '',
  94. -- TASKBAR_ITEM_TBL
  95. @im_aSlotItem VARCHAR(6885)= '',
  96. -- TASKBAR_TBL
  97. @im_aSlotQueue VARCHAR(225)= '',
  98. @im_SkillBar SMALLINT = 0,
  99. -- BANK_TBL
  100. @im_Bank VARCHAR(4290)= '',
  101. @im_apIndex_Bank VARCHAR(215)= '',
  102. @im_dwObjIndex_Bank VARCHAR(215)= '',
  103. @im_dwGoldBank INT = 0,
  104. @im_nFuel INT = -1,
  105. @im_tmAccFuel INT = 0,
  106. @im_dwSMTime VARCHAR(2560)='',
  107. @iSkillInfluence varchar(2048) ='',
  108. @im_dwSkillPoint INT = 0,
  109. @im_aCompleteQuest varchar(3072) = '',
  110. @im_extInventory varchar(max) = '',
  111. @im_extBank varchar(2000) = '',
  112. @im_InventoryPiercing varchar(max) = '',
  113. @im_BankPiercing varchar(8000) = '',
  114. @im_dwReturnWorldID INT = 1,
  115. @im_vReturnPos_x REAL = 0,
  116. @im_vReturnPos_y REAL = 0,
  117. @im_vReturnPos_z REAL = 0,
  118. -------------- ( Version 7 : Skill Update)
  119. @im_SkillPoint int=0,
  120. @im_SkillLv int=0,
  121. @im_SkillExp bigint=0,
  122. -------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Class)
  123. @idwEventFlag bigint=0,
  124. @idwEventTime int=0,
  125.  
  126.  
  127. @idwEventElapsed int=0
  128. -------------- (ADD : Version8-Angel System)
  129. ,@im_nAngelExp bigint=0
  130. ,@im_nAngelLevel int=0
  131. --------------- Version 9 A©¬¡Æ¢® ¨¬I¨¬¨¢ Pet¡Æu¡¤A
  132. ,@iszInventoryPet varchar(max) = '$'
  133.  
  134. ,@iszBankPet varchar(4200) = '$'
  135. ,@im_dwPetId int = -1
  136.  
  137. ,@im_nExpLog int = 0
  138. ,@im_nAngelExpLog int = 0
  139. ,@im_nCoupon int = 0
  140. --------------- ver. 13
  141. , @im_nHonor int = -1
  142. , @im_nLayer int = 0
  143. ---------- Ver 15
  144. --, @im_BankPW char(4) = '0000'
  145. , @im_aCheckedQuest varchar(100) =''
  146. , @im_nCampusPoint int = 0
  147. , @im_idCampus int = 0
  148.  
  149. --__LOGIN_EVENT
  150. , @im_tLastLoginPrize char(14) = ''
  151. , @im_sEventIdentifier varchar(50) = ''
  152. , @im_iOnlineDaysInEvent int = 0
  153. -- end __LOGIN_EVENT
  154.  
  155. /*******************************************************
  156. Gu ¡¾¢¬¨¬¨¢
  157. S : SELECT
  158. I : INSERT
  159. U : UPDATE
  160. D : DELETE
  161.  
  162.  
  163. 2005.04.11 updated
  164.  
  165. ALTER TABLE CHARACTER_TBL ADD m_aCompleteQuest varchar(1024) NULL
  166. ALTER TABLE CHARACTER_TBL ALTER COLUMN m_lpQuestCntArray VARCHAR(3072) NULL
  167.  
  168. *******************************************************/
  169. AS
  170. set nocount on
  171. declare @last_connect tinyint
  172. set @last_connect = 1
  173.  
  174. DECLARE @om_chLoginAuthority CHAR(1),@oaccount VARCHAR(32),@oplayerslot INT
  175.  
  176. IF @iGu = 'S2' -- ¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
  177. BEGIN
  178. IF @iaccount = '' OR @im_szName = ''
  179. BEGIN
  180. SELECT m_chAuthority = '',fError = '1', fText = '¨úIE¡Ì¨¡©÷¢¬©÷'
  181. RETURN
  182. END
  183.  
  184. select playerslot,max(m_idPlayer) as m_idplayer
  185. into #temp_realPlayerslot
  186. from dbo.CHARACTER_TBL A
  187. where A.isblock = 'F' AND A.account = @iaccount AND A.serverindex = @iserverindex
  188. group by playerslot
  189.  
  190. SELECT A.dwWorldID,
  191. A.m_szName,
  192. A.playerslot,
  193. A.End_Time,
  194. A.BlockTime,
  195. A.m_dwIndex,
  196. A.m_idPlayer,
  197. A.m_idparty,
  198. A.m_dwSkinSet,
  199. A.m_dwHairMesh,
  200. A.m_dwHeadMesh,
  201. A.m_dwHairColor,
  202. A.m_dwSex,
  203. A.m_nJob,
  204. A.m_nLevel,
  205. A.m_vPos_x,
  206. A.m_vPos_y,
  207. A.m_vPos_z,
  208. A.m_nStr,
  209. A.m_nSta,
  210. A.m_nDex,
  211. A.m_nInt,
  212. A.m_aJobLv,
  213. A.m_chAuthority,
  214. A.m_idCompany,
  215. A.m_nMessengerState,
  216. B.m_Inventory,
  217. B.m_apIndex,
  218. B.m_adwEquipment,
  219. B.m_dwObjIndex,
  220. m_idGuild = CASE WHEN C.m_idGuild IS NULL THEN '0' ELSE C.m_idGuild END ,
  221. m_idWar = CASE WHEN C.m_idWar IS NULL THEN '0' ELSE C.m_idWar END,
  222. D.m_extInventory,
  223. D.m_InventoryPiercing,
  224. ------------- ver. 13
  225. A.m_nHonor,
  226. last_connect = @last_connect
  227. FROM CHARACTER_TBL as A
  228. inner join INVENTORY_TBL as B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
  229. inner join INVENTORY_EXT_TBL as D on B.serverindex = D.serverindex and B.m_idPlayer = D.m_idPlayer
  230. inner join #temp_realPlayerslot as ttt on A.m_idPlayer = ttt.m_idPlayer AND A.playerslot= ttt.playerslot
  231. left outer join GUILD_MEMBER_TBL as C on D.m_idPlayer = C.m_idPlayer and D.serverindex = C.serverindex
  232. WHERE A.isblock = 'F'
  233. AND A.account = @iaccount
  234. AND A.serverindex = @iserverindex
  235. ORDER BY A.playerslot
  236.  
  237. insert into CHARACTER_TBL_penya_check (account, m_szName, m_dwGold, check_sec, serverindex)
  238. select @iaccount, m_szName, m_dwGold, 9, @iserverindex
  239. from CHARACTER_TBL (nolock)
  240. where account = @iaccount and serverindex = @iserverindex and TotalPlayTime < 1 and m_dwGold >= 1
  241.  
  242. RETURN
  243. END
  244. /*
  245.  
  246. ¨ö¨ö¡¤O¢¯¢® ¥ìu¢¬¡Í CA¡¤©öAI¨úi¢¬¢ç¨ö¨¬¨¡¢ç AI¨¬¡ÍAa¢¬¢çA¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a
  247. ex )
  248. CHARACTER_STR 'S2',@im_idPlayer (iMode),@iserverindex,@iaccount,@im_szName (iPassword)
  249. CHARACTER_STR 'S2','0','02','seghope','1234'
  250.  
  251.  
  252. */
  253.  
  254. ELSE
  255. IF @iGu = 'S3' -- ¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
  256. BEGIN
  257. SELECT m_szName, m_idPlayer,m_idCompany
  258. FROM CHARACTER_TBL
  259. WHERE serverindex = @iserverindex
  260. -- AND isblock = 'F'
  261. ORDER BY m_idPlayer
  262. RETURN
  263. END
  264. /*
  265.  
  266. ¨ù¡©©öo¡Æ¢® A©øA¨ö¨öCCaA¡í CO¢¥e A©ø¢¬?AIAC idPlayer¢¬| ¢¥U ¡Æ¢®Ao¡Æi¢¯E
  267. ex )
  268. CHARACTER_STR 'S3','',@iserverindex
  269. CHARACTER_STR 'S3','','01'
  270.  
  271.  
  272.  
  273. */
  274.  
  275. ELSE
  276. IF @iGu = 'S4' -- A©¬¡Æ¢®CO ¨ú¨¡AIAU E¢çAI
  277. BEGIN
  278.  
  279. declare @s4_account varchar(32), @i1_e_date datetime
  280.  
  281. declare @q1 nvarchar(4000)
  282.  
  283. set @q1 = '
  284. SELECT Item_Name, Item_count, m_nAbilityOption, m_nNo, m_bItemResist, m_nResistAbilityOption,
  285. m_bCharged, nPiercedSize, adwItemId0, adwItemId1, adwItemId2, adwItemId3, adwItemId4,
  286. m_dwKeepTime, nRandomOptItemId,
  287. 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,
  288. 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
  289. FROM ITEM_SEND_TBL
  290. WHERE m_idPlayer = @im_idPlayer
  291. AND serverindex = @iserverindex
  292. AND ItemFlag = 0'
  293. exec sp_executesql @q1, N'@im_idPlayer char(7), @iserverindex char(2)', @im_idPlayer, @iserverindex
  294. RETURN
  295. END
  296. /*
  297.  
  298.  
  299. ¨ú¨¡AIAU E¢çAI
  300. ex )
  301. CHARACTER_STR 'S4',@im_idPlayer,@iserverindex
  302. CHARACTER_STR 'S4','000001','01'
  303.  
  304. */
  305.  
  306. ELSE
  307. IF @iGu = 'S5' -- ¨ú¨¡AIAU Ao¡¾¨­EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
  308. BEGIN
  309. -- DELETE ITEM_SEND_TBL
  310. UPDATE ITEM_SEND_TBL SET ProvideDt=getdate(), ItemFlag=1
  311. WHERE m_nNo = @iplayerslot
  312. IF @@ROWCOUNT = 0
  313. SELECT fError = '0'
  314. ELSE
  315. SELECT fError = '1'
  316. RETURN
  317. END
  318. /*
  319.  
  320. ¨ú¨¡AIAU Ao¡¾¨­EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
  321. ex )
  322. CHARACTER_STR 'S5',@im_idPlayer,@iserverindex,@iaccount
  323. CHARACTER_STR 'S5','000001','01','¨¬©ªAU¡¤c',1,1
  324. */
  325.  
  326. ELSE
  327. IF @iGu = 'S6' -- ¡íeA|CO ¨ú¨¡AIAU E¢çAI
  328.  
  329. BEGIN
  330. SELECT Item_Name,
  331. Item_count,
  332. m_nAbilityOption,
  333. m_nNo,
  334. State,
  335. m_bItemResist,
  336. m_nResistAbilityOption
  337. FROM ITEM_REMOVE_TBL
  338. WHERE m_idPlayer = @im_idPlayer
  339. AND serverindex = @iserverindex
  340. AND ItemFlag = 0
  341. RETURN
  342. END
  343. /*
  344. ¨ú¨¡AIAU E¢çAI
  345. ex )
  346. CHARACTER_STR 'S6',@im_idPlayer,@iserverindex
  347. CHARACTER_STR 'S6','000001','01'
  348. */
  349.  
  350. ELSE
  351. IF @iGu = 'S7' -- ¨ú¨¡AIAU ¡íeA|EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
  352. BEGIN
  353. -- DELETE ITEM_REMOVE_TBL
  354. UPDATE ITEM_REMOVE_TBL SET DeleteDt=getdate(), ItemFlag=1
  355. WHERE m_nNo = @iplayerslot
  356.  
  357. IF @@ROWCOUNT = 0
  358. SELECT fError = '0'
  359. ELSE
  360. SELECT fError = '1'
  361. RETURN
  362. END
  363. /*
  364. ¨ú¨¡AIAU Ao¡¾¨­EA A¡¿AI¨¬i¢¯¢®¨ù¡© ¨ú¨¡AIAU ¡íeA|
  365. ex )
  366. CHARACTER_STR 'S7',@im_idPlayer,@iserverindex,@iaccount
  367. CHARACTER_STR 'S7','000001','01','¨¬©ªAU¡¤c',1,1
  368. */
  369.  
  370. IF @iGu = 'S8' -- ¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a
  371. BEGIN
  372.  
  373.  
  374. SELECT @om_chLoginAuthority = m_chLoginAuthority
  375. FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL_DETAIL
  376. WHERE account = @iaccount
  377.  
  378.  
  379. SELECT m_chLoginAuthority = @om_chLoginAuthority,
  380. A.account,
  381. A.m_idPlayer,
  382. A.playerslot,
  383. A.serverindex,
  384. A.dwWorldID,
  385. A.m_szName,
  386. A.m_dwIndex,
  387. A.m_vScale_x,
  388. A.m_dwMotion,
  389. A.m_vPos_x,
  390. A.m_vPos_y,
  391. A.m_vPos_z,
  392. A.m_fAngle,
  393. A.m_szCharacterKey,
  394. A.m_idPlayer,
  395. A.m_nHitPoint,
  396. A.m_nManaPoint,
  397. A.m_nFatiguePoint,
  398. A.m_nFuel,
  399. A.m_dwSkinSet,
  400. A.m_dwHairMesh,
  401. A.m_dwHairColor,
  402. A.m_dwHeadMesh,
  403. A.m_dwSex,
  404. A.m_dwRideItemIdx,
  405. A.m_dwGold,
  406. A.m_nJob,
  407. A.m_pActMover,
  408. A.m_nStr,
  409. A.m_nSta,
  410. A.m_nDex,
  411. A.m_nInt,
  412. A.m_nLevel,
  413.  
  414. A.m_nMaximumLevel,
  415. A.m_nExp1,
  416. A.m_nExp2,
  417. A.m_aJobSkill,
  418. A.m_aLicenseSkill,
  419. A.m_aJobLv,
  420. A.m_dwExpertLv,
  421. A.m_idMarkingWorld,
  422. A.m_vMarkingPos_x,
  423. A.m_vMarkingPos_y,
  424. A.m_vMarkingPos_z,
  425. A.m_nRemainGP,
  426. A.m_nRemainLP,
  427. A.m_nFlightLv,
  428. A.m_nFxp,
  429. A.m_nTxp,
  430. A.m_lpQuestCntArray,
  431. m_aCompleteQuest = ISNULL(A.m_aCompleteQuest,'$'),
  432. A.m_chAuthority,
  433. A.m_dwMode,
  434. A.m_idparty,
  435. A.m_idCompany,
  436. A.m_idMuerderer,
  437. A.m_nFame,
  438. A.m_nDeathExp,
  439. A.m_nDeathLevel,
  440. A.m_dwFlyTime,
  441. A.m_nMessengerState,
  442. A.End_Time,
  443. A.BlockTime,
  444. A.blockby,
  445. A.isblock,
  446. A.TotalPlayTime,
  447. A.CreateTime,
  448. A.m_dwSkillPoint,
  449. B.m_aSlotApplet,
  450. B.m_aSlotQueue,
  451. B.m_SkillBar,
  452. C.m_aSlotItem,
  453. D.m_Inventory,
  454. D.m_apIndex,
  455. D.m_adwEquipment,
  456. D.m_dwObjIndex,
  457. m_idGuild = ISNULL(G.m_idGuild,'0'),
  458. m_idWar = ISNULL(G.m_idWar,'0'),
  459. A.m_tmAccFuel,
  460. A.m_tGuildMember,
  461. m_dwSMTime = ISNULL(H.m_dwSMTime,'NULL') ,
  462. SkillInfluence = ISNULL(E.SkillInfluence,'$'),
  463. F.m_extInventory,
  464. F.m_InventoryPiercing,
  465. A.m_dwReturnWorldID,
  466. A.m_vReturnPos_x,
  467. A.m_vReturnPos_y,
  468. A.m_vReturnPos_z,
  469. last_connect = @last_connect,
  470. A.m_SkillPoint,
  471. A.m_SkillLv,
  472. A.m_SkillExp,
  473. -------------- (2006 11 13 A©¬¡Æ¢® ¨¬I¨¬¨¢ : Attedant Event)
  474. A.dwEventFlag,
  475. A.dwEventTime,
  476. A.dwEventElapsed
  477. -------------- (Version8 : PK System)
  478. ,A.PKValue as m_nPKValue
  479. ,A.PKPropensity as m_dwPKPropensity
  480. ,A.PKExp as m_dwPKExp
  481. -------------- (Version8 : Angel System)
  482. ,A.AngelExp as m_nAngelExp
  483. ,A.AngelLevel as m_nAngelLevel
  484. ------------------- Version9 Pet
  485.  
  486. ,F.szInventoryPet as szInventoryPet
  487. ,A.m_dwPetId
  488. , A.m_nExpLog, A.m_nAngelExpLog
  489. ,m_nCoupon
  490. ------------ ver. 13
  491. , A.m_nLayer
  492. ---------- Ver 15
  493. , A.m_aCheckedQuest
  494. , A.m_nCampusPoint
  495. , A.idCampus
  496. , isnull(R.m_nRestPoint, 0) m_nRestPoint
  497. , isnull(R.m_LogOutTime, 0) m_LogOutTime
  498. --__LOGIN_EVENT
  499. , A.m_tLastLoginPrize
  500. , A.m_sEventIdentifier
  501. , A.m_iOnlineDaysInEvent
  502. -- end __LOGIN_EVENT
  503. FROM CHARACTER_TBL A
  504. inner join TASKBAR_TBL B on A.m_idPlayer = B.m_idPlayer and A.serverindex = B.serverindex
  505. inner join TASKBAR_ITEM_TBL C on B.m_idPlayer = C.m_idPlayer and B.serverindex = C.serverindex
  506. inner join INVENTORY_TBL D on C.m_idPlayer = D.m_idPlayer and C.serverindex = D.serverindex
  507. inner join SKILLINFLUENCE_TBL E on D.m_idPlayer = E.m_idPlayer and D.serverindex = E.serverindex
  508. inner join INVENTORY_EXT_TBL F on E.m_idPlayer = F.m_idPlayer and E.serverindex = F.serverindex
  509. left outer join GUILD_MEMBER_TBL G on F.serverindex = G.serverindex and F.m_idPlayer = G.m_idPlayer
  510. left outer join BILING_ITEM_TBL H on F.serverindex = H.serverindex and F.m_idPlayer = H.m_idPlayer
  511. left outer join tblRestPoint R on F.serverindex = R.serverindex and F.m_idPlayer = R.m_idPlayer
  512. WHERE A.m_idPlayer = @im_idPlayer
  513. AND A.serverindex = @iserverindex
  514. AND A.account = lower(@iaccount)
  515. AND A.isblock = 'F' -- fix
  516.  
  517. insert into CHARACTER_TBL_validity_check (m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, sum_ability, CreateTime)
  518. select m_idPlayer, serverindex, account, m_szName, TotalPlayTime, m_dwGold, m_nLevel, m_nJob, (m_nStr + m_nSta + m_nDex + m_nInt), CreateTime
  519. from CHARACTER_TBL (nolock)
  520. where m_idPlayer = @im_idPlayer and TotalPlayTime <= 1
  521. and (m_dwGold >= 1 or m_nLevel >= 2 or m_nJob >= 1 or (m_nStr + m_nSta + m_nDex + m_nInt) > 60)
  522.  
  523.  
  524. declare @m_dwGold_old bigint, @m_dwGold_now bigint
  525. select @m_dwGold_old = m_dwGold from tblLogout_Penya (nolock) where m_idPlayer = @im_idPlayer
  526. select @m_dwGold_now = m_dwGold from CHARACTER_TBL (nolock) where serverindex = @iserverindex and m_idPlayer = @im_idPlayer
  527. if (@m_dwGold_old <> @m_dwGold_now)
  528. begin
  529. insert into tblLogout_Penya_Diff_Log (serverindex, m_idPlayer, m_dwGold_old, regdate_old, m_dwGold_now)
  530. select serverindex, m_idPlayer, @m_dwGold_old, regdate, @m_dwGold_now
  531. from tblLogout_Penya (nolock)
  532. where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
  533. end
  534.  
  535. -- ©ö©£A¨Ï A¢´¨¬¢¬ ¡Æ¢®A¢ç¢¯A¡¾a account ¨¬¡Æ
  536.  
  537. -- DECLARE @bank TABLE (m_idPlayer CHAR(6),serverindex CHAR(2),playerslot INT)
  538. --
  539. -- INSERT @bank
  540. -- (m_idPlayer,serverindex,playerslot)
  541. -- SELECT m_idPlayer,serverindex,playerslot
  542. -- FROM CHARACTER_TBL
  543. -- WHERE account = @iaccount
  544. -- AND isblock = 'F'
  545. -- ORDER BY playerslot
  546.  
  547. SELECT a.m_idPlayer,
  548. c.playerslot,
  549. a.m_Bank,
  550. a.m_apIndex_Bank,
  551. a.m_dwObjIndex_Bank,
  552. a.m_dwGoldBank,
  553. a.m_BankPw,
  554. b.m_extBank,
  555. b.m_BankPiercing
  556. ,b.szBankPet
  557. FROM dbo.BANK_TBL a,
  558. dbo.BANK_EXT_TBL b,
  559. dbo.CHARACTER_TBL c
  560. WHERE a.m_idPlayer = b.m_idPlayer
  561. AND a.serverindex = b.serverindex
  562. AND b.m_idPlayer = c.m_idPlayer
  563. AND b.serverindex = c.serverindex
  564. AND c.account = @iaccount
  565. AND c.isblock = 'F'
  566. ORDER BY c.playerslot
  567.  
  568. -- Pocket Info
  569. SELECT a.nPocket,
  570. a.szItem,
  571. a.szIndex,
  572. a.szObjIndex,
  573. a.bExpired,
  574. a.tExpirationDate,
  575. b.szExt,
  576. b.szPiercing,
  577. b.szPet
  578. FROM tblPocket as a inner join tblPocketExt as b
  579. on a.serverindex = b.serverindex AND a.idPlayer = b.idPlayer AND a.nPocket = b.nPocket
  580. WHERE a.serverindex = @iserverindex AND a.idPlayer = @im_idPlayer
  581. ORDER BY a.nPocket
  582.  
  583. RETURN
  584. END
  585. /*
  586.  
  587. ¥ì¡ÍAIAI AuA¨ù ¡Æ¢®A¢ç¢¯A¡¾a New
  588. ex )
  589. CHARACTER_STR 'S8',@im_idPlayer,@iserverindex,@iaccount
  590. CHARACTER_STR 'S8','425120','01','ata3k'
  591. */
  592. ELSE
  593. IF @iGu = 'U1' -- A©ø¢¬?AI AuAa
  594. BEGIN
  595. UPDATE CHARACTER_TBL
  596. SET dwWorldID = @idwWorldID,
  597. m_dwIndex = @im_dwIndex,
  598. m_dwSex = @im_dwSex,
  599. m_vScale_x = @im_vScale_x,
  600. m_dwMotion = @im_dwMotion,
  601. m_vPos_x = @im_vPos_x,
  602. m_vPos_y = @im_vPos_y,
  603. m_vPos_z = @im_vPos_z,
  604. m_dwHairMesh = @im_dwHairMesh,
  605. m_dwHairColor = @im_dwHairColor,
  606. m_dwHeadMesh = @im_dwHeadMesh, -- 2004/11/08 A©¬¡Æ¢®
  607. m_fAngle = 0, --@im_fAngle,
  608. m_szCharacterKey = @im_szCharacterKey,
  609. m_nHitPoint = @im_nHitPoint,
  610. m_nManaPoint = @im_nManaPoint,
  611. m_nFatiguePoint = @im_nFatiguePoint,
  612. m_nFuel = @im_nFuel,
  613. m_dwRideItemIdx = @im_dwRideItemIdx,
  614. m_dwGold = @im_dwGold,
  615. m_nJob = @im_nJob,
  616. m_pActMover = @im_pActMover,
  617. m_nStr = @im_nStr,
  618. m_nSta = @im_nSta,
  619. m_nDex = @im_nDex,
  620. m_nInt = @im_nInt,
  621. m_nLevel = @im_nLevel,
  622. m_nMaximumLevel = CASE WHEN m_nMaximumLevel < @im_nLevel THEN @im_nLevel ELSE m_nMaximumLevel END,
  623. m_nExp1 = @im_nExp1,
  624. m_nExp2 = @im_nExp2,
  625. m_aJobSkill = @im_aJobSkill,
  626. m_aLicenseSkill = @im_aLicenseSkill,
  627. m_aJobLv = @im_aJobLv,
  628. m_dwExpertLv = @im_dwExpertLv,
  629. m_idMarkingWorld = @im_idMarkingWorld,
  630. m_vMarkingPos_x = @im_vMarkingPos_x,
  631. m_vMarkingPos_y = @im_vMarkingPos_y,
  632. m_vMarkingPos_z = @im_vMarkingPos_z,
  633. m_nRemainGP = @im_nRemainGP,
  634. m_nRemainLP = @im_nRemainLP,
  635. m_nFlightLv = @im_nFlightLv,
  636. m_nFxp = @im_nFxp,
  637. m_nTxp = @im_nTxp,
  638. m_lpQuestCntArray = @im_lpQuestCntArray,
  639. m_aCompleteQuest = @im_aCompleteQuest,
  640. m_dwMode = @im_dwMode,
  641. m_idparty = @im_idparty,
  642. m_idMuerderer = @im_idMuerderer,
  643. m_nFame = @im_nFame,
  644. m_nDeathExp = @im_nDeathExp,
  645. m_nDeathLevel = @im_nDeathLevel,
  646. --m_dwFlyTime = m_dwFlyTime + @im_dwFlyTime,
  647. m_dwFlyTime = @im_dwFlyTime,
  648. m_nMessengerState = @im_nMessengerState,
  649. TotalPlayTime = TotalPlayTime + @iTotalPlayTime,
  650. m_tmAccFuel = @im_tmAccFuel,
  651. m_dwSkillPoint = @im_dwSkillPoint,
  652. m_dwReturnWorldID= @im_dwReturnWorldID,
  653. m_vReturnPos_x = @im_vReturnPos_x,
  654. m_vReturnPos_y = @im_vReturnPos_y,
  655. m_vReturnPos_z = @im_vReturnPos_z,
  656. m_SkillPoint =@im_SkillPoint,
  657. m_SkillLv =@im_SkillLv,
  658. m_SkillExp =@im_SkillExp
  659. -------------- (A©¬¡Æ¢® ¨¬I¨¬¨¢ : 2006 11 13 Attendant Event)
  660. , dwEventFlag =@idwEventFlag
  661. , dwEventTime =@idwEventTime
  662. , dwEventElapsed =@idwEventElapsed
  663. -------------- (ADD: Version8-PK System)
  664.  
  665. , PKValue = @im_nPKValue
  666. , PKPropensity = @im_dwPKPropensity
  667. , PKExp = @im_dwPKExp
  668. -------------- (ADD: Version8-Angel System)
  669. , AngelExp = @im_nAngelExp
  670. , AngelLevel = @im_nAngelLevel
  671. --------------------- Version9 Pet
  672. , m_dwPetId = @im_dwPetId
  673.  
  674. , m_nExpLog = @im_nExpLog
  675. , m_nAngelExpLog = @im_nAngelExpLog
  676. , m_nCoupon = @im_nCoupon
  677. ------------- ver. 13
  678. , m_nHonor = @im_nHonor
  679. , m_nLayer = @im_nLayer
  680. ---------- Ver 15
  681. , m_aCheckedQuest = @im_aCheckedQuest
  682. , m_nCampusPoint = @im_nCampusPoint
  683. , idCampus = @im_idCampus
  684.  
  685. --__LOGIN_EVENT
  686. , m_tLastLoginPrize = @im_tLastLoginPrize
  687. , m_sEventIdentifier = @im_sEventIdentifier
  688. , m_iOnlineDaysInEvent = @im_iOnlineDaysInEvent
  689. -- end __LOGIN_EVENT
  690. WHERE m_idPlayer = @im_idPlayer
  691. AND serverindex = @iserverindex
  692.  
  693. -- if object_id('QUEST_TBL') is not null
  694. -- EXEC QUEST_STR 'A1',@im_idPlayer,@iserverindex,@im_lpQuestCntArray
  695.  
  696. update tblLogout_Penya
  697. set m_dwGold = @im_dwGold, regdate = getdate()
  698. where m_idPlayer = @im_idPlayer and serverindex = @iserverindex
  699.  
  700. IF @im_nLevel>=120 BEGIN
  701. UPDATE CHARACTER_TBL
  702. SET FinalLevelDt=getdate()
  703. WHERE serverindex=@iserverindex
  704. AND m_idPlayer=@im_idPlayer
  705. AND FinalLevelDt='2000-01-01'
  706. END
  707.  
  708. --¨ùUCo¨ù¢ç ¢¯aA¡í¡ícC¡¿ ¨¬o¢¬¥ì ¡Æu¡¤A
  709. IF @im_dwSMTime > ''
  710. BEGIN
  711. IF EXISTS(SELECT * FROM BILING_ITEM_TBL WHERE m_idPlayer= @im_idPlayer AND serverindex = @iserverindex)
  712. UPDATE BILING_ITEM_TBL
  713. SET m_dwSMTime = @im_dwSMTime
  714. WHERE m_idPlayer = @im_idPlayer
  715. AND serverindex = @iserverindex
  716. ELSE
  717. INSERT BILING_ITEM_TBL
  718. (m_idPlayer,serverindex,m_dwSMTime)
  719. VALUES
  720. (@im_idPlayer,@iserverindex,@im_dwSMTime)
  721. END
  722. ELSE
  723. DELETE BILING_ITEM_TBL
  724. WHERE m_idPlayer = @im_idPlayer
  725. AND serverindex = @iserverindex
  726.  
  727.  
  728. -- UPDATE CARD_CUBE_TBL
  729. -- SET m_Card = @im_Card,
  730. -- m_apIndex_Card = @im_Index_Card,
  731. -- m_dwObjIndex_Card= @im_ObjIndex_Card,
  732. -- m_Cube = @im_Cube,
  733. -- m_apIndex_Cube = @im_Index_Cube,
  734. -- m_dwObjIndex_Cube=@im_ObjIndex_Cube
  735. -- WHERE m_idPlayer = @im_idPlayer
  736. -- AND serverindex = @iserverindex
  737.  
  738. UPDATE INVENTORY_TBL
  739. SET m_Inventory = @im_Inventory,
  740. m_apIndex = @im_apIndex,
  741. m_adwEquipment = @im_adwEquipment,
  742. m_dwObjIndex = @im_dwObjIndex
  743. WHERE m_idPlayer = @im_idPlayer
  744. AND serverindex = @iserverindex
  745.  
  746.  
  747.  
  748. UPDATE TASKBAR_TBL
  749. SET m_aSlotApplet = @im_aSlotApplet,
  750. m_aSlotQueue = @im_aSlotQueue,
  751. m_SkillBar = @im_SkillBar
  752. WHERE m_idPlayer = @im_idPlayer
  753. AND serverindex = @iserverindex
  754.  
  755.  
  756.  
  757.  
  758. UPDATE TASKBAR_ITEM_TBL
  759. SET m_aSlotItem = @im_aSlotItem
  760. WHERE m_idPlayer = @im_idPlayer
  761. AND serverindex = @iserverindex
  762.  
  763. UPDATE BANK_TBL
  764. SET m_Bank = @im_Bank,
  765. m_apIndex_Bank = @im_apIndex_Bank,
  766. m_dwObjIndex_Bank = @im_dwObjIndex_Bank,
  767. m_dwGoldBank = @im_dwGoldBank
  768. WHERE m_idPlayer = @im_idPlayer
  769. AND serverindex = @iserverindex
  770.  
  771. UPDATE SKILLINFLUENCE_TBL
  772. SET SkillInfluence = @iSkillInfluence
  773. WHERE m_idPlayer = @im_idPlayer
  774. AND serverindex = @iserverindex
  775.  
  776. UPDATE INVENTORY_EXT_TBL
  777. SET m_extInventory = @im_extInventory,
  778. m_InventoryPiercing= @im_InventoryPiercing
  779. ,szInventoryPet = @iszInventoryPet
  780. WHERE m_idPlayer = @im_idPlayer
  781. AND serverindex = @iserverindex
  782.  
  783. UPDATE BANK_EXT_TBL
  784. SET m_extBank = @im_extBank,
  785. m_BankPiercing = @im_BankPiercing
  786. , szBankPet = @iszBankPet
  787. WHERE m_idPlayer = @im_idPlayer
  788. AND serverindex = @iserverindex
  789.  
  790. SELECT fError = '1', fText = 'OK'
  791. RETURN
  792. END
  793. /*
  794.  
  795. A¢´¨¬¢¬¨ú¡À¥ì¡ÍAI¨¡¢ç
  796. ex )
  797. CHARACTER_STR 'C1', ALL ...
  798. CHARACTER_STR 'C1','000001','01' ...
  799. */
  800.  
  801. ELSE
  802. IF @iGu = 'U2' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
  803. BEGIN
  804. UPDATE CHARACTER_TBL
  805. SET TotalPlayTime = TotalPlayTime + @iplayerslot
  806. WHERE m_szName = @im_szName
  807. AND serverindex = @iserverindex
  808. RETURN
  809. END
  810. /*
  811.  
  812. AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´
  813. ex )
  814. CHARACTER_STR 'U2','',@iserverindex,'',@im_szName,@iplayerslot (@iTotalPlayTime)
  815. CHARACTER_STR 'U2','','01','','beat',10234
  816. */
  817.  
  818. ELSE
  819. IF @iGu = 'U3' --AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ new
  820. BEGIN
  821. UPDATE CHARACTER_TBL
  822. SET TotalPlayTime = TotalPlayTime + @iplayerslot
  823. WHERE m_idPlayer = @im_idPlayer
  824. AND serverindex = @iserverindex
  825. RETURN
  826. END
  827. /*
  828.  
  829. AN AI¢¯e¨öA¡Æ¡Ì ¨ùoA¢´ (new)
  830. ex )
  831. CHARACTER_STR 'U3',@im_idPlayer,@iserverindex,'','',@iplayerslot (@iTotalPlayTime)
  832. CHARACTER_STR 'U3','000001','01','','',10234
  833. */
  834.  
  835. ELSE
  836. IF @iGu = 'U4' --A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
  837. BEGIN
  838. IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_szName = @im_szName AND serverindex = @iserverindex)
  839. BEGIN
  840. SELECT fError = '0'
  841. END
  842. ELSE
  843. BEGIN
  844. UPDATE CHARACTER_TBL
  845. SET m_szName = @im_szName
  846. WHERE m_idPlayer = @im_idPlayer
  847. AND serverindex = @iserverindex
  848. SELECT fError = '1'
  849. END
  850. RETURN
  851. END
  852.  
  853.  
  854. -- Ver 15
  855. ELSE
  856. IF @iGu = 'U5' --¡ícA| ¨¡¡ÀAI¨¡¢ç ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
  857. BEGIN
  858. IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
  859. BEGIN
  860. UPDATE CHARACTER_TBL
  861. SET m_nCampusPoint = m_nCampusPoint + @iplayerslot
  862. WHERE m_idPlayer = @im_idPlayer
  863. AND serverindex = @iserverindex
  864.  
  865. declare @u5m_nCampusPoint int
  866.  
  867. select @u5m_nCampusPoint = m_nCampusPoint from CHARACTER_TBL (nolock) WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex
  868. SELECT fError = '1', @u5m_nCampusPoint m_nCampusPoint
  869. END
  870. ELSE
  871. RETURN
  872. END
  873. ELSE
  874. IF @iGu = 'U6' -- ¡ícA| ID ¨ú¡À¥ì¡ÍAI¨¡¢ç A©¬¡Æ¢®
  875. BEGIN
  876. IF EXISTS(SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
  877. BEGIN
  878. UPDATE CHARACTER_TBL
  879. SET idCampus = @iplayerslot
  880. WHERE m_idPlayer = @im_idPlayer
  881. AND serverindex = @iserverindex
  882. SELECT fError = '1'
  883. END
  884. ELSE
  885. BEGIN
  886. SELECT fError = '0'
  887. END
  888. RETURN
  889. END
  890.  
  891. /*
  892.  
  893.  
  894. A©ø¢¬?AI ¢¬i ¨¬?¡Æ©¡
  895. ex )
  896. CHARACTER_STR 'U4',@im_idPlayer,@iserverindex,@iaccount,@im_szName
  897. CHARACTER_STR 'U4','000001','01','','¡íu¨¬¡Æ¡Æ©ªAO'
  898. */
  899. ELSE
  900. IF @iGu = 'D1' -- A©ø¢¬?AI ¡íeA|
  901. BEGIN
  902. --impede deletar char
  903. select fError = '2'
  904. return
  905. --impede deletar char
  906. IF @im_szName = ''
  907. BEGIN
  908. SELECT fError = '1', fText = '2A¡À ¨¬n©ö¨¢©ö©ªE¡Ì ¨¡©÷¢¬©÷'
  909. RETURN
  910. END
  911. if not exists (select * from CHARACTER_TBL where m_idPlayer = @im_idPlayer and account = @iaccount and serverindex = @iserverindex)
  912. begin
  913. select fError = '1'
  914. return
  915. end
  916.  
  917. DECLARE @Exists int
  918. /*
  919. IF EXISTS(SELECT name from syscolumns where name='m_idPlayer' AND collation= 'Japanese_BIN')
  920. BEGIN
  921. IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (password = @im_szName OR member = 'B' ))
  922. SET @Exists = 1
  923. ELSE
  924. SET @Exists = 0
  925. END
  926. ELSE
  927. BEGIN
  928. -- IF EXISTS(SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account = @iaccount AND (id_no2 = @im_szName OR member = 'B' ))
  929. if exists (select * from BANK_TBL (nolock) where m_idPlayer = @im_idPlayer AND m_BankPw = @im_szName )
  930. SET @Exists = 1
  931. ELSE
  932. SET @Exists = 0
  933. END
  934. */
  935. set @Exists = 1
  936. IF @Exists > 0
  937. BEGIN
  938. DECLARE @currDate char(12)
  939. SET @currDate = CONVERT(CHAR(8),GETDATE(),112)
  940. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,GETDATE())),2)
  941. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,GETDATE())),2)
  942.  
  943.  
  944.  
  945. IF EXISTS(SELECT m_idPlayer FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex AND m_idWar > 0)
  946. BEGIN
  947. SELECT fError = '3', fText = '¡¾©¡¥ìaAuA©¬'
  948. RETURN
  949. END
  950. ELSE
  951. BEGIN
  952. UPDATE CHARACTER_TBL
  953. SET isblock = 'D',
  954. End_Time = @currDate ,
  955. BlockTime = LEFT(@currDate,8)
  956. WHERE m_idPlayer = @im_idPlayer
  957. AND serverindex = @iserverindex
  958.  
  959. UPDATE MESSENGER_TBL
  960. SET State = 'D'
  961. WHERE m_idPlayer = @im_idPlayer
  962. AND serverindex = @iserverindex
  963.  
  964. UPDATE MESSENGER_TBL
  965. SET State = 'D'
  966. WHERE f_idPlayer = @im_idPlayer
  967. AND serverindex = @iserverindex
  968.  
  969.  
  970.  
  971. IF EXISTS(SELECT m_idPlayer FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex)
  972. BEGIN
  973. SELECT fError = '4', fText = m_idGuild FROM GUILD_MEMBER_TBL WHERE m_idPlayer = @im_idPlayer AND serverindex = @iserverindex
  974. RETURN
  975.  
  976. END
  977. ELSE
  978. BEGIN
  979. SELECT fError = '0', fText = 'DELETE OK'
  980. RETURN
  981. END
  982.  
  983. END
  984. END
  985. ELSE
  986. BEGIN
  987. SELECT fError = '1', fText = 'AO©öI©ö©ªE¡Ì¨¡©÷¢¬©÷'
  988. RETURN
  989. END
  990. END
  991. /*
  992.  
  993. A©ø¢¬?AI ¡íeA|
  994. ex )
  995. CHARACTER_STR 'D1',@im_idPlayer,@iserverindex,@iaccount (isblock)
  996. CHARACTER_STR 'D1','001068','01','ata3k','1019311'
  997.  
  998. */
  999.  
  1000. ELSE
  1001. IF @iGu = 'I1' -- AE¡¾a A¢´¨¬¢¬ AO¡¤A
  1002. BEGIN
  1003.  
  1004. IF (SELECT COUNT(*) AS [Count] FROM [CHARACTER_TBL] WHERE [account] = @iaccount AND [isblock] = 'F' AND [playerslot] = @iplayerslot AND [serverindex] = @iserverindex) > 0
  1005. BEGIN
  1006. SELECT fError = '0', fText = 'Can not overwrite player!'
  1007. RETURN
  1008. END
  1009.  
  1010. -- 20100218 ¡íy¨ù¨¬ A©ø¢¬?AI 3¡Æ©ø AE¡Æu ¨öA
  1011. declare @i1_cnt int
  1012. select @i1_cnt = count(*) from CHARACTER_TBL where account = @iaccount and isblock = 'F'
  1013. if @i1_cnt > 2
  1014. begin
  1015. SELECT fError = '0', fText = 'A©ø¢¬?AI ¢¬©öA¨ö!'
  1016. RETURN
  1017. end
  1018.  
  1019. IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
  1020. WHERE (( lower(m_szName) = lower(@im_szName) ) OR (playerslot = @iPlayerslot AND account = @iaccount ) ) AND isblock = 'F' AND serverindex = @iserverindex )
  1021. BEGIN
  1022. SELECT fError = '0', fText = 'Can not overwrite player!' -- fix char overwrite
  1023. RETURN
  1024. END
  1025. ELSE
  1026. BEGIN
  1027. DECLARE
  1028. @om_idPlayer CHAR (7) ,
  1029. @om_vScale_x REAL ,
  1030. @om_dwMotion INT ,
  1031. @om_fAngle REAL ,
  1032. @om_nHitPoint INT ,
  1033. @om_nManaPoint INT ,
  1034. @om_nFatiguePoint INT ,
  1035. @om_dwRideItemIdx INT ,
  1036. @om_dwGold INT ,
  1037. @om_nJob INT ,
  1038. @om_pActMover VARCHAR(50) ,
  1039. @om_nStr INT ,
  1040. @om_nSta INT ,
  1041. @om_nDex INT ,
  1042. @om_nInt INT ,
  1043. @om_nLevel INT ,
  1044. @om_nExp1 BIGINT ,
  1045. @om_nExp2 BIGINT ,
  1046. @om_aJobSkill VARCHAR (500),
  1047. @om_aLicenseSkill VARCHAR (500),
  1048. @om_aJobLv VARCHAR (500),
  1049. @om_dwExpertLv INT ,
  1050. @om_idMarkingWorld INT ,
  1051. @om_vMarkingPos_x REAL ,
  1052. @om_vMarkingPos_y REAL ,
  1053. @om_vMarkingPos_z REAL ,
  1054. @om_nRemainGP INT ,
  1055. @om_nRemainLP INT ,
  1056. @om_nFlightLv INT ,
  1057. @om_nFxp INT ,
  1058. @om_nTxp INT ,
  1059. @om_lpQuestCntArray VARCHAR(1024),
  1060. @om_chAuthority CHAR(1) ,
  1061. @om_dwMode INT ,
  1062. @oblockby VARCHAR(32) ,
  1063. @oTotalPlayTime INT ,
  1064. @oisblock CHAR(1) ,
  1065. @oEnd_Time CHAR(12) ,
  1066. @om_Inventory VARCHAR(max),
  1067. @om_apIndex VARCHAR(1000) ,
  1068. @om_adwEquipment VARCHAR(135) ,
  1069. @om_aSlotApplet VARCHAR(3100),
  1070. @om_aSlotItem VARCHAR(6885),
  1071. @om_aSlotQueue VARCHAR(225),
  1072. @om_SkillBar SMALLINT,
  1073. @om_dwObjIndex VARCHAR(1000) ,
  1074. @om_Card VARCHAR(1980),
  1075. @om_Cube VARCHAR(1980),
  1076. @om_apIndex_Card VARCHAR(215) ,
  1077. @om_dwObjIndex_Card VARCHAR(215) ,
  1078. @om_apIndex_Cube VARCHAR(215) ,
  1079. @om_dwObjIndex_Cube VARCHAR(215) ,
  1080. @om_idparty INT ,
  1081. @om_idMuerderer INT ,
  1082. @om_nFame INT ,
  1083. @om_nDeathExp BIGINT ,
  1084. @om_nDeathLevel INT ,
  1085. @om_dwFlyTime INT ,
  1086. @om_nMessengerState INT ,
  1087. @om_Bank VARCHAR(4290),
  1088. @om_apIndex_Bank VARCHAR(215) ,
  1089. @om_dwObjIndex_Bank VARCHAR(215) ,
  1090. @om_dwGoldBank INT
  1091. ---------- Ver 15
  1092. , @om_aCheckedQuest varchar(100)
  1093. , @om_nCampusPoint int
  1094. , @om_idCampus int
  1095.  
  1096. IF EXISTS (SELECT * FROM CHARACTER_TBL WHERE serverindex = @iserverindex)
  1097. SELECT @om_idPlayer = RIGHT('0000000' + CONVERT(VARCHAR(7),MAX(m_idPlayer)+1),7)
  1098. FROM CHARACTER_TBL
  1099. WHERE serverindex = @iserverindex
  1100. ELSE
  1101. SELECT @om_idPlayer = '0000001'
  1102.  
  1103. SELECT @om_vScale_x = m_vScale_x,
  1104. @om_dwMotion = m_dwMotion,
  1105. @om_fAngle = m_fAngle,
  1106. @om_nHitPoint = m_nHitPoint,
  1107. @om_nManaPoint = m_nManaPoint,
  1108. @om_nFatiguePoint = m_nFatiguePoint,
  1109. @om_dwRideItemIdx = m_dwRideItemIdx,
  1110. @om_dwGold = m_dwGold,
  1111. @om_nJob = m_nJob,
  1112. @om_pActMover = m_pActMover,
  1113. @om_nStr = m_nStr,
  1114.  
  1115. @om_nSta = m_nSta,
  1116. @om_nDex = m_nDex,
  1117. @om_nInt = m_nInt,
  1118. @om_nLevel = m_nLevel,
  1119. @om_nExp1 = m_nExp1,
  1120. @om_nExp2 = m_nExp2,
  1121.  
  1122. @om_aJobSkill = m_aJobSkill,
  1123. @om_aLicenseSkill = m_aLicenseSkill,
  1124. @om_aJobLv = m_aJobLv,
  1125. @om_dwExpertLv = m_dwExpertLv,
  1126. @om_idMarkingWorld = m_idMarkingWorld,
  1127. @om_vMarkingPos_x = m_vMarkingPos_x,
  1128. @om_vMarkingPos_y = m_vMarkingPos_y,
  1129. @om_vMarkingPos_z = m_vMarkingPos_z,
  1130. @om_nRemainGP = m_nRemainGP,
  1131. @om_nRemainLP = m_nRemainLP,
  1132. @om_nFlightLv = m_nFlightLv,
  1133. @om_nFxp = m_nFxp,
  1134. @om_nTxp = m_nTxp,
  1135. @om_lpQuestCntArray = m_lpQuestCntArray,
  1136. @om_chAuthority = m_chAuthority,
  1137. @om_dwMode = m_dwMode,
  1138. @oblockby = blockby,
  1139. @oTotalPlayTime = TotalPlayTime,
  1140. @oisblock = isblock,
  1141. @oEnd_Time = CONVERT(CHAR(8),DATEADD(yy,3,GETDATE()),112) + '0000',
  1142. @om_Inventory = m_Inventory,
  1143. @om_apIndex = m_apIndex,
  1144. @om_adwEquipment = m_adwEquipment,
  1145. @om_aSlotApplet = m_aSlotApplet,
  1146. @om_aSlotItem = m_aSlotItem,
  1147. @om_aSlotQueue = m_aSlotQueue,
  1148. @om_SkillBar = m_SkillBar,
  1149. @om_dwObjIndex = m_dwObjIndex,
  1150. @om_Card = m_Card,
  1151. @om_Cube = m_Cube,
  1152. @om_apIndex_Card = m_apIndex_Card,
  1153. @om_dwObjIndex_Card = m_dwObjIndex_Card,
  1154. @om_apIndex_Cube = m_apIndex_Cube,
  1155. @om_dwObjIndex_Cube = m_dwObjIndex_Cube,
  1156. @om_idparty = m_idparty,
  1157. @om_idMuerderer = m_idMuerderer,
  1158. @om_nFame = m_nFame,
  1159. @om_nDeathExp = m_nDeathExp,
  1160. @om_nDeathLevel = m_nDeathLevel,
  1161. @om_dwFlyTime = m_dwFlyTime,
  1162. @om_nMessengerState = m_nMessengerState,
  1163. @om_Bank = m_Bank,
  1164. @om_apIndex_Bank = m_apIndex_Bank,
  1165. @om_dwObjIndex_Bank = m_dwObjIndex_Bank,
  1166. @om_dwGoldBank = m_dwGoldBank
  1167.  
  1168. FROM BASE_VALUE_TBL
  1169. WHERE g_nSex = @im_dwSex
  1170.  
  1171.  
  1172.  
  1173. INSERT CHARACTER_TBL
  1174. (
  1175. m_idPlayer,
  1176. serverindex,
  1177. account,
  1178. m_szName,
  1179. playerslot,
  1180. dwWorldID,
  1181. m_dwIndex,
  1182. m_vScale_x,
  1183. m_dwMotion,
  1184. m_vPos_x,
  1185. m_vPos_y,
  1186. m_vPos_z,
  1187. m_fAngle,
  1188. m_szCharacterKey,
  1189. m_nHitPoint,
  1190. m_nManaPoint,
  1191. m_nFatiguePoint,
  1192. m_nFuel,
  1193. m_dwSkinSet,
  1194. m_dwHairMesh,
  1195. m_dwHairColor,
  1196. m_dwHeadMesh,
  1197. m_dwSex,
  1198. m_dwRideItemIdx,
  1199. m_dwGold,
  1200. m_nJob,
  1201. m_pActMover,
  1202. m_nStr,
  1203. m_nSta,
  1204. m_nDex,
  1205. m_nInt,
  1206. m_nLevel,
  1207. m_nMaximumLevel,
  1208. m_nExp1,
  1209. m_nExp2,
  1210. m_aJobSkill,
  1211. m_aLicenseSkill,
  1212. m_aJobLv,
  1213. m_dwExpertLv,
  1214. m_idMarkingWorld,
  1215. m_vMarkingPos_x,
  1216. m_vMarkingPos_y,
  1217. m_vMarkingPos_z,
  1218. m_nRemainGP,
  1219. m_nRemainLP,
  1220. m_nFlightLv,
  1221. m_nFxp,
  1222. m_nTxp,
  1223. m_lpQuestCntArray,
  1224. m_aCompleteQuest,
  1225. m_chAuthority,
  1226. m_dwMode,
  1227. m_idparty,
  1228. m_idCompany,
  1229. m_idMuerderer,
  1230. m_nFame,
  1231. m_nDeathExp,
  1232. m_nDeathLevel,
  1233. m_dwFlyTime,
  1234. m_nMessengerState,
  1235. blockby,
  1236. TotalPlayTime,
  1237. isblock,
  1238. End_Time,
  1239. BlockTime,
  1240. CreateTime,
  1241. m_tmAccFuel,
  1242. m_tGuildMember,
  1243. m_dwSkillPoint,
  1244. m_dwReturnWorldID,
  1245. m_vReturnPos_x,
  1246. m_vReturnPos_y,
  1247. m_vReturnPos_z,
  1248. m_SkillPoint,
  1249. m_SkillLv,
  1250. m_SkillExp
  1251. ---------- Ver 15
  1252. , m_aCheckedQuest
  1253. , m_nCampusPoint
  1254. , idCampus
  1255. )
  1256. VALUES
  1257. (
  1258. @om_idPlayer,
  1259. @iserverindex,
  1260. @iaccount,
  1261. @im_szName,
  1262. @iplayerslot,
  1263. @idwWorldID,
  1264. @im_dwIndex,
  1265. @om_vScale_x,
  1266. @om_dwMotion,
  1267. @im_vPos_x,
  1268.  
  1269. @im_vPos_y,
  1270. @im_vPos_z,
  1271. @om_fAngle,
  1272. @im_szCharacterKey,
  1273. @om_nHitPoint,
  1274. @om_nManaPoint,
  1275. @om_nFatiguePoint,
  1276. -1, --m_nFuel
  1277. @im_dwSkinSet,
  1278. @im_dwHairMesh,
  1279. @im_dwHairColor,
  1280. @im_dwHeadMesh,
  1281. @im_dwSex,
  1282. @om_dwRideItemIdx,
  1283. @om_dwGold,
  1284. @om_nJob,
  1285. @om_pActMover,
  1286. @om_nStr,
  1287. @om_nSta,
  1288. @om_nDex,
  1289. @om_nInt,
  1290. @om_nLevel,
  1291. 1, --m_nMaximumLevel
  1292. @om_nExp1,
  1293. @om_nExp2,
  1294. @om_aJobSkill,
  1295. @om_aLicenseSkill,
  1296. @om_aJobLv,
  1297. @om_dwExpertLv,
  1298. @om_idMarkingWorld,
  1299. @om_vMarkingPos_x,
  1300. @om_vMarkingPos_y,
  1301. @om_vMarkingPos_z,
  1302. @om_nRemainGP,
  1303. @om_nRemainLP,
  1304. @om_nFlightLv,
  1305. @om_nFxp,
  1306. @om_nTxp,
  1307. @om_lpQuestCntArray,
  1308. '$', -- m_aCompleteQuest
  1309. @om_chAuthority,
  1310. @om_dwMode,
  1311. @om_idparty,
  1312. '000000', -- m_idCompany
  1313. @om_idMuerderer,
  1314. @om_nFame,
  1315. @om_nDeathExp,
  1316. @om_nDeathLevel,
  1317. @om_dwFlyTime ,
  1318. @om_nMessengerState,
  1319. @oblockby,
  1320. @oTotalPlayTime,
  1321. @oisblock,
  1322. @oEnd_Time,
  1323. CONVERT(CHAR(8),DATEADD(d,-1,GETDATE()),112),
  1324. GETDATE(),
  1325. 0,
  1326. CONVERT(CHAR(8),DATEADD(d,-1,GETDATE()),112)
  1327. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(hh,DATEADD(d,-1,GETDATE()))),2)
  1328. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(mi,DATEADD(d,-1,GETDATE()))),2)
  1329. + RIGHT('00' + CONVERT(VARCHAR(2),DATEPART(ss,DATEADD(d,-1,GETDATE()))),2),
  1330. 0, --m_dwSkillPoint
  1331. 1,
  1332. 0,
  1333. 0,
  1334. 0,
  1335. @im_SkillPoint,
  1336. @im_SkillLv,
  1337. @im_SkillExp
  1338. -- Ver 15
  1339. , '$'
  1340. , 0
  1341. , 0
  1342. )
  1343.  
  1344.  
  1345. INSERT INVENTORY_TBL
  1346. (
  1347. m_idPlayer,
  1348. serverindex,
  1349. m_Inventory,
  1350. m_apIndex,
  1351. m_adwEquipment,
  1352. m_dwObjIndex
  1353. )
  1354. VALUES
  1355. (
  1356. @om_idPlayer,
  1357. @iserverindex,
  1358. @om_Inventory,
  1359. @om_apIndex,
  1360. @om_adwEquipment,
  1361. @om_dwObjIndex
  1362. )
  1363.  
  1364.  
  1365. -- INSERT CARD_CUBE_TBL
  1366. -- (
  1367. -- m_idPlayer,
  1368. -- serverindex,
  1369. -- m_Card,
  1370. -- m_Cube,
  1371. -- m_apIndex_Card,
  1372. -- m_dwObjIndex_Card,
  1373. -- m_apIndex_Cube,
  1374. -- m_dwObjIndex_Cube
  1375. -- )
  1376. -- VALUES
  1377. -- (
  1378. -- @om_idPlayer,
  1379. -- @iserverindex,
  1380. -- @om_Card,
  1381. -- @om_Cube,
  1382. -- @om_apIndex_Card,
  1383. -- @om_dwObjIndex_Card,
  1384. -- @om_apIndex_Cube,
  1385. -- @om_dwObjIndex_Cube
  1386. -- )
  1387.  
  1388.  
  1389.  
  1390. IF @@SERVERNAME = 'WEB' OR @@SERVERNAME = 'SERVER4'
  1391. 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/$'
  1392.  
  1393. INSERT TASKBAR_TBL
  1394. (
  1395. m_idPlayer,
  1396. serverindex,
  1397. m_aSlotApplet,
  1398. m_aSlotQueue,
  1399. m_SkillBar
  1400.  
  1401. )
  1402. VALUES
  1403. (
  1404. @om_idPlayer,
  1405. @iserverindex,
  1406. @om_aSlotApplet,
  1407. @om_aSlotQueue,
  1408. @om_SkillBar
  1409. )
  1410.  
  1411.  
  1412. INSERT TASKBAR_ITEM_TBL
  1413. (
  1414. m_idPlayer,
  1415. serverindex,
  1416. m_aSlotItem
  1417. )
  1418. VALUES
  1419. (
  1420. @om_idPlayer,
  1421. @iserverindex,
  1422. @om_aSlotItem
  1423. )
  1424. INSERT BANK_TBL
  1425. (
  1426. m_idPlayer,
  1427. serverindex,
  1428. m_Bank,
  1429. m_BankPw,
  1430. m_apIndex_Bank,
  1431. m_dwObjIndex_Bank ,
  1432. m_dwGoldBank
  1433. )
  1434. VALUES
  1435. (
  1436. @om_idPlayer,
  1437. @iserverindex,
  1438. @om_Bank,
  1439. '0000', -- m_BankPw
  1440. -- @im_BankPW,
  1441. @om_apIndex_Bank,
  1442. @om_dwObjIndex_Bank,
  1443. @om_dwGoldBank
  1444. )
  1445.  
  1446. INSERT SKILLINFLUENCE_TBL
  1447. (
  1448. m_idPlayer,
  1449. serverindex,
  1450. SkillInfluence
  1451. )
  1452. VALUES
  1453. (
  1454. @om_idPlayer,
  1455. @iserverindex,
  1456. '$'
  1457. )
  1458.  
  1459. INSERT INVENTORY_EXT_TBL
  1460. (
  1461. m_idPlayer,
  1462. serverindex,
  1463. m_extInventory,
  1464. m_InventoryPiercing
  1465. )
  1466. VALUES
  1467. (
  1468. @om_idPlayer,
  1469. @iserverindex,
  1470. '$','$'
  1471. )
  1472.  
  1473. INSERT BANK_EXT_TBL
  1474. (
  1475. m_idPlayer,
  1476. serverindex,
  1477. m_extBank,
  1478. m_BankPiercing
  1479. )
  1480. VALUES
  1481. (
  1482. @om_idPlayer,
  1483. @iserverindex,
  1484. '$','$'
  1485. )
  1486.  
  1487. -- Skill Information
  1488. INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
  1489. VALUES (@iserverindex, @om_idPlayer, 1, 0, 0)
  1490. INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
  1491. VALUES (@iserverindex, @om_idPlayer, 2, 0, 1)
  1492. INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition)
  1493. VALUES (@iserverindex, @om_idPlayer, 3, 0, 2)
  1494.  
  1495. -- Pocket
  1496. INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
  1497. VALUES ( @iserverindex, @om_idPlayer, 0, '$', '$', '$', 0, 0 )
  1498.  
  1499. INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
  1500. VALUES ( @iserverindex, @om_idPlayer, 0, '$', '$', '$' )
  1501.  
  1502. INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
  1503. VALUES ( @iserverindex, @om_idPlayer, 1, '$', '$', '$', 1, 0 )
  1504.  
  1505. INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
  1506. VALUES ( @iserverindex, @om_idPlayer, 1, '$', '$', '$' )
  1507.  
  1508. INSERT tblPocket ( serverindex, idPlayer, nPocket, szItem, szIndex, szObjIndex, bExpired, tExpirationDate )
  1509. VALUES ( @iserverindex, @om_idPlayer, 2, '$', '$', '$', 1, 0 )
  1510.  
  1511. INSERT tblPocketExt ( serverindex, idPlayer, nPocket, szExt, szPiercing, szPet )
  1512. VALUES ( @iserverindex, @om_idPlayer, 2, '$', '$', '$' )
  1513.  
  1514. ------------------- ver. 13
  1515. insert into tblMaster_all (serverindex, m_idPlayer, sec)
  1516. select @iserverindex, @om_idPlayer, 1
  1517. insert into tblMaster_all (serverindex, m_idPlayer, sec)
  1518. select @iserverindex, @om_idPlayer, 2
  1519. insert into tblMaster_all (serverindex, m_idPlayer, sec)
  1520. select @iserverindex, @om_idPlayer, 3
  1521.  
  1522. ------------------- ver. 15
  1523. insert into tblRestPoint (serverindex, m_idPlayer)
  1524. select @iserverindex, @om_idPlayer
  1525.  
  1526. ------------ Penay check default setting
  1527. insert into tblLogout_Penya (serverindex, m_idPlayer)
  1528. select @iserverindex, @om_idPlayer
  1529.  
  1530.  
  1531. SELECT fError = '1', fText = 'OK',m_idPlayer=@om_idPlayer
  1532. RETURN
  1533. END
  1534. END
  1535.  
  1536. /*
  1537.  
  1538.  
  1539. ex )
  1540. CHARACTER_STR 'I1','',@iserverindex,@iaccount,@im_szName,@iplayerslot,@idwWorldID,
  1541. @im_dwIndex,@im_vPos_x,@im_vPos_y,@im_vPos_z,@im_szCharacterKey,
  1542. @im_dwSkinSet,@im_dwHairMesh,@im_dwHairColor,@im_dwHeadMesh,@im_dwSex
  1543. CHARACTER_STR 'I1','','01','beat','¡íu¨¬¡Æ¡Æ©ªAO3',0,0,
  1544. 0,0,0,0,'',
  1545. 0,0,0,0,0
  1546.  
  1547. */
  1548. set nocount off
  1549. RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement