I corrected this script and added the missing variables.
TGLOBAL_GSP -> Functions -> TLogout.
TGLOBAL_GSP -> Functions -> TLogout.
PHP Code:
/* LOGOUT PROCESS
========================================================
PARAMETER
========================================================
@dwUserID INT
========================================================
RETURN VALUE
========================================================
0 : SUCCESS
1 : NO USER
========================================================
PROCESS
========================================================
1. Check TCURRENTUSER table
2. Delete user from TCURRENTUSER
3. Update log data
*/
ALTER PROCEDURE [dbo].[TLogout]
@dwUserID INT,
@dwCharID INT,
@bLevel TINYINT,
@dwExp INT,
@bSlot TINYINT,
@szNAME VARCHAR,
@bClass TINYINT,
@bRace TINYINT,
@bCountry TINYINT,
@bSex TINYINT,
@bHair TINYINT,
@bFace TINYINT
AS
DECLARE @dwCurCharID INT
DECLARE @dwKEY INT
DECLARE @bGroupID TINYINT
DECLARE @bChannel TINYINT
DECLARE @dLoginDate SMALLDATETIME
BEGIN TRAN LOGOUT
SELECT TOP 1 @dwKEY = dwKEY, @dwCurCharID = dwCharID, @bGroupID = bGroupID, @bChannel = bChannel, @dLoginDate = dLoginDate FROM TCURRENTUSER WHERE dwUserID = @dwUserID
IF (@@ROWCOUNT = 0)
BEGIN
/* Not found connected user */
COMMIT TRAN LOGOUT
RETURN 1
END
ELSE
BEGIN
UPDATE TLOG SET
dwCharID = @dwCurCharID,
bGroupID = @bGroupID,
bChannel = @bChannel,
timeLOGOUT = GETDATE()
WHERE dwKEY = @dwKEY
END
/* @dwCurCharID e il dwCharID */
SELECT * FROM TALLCHARTABLE WHERE dwCharID = @dwCurCharID
IF(@@ROWCOUNT = 1)
BEGIN
UPDATE TALLCHARTABLE
SET bLevel = @bLevel,
dwExp = @dwExp,
dLoginDate = @dLoginDate,
dLogoutDate = GETDATE(),
bSlot = @bSlot,
szNAME = @szNAME,
bClass = @bClass,
bRace = @bRace,
bCountry = @bCountry,
bSex = @bSex,
bHair = @bHair,
bFace = @bFace,
dwPlayTime = dwPlayTime + DATEDIFF(second, @dLoginDate, getdate())
WHERE dwCharID = @dwCharID
AND bWorldID = @bGroupID
DELETE FROM TCURRENTUSER WHERE dwUserID = @dwUserID
END
COMMIT TRAN LOGOUT
RETURN 0