Metin2 Private Serverler, Metin2 Private Serverlar
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
AnasayfaLatest imagesGiriş yapKayıt Ol

 

 Account Değişimi Prosedürü

Aşağa gitmek 
YazarMesaj
WepMasteR
3.Seviye Üye
3.Seviye Üye
WepMasteR


Cinsiyet : Erkek
Nerden : İzmir
Yaş : 35
Mesaj Sayısı : 56
Başarı : 57000
Rep Gücü : 0

Account Değişimi Prosedürü Empty
MesajKonu: Account Değişimi Prosedürü   Account Değişimi Prosedürü I_icon_minitime21/9/2010, 14:02

Size 2 Procedür Vereyim Lazım Olur Account Değişimi Prosedürü Smile

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 Account Değişimi Prosedürü Smile (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ı'
Sayfa başına dön Aşağa gitmek
 
Account Değişimi Prosedürü
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Metin2 Private Serverler, Metin2 Private Serverlar :: Knight Private Serverler :: Prosedür / Kod Paylasımı-
Buraya geçin: