- Oyuna giriş ve çıkış zamanını kayıtlı tutar.
- Oyunda bulunduğu ne kadar exp, ne kadar np kastığını kayıtlı tutar.
- Kişinin hangi charla hangi ip'den ne kadar bağlı kaldığını kayıtlı tutar.
- Char ID - Kastığı Exp - Kastığı NP - Kastığı Aylık NP - Level - IP - Giriş Zamanı - Çıkış Zamanı - Oyunda Kalınan Süre
Not : Çalışması için, bir önceki paylaşımım [Paylaşım] Karakterlerin Online Süreleri
veritabanınıza ekli olması lazım.
Tutulan kayıttan bir görüntü ;
Prosedürler & Tablolar ;
Kod:
CREATE TABLE [dbo].[USER_LOG] (
[strUserID] [varchar] (50),
[pExp] [int] NULL ,
[pNP] [int] NULL ,
[pNP2] [int] NULL ,
[pLvl] [int] NULL ,
[IP] [varchar] (50) ,
[OnlineDate] [datetime] NULL ,
[OfflineDate] [datetime] NULL ,
[Time] [int] NULL
) ON [PRIMARY]
GO
Kod:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ACCOUNT_LOGOUT]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[ACCOUNT_LOGOUT]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE ACCOUNT_LOGOUT
@AccountID varchar(21),
@nRet smallint OUTPUT
AS
BEGIN
/* ====== Karakterlerin Çevrimiçi Sürelerini Hesaplama ve Ne yaptıklarını kaydetme ==== styLemert ===== */
Declare @Giris datetime, @Cikis datetime, @OnlineTime int, @OnlineTime2 int, @id varchar(50), @IP varchar(50),@pExp int,@pNp int,@pNp2 int,@pLvl int,@nExp int,@nNp int,@nNp2 int,@nLvl int
Declare @pnExp int, @pnNp int, @pnNp2 int, @pnLvl int
Set @Giris = (Select Sure From [CURRENTUSER] Where strAccountID = @AccountID)
Set @Cikis = getdate()
Set @id = (Select [strCharID] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @IP = (Select [strClientIP] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pExp = (Select [Exp] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pNp = (Select [Np] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pNp2 = (Select [Np2] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pLvl = (Select [Lvl] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @nExp = (Select [Exp] From [USERDATA] Where strUserId = @id)
Set @nNp = (Select [Loyalty] From [USERDATA] Where strUserId = @id)
Set @nNp2 = (Select [LoyaltyMonthly] From [USERDATA] Where strUserId = @id)
Set @nLvl = (Select [Level] From [USERDATA] Where strUserId = @id)
Set @pnExp = @nExp - @pExp
Set @pnNp = @nNp - @pNp
Set @pnNp2 = @nNp2 - @pNp2
Set @pnLvl = @nLvl - @pLvl
Set @OnlineTime = (Select OnlineTime From [USERDATA] Where strUserId = @id)
Set @OnlineTime2 = Datediff(second, @Giris, @Cikis)
Insert Into [USER_LOG] Values ( @id, @pnExp, @pnNp, @pnNp2, @pnLvl, @IP, @Giris , getdate(),@OnlineTime2)
Update [USERDATA] Set OnlineTime = @OnlineTime + @OnlineTime2 Where strUserId = @id
/* ====== Karakterlerin Çevrimiçi Sürelerini Hesaplama ve Ne yaptıklarını kaydetme ==== styLemert ===== */
DELETE FROM CURRENTUSER WHERE strAccountID = @AccountID
SET @nRet = 1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
- Oyunda bulunduğu ne kadar exp, ne kadar np kastığını kayıtlı tutar.
- Kişinin hangi charla hangi ip'den ne kadar bağlı kaldığını kayıtlı tutar.
- Char ID - Kastığı Exp - Kastığı NP - Kastığı Aylık NP - Level - IP - Giriş Zamanı - Çıkış Zamanı - Oyunda Kalınan Süre
Not : Çalışması için, bir önceki paylaşımım [Paylaşım] Karakterlerin Online Süreleri
veritabanınıza ekli olması lazım.
Tutulan kayıttan bir görüntü ;
Prosedürler & Tablolar ;
Kod:
CREATE TABLE [dbo].[USER_LOG] (
[strUserID] [varchar] (50),
[pExp] [int] NULL ,
[pNP] [int] NULL ,
[pNP2] [int] NULL ,
[pLvl] [int] NULL ,
[IP] [varchar] (50) ,
[OnlineDate] [datetime] NULL ,
[OfflineDate] [datetime] NULL ,
[Time] [int] NULL
) ON [PRIMARY]
GO
Kod:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ACCOUNT_LOGOUT]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[ACCOUNT_LOGOUT]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE ACCOUNT_LOGOUT
@AccountID varchar(21),
@nRet smallint OUTPUT
AS
BEGIN
/* ====== Karakterlerin Çevrimiçi Sürelerini Hesaplama ve Ne yaptıklarını kaydetme ==== styLemert ===== */
Declare @Giris datetime, @Cikis datetime, @OnlineTime int, @OnlineTime2 int, @id varchar(50), @IP varchar(50),@pExp int,@pNp int,@pNp2 int,@pLvl int,@nExp int,@nNp int,@nNp2 int,@nLvl int
Declare @pnExp int, @pnNp int, @pnNp2 int, @pnLvl int
Set @Giris = (Select Sure From [CURRENTUSER] Where strAccountID = @AccountID)
Set @Cikis = getdate()
Set @id = (Select [strCharID] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @IP = (Select [strClientIP] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pExp = (Select [Exp] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pNp = (Select [Np] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pNp2 = (Select [Np2] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @pLvl = (Select [Lvl] From [CURRENTUSER] Where strAccountID = @AccountID)
Set @nExp = (Select [Exp] From [USERDATA] Where strUserId = @id)
Set @nNp = (Select [Loyalty] From [USERDATA] Where strUserId = @id)
Set @nNp2 = (Select [LoyaltyMonthly] From [USERDATA] Where strUserId = @id)
Set @nLvl = (Select [Level] From [USERDATA] Where strUserId = @id)
Set @pnExp = @nExp - @pExp
Set @pnNp = @nNp - @pNp
Set @pnNp2 = @nNp2 - @pNp2
Set @pnLvl = @nLvl - @pLvl
Set @OnlineTime = (Select OnlineTime From [USERDATA] Where strUserId = @id)
Set @OnlineTime2 = Datediff(second, @Giris, @Cikis)
Insert Into [USER_LOG] Values ( @id, @pnExp, @pnNp, @pnNp2, @pnLvl, @IP, @Giris , getdate(),@OnlineTime2)
Update [USERDATA] Set OnlineTime = @OnlineTime + @OnlineTime2 Where strUserId = @id
/* ====== Karakterlerin Çevrimiçi Sürelerini Hesaplama ve Ne yaptıklarını kaydetme ==== styLemert ===== */
DELETE FROM CURRENTUSER WHERE strAccountID = @AccountID
SET @nRet = 1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO