Server Tanitimi , Ko Tanitimi , Silkroad Pvp Serverler , Metin2 Pvp Serverler

Krallık Seçimlerine 1 İp den 1 Oy

[XFB] Konu Bilgileri

Konu Hakkında Merhaba, tarihinde Prosedür & Kod Paylaşımları kategorisinde Stark tarafından oluşturulan Krallık Seçimlerine 1 İp den 1 Oy başlıklı konuyu okuyorsunuz. Bu konu şimdiye dek 545 kez görüntülenmiş, 0 yorum ve 0 tepki puanı almıştır...
Kategori Adı Prosedür & Kod Paylaşımları
Konu Başlığı Krallık Seçimlerine 1 İp den 1 Oy
Konbuyu başlatan Stark
Başlangıç tarihi
Cevaplar
Görüntüleme
İlk mesaj tepki puanı
Son Mesaj Yazan Stark

Stark

K.Destek Yöneticisi
: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
 
Üst