Süreli Mute Sistemi (Yapılabilecek En İyi Hali)

Konu sahibi son olarak 2436 gün önce görüldü
USERDATA, ya alttaki iki kolonu QA yardımı ile ekliyorsunuz, Biri Mute yediği tarihi kayıt etmek için, diğeri ise kalan günü takip etmek için.
Ufak bir PHP sayfası yaparsanız siteden oyuncular sürelerini takip edebilir de.

Oyundan GM ya da sunucudan Editor yolu ile mutelenen oyuncu, Muteyi yedikten sonra oyuna ilk girdiği günden ibtibaren 7 günlük mute süresi başlar. Oyuna girmeyen oyuncuya zaten mute atmanın anlamı yok değil mi ? Ben kendim böyle kullanıyorum.

Artık mute yediği günden itibaren 8. günün başında oyuncu oyuna girerken mutesi açılır.

Prosedür de Kırmızı renk olan IF @MuteDay =7 kodunun sonunda ki 7 yi değiştirerek sürede oynama yapabilirsiniz.



NOT: İSTEK OLUR İSE SÜRELİ BAN SİSTEMİ DE PAYLAŞABİLİRİM. [/size]


BU KODU LOAD_USER_DATA ya eklemeniz yeterli.


Kod:
EXEC SURELI_MUTE@strUserID


KOLON EKLEYELİM[/size]


Kod:
ALTER TABLE USERDATA 
ADD MuteDate datetime NULL
GO
 
ALTER TABLE USERDATA
ADD MuteDay smallint NULL DEFAULT(0)
GO
 
UPDATE USERDATA SET MuteDay=0


PROSEDÜRÜ EKLEYELİM


Kod:
USE [Kn_online]
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

-- Yapan: AKI
-- 2011.01.20
-- www.pvpke.com
CREATE PROCEDURE [dbo].[SURELI_MUTE]
@strUserID varchar(21)
AS
 
declare @MuteDayFinish datetime, @TIME datetime, @Day smallint
declare @MuteDay smallint, @Authority tinyint
 
SELECT @Authority=Authority, @MuteDay = MuteDay, @MuteDayFinish = MuteDate FROM USERDATA WHERE strUserId = @strUserID
IF @Authority=11 and @MuteDay >0 and @MuteDay <8
BEGIN
SET @TIME =getdate()
SET @Day =datediff(DAY, @TIME,@MuteDayFinish)
IF @Day < 7
BEGIN
UPDATE USERDATA SET MuteDay=@Day WHERE strUserId = @strUserID
END
END
ELSE
IF @MuteDay =0 AND @Authority=11
BEGIN
UPDATE USERDATA SET MuteDate=getdate()+7, MuteDay=7 WHERE strUserId = @strUserID
END
ELSE
IF @MuteDayFinish <GETDATE()
BEGIN
UPDATE  USERDATA SET MuteDay=0,Authority=1, MuteDate =null WHERE strUserId = @strUserID 
END
UPDATE USERDATA set MuteDate =GETDATE()+7 , MuteDay =7 where Authority=11 and MuteDate is null
UPDATE USERDATA set Authority=1, MuteDay=0,MuteDate=null where MuteDate<GETDATE() and Authority=11


İyi Forumlar...

~Saygılar
 
Geri