![]() |
|
|
#1 |
|
Site Admini
![]() Üyelik tarihi: Nov 2007
Mesajlar: 281
Tecrübe Puanı: 25
Rep Puanı : 58
Rep Derecesi :
![]() |
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 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 [dbo].[TB_USER]
HERE strAccountID = @AccountID
END
ELSE IF @Oyuncu > @ServerLimit
BEGIN
SELECT @pwd = strPassWd FROM [dbo].[TB_USER]
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
|
|
|
|
|
|
#2 |
|
Guest
Mesajlar: n/a
|
Helal olsun diyorum
admin arkadaşların işine çok yarayacak emeğe saygı +5 rep
|
|
| Reklam alanlarımız |
|
|
#3 |
|
Site Admini
![]() Üyelik tarihi: Nov 2007
Mesajlar: 281
Tecrübe Puanı: 25
Rep Puanı : 58
Rep Derecesi :
![]() |
teşekkürler paylaşmaya devam
|
|
|
|
|
|
#4 |
|
Guest
Mesajlar: n/a
|
yaa inceliyorumda vallahi adminlerin işi çok zor :S
|
|
| Reklam alanlarımız |
|
|
#5 |
|
Super Moderator
![]() |
TeşekkürLer , Emeğe Saygı..
__________________
Suan Kadar 17 Konu Açtım..! ![]() |
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Konu Araçları | |
|
|