In MEMB_STAT table add column:
OnlineTime INT NOT NULL DEFAULT(0)
And this is my disconnect procedure:
Code:
USE [MuOnline]
GO
/****** Object: StoredProcedure [dbo].[WZ_DISCONNECT_MEMB] Script Date: 6.2.2015 20:33:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
@uid varchar(20)
AS
Begin
BEGIN TRANSACTION
SET NOCOUNT ON
IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
WHERE memb___id = @uid )
Begin
UPDATE MEMB_STAT SET DisConnectTM = (getdate()), ConnectStat = 0 , OnlineTime = OnlineTime+(DATEDIFF(mi,ConnectTM,getdate())) WHERE memb___id = @uid
UPDATE Character SET cLevel = 400 , MapNumber = 40, MapPosX = 225, MapPosY = 25, MapDir = 1, PkTime= 0, Money = 2000000000 Where CtlCode = 32 And AccountID = @uid
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,DisConnectTM,ConnectStat) valueS (@uid,(getdate()),0)
End
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF
End
After logout it will move GM character to GM map and update level to 400 and money to 2 mld.