:OZELLIKLERI:







1- Eğer o pc den daha önce girilmişse,başka bir hesap ile ip değişene kadar girilemez.



2- Daha önce o ip ile giriş yapmış ve başka bir hesap ile girmeyi deneyen kullanıcı oyuna alınmaz ve KRAL_LOG tablosuna karakter isimleri ile beraber kayıt edilir.



3- KRAL_LOG tablosundaki Tekrarlama sekmesinde ne kadar oyuna girme denemesi yapmış,görebilirsiniz ..







:YAPILACAKLAR:









Kod:

ACCOUNT_LOGOUT VE ACCOUNT_LOGOUT2

Prosedürlerinden aşağıdaki kodu silin.









Kod:

DELETE FROM CURRENTUSER WHERE strAccountID = @AccountID

ACCOUNT_LOGIN Prosedüründe yukarılara bir yerlere ekleyin :









Kod:

DECLARE @online int,@kullanici varchar(21),@ztnvar int,@Kral1 varchar(21),@Kral2 varchar(21),@Kral3 varchar(21),@Tekrar int,@eskiacc varchar(21)

Select @online = Count(strClientIP) FROM CURRENTUSER WHERE strAccountID = @AccountID

Select @eskiacc = strAccountID FROM CURRENTUSER WHERE strAccountID = @AccountID

Select @kullanici = strCharID FROM CURRENTUSER WHERE strAccountID = @AccountID

Select @Kral1 = strCharID1,@kral2 = strCharID2,@Kral3 = strCharID3 FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID

Select @ztnvar = Count(strAccountID) FROM CURRENTUSER WHERE strAccountID = @AccountID

Select @Tekrar = Tekrarlama FROM KRAL_LOG WHERE strAccountID = @AccountID

IF @online = 1 AND @ztnvar = 0 AND @eskiacc @AccountID

BEGIN

SET @nRet = 2

INSERT INTO KRAL_LOG(strAccountID,strChar1,strChar2,strChar3) VALUES(@AccountID,@Kral1,@Kral2,@Kral3)

RETURN

END



ELSE IF @online = 1 AND @ztnvar = 1 AND @eskiacc @AccountID

BEGIN

SET @nRet = 2

SET @Tekrar = @Tekrar + 1

UPDATE KRAL_LOG Set Tekrarlama = @Tekrar WHERE strAccountID = @AccountID

RETURN

END

---------------------------



Yeni bir KRAL_LOG tablosu oluşturun :







strAccountID > varchar(50)



strChar1 > varchar(50)



strChar2 > varchar(50)



strChar3 > varchar(50)



Tekrarlama > int(4)



------------------------------







Bende vista olduğu için kodu deneyemiyorum.Ama kodda sorun olmaması lazım.Varsa bile ben size mantığı söyleyim,siz yapılacakları yaparsınız :







ACC_LOGOUT prosedürlerinden oyundan düşürmüş gibi göstermemeyi sağladık.Yani player oyunda olmasa bile oyunda gözükecek.ACC_LOGIN prosedürünede eğer currentuserda o ip ye ait bir giriş yapılmışsa,oyuna almamasını sağladık.Yani 1 ip ancak ip si değişene kadar 1 hesaptan giriş yapabilecek.Kodun diğer geri kalan kısmıda KRAL_LOG tablosundaki veriler için kullanılıyor ..







NOT; Modemi kapatıp açanlar için fasıfsızdır , ama en fazla 5 kere yapaccaktır aynı numarayı











Alıntı Arkadaşlar Az Edit Toparlama