WepMasteR 3.Seviye Üye
Cinsiyet : Nerden : İzmir Yaş : 35 Mesaj Sayısı : 56 Başarı : 57000 Rep Gücü : 0
| Konu: Account Değişimi Prosedürü 21/9/2010, 14:02 | |
| Size 2 Procedür Vereyim Lazım Olur 1. Her Hangi Bir Karakteri Yeni Bir Hesaba Taşıyan Prosedür. Özellikleri ; * Karakterin Doğruluğunu Kontrol Eder * Yeni Oluşturulacak Hesabın Var Olup Olmadığını Denetler. * Eski Hesaptaki Karakterin Bilgisini Siler Böylelikle Bozuk Çar vb. Bişi Oluşmaz. * Sonuça İlişkin Bilgi Verir. - Kod:
-
CREATE PROCEDURE USER_TRANSFER_TO_NEW_ACCOUNT @AccountID char(21), @Password char(21), @UserId char(21) AS /* Author : AKUMA Update : 02.03.2009 - 20:20 SET LANGUAGE Turkish
DECLARE @IsValidUserId int DECLARE @IsValidAccountID int DECLARE @GetNation int
SELECT @IsValidAccountID = COUNT(*) FROM TB_USER WHERE strAccountID = @AccountID
IF @IsValidAccountID <> 0 BEGIN PRINT RTRIM(LTRIM(@AccountID)) + ' Hesap IDsi Başka Bir Hesapta Kullanılıyor...' END ELSE BEGIN
SELECT @IsValidUserId = COUNT(*) FROM USERDATA WHERE strUserId = @UserId
IF @IsValidUserId = 0 BEGIN PRINT RTRIM(LTRIM(@UserId)) + ' İsmine Sahip Karakter Bulunamadı.' END ELSE BEGIN SELECT @GetNation = Nation FROM USERDATA WHERE strUserId = @UserId
UPDATE ACCOUNT_CHAR SET strCharID1 = NULL WHERE strCharID1 = @UserId AND strCharID1 IS NOT NULL UPDATE ACCOUNT_CHAR SET strCharID2 = NULL WHERE strCharID2 = @UserId AND strCharID2 IS NOT NULL UPDATE ACCOUNT_CHAR SET strCharID3 = NULL WHERE strCharID3 = @UserId AND strCharID3 IS NOT NULL
INSERT INTO TB_USER (strAccountID,strPasswd,strSocNo,idays,premiumdays,premiumtype) VALUES (@AccountID,@Password,1,6,GETDATE() + 20,0)
INSERT INTO ACCOUNT_CHAR (strAccountID,bNation,bCharNum,strCharID1) VALUES (@AccountID,@GetNation,1,@UserId)
INSERT INTO WAREHOUSE (strAccountID,nMoney,dwTime,WarehouseData,strSerial) VALUES (@AccountID,0,0,NULL,NULL)
PRINT RTRIM(LTRIM(@UserId)) + ' Karakteri Yeni Hesaba Başarı ile Eklendi.' PRINT 'İşlem Bilgileri ;' PRINT 'Hesap ID : ' + RTRIM(LTRIM(@AccountID)) PRINT 'Şifre : ' + RTRIM(LTRIM(@Password)) PRINT 'Karakter Adı : ' + RTRIM(LTRIM(@UserId))
IF @GetNation = 1 PRINT 'IRK : Karus' ELSE PRINT 'IRK : Human' END END
Kullanım : - Kod:
-
USER_TRANSFER_TO_NEW_ACCOUNT 'YeniHesabınIDsi','Şifresi','TaşınacakKarakterinOyundakiID'
2. si Necronun kini Düzeltmesi (Hesap Adı Değiştirme - Necro WAREHOUSE u ve Yeni ID Nin Kontrolünü Unutmuş) Özellikleri ; * Eski Hesabın Doğruluğunu Kontrol Eder * Yeni Hesap Adının Veritabanında Kullanıp Kullanılmadığına Bakar. * Sonuça İlişkin Bilgi Verir. - Kod:
-
CREATE PROCEDURE ACCOUNT_NAME_CHANGE @OldAccountID char(21), @NewAccountID char(21), AS
SET LANGUAGE Turkish
DECLARE @Password char(21)
SELECT strAccountID FROM TB_USER WHERE strAccountID = @OldAccountID
IF @@ROWCOUNT <> 0 BEGIN
SELECT strAccountID FROM TB_USER WHERE strAccountID = @NewAccountID
IF @@ROWCOUNT = 0 BEGIN
SELECT @Password = strPasswd FROM TB_USER WHERE strAccountID = @OldAccountID
UPDATE TB_USER SET strAccountID = @NewAccountID WHERE strAccountID = @OldAccountID
UPDATE ACCOUNT_CHAR SET strAccountID = @NewAccountID WHERE strAccountID = @OldAccountID
UPDATE WAREHOUSE SET strAccountID = @NewAccountID WHERE strAccountID = @OldAccountID
PRINT RTRIM(LTRIM(@OldAccountID)) + ' Adlı Hesabın Bilgileri Başarılıyla Değiştirildi.' PRINT 'İşlem Bilgileri ;' PRINT 'Eski Hesap ID : ' + RTRIM(LTRIM(@OldAccountID)) PRINT 'Yeni Hesap ID : ' + RTRIM(LTRIM(@NewAccountID)) PRINT 'Mevcut Şifre : ' + RTRIM(LTRIM(@Password))
END ELSE BEGIN PRINT 'HATA : ' + RTRIM(LTRIM(@OldAccountID)) + ' Adlı Hesabın Bilgileri Değiştirilemedi.' PRINT 'İşlem Bilgileri ;' PRINT 'Eski Hesap ID : ' + RTRIM(LTRIM(@OldAccountID)) PRINT 'Yeni Hesap ID : ' + RTRIM(LTRIM(@NewAccountID)) PRINT 'Açıklama : Yeni Verilen Hesap Adı Veritabanında Başka Bir Kullanıcı Tarafından Kullanılmaktadır.' END
END ELSE BEGIN PRINT RTRIM(LTRIM(@OldAccountID)) + ' Adlı Hesap Bulunamadı.' END
Kullanımı : - Kod:
-
EXEC ACCOUNT_NAME_CHANGE 'EskiHesapAdi','YeniHesapAdı'
| |
|