Kandaz Forum Türkiyenin En Yeni Forum Sitesi  

Geri git   Kandaz Forum Türkiyenin En Yeni Forum Sitesi > Knight Online > Prosedür & Kod Paylaşımları

Cevapla
 
Konu Araçları
Alt 17. November, 18:14   #1
Foreveraytaci
Site Admini
 
Foreveraytaci - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Nov 2007
Mesajlar: 281
Tecrübe Puanı: 25
Rep Puanı : 58
Rep Derecesi : Foreveraytaci will become famous soon enough
Arrow Süper ACCONT_LOGIN Prosedürü [ Ekstra Ayarlamalar + Detaylar

 
Kolaylık olsun diye hazırladığım bir account_login projesi.Özellikleri :

- Ayarlamalı Oto Master
- Ayarlamalı Oto Uyelik
- Ayarlamalı IP Ban
- Ayarlamalı Server Limit
- Ayarlamalı Account Ban
- Ayarlamalı Bakım Modu
- Detaylı Bilgilendirme
- Problemsiz


Öncelikle şunu söyeyim prosedürde ayarlayabileceğiniz özellikler en yukarıda belirtilmiştir :

SET @OtoMaster = 0 ( Oto masterı kapatır ) , 1 ( Oto masterı açar )
SET @OtoUyelik = 0 ( Oto uyeliği kapatır ) , 1 ( oto üyeliği açar )
SET @AccountBan = 0 ( Account Ban özelliğini kapar ) , 1 ( Account ban özelliğini açar )
SET @IPBan = 0 ( IP Ban sistemini kapar ) , 1 ( IP Ban sistemini açar )
SET @ServerLimit = 0 ( Servera Herkes Girebilir ) , 0 Harici bir değer ( Server Giriş Limiti girdğiniz sayı olur )
SET @Bakim = 0 ( Servera herkes giriş yapabilir ) , 1 ( Servera sadece gm karakteri olanlar giriş yapabilir )

Kısacası 1 aktifleştirir , 0 pasifleştirir ..

Tablolarımız :

BLOCK_IP = Numara (nvarchar 21)
BLOCK_ACCOUNT = strAccountID = (nvarchar 21)

Yukarıdaki 2 tabloyu oluşturduktan sonra prosedürleri aşağıdaki gibi değiştiriyoruz :

PROC_INSERT_CURRENTUSER
tsql Kod:

Kod:
CREATE PROCEDURE PROC_INSERT_CURRENTUSER

@AccountID  VARCHAR(50),
@CharID         VARCHAR(50),
@ServerNo   INT, 
@ServerIP       VARCHAR(50),
@ClientIP       VARCHAR(50),
@nret SMALLINT OUTPUT 
AS
-- Ip Ban System by Trayhoper
 
DECLARE @Sayi INT
SELECT @Sayi = COUNT(Numara) FROM BLOCK_IP WHERE Numara = @ClientIP
IF @Sayi > 0 
BEGIN
SET @nRet = 0
RETURN
END
 
ELSE IF @Sayi = 0
BEGIN
INSERT INTO CURRENTUSER (nServerNo, strServerIP,  strAccountID, strCharID, strClientIP )  VALUES  (@ServerNo, @ServerIP, @AccountID, @CharID, @ClientIP )
UPDATE TB_USER SET IP = @ClientIP WHERE strAccountID = @AccountID
SET @nRet = 1
RETURN

ENDGO
ACCOUNT_LOGIN
tsql Kod:

Kod:
--Hazırlayan Trayhoper
CREATE PROCEDURE ACCOUNT_LOGIN
@AccountID    VARCHAR(21),
@Password    VARCHAR(13),
@nRet        SMALLINT    OUTPUT

AS
DECLARE @OtoUyelik INT,@ServerLimit INT,@AccountBan INT,@IPBan INT,@OtoMaster 
NT,@Bakim INT
SET @AccountBan = 0
SET @IPBan = 0
SET @ServerLimit = 800
SET @OtoUyelik = 0
SET @OtoMaster = 0
SET @Bakim = 0
-- Oto Uyelik
IF @OtoUyelik = 1
    BEGIN
        SELECT @nRet = COUNT(strAccountID) FROM TB_USER WHERE strAccountID = 
AccountID
            IF NOT exists(SELECT strAccountID FROM TB_USER WHERE strAccountID 
 @AccountID)
                    INSERT INTO TB_USER (strAccountID, strPassWd, strSocNo, 
days) VALUES (@AccountID, @password, 1, '6')
END 
-- Oto Uyelik
-- Server Limit
DECLARE @Oyuncu INT,@pwd VARCHAR(13)
SET @pwd = null
IF NOT @ServerLimit = 0
    BEGIN
        SELECT @Oyuncu = COUNT(*) FROM CURRENTUSER
        IF @Oyuncu <= @ServerLimit
            BEGIN
                SELECT @pwd = strPassWd FROM &#91;dbo&#93;.&#91;TB_USER&#93; 
HERE strAccountID = @AccountID
        END
    ELSE IF @Oyuncu > @ServerLimit
        BEGIN
                SELECT @pwd = strPassWd FROM &#91;dbo&#93;.&#91;TB_USER&#93; 
HERE strAccountID = @AccountID and Premium > 0
    END
END
-- Server Limit
-- Account Ban
IF @AccountBan = 1
    BEGIN
        IF exists(SELECT strAccountID FROM BLOCK_ACCOUNT WHERE strAccountID = 
AccountID)
            SET @nRet = 4
    RETURN
END
-- Accont Ban
-- IP Ban 
DECLARE @CharIP VARCHAR(50)
SELECT @CharIP = IP FROM TB_USER WHERE strAccountID = @AccountID
IF @IPBan = 1
    BEGIN
        IF exists(SELECT Numara FROM BLOCK_IP WHERE Numara = @CharIP)
            SET @nRet = 4
END 
-- IP Ban
-- Oto Master
DECLARE @CharID1 VARCHAR(21),@CharID2 NVARCHAR(21),@CharID3 NVARCHAR(21)
SELECT @CharID1 = strCharID1,@CharID2 = strCharID3,@CharID3 = strCharID3 FROM 
CCOUNT_CHAR WHERE strAccountID = @AccountID
IF @OtoMaster = 1
    BEGIN

            UPDATE USERDATA SET CLASS = CLASS + 1 WHERE CLASS % 2 != 0 and 
EVEL > 59 and strUserID = @CharID1
            UPDATE USERDATA SET CLASS = CLASS + 1 WHERE CLASS % 2 != 0 and 
EVEL > 59 and strUserID = @CharID2
            UPDATE USERDATA SET CLASS = CLASS + 1 WHERE CLASS % 2 != 0 and 
EVEL > 59 and strUserID = @CharID3
END
-- Oto Master
-- Bakım Modu
DECLARE @CharID1Au INT,@CharID2Au INT,@CharID3Au INT
SELECT @CharID1Au = Authority FROM USERDATA WHERE strUserID = @CharID1
SELECT @CharID2Au = Authority FROM USERDATA WHERE strUserID = @CharID2
SELECT @CharID3Au = Authority FROM USERDATA WHERE strUserID = @CharID3
IF @Bakim = 1
    IF NOT @CharID1Au = 0 OR NOT @CharID2Au = 0 OR NOT @CharID3Au = 0
        BEGIN
            SET @nRet = 4
        RETURN
END

-- Bakım Modu
DECLARE @Nation TINYINT, @CharNum SMALLINT,@Game INT,@LIMIT INT
SET @Nation = 0
SET @CharNum = 0

-- Şifre Bölümü Boşsa
IF @pwd IS null
    BEGIN
        SET @nRet = 3
    RETURN
END
-- Şifre Yanlışsa
    ELSE IF @pwd <> @Password
        BEGIN
            SET @nRet = 3
        RETURN
END
-- Hesap Kullanımdaysa
    ELSE IF exists(SELECT strAccountID FROM CURRENTUSER WHERE strAccountID = 
AccountID)
        BEGIN
            SET @nRet = 5
    RETURN
END
-- Hesap Yoksa
    ELSE IF NOT exists(SELECT strAccountID FROM TB_USER WHERE strAccountID = 
AccountID)
        BEGIN
            SET @nRet = 2
    RETURN
END

SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE 
trAccountID = @AccountID
IF @@ROWCOUNT = 0
    BEGIN
        SET @nRet = 1
    RETURN
END
IF @CharNum = 0
    BEGIN
        SET @nRet = 1
    RETURN
END
ELSE
    BEGIN
        SET @nRet = @Nation + 1
    RETURN
END
GO
Alıntı : TroyhopeR
__________________
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Administrator
Kaynaklar
Foreveraytaci isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 20. November, 15:05   #2
By_MecHuL
Guest
Avatar Yok
 
Mesajlar: n/a
Standart

 
Helal olsun diyorum admin arkadaşların işine çok yarayacak emeğe saygı
+5 rep
  Alıntı ile Cevapla
Reklam alanlarımız
Alt 22. November, 07:46   #3
Foreveraytaci
Site Admini
 
Foreveraytaci - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Nov 2007
Mesajlar: 281
Tecrübe Puanı: 25
Rep Puanı : 58
Rep Derecesi : Foreveraytaci will become famous soon enough
Standart

 
teşekkürler paylaşmaya devam
__________________
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Administrator
Foreveraytaci isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 22. November, 09:24   #4
By_MecHuL
Guest
Avatar Yok
 
Mesajlar: n/a
Standart

 
yaa inceliyorumda vallahi adminlerin işi çok zor :S
  Alıntı ile Cevapla
Reklam alanlarımız
Alt 6. July, 11:48   #5
SкγєηdLєSS
Super Moderator
 
SкγєηdLєSS - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Jul 2009
Bulunduğu yer: '' im kandazforum Bekleriz...!
Mesajlar: 140
Tecrübe Puanı: 70
Rep Puanı : 6975
Rep Derecesi : SкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond reputeSкγєηdLєSS has a reputation beyond repute
SкγєηdLєSS - MSN üzeri Mesaj gönder
Standart

 
TeşekkürLer , Emeğe Saygı..
__________________
Suan Kadar 17 Konu Açtım..!


Kaynaklar
SкγєηdLєSS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Konu Araçları

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Gitmek istediğiniz klasörü seçiniz


Bütün Zaman Ayarları WEZ olarak düzenlenmiştir. Şu Anki Saat: 06:11 .


Powered ßy Budakliweb®
Oyun Sitemiz © - http://oyun.kandazforum.com
Kandaz Forum 2007