Vietnam DB von TwiLight

  • Vietnam DB von TwiLight

    So da ich gerade dabei bin die Vietnam DB von Twilight zu entbuggen
    habe ich eine kleine Frage wie ich master.dbo.xp.crypt aus der Prozedur usp.dbo.creatnewaccount bekomme damit man Accounts machen kann ohne Xp Crypt. Hier mal die Account DBF

    Quellcode

    1. USE [ACCOUNT_DBF]
    2. GO
    3. /****** Object: User [ongate] Script Date: 10/28/2009 17:14:27 ******/
    4. CREATE USER [ongate] FOR LOGIN [ongate] WITH DEFAULT_SCHEMA=[dbo]
    5. GO
    6. /****** Object: User [billing] Script Date: 10/28/2009 17:14:27 ******/
    7. CREATE USER [billing] FOR LOGIN [billing] WITH DEFAULT_SCHEMA=[dbo]
    8. GO
    9. /****** Object: User [account] Script Date: 10/28/2009 17:14:27 ******/
    10. CREATE USER [account] FOR LOGIN [account] WITH DEFAULT_SCHEMA=[dbo]
    11. GO
    12. /****** Object: User [acc_on9@te] Script Date: 10/28/2009 17:14:27 ******/
    13. CREATE USER [acc_on9@te] FOR LOGIN [acc_on9@te] WITH DEFAULT_SCHEMA=[acc_on9@te]
    14. GO
    15. /****** Object: Schema [acc_on9@te] Script Date: 10/28/2009 17:14:28 ******/
    16. CREATE SCHEMA [acc_on9@te] AUTHORIZATION [account]
    17. GO
    18. /****** Object: Table [dbo].[CashHistory] Script Date: 10/28/2009 17:14:39 ******/
    19. SET ANSI_NULLS ON
    20. GO
    21. SET QUOTED_IDENTIFIER ON
    22. GO
    23. SET ANSI_PADDING ON
    24. GO
    25. CREATE TABLE [dbo].[CashHistory](
    26. [account] [varchar](32) NULL,
    27. [beforeCash] [int] NULL,
    28. [afterCash] [int] NULL,
    29. [regdate] [datetime] NULL
    30. ) ON [PRIMARY]
    31. GO
    32. SET ANSI_PADDING OFF
    33. GO
    34. /****** Object: Table [dbo].[ACCOUNT_TBL] Script Date: 10/28/2009 17:14:40 ******/
    35. SET ANSI_NULLS ON
    36. GO
    37. SET QUOTED_IDENTIFIER ON
    38. GO
    39. SET ANSI_PADDING ON
    40. GO
    41. CREATE TABLE [dbo].[ACCOUNT_TBL](
    42. [account] [varchar](32) NOT NULL,
    43. [password] [char](32) NOT NULL,
    44. [isuse] [char](1) NULL,
    45. [member] [char](1) NULL,
    46. [id_no1] [char](6) NULL,
    47. [id_no2] [char](255) NULL,
    48. [realname] [char](1) NULL,
    49. [reload] [char](1) NULL,
    50. [cash] [int] NULL
    51. ) ON [PRIMARY]
    52. GO
    53. SET ANSI_PADDING OFF
    54. GO
    55. CREATE UNIQUE CLUSTERED INDEX [ACCOUNT_ID1] ON [dbo].[ACCOUNT_TBL]
    56. (
    57. [account] DESC
    58. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    59. GO
    60. EXEC sys.sp_addextendedproperty @name=N'123', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ACCOUNT_TBL', @level2type=N'COLUMN',@level2name=N'account'
    61. GO
    62. EXEC sys.sp_addextendedproperty @name=N'123', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ACCOUNT_TBL', @level2type=N'COLUMN',@level2name=N'password'
    63. GO
    64. /****** Object: Table [dbo].[ACCOUNT_TBL_DETAIL] Script Date: 10/28/2009 17:14:40 ******/
    65. SET ANSI_NULLS ON
    66. GO
    67. SET QUOTED_IDENTIFIER ON
    68. GO
    69. SET ANSI_PADDING ON
    70. GO
    71. CREATE TABLE [dbo].[ACCOUNT_TBL_DETAIL](
    72. [account] [varchar](32) NOT NULL,
    73. [gamecode] [char](4) NOT NULL,
    74. [tester] [char](1) NOT NULL,
    75. [m_chLoginAuthority] [char](1) NULL,
    76. [regdate] [datetime] NOT NULL,
    77. [BlockTime] [char](8) NULL,
    78. [EndTime] [char](8) NULL,
    79. [WebTime] [char](8) NULL,
    80. [isuse] [char](1) NULL,
    81. [secession] [datetime] NULL,
    82. [email] [varchar](100) NOT NULL
    83. ) ON [PRIMARY]
    84. GO
    85. SET ANSI_PADDING OFF
    86. GO
    87. CREATE UNIQUE CLUSTERED INDEX [ACCOUNT_TBL_DETAIL_ID1] ON [dbo].[ACCOUNT_TBL_DETAIL]
    88. (
    89. [account] DESC,
    90. [gamecode] DESC
    91. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    92. GO
    93. /****** Object: Table [dbo].[PCZone] Script Date: 10/28/2009 17:14:40 ******/
    94. SET ANSI_NULLS ON
    95. GO
    96. SET QUOTED_IDENTIFIER ON
    97. GO
    98. SET ANSI_PADDING ON
    99. GO
    100. CREATE TABLE [dbo].[PCZone](
    101. [PCZoneID] [int] IDENTITY(1,1) NOT NULL,
    102. [PCZoneName] [varchar](100) NOT NULL,
    103. [Address] [varchar](100) NOT NULL,
    104. [Phone] [varchar](100) NOT NULL,
    105. [CPU] [varchar](100) NOT NULL,
    106. [VGA] [varchar](100) NOT NULL,
    107. [RAM] [varchar](100) NOT NULL,
    108. [Monitor] [varchar](100) NOT NULL,
    109. [Comment] [varchar](1000) NOT NULL,
    110. [Grade] [tinyint] NOT NULL,
    111. [Account] [varchar](32) NOT NULL,
    112. [RegDate] [datetime] NOT NULL,
    113. CONSTRAINT [PK_iCafeInfo_1] PRIMARY KEY CLUSTERED
    114. (
    115. [PCZoneID] ASC
    116. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    117. ) ON [PRIMARY]
    118. GO
    119. SET ANSI_PADDING OFF
    120. GO
    121. /****** Object: Table [dbo].[mydata] Script Date: 10/28/2009 17:14:40 ******/
    122. SET ANSI_NULLS ON
    123. GO
    124. SET QUOTED_IDENTIFIER ON
    125. GO
    126. SET ANSI_PADDING ON
    127. GO
    128. CREATE TABLE [dbo].[mydata](
    129. [line] [varchar](8000) NULL
    130. ) ON [PRIMARY]
    131. GO
    132. SET ANSI_PADDING OFF
    133. GO
    134. /****** Object: StoredProcedure [dbo].[usp_MessengerList] Script Date: 10/28/2009 17:27:48 ******/
    135. SET ANSI_NULLS ON
    136. GO
    137. SET QUOTED_IDENTIFIER ON
    138. GO
    139. CREATE proc [dbo].[usp_MessengerList]
    140. @serverindex char(2),
    141. @m_szName varchar(32)
    142. as
    143. set nocount on
    144. declare @q1 nvarchar(4000)
    145. declare @m_idPlayer char(7)
    146. set @q1 = '
    147. select @m_idPlayer = m_idPlayer from CHR' + @serverindex + '.CHARACTER_' + @serverindex + '_DBF.dbo.CHARACTER_TBL where m_szName = ''' + @m_szName + ''''
    148. exec sp_executesql @q1, N'@m_idPlayer char(7) output', @m_idPlayer output
    149. set @q1 = '
    150. select c.m_szName, m_idPlayer
    151. from CHR' + @serverindex + '.CHARACTER_' + @serverindex + '_DBF.dbo.tblMessenger as m
    152. inner join CHR' + @serverindex + '.CHARACTER_' + @serverindex + '_DBF.dbo.CHARACTER_TBL as c on m.idFriend = c.m_idPlayer
    153. where m.idPlayer = ''' + @m_idPlayer + ''' and isblock = ''F'' and chUse = ''T'' order by m.idFriend'
    154. exec sp_executesql @q1
    155. GO
    156. /****** Object: Table [dbo].[AccountPlay] Script Date: 10/28/2009 17:27:48 ******/
    157. SET ANSI_NULLS ON
    158. GO
    159. SET QUOTED_IDENTIFIER ON
    160. GO
    161. SET ANSI_PADDING ON
    162. GO
    163. CREATE TABLE [dbo].[AccountPlay](
    164. [Account] [varchar](32) NOT NULL,
    165. [PlayDate] [int] NOT NULL,
    166. [PlayTime] [int] NOT NULL,
    167. CONSTRAINT [PK_AccountPlay] PRIMARY KEY CLUSTERED
    168. (
    169. [Account] ASC
    170. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    171. ) ON [PRIMARY]
    172. GO
    173. SET ANSI_PADDING OFF
    174. GO
    175. /****** Object: Table [dbo].[PCZoneIP] Script Date: 10/28/2009 17:27:48 ******/
    176. SET ANSI_NULLS ON
    177. GO
    178. SET QUOTED_IDENTIFIER ON
    179. GO
    180. SET ANSI_PADDING ON
    181. GO
    182. CREATE TABLE [dbo].[PCZoneIP](
    183. [IPID] [int] IDENTITY(1,1) NOT NULL,
    184. [PCZoneID] [int] NOT NULL,
    185. [IPFrom1] [tinyint] NOT NULL,
    186. [IPFrom2] [tinyint] NOT NULL,
    187. [IPFrom3] [tinyint] NOT NULL,
    188. [IPFrom4] [tinyint] NOT NULL,
    189. [IPTo4] [tinyint] NOT NULL,
    190. [IsUse] [tinyint] NOT NULL,
    191. [RegDate] [datetime] NOT NULL,
    192. [OperID] [varchar](32) NULL,
    193. [OperDate] [datetime] NULL,
    194. CONSTRAINT [PK_iCafeIP_1] PRIMARY KEY CLUSTERED
    195. (
    196. [IPID] ASC
    197. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    198. ) ON [PRIMARY]
    199. GO
    200. SET ANSI_PADDING OFF
    201. GO
    202. /****** Object: StoredProcedure [dbo].[usp_UpdateCashInfo] Script Date: 10/28/2009 17:27:48 ******/
    203. SET ANSI_NULLS ON
    204. GO
    205. SET QUOTED_IDENTIFIER ON
    206. GO
    207. create proc [dbo].[usp_UpdateCashInfo]
    208. @account varchar(32),
    209. @cash int
    210. as
    211. set nocount on
    212. set xact_abort on
    213. if exists (select * from ACCOUNT_TBL where account = @account)
    214. begin
    215. begin tran
    216. insert into CashHistory (account, beforeCash, afterCash)
    217. select @account, cash, @cash from ACCOUNT_TBL where account = @account
    218. update ACCOUNT_TBL
    219. set cash = @cash
    220. where account = @account
    221. if @@error <> 0
    222. begin
    223. rollback tran
    224. select -1
    225. end
    226. else
    227. begin
    228. commit tran
    229. select 1
    230. end
    231. end
    232. else
    233. begin
    234. select 0
    235. end
    236. GO
    237. /****** Object: StoredProcedure [dbo].[ACCOUNT_STR] Script Date: 10/28/2009 17:27:48 ******/
    238. SET ANSI_NULLS ON
    239. GO
    240. SET QUOTED_IDENTIFIER ON
    241. GO
    242. CREATE PROC [dbo].[ACCOUNT_STR]
    243. @iaccount VARCHAR(32),
    244. @ipassword VARCHAR(16)
    245. /***********************************************************************************
    246. ***********************************************************************************
    247. ***********************************************************************************
    248. ***********************************************************************************
    249. ACCOUNT_STR 스토어드
    250. 작성자 : 최석준
    251. 작성일 : 2004.01.18
    252. ex) ACCOUNT_STR 'beat','1234'
    253. ***********************************************************************************
    254. ***********************************************************************************
    255. ***********************************************************************************
    256. ***********************************************************************************/
    257. AS
    258. set nocount on
    259. IF EXISTS(SELECT a.account FROM ACCOUNT_TBL a,ACCOUNT_TBL_DETAIL b
    260. WHERE a.account = b.account AND a.account = @iaccount AND gamecode = 'A000')
    261. BEGIN
    262. IF EXISTS(SELECT account FROM ACCOUNT_TBL
    263. WHERE account = @iaccount AND password = @ipassword )
    264. -- BEGIN
    265. --
    266. -- DECLARE @birthyear CHAR(4),@currdate CHAR(8)
    267. -- SELECT @birthyear = CASE WHEN SUBSTRING(id_no2,1,1) IN ('9','0') THEN '18' + SUBSTRING(id_no1,1,2)
    268. -- WHEN SUBSTRING(id_no2,1,1) IN ('1','2') THEN '19' + SUBSTRING(id_no1,1,2)
    269. -- WHEN SUBSTRING(id_no2,1,1) IN ('3','4') THEN '20' + SUBSTRING(id_no1,1,2)
    270. -- WHEN SUBSTRING(id_no2,1,1) IN ('5','6') THEN '21' + SUBSTRING(id_no1,1,2)
    271. -- WHEN SUBSTRING(id_no2,1,1) IN ('7','8') THEN '22' + SUBSTRING(id_no1,1,2)
    272. -- END
    273. -- FROM ACCOUNT_TBL
    274. -- WHERE account = @iaccount
    275. --
    276. -- SELECT @currdate = CONVERT(CHAR(8),GETDATE(),112)
    277. --
    278. -- SELECT fError = CASE WHEN a.id_no1 = 'a00000'
    279. -- THEN '0'
    280. -- WHEN b.BlockTime >= @currdate AND b.EndTime < @currdate
    281. -- THEN '3'
    282. -- WHEN a.realname = 'F'
    283. -- THEN '4'
    284. -- WHEN @birthyear > DATEADD(Year,-13,@currdate)
    285. -- THEN '5'
    286. -- WHEN @birthyear >= DATEADD(Year,-11,@currdate) AND b.tester = '0'
    287. -- THEN '6'
    288. -- ELSE '0' END,
    289. --
    290. -- fText = CASE WHEN a.id_no1 = 'a00000'
    291. -- THEN '사원 및 기자'
    292. -- WHEN b.BlockTime >= @currdate AND b.EndTime < @currdate
    293. -- THEN '계정블럭이거나 유료화 초과'
    294. -- WHEN a.realname = 'F'
    295. -- THEN '실명처리가 안된것'
    296. -- WHEN @birthyear > DATEADD(Year,-13,@currdate)
    297. -- THEN '프리프는 12세 이상 이용가 이므로 게임접속을 할수 없습니다.'
    298. -- WHEN @birthyear >= DATEADD(Year,-11,@currdate) AND b.tester = '0'
    299. -- THEN '14세 미만 가입자 분들은 부모님 동의서를 보내주셔야 게임 접속이 가능합니다'
    300. -- ELSE '정상사용자 14세 이상' END
    301. -- FROM ACCOUNT_TBL a, ACCOUNT_TBL_DETAIL b
    302. -- WHERE a.account = b.account AND b.account = @iaccount AND a.[password] = @ipassword
    303. -- END
    304. BEGIN
    305. SELECT fError = '0', fText = 'OK'
    306. END
    307. ELSE
    308. BEGIN
    309. SELECT fError = '1', fText = 'Wrong Password !!'
    310. END
    311. END
    312. ELSE
    313. BEGIN
    314. SELECT fError = '2', fText = 'Account Not Exists !!'
    315. END
    316. RETURN
    317. -- 계정 검사 Rule
    318. -- 1. (fError=2 리턴) 계정있는지 확인. 계정확인시 "gamecode = A000" 만 프리프 회원.
    319. -- 2. (fError=1 리턴) 암호확인.
    320. -- 3. (fError=0 리턴) 사원 및 기자 확인( id_no1가 a0000 )으로 확인.계정.암호만 확인
    321. -- 4. (fError=3 리턴) 블럭타임과, 과금타임 확인.
    322. -- 5. (fError=4 리턴) 실명확인.
    323. -- 6. (fError=5 리턴) 12세 이상인지 확인. 이하이면 "프리프는 12세 이상 이용가 이므로 ]
    324. -- 게임접속을 할수 없습니다." 라고 알림.
    325. -- 7. (fError=6 리턴) 부모동의서가 없는 애덜 확인 tester = 0 이면 "14세 미만 가입자 분들은
    326. -- 부모등의서를 보내주셔야 게임 접속이 가능합니다"라고 알림.
    327. -- 8. (fError=0 리턴) 위의 예말고는 정상 사용자로 인정.
    328. set nocount off
    329. GO
    330. /****** Object: StoredProcedure [dbo].[usp_CreateNewAccount] Script Date: 10/28/2009 17:27:48 ******/
    331. SET ANSI_NULLS ON
    332. GO
    333. SET QUOTED_IDENTIFIER ON
    334. GO
    335. CREATE proc [dbo].[usp_CreateNewAccount]
    336. @account varchar(32),
    337. @pw varchar(32),
    338. @cash int = 0,
    339. @email varchar(100) = ''
    340. as
    341. set nocount on
    342. set xact_abort on
    343. if not exists (select * from ACCOUNT_TBL where account = @account)
    344. begin
    345. declare @hash char(32), @tpw varchar(40)
    346. set @tpw = 'dlrjsdn' + @pw
    347. exec master.dbo.xp_crypt @tpw, @hash output
    348. begin tran
    349. INSERT ACCOUNT_TBL(account,password,isuse,member,id_no1,id_no2,realname, cash)
    350. VALUES(@account, lower(@hash), 'T', 'A', '', '', '', @cash)
    351. INSERT ACCOUNT_TBL_DETAIL(account,gamecode,tester,m_chLoginAuthority,regdate,BlockTime,EndTime,WebTime,isuse,secession, email)
    352. VALUES(@account,'A000','2','F',GETDATE(),CONVERT(CHAR(8),GETDATE()-1,112),CONVERT(CHAR(8),DATEADD(year,10,GETDATE()),112),CONVERT(CHAR(8),GETDATE()-1,112),'T',NULL, @email)
    353. insert AccountPlay (Account, PlayDate)
    354. select @account, convert(int, convert(char(8), getdate(), 112))
    355. if @@error <> 0
    356. begin
    357. rollback tran
    358. select -1
    359. end
    360. else
    361. begin
    362. commit tran
    363. select 1
    364. end
    365. end
    366. else
    367. begin
    368. select 0
    369. end
    370. GO
    371. /****** Object: StoredProcedure [dbo].[sp_UpdateAccountPassword] Script Date: 10/28/2009 17:27:48 ******/
    372. SET ANSI_NULLS ON
    373. GO
    374. SET QUOTED_IDENTIFIER ON
    375. GO
    376. CREATE PROCEDURE [dbo].[sp_UpdateAccountPassword]
    377. @account varchar(32),
    378. @password varchar(32)
    379. AS
    380. SET NOCOUNT ON
    381. Update ACCOUNT_TBL SET Password = @password Where Account=@account
    382. GO
    383. /****** Object: StoredProcedure [dbo].[usp_ChangePW] Script Date: 10/28/2009 17:27:48 ******/
    384. SET ANSI_NULLS ON
    385. GO
    386. SET QUOTED_IDENTIFIER ON
    387. GO
    388. CREATE proc [dbo].[usp_ChangePW]
    389. @account varchar(32),
    390. @pw varchar(32)
    391. as
    392. set nocount on
    393. set xact_abort on
    394. if exists (select * from ACCOUNT_TBL where account = @account)
    395. begin
    396. declare @hash char(32), @tpw varchar(40)
    397. set @tpw = 'tpgk' + @pw
    398. exec master.dbo.xp_crypt @tpw, @hash output
    399. begin tran
    400. update ACCOUNT_TBL
    401. set [password] = lower(@hash)
    402. where account = @account
    403. if @@error <> 0
    404. begin
    405. rollback tran
    406. select -1
    407. end
    408. else
    409. begin
    410. commit tran
    411. select 1
    412. end
    413. end
    414. else
    415. begin
    416. select 0
    417. end
    418. GO
    419. /****** Object: StoredProcedure [dbo].[LOGIN_RELOAD_STR] Script Date: 10/28/2009 17:27:48 ******/
    420. SET ANSI_NULLS ON
    421. GO
    422. SET QUOTED_IDENTIFIER ON
    423. GO
    424. CREATE PROC [dbo].[LOGIN_RELOAD_STR]
    425. /**********************************************************************************
    426. ***********************************************************************************
    427. ***********************************************************************************
    428. ***********************************************************************************
    429. LOGIN_RELOAD_STR 스토어드
    430. 작성자 : 최석준
    431. 작성일 : 2005.01.24
    432. ex) LOGIN_RELOAD_STR
    433. **********************************************************************************
    434. ***********************************************************************************
    435. ***********************************************************************************
    436. ***********************************************************************************/
    437. AS
    438. set nocount on
    439. SELECT account FROM ACCOUNT_TBL WHERE reload='T'
    440. set nocount off
    441. RETURN
    442. GO
    443. /****** Object: StoredProcedure [dbo].[CREATE_ACCOUNT_STR] Script Date: 10/28/2009 17:27:48 ******/
    444. SET ANSI_NULLS ON
    445. GO
    446. SET QUOTED_IDENTIFIER ON
    447. GO
    448. CREATE PROC [dbo].[CREATE_ACCOUNT_STR]
    449. @iGu CHAR(1) = 'A',
    450. @k INT = 100
    451. AS
    452. DECLARE @i INT,@j INT,@oSeq CHAR(6)
    453. IF @iGu = 'A'
    454. BEGIN
    455. SET @j = 1
    456. SELECT @i = ISNULL(CONVERT(INT,(MAX(account))),0) + 1 FROM ACCOUNT_TBL
    457. SELECT CONVERT(INT,(MAX(account))) + @k FROM ACCOUNT_TBL
    458. WHILE @j < @k + 1
    459. BEGIN
    460. SET @oSeq = RIGHT('000000' + CONVERT(VARCHAR(6),@i),6)
    461. INSERT ACCOUNT_TBL
    462. (account,password,isuse,member,id_no1,id_no2,realname)
    463. VALUES
    464. (@oSeq,@oSeq,'T','A','','','')
    465. INSERT ACCOUNT_TBL_DETAIL
    466. (account,gamecode,tester,m_chLoginAuthority,regdate,BlockTime,EndTime,WebTime,isuse,secession)
    467. VALUES
    468. (@oSeq,'A000','2','F',GETDATE(),CONVERT(CHAR(8),GETDATE()-1,112),CONVERT(CHAR(8),DATEADD(year,6,GETDATE()),112),CONVERT(CHAR(8),GETDATE()-1,112),'T',NULL)
    469. SET @i = @i + 1
    470. SET @j = @j + 1
    471. IF (@j % 100 = 0)
    472. PRINT @oSeq
    473. END
    474. RETURN
    475. END
    476. GO
    477. /****** Object: StoredProcedure [dbo].[usp_og_ChangePassWord] Script Date: 10/28/2009 17:27:48 ******/
    478. SET ANSI_NULLS ON
    479. GO
    480. SET QUOTED_IDENTIFIER ON
    481. GO
    482. CREATE proc [dbo].[usp_og_ChangePassWord]
    483. @account varchar(32),
    484. @password varchar(32)
    485. as
    486. set nocount on
    487. set xact_abort on
    488. if exists (select * from ACCOUNT_TBL where account = @account)
    489. begin
    490. begin tran
    491. Update ACCOUNT_TBL SET Password = @password Where account=@account
    492. if @@error <> 0
    493. begin
    494. rollback tran
    495. select -1
    496. end
    497. else
    498. begin
    499. commit tran
    500. select 1
    501. end
    502. end
    503. else
    504. begin
    505. select 0
    506. end
    507. GO
    508. /****** Object: StoredProcedure [dbo].[LOGINJOIN_STR] Script Date: 10/28/2009 17:27:48 ******/
    509. SET ANSI_NULLS ON
    510. GO
    511. SET QUOTED_IDENTIFIER ON
    512. GO
    513. CREATE PROC [dbo].[LOGINJOIN_STR]
    514. @iGu CHAR(2) = 'A1',
    515. @iaccount VARCHAR(32)
    516. /***********************************************************************************
    517. ***********************************************************************************
    518. ***********************************************************************************
    519. ***********************************************************************************
    520. LOGINJOIN_STR 스토어드
    521. 작성자 : 송현석
    522. 작성일 : 2004.01.30
    523. 수정일 :
    524. ex) LOGINONOFF_STR 'A1','1234'
    525. ***********************************************************************************
    526. ***********************************************************************************
    527. ***********************************************************************************
    528. ***********************************************************************************/
    529. AS
    530. set nocount on
    531. IF @iGu = 'A1' -- ON
    532. BEGIN
    533. UPDATE ACCOUNT_TBL_DETAIL
    534. SET isuse = 'J'
    535. WHERE account = @iaccount
    536. RETURN
    537. END
    538. ELSE
    539. IF @iGu = 'A2' -- OFF
    540. BEGIN
    541. UPDATE ACCOUNT_TBL_DETAIL
    542. SET isuse = 'O'
    543. WHERE account = @iaccount
    544. RETURN
    545. END
    546. ELSE
    547. IF @iGu = 'A3' -- ALL OFF
    548. BEGIN
    549. UPDATE ACCOUNT_TBL_DETAIL
    550. SET isuse = 'O'
    551. RETURN
    552. END
    553. set nocount off
    554. GO
    555. /****** Object: StoredProcedure [dbo].[usp_ChangeEmail] Script Date: 10/28/2009 17:27:48 ******/
    556. SET ANSI_NULLS ON
    557. GO
    558. SET QUOTED_IDENTIFIER ON
    559. GO
    560. CREATE proc [dbo].[usp_ChangeEmail]
    561. @account varchar(32),
    562. @email varchar(100)
    563. as
    564. set nocount on
    565. set xact_abort on
    566. if exists (select * from ACCOUNT_TBL_DETAIL where account = @account)
    567. begin
    568. begin tran
    569. update ACCOUNT_TBL_DETAIL
    570. set email = @email
    571. where account = @account
    572. if @@error <> 0
    573. begin
    574. rollback tran
    575. select -1
    576. end
    577. else
    578. begin
    579. commit tran
    580. select 1
    581. end
    582. end
    583. else
    584. begin
    585. select 0
    586. end
    587. GO
    588. /****** Object: StoredProcedure [dbo].[USP_PCZoneIP_Check] Script Date: 10/28/2009 17:27:48 ******/
    589. SET ANSI_NULLS ON
    590. GO
    591. SET QUOTED_IDENTIFIER ON
    592. GO
    593. /*
    594. declare @o_Grade tinyint
    595. exec dbo.USP_PCZoneIP_Check '218.38.238.131', @o_Grade output
    596. select @o_Grade
    597. exec LOGIN_STR 'chipi', '85158c7b8a7f3113b0f32b70ed936b2c', '127.0.0.0'
    598. */
    599. create proc [dbo].[USP_PCZoneIP_Check]
    600. @i_IPAddress varchar(15)
    601. , @o_Grade tinyint output
    602. as
    603. set nocount on
    604. set transaction isolation level read uncommitted
    605. declare @i_IP1 tinyint
    606. declare @i_IP2 tinyint
    607. declare @i_IP3 tinyint
    608. declare @i_IP4 tinyint
    609. declare @index int
    610. --@i_IP1
    611. set @index = charindex('.', @i_IPAddress)
    612. set @i_IP1 = left(@i_IPAddress, @index-1)
    613. set @i_IPAddress = right(@i_IPAddress, len(@i_IPAddress)-@index)
    614. --@i_IP2
    615. set @index = charindex('.', @i_IPAddress)
    616. set @i_IP2 = left(@i_IPAddress, @index-1)
    617. set @i_IPAddress = right(@i_IPAddress, len(@i_IPAddress)-@index)
    618. --@i_IP3, @i_IP4
    619. set @index = charindex('.', @i_IPAddress)
    620. set @i_IP3 = left(@i_IPAddress, @index-1)
    621. set @i_IP4 = right(@i_IPAddress, len(@i_IPAddress)-@index)
    622. --PCZoneIP_Check
    623. select @o_Grade = b.Grade
    624. from PCZoneIP a
    625. inner join PCZone b
    626. on a.PCZoneID = b.PCZoneID
    627. where IsUse in (1, 9)
    628. and IPFrom1 = @i_IP1
    629. and IPFrom2 = @i_IP2
    630. and IPFrom3 = @i_IP3
    631. and IPFrom4 <= @i_IP4 and IPTo4 >= @i_IP4
    632. select @o_Grade = isnull(@o_Grade, 0)
    633. GO
    634. /****** Object: StoredProcedure [dbo].[LOGIN_STR] Script Date: 10/28/2009 17:27:48 ******/
    635. SET ANSI_NULLS ON
    636. GO
    637. SET QUOTED_IDENTIFIER ON
    638. GO
    639. CREATE PROC [dbo].[LOGIN_STR]
    640. @iaccount VARCHAR(32),
    641. @ipassword char(32)
    642. -- Ver. 14 PCZoneIP
    643. ,@i_IPAddress varchar(15) = '0.0.0.0'
    644. /***********************************************************************************
    645. ***********************************************************************************
    646. ***********************************************************************************
    647. ***********************************************************************************
    648. ACCOUNT_STR 스토어드
    649. 작성자 : 최석준
    650. 작성일 : 2004.01.18
    651. ex) ACCOUNT_STR 'beat','1234'
    652. SELECT * FROM ACCOUNT_TBL_DETAIL WHERE account='aeonsoft'
    653. ***********************************************************************************
    654. ***********************************************************************************
    655. ***********************************************************************************
    656. ***********************************************************************************/
    657. AS
    658. set nocount on
    659. -- Ver 14. PCZoneIP_Check
    660. declare @o_Grade tinyint
    661. exec dbo.USP_PCZoneIP_Check @i_IPAddress, @o_Grade output
    662. IF EXISTS(SELECT a.account FROM ACCOUNT_TBL a,ACCOUNT_TBL_DETAIL b
    663. WHERE a.account = b.account AND a.account = @iaccount ) -- AND gamecode = 'A000')
    664. BEGIN
    665. DECLARE @curDate char(8)
    666. IF EXISTS(SELECT account FROM ACCOUNT_TBL
    667. WHERE account = @iaccount AND password = @ipassword) BEGIN
    668. SELECT @curDate=CONVERT(CHAR(8), getdate(), 112)
    669. SELECT fError=CASE
    670. -- WHEN session<>@isession OR sessionExpireDt<getdate() THEN '91'
    671. WHEN BlockTime>=@curDate THEN '9'
    672. ELSE '0' END,
    673. fText= CASE
    674. -- WHEN session<>@isession OR sessionExpireDt<getdate() THEN 'Session Expired'
    675. WHEN BlockTime>=@curDate THEN 'Block' ELSE 'OK' END,
    676. fCheck=tester,
    677. f18='1'
    678. -- Ver14. PCZoneIP
    679. ,fPCZone = @o_Grade
    680. FROM ACCOUNT_TBL a INNER JOIN ACCOUNT_TBL_DETAIL b ON (a.account=b.account)
    681. WHERE a.account=@iaccount
    682. END
    683. ELSE BEGIN
    684. SELECT fError = '1', fText = 'Wrong Password !!',fCheck ='',f18='1', fPCZone = '0' -- PCZoneIP (, fPCZone = '0' 추가)
    685. END
    686. END
    687. ELSE BEGIN
    688. SELECT fError = '2', fText = 'Account Not Exists !!',fCheck ='',f18='1', fPCZone = '0' -- PCZoneIP (, fPCZone = '0' 추가)
    689. END
    690. RETURN
    691. -- 계정 검사 Rule
    692. -- 1. (fError=2 리턴) 계정있는지 확인. 계정확인시 "gamecode = A000" 만 프리프 회원.
    693. -- 2. (fError=1 리턴) 암호확인.
    694. -- 3. (fError=0 리턴) 사원 및 기자 확인( id_no1가 a0000 )으로 확인.계정.암호만 확인
    695. -- 4. (fError=3 리턴) 블럭타임과, 과금타임 확인.
    696. -- 5. (fError=4 리턴) 실명확인.
    697. -- 6. (fError=5 리턴) 12세 이상인지 확인. 이하이면 "프리프는 12세 이상 이용가 이므로 ]
    698. -- 게임접속을 할수 없습니다." 라고 알림.
    699. -- 7. (fError=6 리턴) 부모동의서가 없는 애덜 확인 tester = 0 이면 "14세 미만 가입자 분들은
    700. -- 부모등의서를 보내주셔야 게임 접속이 가능합니다"라고 알림.
    701. -- 8. (fError=0 리턴) 위의 예말고는 정상 사용자로 인정.
    702. set nocount off
    703. GO
    704. /****** Object: Default [DF_CashHistory_regdate] Script Date: 10/28/2009 17:14:39 ******/
    705. ALTER TABLE [dbo].[CashHistory] ADD CONSTRAINT [DF_CashHistory_regdate] DEFAULT (getdate()) FOR [regdate]
    706. GO
    707. /****** Object: Default [DF_ACCOUNT_TBL_cash] Script Date: 10/28/2009 17:14:40 ******/
    708. ALTER TABLE [dbo].[ACCOUNT_TBL] ADD CONSTRAINT [DF_ACCOUNT_TBL_cash] DEFAULT ((0)) FOR [cash]
    709. GO
    710. /****** Object: Default [DF_ACCOUNT_DETAIL_email] Script Date: 10/28/2009 17:14:40 ******/
    711. ALTER TABLE [dbo].[ACCOUNT_TBL_DETAIL] ADD CONSTRAINT [DF_ACCOUNT_DETAIL_email] DEFAULT ('') FOR [email]
    712. GO
    713. /****** Object: Default [DF_PCZone_Grade] Script Date: 10/28/2009 17:14:40 ******/
    714. ALTER TABLE [dbo].[PCZone] ADD CONSTRAINT [DF_PCZone_Grade] DEFAULT ((1)) FOR [Grade]
    715. GO
    716. /****** Object: Default [DF_PCZone_Account] Script Date: 10/28/2009 17:14:40 ******/
    717. ALTER TABLE [dbo].[PCZone] ADD CONSTRAINT [DF_PCZone_Account] DEFAULT ('') FOR [Account]
    718. GO
    719. /****** Object: Default [DF_PCZone_RegDate] Script Date: 10/28/2009 17:14:40 ******/
    720. ALTER TABLE [dbo].[PCZone] ADD CONSTRAINT [DF_PCZone_RegDate] DEFAULT (getdate()) FOR [RegDate]
    721. GO
    722. /****** Object: Default [DF_AccountPlay_Account] Script Date: 10/28/2009 17:27:48 ******/
    723. ALTER TABLE [dbo].[AccountPlay] ADD CONSTRAINT [DF_AccountPlay_Account] DEFAULT ('') FOR [Account]
    724. GO
    725. /****** Object: Default [DF_AccountPlay_PlayDate] Script Date: 10/28/2009 17:27:48 ******/
    726. ALTER TABLE [dbo].[AccountPlay] ADD CONSTRAINT [DF_AccountPlay_PlayDate] DEFAULT ('') FOR [PlayDate]
    727. GO
    728. /****** Object: Default [DF_AccountPlay_PlayTime] Script Date: 10/28/2009 17:27:48 ******/
    729. ALTER TABLE [dbo].[AccountPlay] ADD CONSTRAINT [DF_AccountPlay_PlayTime] DEFAULT ((0)) FOR [PlayTime]
    730. GO
    731. /****** Object: Default [DF_PCZoneIP_IsUse] Script Date: 10/28/2009 17:27:48 ******/
    732. ALTER TABLE [dbo].[PCZoneIP] ADD CONSTRAINT [DF_PCZoneIP_IsUse] DEFAULT ((0)) FOR [IsUse]
    733. GO
    734. /****** Object: Default [DF_PCZoneIP_RegDate] Script Date: 10/28/2009 17:27:48 ******/
    735. ALTER TABLE [dbo].[PCZoneIP] ADD CONSTRAINT [DF_PCZoneIP_RegDate] DEFAULT (getdate()) FOR [RegDate]
    736. GO
    737. /****** Object: ForeignKey [FK_iCafeIP_iCafeInfo1] Script Date: 10/28/2009 17:27:48 ******/
    738. ALTER TABLE [dbo].[PCZoneIP] WITH CHECK ADD CONSTRAINT [FK_iCafeIP_iCafeInfo1] FOREIGN KEY([PCZoneID])
    739. REFERENCES [dbo].[PCZone] ([PCZoneID])
    740. GO
    741. ALTER TABLE [dbo].[PCZoneIP] CHECK CONSTRAINT [FK_iCafeIP_iCafeInfo1]
    742. GO
    Alles anzeigen
  • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

  • Till1993;100858 schrieb:

    entbuggen`?
    Die Db ist Bugfrei!
    Es fehlen legendlich ein paar Einträge die nötig sind.
    Die hat er raus gelassen.
    XP_CRYPT auszubauen ist easy. Aber am besten nimm einfach die Prozeduren aus der allinone db, das solltest du schaffen.

    Mfg
    Till


    Meinste warscheinlich die Prozedur usp.dbo.createnewaccount durch die Prozedur dbo.creataccount von der AllInone Db denk ich mal. Korregier mich wenn ich falsch liege.

    Und die Xp Crypt Prozedur ist nicht ausgelassen

    Edit:So ich habe die Prozedur ausgetauscht gegen die von der AllinOne aber jetzt wirft er einige andere Errors aus.
  • Hier einfach neue Abfrage

    Quellcode

    1. /****** Object: StoredProcedure [dbo].[usp_CreateNewAccount] Script Date: 01/11/2010 14:58:32 ******/
    2. SET ANSI_NULLS ON
    3. GO
    4. SET QUOTED_IDENTIFIER ON
    5. GO
    6. ALTER proc [dbo].[usp_CreateNewAccount]
    7. @account varchar(32),
    8. @pw varchar(32),
    9. @cash int = 0,
    10. @email varchar(100) = ''
    11. as
    12. set nocount on
    13. set xact_abort on
    14. if not exists (select * from ACCOUNT_TBL where account = @account)
    15. begin
    16. begin tran
    17. INSERT ACCOUNT_TBL(account,password,isuse,member,id_no1,id_no2,realname, cash)
    18. VALUES(@account, @pw, 'T', 'A', '', '', '', @cash)
    19. INSERT ACCOUNT_TBL_DETAIL(account,gamecode,tester,m_chLoginAuthority,regdate,BlockTime,EndTime,WebTime,isuse,secession, email)
    20. VALUES(@account,'A000','2','F',GETDATE(),CONVERT(CHAR(8),GETDATE()-1,112),CONVERT(CHAR(8),DATEADD(year,10,GETDATE()),112),CONVERT(CHAR(8),GETDATE()-1,112),'T',NULL, @email)
    21. insert AccountPlay (Account, PlayDate)
    22. select @account, convert(int, convert(char(8), getdate(), 112))
    23. if @@error <> 0
    24. begin
    25. rollback tran
    26. select -1
    27. end
    28. else
    29. begin
    30. commit tran
    31. select 1
    32. end
    33. end
    34. else
    35. begin
    36. select 0
    37. end
    38. GO
    Alles anzeigen


    Creditz to HDBlacker
  • Luoo;100878 schrieb:

    Hier einfach neue Abfrage

    Quellcode

    1. /****** Object: StoredProcedure [dbo].[usp_CreateNewAccount] Script Date: 01/11/2010 14:58:32 ******/
    2. SET ANSI_NULLS ON
    3. GO
    4. SET QUOTED_IDENTIFIER ON
    5. GO
    6. ALTER proc [dbo].[usp_CreateNewAccount]
    7. @account varchar(32),
    8. @pw varchar(32),
    9. @cash int = 0,
    10. @email varchar(100) = ''
    11. as
    12. set nocount on
    13. set xact_abort on
    14. if not exists (select * from ACCOUNT_TBL where account = @account)
    15. begin
    16. begin tran
    17. INSERT ACCOUNT_TBL(account,password,isuse,member,id_no1,id_no2,realname, cash)
    18. VALUES(@account, @pw, 'T', 'A', '', '', '', @cash)
    19. INSERT ACCOUNT_TBL_DETAIL(account,gamecode,tester,m_chLoginAuthority,regdate,BlockTime,EndTime,WebTime,isuse,secession, email)
    20. VALUES(@account,'A000','2','F',GETDATE(),CONVERT(CHAR(8),GETDATE()-1,112),CONVERT(CHAR(8),DATEADD(year,10,GETDATE()),112),CONVERT(CHAR(8),GETDATE()-1,112),'T',NULL, @email)
    21. insert AccountPlay (Account, PlayDate)
    22. select @account, convert(int, convert(char(8), getdate(), 112))
    23. if @@error <> 0
    24. begin
    25. rollback tran
    26. select -1
    27. end
    28. else
    29. begin
    30. commit tran
    31. select 1
    32. end
    33. end
    34. else
    35. begin
    36. select 0
    37. end
    38. GO
    Alles anzeigen


    Creditz to HDBlacker


    Ich seh da kein Unterschied In der der andere ACCOUNT_DBF ist genau an der gleichen Stelle genau die Gleiche Prozedur nur das der 1 Abschnitt mit master.dbo.xp.xrypt rausgenommen wurde das hatte ich voher auch nur dann kann ich kein account erstellen bzw wirft er mir Errors das man den Salt nicht als Pw benutzen kann also den Wert 0 nicht in die Account_TBL erstellen kann