Hey guys, I know some devs are removing there stuff, this is hard on servers who really really need it...So I will re upload and remake what is removed, and post it here.
First off: IP ban: Information, bans IP's by table, was created by LittleProHacker, and I have made no changes to it, since none are needed...
Second: Dupe fix made by EC: Infromation, prevents dupeing on servers, was made by EC and has small changes made by me. To get this to work, just add in the parts that are missing to your DB.
Game login - Tawian
Insert action log -
Try Gamelogout
First off: IP ban: Information, bans IP's by table, was created by LittleProHacker, and I have made no changes to it, since none are needed...
Second: Dupe fix made by EC: Infromation, prevents dupeing on servers, was made by EC and has small changes made by me. To get this to work, just add in the parts that are missing to your DB.
Game login - Tawian
PHP Code:
USE [PS_UserData]
…
@UserUID int = -1,
@LoginType smallint = 1,
@LoginTime datetime = NULL
AS
SET NOCOUNT ON
DECLARE
@Leave tinyint,
@Status smallint,
@CompanyIP varchar(15),
@TempIP varchar(15),
@Check int,
@LeaveDate datetime
/*==================================================
-1 Invalid ID and Password
-2 Can't connect with the account since it's not selected as free challenger
-3 Account doesn't exist
-4 ID inprocess of termination follwing user's request.
-5 Your account is blocked now. You can't log into the game.
-6 Your account is blocked now. You can't log into the game.
-7 Account still restricted
==================================================*/
SET @Status = -1
SET @LoginTime = GETDATE()
--------------------------------------------------
SET @CompanyIP = '61.107.81'
SET @UserIP = LTRIM( RTRIM(@UserIP) )
--------------------------------------------------
SET @Check = 0
--------------------------------------------------
SELECT @UserUID=[UserUID], @Status=[Status], @Leave=[Leave], @LeaveDate=LeaveDate
FROM Users_Master
WHERE UserID = @UserID AND Pw = @InPassword
-- NotExist User OR Leave User
IF( @UserUID = 0)
BEGIN
SET @Status = -3
END
ELSE IF (@Leave = 1) --This blocks a logged in account from being kicked
BEGIN
SET @Status = -5
END
ELSE IF (DATEDIFF(SECOND, @LeaveDate, GETDATE()) < 6)--This is the time delay
BEGIN
SET @Status = -7
END
...
-- Select
SELECT @Status AS Status, @UserUID AS UserUID
-- Log Insert
IF( @Status = 0 OR @Status = 16 OR @Status = 32 OR @Status = 48 OR @Status = 64 OR @Status = 80 )
BEGIN
UPDATE Users_Master SET Leave = 1, JoinDate = GETDATE() WHERE UserUID = @UserUID
END
SET NOCOUNT OFF
Insert action log -
PHP Code:
USE [PS_userdata]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[usp_Try_GameLogout_R]
@UserUID int,
@SessionID bigint,
@LogoutType smallint = 0,
@ErrType int = 0
AS
SET NOCOUNT ON
DECLARE @LogTime datetime
DECLARE @Sql nvarchar(4000)
DECLARE @yyyy varchar(4)
DECLARE @mm varchar(2)
DECLARE @dd varchar(2)
DECLARE @LogType bit -- Login:0, Logout:1
SET @LogType = 1
SET @LogTime = GETDATE()
SET @yyyy = DATEPART(yyyy, @LogTime)
SET @mm = DATEPART(mm, @LogTime)
SET @dd = DATEPART(dd, @LogTime)
IF( LEN(@mm) = 1 )
BEGIN
SET @mm = '0' + @mm
END
IF( LEN(@dd) = 1 )
BEGIN
SET @dd = '0' + @dd
END
UPDATE Users_Master SET Leave = 0, LeaveDate = GETDATE() WHERE UserUID = @UserUID
UPDATE PS_GameLog.dbo.UserLog
SET LogoutTime=@LogTime, LogoutType=@LogoutType, LogoutErrType=@ErrType
WHERE UserUID=@UserUID AND SessionID=@SessionID
SET NOCOUNT OFF
Try Gamelogout
PHP Code:
USE [PS_GameLog]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[usp_Insert_Action_Log_E]
…
AS
DECLARE @CharLeave int
SET @yyyy = datepart(yyyy, @ActionTime)
SET @mm = datepart(mm, @ActionTime)
SET @dd = datepart(dd, @ActionTime)
SET @CharLeave = 1
IF @ActionType = '116'--Trade Item-remove item from originator
BEGIN
WAITFOR DELAY '00:00:05'--Time delay to give the duper time to log out fully
SELECT @CharLeave=Leave
FROM PS_userdata.dbo.Users_Master
WHERE UserUID=@UserUID
IF @CharLeave=0
BEGIN
EXEC PS_GameData.dbo.usp_Save_Char_Item_Del_E @CharID=@CharID, @IDList=@Value1
END
END
IF @ActionType = '164'--Trade Gold-remove gold from originator
BEGIN
WAITFOR DELAY '00:00:05'--Time delay to give the duper time to log out fully
SELECT @CharLeave=Leave
FROM PS_userdata.dbo.Users_Master
WHERE UserUID=@UserUID
IF @CharLeave=0
BEGIN
UPDATE PS_GameData.dbo.Chars
SET [Money]=@Value2
WHERE PS_GameData.dbo.Chars.CharID=@CharID
END
END
SET @Sql = N'
INSERT INTO PS_GameLog.dbo.ActionLog
(UserID, UserUID, CharID, CharName, CharLevel, CharExp, MapID, PosX, PosY, PosZ, ActionTime, ActionType,
Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Text1, Text2, Text3, Text4)
VALUES(@UserID, @UserUID, @CharID, @CharName, @CharLevel, @CharExp, @MapID, @PosX, @PosY, @PosZ, @ActionTime, @ActionType,
@Value1, @Value2, @Value3, @Value4, @Value5, @Value6, @Value7, @Value8, @Value9, @Value10, @Text1, @Text2, @Text3, @Text4)'
EXEC sp_executesql @Sql,
N'@UserID varchar(18), @UserUID int, @CharID int, @CharName varchar(50),
@CharLevel tinyint, @CharExp int, @MapID smallint, @PosX real, @PosY real, @PosZ real, @ActionTime datetime, @ActionType tinyint,
@Value1 bigint, @Value2 int, @Value3 int, @Value4 bigint, @Value5 int, @Value6 int, @Value7 int, @Value8 int,
@Value9 int, @Value10 int, @Text1 varchar(100), @Text2 varchar(100), @Text3 varchar(100), @Text4 varchar(100)',
@UserID, @UserUID, @CharID, @CharName, @CharLevel, @CharExp, @MapID, @PosX, @PosY, @PosZ, @ActionTime, @ActionType,
@Value1, @Value2, @Value3, @Value4, @Value5, @Value6, @Value7, @Value8, @Value9, @Value10, @Text1, @Text2, @Text3, @Text4