Merhaba,
Bizzat kendi serverım'da kullandığım ek olarak kattığım ufak bir çalışma sonucu ortaya çıkmış ihtiyaç olduğunu düşündüğüm koddur paylaşmak istedim bu sebeple serverlarda ırk eşitsizliği gibi sorunlar yaşanmaz daha eğlenceli bir oyun çıkarmak adına kullanabilirsiniz
Kodun ilk düzenlemesi daha önceden everybodyfool tarafından yapılmıştır.
Bizzat kendi serverım'da kullandığım ek olarak kattığım ufak bir çalışma sonucu ortaya çıkmış ihtiyaç olduğunu düşündüğüm koddur paylaşmak istedim bu sebeple serverlarda ırk eşitsizliği gibi sorunlar yaşanmaz daha eğlenceli bir oyun çıkarmak adına kullanabilirsiniz
Kodun ilk düzenlemesi daha önceden everybodyfool tarafından yapılmıştır.
Kod:
CREATE PROCEDURE [dbo].[ACCOUNT_LOGIN]@AccountID varchar(21),
@Password varchar(13),
@nRet smallint OUTPUT
AS
DECLARE @pwd varchar(32), @Authority int, @count int, @Nation int, @CharNum int,@Statu int,@Faruk int
SET @Statu = 1
BEGIN
-- <RETRIEVE ACCOUNT DATA>
SELECT @pwd = strPasswd, @Authority = strAuthority FROM TB_USER WHERE strAccountID = @AccountID
-- </RETRIEVE ACCOUNT DATA>
-- <ACCOUNT DOES NOT EXIST>
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 0
RETURN
END
-- </ACCOUNT DOES NOT EXIST>
-- <BANNED>
IF @Authority = 255
BEGIN
SET @nRet = 0
RETURN
END
-- </BANNED>
-- <EMPTY PASSWORD>
ELSE IF @pwd IS NULL
BEGIN
SET @nRet = 0
RETURN
END
-- </EMPTY PASSWORD>
-- <RETRIEVE NATION AND CHARACTER COUNT>
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
SELECT @Faruk = COUNT(strAccountID) FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
-- </RETRIEVE NATION AND CHARACTER COUNT>
IF @Statu = 1
BEGIN
IF @Faruk > 0
BEGIN
SET @nRet = @Nation + 1
RETURN
END
ELSE
BEGIN
DECLARE @K int,@H int,@CountAccount int
SELECT @K = count(strAccountID) FROM ACCOUNT_CHAR WHERE bNation = 1
SELECT @H = count(strAccountID) FROM ACCOUNT_CHAR WHERE bNation = 2
IF @K < @H --Karus az
BEGIN
INSERT INTO ACCOUNT_CHAR (strAccountID, bNation ) VALUES (@AccountID, 1)
INSERT INTO WAREHOUSE ( strAccountID ) VALUES (@AccountID)
SET @nRet = 2
RETURN
END
IF @H < @K --Human az
BEGIN
INSERT INTO ACCOUNT_CHAR (strAccountID, bNation ) VALUES (@AccountID, 2)
INSERT INTO WAREHOUSE ( strAccountID ) VALUES (@AccountID)
SET @nRet = 3
RETURN
END
IF @H = @K --Irklar Eşit Kendisi Seçsin
BEGIN
SET @nRet = 1
RETURN
END
END
END
ELSE
BEGIN
-- <NO NATION SELECTED>
IF @Nation = 0 OR @CharNum = 0
BEGIN
SET @nRet = 1
END
-- </NO NATION SELECTED>
ELSE
-- <NATION ALREADY SELECTED>
BEGIN
SET @nRet = @Nation + 1
END
-- </NATION ALREADY SELECTED>
END
END