decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
28
decomp/schema/RustyHearts_Account/columns.tsv
Normal file
28
decomp/schema/RustyHearts_Account/columns.tsv
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
table column_id column type max_length precision scale is_nullable is_identity default
|
||||
dbo.AccountTable 1 AccountID int 4 10 0 0 1
|
||||
dbo.AccountTable 2 WindyCode varchar 50 0 0 0 0
|
||||
dbo.AccountTable 3 AccountPwd varchar 255 0 0 0 0
|
||||
dbo.AccountTable 4 Email varchar 255 0 0 0 0
|
||||
dbo.AccountTable 5 RegisterIP varchar 16 0 0 0 0
|
||||
dbo.AccountTable 6 CreatedAt datetime 8 23 3 0 0 (getdate())
|
||||
dbo.AccountTable 7 LastLogin datetime 8 23 3 0 0 (getdate())
|
||||
dbo.AccountTable 8 IsLocked bit 1 1 0 0 0
|
||||
dbo.AccountTable 9 LoginAttempts int 4 10 0 0 0
|
||||
dbo.AccountTable 10 LastLoginIP varchar 16 0 0 0 0
|
||||
dbo.AccountTable 11 Token varchar 255 0 0 1 0
|
||||
dbo.BillingLog 1 bid int 4 10 0 0 1
|
||||
dbo.BillingLog 2 BuyTime datetime 8 23 3 1 0
|
||||
dbo.BillingLog 3 WindyCode varchar 50 0 0 1 0
|
||||
dbo.BillingLog 4 CharId varchar 128 0 0 1 0
|
||||
dbo.BillingLog 5 UniqueId varchar 128 0 0 1 0
|
||||
dbo.BillingLog 6 Amount int 4 10 0 1 0
|
||||
dbo.BillingLog 7 ItemId int 4 10 0 1 0
|
||||
dbo.BillingLog 8 ItemCount int 4 10 0 1 0
|
||||
dbo.CashTable 1 WindyCode varchar 255 0 0 0 0
|
||||
dbo.CashTable 2 WorldId int 4 10 0 1 0
|
||||
dbo.CashTable 3 Zen bigint 8 19 0 1 0
|
||||
dbo.VerificationCode 1 id int 4 10 0 0 1
|
||||
dbo.VerificationCode 2 Email varchar 255 0 0 0 0
|
||||
dbo.VerificationCode 3 VerificationCode varchar 10 0 0 0 0
|
||||
dbo.VerificationCode 4 ExpirationTime datetime 8 23 3 0 0
|
||||
dbo.VerificationCode 5 Type varchar 20 0 0 0 0
|
||||
|
0
decomp/schema/RustyHearts_Account/empty_procs.txt
Normal file
0
decomp/schema/RustyHearts_Account/empty_procs.txt
Normal file
1
decomp/schema/RustyHearts_Account/foreign_keys.tsv
Normal file
1
decomp/schema/RustyHearts_Account/foreign_keys.tsv
Normal file
|
|
@ -0,0 +1 @@
|
|||
child child_col parent parent_col
|
||||
|
4
decomp/schema/RustyHearts_Account/indexes.tsv
Normal file
4
decomp/schema/RustyHearts_Account/indexes.tsv
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
table index type_desc is_primary_key is_unique col key_ordinal
|
||||
AccountTable PK__AccountT__349DA586E13EC640 CLUSTERED 1 1 AccountID 1
|
||||
BillingLog PK_BillingLog CLUSTERED 1 1 bid 1
|
||||
VerificationCode PK__Password__3213E83FA2A48C58 CLUSTERED 1 1 id 1
|
||||
|
74
decomp/schema/RustyHearts_Account/procs/AuthenticateUser.sql
Normal file
74
decomp/schema/RustyHearts_Account/procs/AuthenticateUser.sql
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[AuthenticateUser]
|
||||
@Identifier varchar(255),
|
||||
@password_verify_result BIT,
|
||||
@LastLoginIP varchar(15)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @WindyCode varchar(50)
|
||||
DECLARE @AuthID varchar(50)
|
||||
DECLARE @LoginAttempts int
|
||||
DECLARE @IsLocked BIT
|
||||
DECLARE @Now datetime = GETDATE()
|
||||
DECLARE @LastLogin datetime
|
||||
DECLARE @Token NVARCHAR(64)
|
||||
DECLARE @RandomBytes VARBINARY(32)
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
-- Retrieve account information
|
||||
SELECT @WindyCode = WindyCode, @LoginAttempts = LoginAttempts, @IsLocked = IsLocked, @LastLogin = LastLogin
|
||||
FROM AccountTable
|
||||
WHERE WindyCode = @Identifier OR Email = @Identifier;
|
||||
SELECT @AuthID = AuthID
|
||||
FROM RustyHearts_Auth.dbo.AuthTable
|
||||
WHERE WindyCode = @WindyCode;
|
||||
|
||||
-- Check if last login attempt is within 5 minutes
|
||||
IF DATEDIFF(minute, @LastLogin, @Now) > 5
|
||||
BEGIN
|
||||
UPDATE AccountTable SET LoginAttempts = 0 WHERE WindyCode = @Identifier OR Email = @Identifier;
|
||||
END
|
||||
|
||||
-- Verify password
|
||||
IF @password_verify_result = 1
|
||||
BEGIN
|
||||
SET @Result = 'LoginSuccess';
|
||||
|
||||
SET @RandomBytes = CAST(CRYPT_GEN_RANDOM(32) AS VARBINARY(32)) -- Generate 32 random bytes
|
||||
SET @Token = LOWER(CONVERT(NVARCHAR(64), HashBytes('SHA2_256', @RandomBytes), 2)) -- Hash the random bytes using SHA256 and convert to lowercase hexadecimal string
|
||||
END
|
||||
ELSE
|
||||
SET @Result = 'InvalidCredentials';
|
||||
|
||||
-- Check account status
|
||||
IF @Result = 'LoginSuccess' AND @IsLocked = 1
|
||||
SET @Result = 'Locked';
|
||||
ELSE IF @LoginAttempts >= 10
|
||||
SET @Result = 'TooManyAttempts';
|
||||
ELSE
|
||||
|
||||
-- Update login attempts, token, and last login IP
|
||||
IF @Result = 'LoginSuccess'
|
||||
BEGIN
|
||||
UPDATE AccountTable SET LoginAttempts = 0, Token = @Token, LastLoginIP = @LastLoginIP, LastLogin = @Now WHERE (WindyCode = @Identifier OR Email = @Identifier);
|
||||
END
|
||||
ELSE IF @Result = 'InvalidCredentials'
|
||||
BEGIN
|
||||
UPDATE AccountTable SET LoginAttempts = @LoginAttempts + 1, LastLogin = @Now WHERE (WindyCode = @Identifier OR Email = @Identifier);
|
||||
END
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result, @WindyCode as WindyCode, @AuthID as AuthID, @Token as Token;
|
||||
END
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[ClearVerificationCode]
|
||||
@Email varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(30)
|
||||
DECLARE @VerificationCodeExists int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
SELECT @VerificationCodeExists = COUNT(*) FROM VerificationCode
|
||||
WHERE Email = @Email;
|
||||
|
||||
|
||||
-- Check if VerificationCode exists
|
||||
IF @VerificationCodeExists > 0
|
||||
SET @Result = 'VerificationCodeExists';
|
||||
ELSE
|
||||
SET @Result = 'NoVerificationCode';
|
||||
|
||||
-- DELETE VerificationCodes
|
||||
IF @Result = 'VerificationCodeExists'
|
||||
BEGIN
|
||||
DELETE FROM VerificationCode WHERE Email = @Email;
|
||||
|
||||
SET @Result = 'VerificationCodeClean';
|
||||
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result;
|
||||
|
||||
END
|
||||
|
||||
67
decomp/schema/RustyHearts_Account/procs/CreateAccount.sql
Normal file
67
decomp/schema/RustyHearts_Account/procs/CreateAccount.sql
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[CreateAccount]
|
||||
@WindyCode varchar(50),
|
||||
@AccountPwd varchar(255),
|
||||
@Email varchar(255),
|
||||
@RegisterIP varchar(16),
|
||||
@ServerId int,
|
||||
@ShopBalance Bigint
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @EmailExists int;
|
||||
DECLARE @UsernameExists int;
|
||||
DECLARE @WindyCodeExists int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
|
||||
SELECT @EmailExists = COUNT(*) FROM AccountTable
|
||||
WHERE Email = @Email;
|
||||
SELECT @UsernameExists = COUNT(*) FROM AccountTable
|
||||
WHERE WindyCode = @WindyCode;
|
||||
SELECT @WindyCodeExists = COUNT(*) FROM RustyHearts_Auth.dbo.AuthTable
|
||||
WHERE WindyCode = @WindyCode;
|
||||
|
||||
|
||||
-- Check if account exists
|
||||
IF @EmailExists > 0
|
||||
SET @Result = 'EmailExists';
|
||||
ELSE IF @UsernameExists > 0
|
||||
SET @Result = 'UsernameExists';
|
||||
ELSE IF @WindyCodeExists > 0
|
||||
SET @Result = 'UsernameExists';
|
||||
ELSE
|
||||
SET @Result = 'NewUser';
|
||||
|
||||
-- Create new account
|
||||
IF @Result = 'NewUser'
|
||||
BEGIN
|
||||
INSERT INTO AccountTable (WindyCode, AccountPwd, Email, RegisterIP, CreatedAt, LastLogin, IsLocked, LoginAttempts, LastLoginIP)
|
||||
VALUES (@WindyCode, @AccountPwd, @Email, @RegisterIP, GETDATE(), GETDATE(), 0, 0, @RegisterIP);
|
||||
|
||||
INSERT INTO RustyHearts_Auth.dbo.AuthTable (WindyCode, world_id, AuthID, Tcount, online, CTime, BTime, LTime, IP, LCount, ServerIP, ServerType, HostID, DBCIndex, InquiryCount, event_inquiry, CashMileage, channelling, pc_room_point, externcash, mac_addr, mac_addr02, mac_addr03, second_pass)
|
||||
VALUES (@WindyCode, 0, NEWID(), 0, '0', GETDATE(), GETDATE(), GETDATE(), @RegisterIP, 0, 0, 0, 0, 0, 5, 1, 0, 1, 0, 0, '00-00-00-00-00-00', '00-00-00-00-00-00', '00-00-00-00-00-00', '');
|
||||
|
||||
INSERT INTO CashTable (WindyCode, WorldId, Zen)
|
||||
VALUES (@WindyCode, @ServerId, @ShopBalance);
|
||||
|
||||
|
||||
SET @Result = 'AccountCreated';
|
||||
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result;
|
||||
|
||||
END
|
||||
|
||||
30
decomp/schema/RustyHearts_Account/procs/GetAccount.sql
Normal file
30
decomp/schema/RustyHearts_Account/procs/GetAccount.sql
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[GetAccount]
|
||||
@Identifier varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @AccountExists int;
|
||||
DECLARE @WindyCode varchar(50)
|
||||
DECLARE @AccountPwd varchar(255)
|
||||
|
||||
|
||||
SELECT @AccountExists = COUNT(*) FROM AccountTable
|
||||
WHERE Email = @Identifier OR WindyCode = @Identifier;
|
||||
SELECT @WindyCode = WindyCode FROM AccountTable
|
||||
WHERE Email = @Identifier OR WindyCode = @Identifier;
|
||||
SELECT @AccountPwd = AccountPwd FROM AccountTable
|
||||
WHERE Email = @Identifier OR WindyCode = @Identifier;
|
||||
|
||||
|
||||
-- Check if account exists
|
||||
IF @AccountExists > 0
|
||||
SET @Result = 'AccountExists';
|
||||
ELSE
|
||||
SET @Result = 'AccountNotFound';
|
||||
|
||||
SELECT @Result as Result, @WindyCode as WindyCode, @AccountPwd as AccountPwd;
|
||||
|
||||
END
|
||||
|
||||
42
decomp/schema/RustyHearts_Account/procs/GetCurrency.sql
Normal file
42
decomp/schema/RustyHearts_Account/procs/GetCurrency.sql
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[GetCurrency]
|
||||
@UserId varchar(50),
|
||||
@ServerId int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @Zen int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
-- Check if entry with given UserId and ServerId exists
|
||||
SELECT @Zen = Zen FROM CashTable
|
||||
WHERE WindyCode = @UserId AND WorldId = @ServerId;
|
||||
|
||||
IF @@ROWCOUNT > 0 -- entry exists
|
||||
BEGIN
|
||||
SET @Result = 'Success';
|
||||
END
|
||||
ELSE -- entry does not exist, insert new one
|
||||
BEGIN
|
||||
INSERT INTO CashTable (WindyCode, WorldId, Zen)
|
||||
VALUES (@UserId, @ServerId, 0);
|
||||
|
||||
SET @Result = 'Success';
|
||||
SET @Zen = 0;
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
SET @Zen = 0;
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result, @Zen as Zen;
|
||||
END
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[GetVerificationCode]
|
||||
@VerificationCode varchar(10),
|
||||
@Email varchar(255),
|
||||
@VerificationCodeType varchar(20)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Result varchar(30)
|
||||
DECLARE @ExpirationTime DATETIME
|
||||
DECLARE @Now DATETIME = GETDATE()
|
||||
DECLARE @VerificationCodeExists int;
|
||||
|
||||
SELECT @VerificationCodeExists = COUNT(*) FROM VerificationCode
|
||||
WHERE Email = @Email AND VerificationCode = @VerificationCode AND Type = @VerificationCodeType
|
||||
|
||||
-- Check if VerificationCode exists
|
||||
IF @VerificationCodeExists > 0
|
||||
SET @Result = 'VerificationCodeExists';
|
||||
ELSE
|
||||
SET @Result = 'InvalidVerificationCode';
|
||||
|
||||
|
||||
SELECT @ExpirationTime = ExpirationTime
|
||||
FROM VerificationCode
|
||||
WHERE Email = @Email AND VerificationCode = @VerificationCode
|
||||
|
||||
IF @Result = 'VerificationCodeExists'
|
||||
BEGIN
|
||||
IF @ExpirationTime > @Now
|
||||
|
||||
SET @Result = 'ValidVerificationCode';
|
||||
ELSE
|
||||
SET @Result = 'ExpiredVerificationCode';
|
||||
END
|
||||
|
||||
SELECT @Result as Result;
|
||||
END
|
||||
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[SetAccountVerificationCode]
|
||||
@VerificationCode varchar(10),
|
||||
@Email varchar(255),
|
||||
@ExpirationTime DATETIME
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @AccountExists int;
|
||||
DECLARE @VerificationCodeCount int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
SELECT @AccountExists = COUNT(*) FROM AccountTable
|
||||
WHERE Email = @Email;
|
||||
|
||||
|
||||
-- Check if account exists
|
||||
IF @AccountExists > 0
|
||||
BEGIN
|
||||
SET @Result = 'AccountExists';
|
||||
COMMIT TRANSACTION;
|
||||
SELECT @Result as Result;
|
||||
RETURN;
|
||||
END
|
||||
|
||||
IF @Result = 'AccountDontExists'
|
||||
-- Retrieve count of existing verification codes for the user
|
||||
SELECT @VerificationCodeCount = COUNT(*) FROM VerificationCode
|
||||
WHERE Email = @Email;
|
||||
|
||||
-- Check if count of existing verification codes is less than 5
|
||||
IF @VerificationCodeCount < 5
|
||||
BEGIN
|
||||
-- Insert new verification code
|
||||
INSERT INTO VerificationCode (VerificationCode, Email, ExpirationTime, Type)
|
||||
VALUES (@VerificationCode, @Email, @ExpirationTime, 'Account');
|
||||
SET @Result = 'Success';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Delete all existing verification codes for the user
|
||||
DELETE FROM VerificationCode WHERE Email = @Email;
|
||||
|
||||
-- Insert new verification code
|
||||
INSERT INTO VerificationCode (VerificationCode, Email, ExpirationTime, Type)
|
||||
VALUES (@VerificationCode, @Email, @ExpirationTime, 'Account');
|
||||
SET @Result = 'Success';
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result;
|
||||
|
||||
END
|
||||
|
||||
32
decomp/schema/RustyHearts_Account/procs/SetBillingLog.sql
Normal file
32
decomp/schema/RustyHearts_Account/procs/SetBillingLog.sql
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[SetBillingLog]
|
||||
(
|
||||
@userid varchar(50),
|
||||
@charid varchar(128),
|
||||
@uniqueid varchar(128),
|
||||
@amount int,
|
||||
@itemid int,
|
||||
@itemcount int
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
BEGIN TRY
|
||||
-- Insert the values into the BillingLog table
|
||||
INSERT INTO BillingLog (BuyTime, WindyCode, CharId, UniqueId, Amount, ItemId, ItemCount)
|
||||
VALUES (GETDATE(), @userid, @charid, @uniqueid, @amount, @itemid, @itemcount);
|
||||
|
||||
-- Return a success message
|
||||
SELECT 'Success' AS Result;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
-- Log the error and return an error message
|
||||
DECLARE @errorMessage varchar(4000) = ERROR_MESSAGE();
|
||||
RAISERROR(@errorMessage, 16, 1);
|
||||
|
||||
-- Return an error message
|
||||
SELECT 'Error: ' + @errorMessage AS Result;
|
||||
END CATCH;
|
||||
END;
|
||||
|
||||
42
decomp/schema/RustyHearts_Account/procs/SetCurrency.sql
Normal file
42
decomp/schema/RustyHearts_Account/procs/SetCurrency.sql
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[SetCurrency]
|
||||
@UserId varchar(50),
|
||||
@ServerId int,
|
||||
@NewBalance int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @Zen int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
-- Check if entry with given UserId and ServerId exists
|
||||
SELECT @Zen = Zen FROM CashTable
|
||||
WHERE WindyCode = @UserId AND WorldId = @ServerId;
|
||||
|
||||
IF @@ROWCOUNT > 0 -- entry exists
|
||||
BEGIN
|
||||
UPDATE CashTable SET Zen = @NewBalance
|
||||
WHERE WindyCode = @UserId AND WorldId = @ServerId;
|
||||
|
||||
SET @Zen = @NewBalance;
|
||||
SET @Result = 'Success';
|
||||
END
|
||||
ELSE -- entry does not exist
|
||||
BEGIN
|
||||
SET @Result = 'Failed';
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result, @Zen as Zen;
|
||||
END
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[SetPasswordVerificationCode]
|
||||
@VerificationCode varchar(10),
|
||||
@Email varchar(255),
|
||||
@ExpirationTime DATETIME
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(20);
|
||||
DECLARE @VerificationCodeCount int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- Retrieve count of existing verification codes for the user
|
||||
SELECT @VerificationCodeCount = COUNT(*) FROM VerificationCode
|
||||
WHERE Email = @Email;
|
||||
|
||||
-- Check if count of existing verification codes is less than 5
|
||||
IF @VerificationCodeCount < 5
|
||||
BEGIN
|
||||
-- Insert new verification code
|
||||
INSERT INTO VerificationCode (VerificationCode, Email, ExpirationTime, Type)
|
||||
VALUES (@VerificationCode, @Email, @ExpirationTime, 'Password');
|
||||
SET @Result = 'Success';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Delete all existing verification codes for the user
|
||||
DELETE FROM VerificationCode WHERE Email = @Email;
|
||||
|
||||
-- Insert new verification code
|
||||
INSERT INTO VerificationCode (VerificationCode, Email, ExpirationTime, Type)
|
||||
VALUES (@VerificationCode, @Email, @ExpirationTime, 'Password');
|
||||
SET @Result = 'Success';
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH;
|
||||
|
||||
SELECT @Result as Result;
|
||||
END;
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
CREATE PROCEDURE [dbo].[UpdateAccountPassword]
|
||||
@AccountPwd varchar(255),
|
||||
@Email varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Result varchar(20)
|
||||
DECLARE @AccountExists int;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION
|
||||
|
||||
SELECT @AccountExists = COUNT(*) FROM AccountTable
|
||||
WHERE Email = @Email;
|
||||
|
||||
|
||||
-- Check if account exists
|
||||
IF @AccountExists > 0
|
||||
SET @Result = 'AccountExists';
|
||||
ELSE
|
||||
SET @Result = 'Failed';
|
||||
|
||||
-- Update password
|
||||
IF @Result = 'AccountExists'
|
||||
BEGIN
|
||||
UPDATE AccountTable SET AccountPwd = @AccountPwd
|
||||
WHERE Email = @Email;
|
||||
|
||||
SET @Result = 'PasswordChanged';
|
||||
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
ROLLBACK TRANSACTION;
|
||||
SET @Result = 'TransactionFailed';
|
||||
END CATCH
|
||||
|
||||
SELECT @Result as Result;
|
||||
|
||||
END
|
||||
|
||||
34
decomp/schema/RustyHearts_Account/routines.tsv
Normal file
34
decomp/schema/RustyHearts_Account/routines.tsv
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
type_desc name parameter_id param type max_length is_output
|
||||
SQL_STORED_PROCEDURE AuthenticateUser 1 @Identifier varchar 255 0
|
||||
SQL_STORED_PROCEDURE AuthenticateUser 2 @password_verify_result bit 1 0
|
||||
SQL_STORED_PROCEDURE AuthenticateUser 3 @LastLoginIP varchar 15 0
|
||||
SQL_STORED_PROCEDURE ClearVerificationCode 1 @Email varchar 255 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 1 @WindyCode varchar 50 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 2 @AccountPwd varchar 255 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 3 @Email varchar 255 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 4 @RegisterIP varchar 16 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 5 @ServerId int 4 0
|
||||
SQL_STORED_PROCEDURE CreateAccount 6 @ShopBalance bigint 8 0
|
||||
SQL_STORED_PROCEDURE GetAccount 1 @Identifier varchar 255 0
|
||||
SQL_STORED_PROCEDURE GetCurrency 1 @UserId varchar 50 0
|
||||
SQL_STORED_PROCEDURE GetCurrency 2 @ServerId int 4 0
|
||||
SQL_STORED_PROCEDURE GetVerificationCode 1 @VerificationCode varchar 10 0
|
||||
SQL_STORED_PROCEDURE GetVerificationCode 2 @Email varchar 255 0
|
||||
SQL_STORED_PROCEDURE GetVerificationCode 3 @VerificationCodeType varchar 20 0
|
||||
SQL_STORED_PROCEDURE SetAccountVerificationCode 1 @VerificationCode varchar 10 0
|
||||
SQL_STORED_PROCEDURE SetAccountVerificationCode 2 @Email varchar 255 0
|
||||
SQL_STORED_PROCEDURE SetAccountVerificationCode 3 @ExpirationTime datetime 8 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 1 @userid varchar 50 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 2 @charid varchar 128 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 3 @uniqueid varchar 128 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 4 @amount int 4 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 5 @itemid int 4 0
|
||||
SQL_STORED_PROCEDURE SetBillingLog 6 @itemcount int 4 0
|
||||
SQL_STORED_PROCEDURE SetCurrency 1 @UserId varchar 50 0
|
||||
SQL_STORED_PROCEDURE SetCurrency 2 @ServerId int 4 0
|
||||
SQL_STORED_PROCEDURE SetCurrency 3 @NewBalance int 4 0
|
||||
SQL_STORED_PROCEDURE SetPasswordVerificationCode 1 @VerificationCode varchar 10 0
|
||||
SQL_STORED_PROCEDURE SetPasswordVerificationCode 2 @Email varchar 255 0
|
||||
SQL_STORED_PROCEDURE SetPasswordVerificationCode 3 @ExpirationTime datetime 8 0
|
||||
SQL_STORED_PROCEDURE UpdateAccountPassword 1 @AccountPwd varchar 255 0
|
||||
SQL_STORED_PROCEDURE UpdateAccountPassword 2 @Email varchar 255 0
|
||||
|
4
decomp/schema/RustyHearts_Account/tables.tsv
Normal file
4
decomp/schema/RustyHearts_Account/tables.tsv
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
AccountTable 1 11 AccountID
|
||||
BillingLog 0 8 bid
|
||||
CashTable 1 3
|
||||
VerificationCode 0 5 id
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue