Advertisement
Guest User

Untitled

a guest
Oct 11th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.74 KB | None | 0 0
  1. -- =============================================
  2. -- Author:      Ace
  3. -- =============================================
  4. ALTER PROCEDURE [dbo].[_UserAuthentication]
  5. @CharName VARCHAR(64),
  6. @IP VARCHAR(20)
  7. AS
  8. SET NOCOUNT ON
  9.  
  10. DECLARE @StrUserID VARCHAR(64),
  11.         @HardwareId VARCHAR(20),
  12.         @CharId INT
  13.  
  14. SELECT TOP 1    @StrUserID = A.AccountID,
  15.                 @CharId = C.CharID
  16. FROM    SILKROAD_R_SHARD.._Char C
  17. JOIN    SILKROAD_R_SHARD.._User U
  18. ON      C.CharID = U.CharID
  19. JOIN    SILKROAD_R_SHARD.._AccountJID A
  20. ON      U.UserJID = A.JID
  21. WHERE   C.CharName16 = @CharName
  22.  
  23. SELECT TOP 1    @HardwareId = HardwareId
  24. FROM    _User
  25. WHERE   IP = @IP
  26. AND     StrUserID = @StrUserID
  27.  
  28. IF @HardwareId IS NULL
  29. BEGIN
  30.     INSERT INTO _UserAttempts VALUES (@CharName, @IP, @HardwareId, 'HardwareId Is NULL', GETDATE())
  31.     SELECT 0
  32.     RETURN
  33. END
  34.  
  35. IF EXISTS (SELECT HardwareId FROM _HardwareIdBanList WHERE HardwareId = @HardwareId)
  36. BEGIN
  37.     INSERT INTO _UserAttempts VALUES (@CharName, @IP, @HardwareId, 'User is hardware-banned!', GETDATE())
  38.     SELECT 1
  39.     RETURN
  40. END
  41.  
  42. IF EXISTS (SELECT CharName FROM _User WHERE CharName = @CharName)
  43. BEGIN
  44.     INSERT INTO _UserAttempts VALUES (@CharName, @IP, @HardwareId, 'User is already logged in!', GETDATE())
  45.     DELETE FROM _User WHERE CharName = @CharName
  46.     SELECT 2
  47.     RETURN
  48. END
  49.  
  50. IF (SELECT COUNT(HardwareId) FROM _User WHERE HardwareId = @HardwareId AND CharName IS NOT NULL) >= 2
  51. BEGIN
  52.     INSERT INTO _UserAttempts VALUES (@CharName, @IP, @HardwareId, 'HardwareId Limit has been reached!', GETDATE())
  53.     SELECT 3
  54.     RETURN
  55. END
  56.  
  57.  
  58. IF NOT EXISTS (SELECT CharId FROM _UserInformation WHERE CharId = @CharId AND HardwareId = @HardwareId)
  59.     INSERT INTO _UserInformation VALUES (@CharId, @HardwareId, @IP, GETDATE())
  60.  
  61. IF  ((SELECT I.ItemID FROM SILKROAD_R_SHARD.._Inventory I WITH(NOLOCK)
  62.      JOIN SILKROAD_R_SHARD.._Items IT WITH(NOLOCK) ON I.ItemID = IT.ID64
  63.      JOIN SILKROAD_R_SHARD.._CharNameList C WITH(NOLOCK) ON I.CharID = C.CharID
  64.      WHERE C.CharName16 = @CharName AND I.Slot = 8
  65.      AND    IT.RefItemID IN (SELECT ID FROM SILKROAD_R_SHARD.._RefObjCommon WHERE TypeID1 = 3 AND TypeID2 = 1 AND TypeID3 = 7 AND TypeID4 IN (1,2,3) AND Service = 1)) != 0)
  66. BEGIN
  67.     IF (SELECT COUNT(HardwareId) FROM _User WHERE HardwareId = @HardwareId AND JobEquipped = 1 AND CharName IS NOT NULL) >= 1
  68.     BEGIN
  69.         INSERT INTO _UserAttempts VALUES (@CharName, @IP, @HardwareId, 'Job HardwareId Limit has been reached!', GETDATE())
  70.         SELECT 4
  71.         RETURN
  72.     END
  73.  
  74.     UPDATE  _User
  75.     SET     CharName = @CharName,
  76.             JobEquipped = 1
  77.     WHERE   HardwareId = @HardwareId
  78.     AND     StrUserID = @StrUserID
  79.     AND     IP = @IP
  80.     AND     CharName IS NULL
  81.  
  82.     SELECT 5
  83.     RETURN
  84. END
  85.  
  86. UPDATE  _User
  87. SET     CharName = @CharName
  88. WHERE   HardwareId = @HardwareId
  89. AND     StrUserID = @StrUserID
  90. AND     IP = @IP
  91. AND     CharName IS NULL
  92.  
  93. SELECT 6
  94. RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement