Irk Transferi

Irk Transferi

Private Serverlar,Pvp Serverlar dünyasında server sahiplerinin başını ağrıtan bir başka konu.Bir çok forumda bir çok konu açıldı ama hiçbiri kesin çözüm olamadı.Ama artık tek bir sistem tek bir yol var.Hizmetinizde.

Özellikler

* Hesap ID'si İle Transfer Yapmaktadır, Karakter Adına Bağlı Değildir.
* Otomatik Olarak IRK'ı Belirler. (Yani IRK Değişimi Yapmak İstediğiniz de Hesap Human ise Karus, Karus ise Humanı Kendisi Otomatik Yapmaktadır.)
* Eğer Yazılan Hesap ID'si Yok ise(Yani Öyle Bir Hesap ID Kaydı Yoksa) Hiç Bir İşlem Yapmaz Böylelikle SQL'e Transaction Log'unuz Şişmez ve SQL Server ınız Yorulmaz ve Aynı Şekilde Karakteri Olmayan Hesaplara da İşlem Yapmaz.
* Transfer Sonuçlarını Anlaşılır Bir Biçimde Size Bildirir.
* Eğer NTS Atılan Karakter Oyunda ise "ACCOUNT_NATION_TRANSFERS_QUEUE" Tablosuna NTS Yapılacak Karakterin ID sini Yazar Yani İşlem Kuyruğuna Alır ve Bu Kişi Oyundan Çıkıp Girdiğinde NTS'si Tamamlanmış Olur.
* "ACCOUNT_NATION_TRANSFERS_QUEUE" Kuyruk Olmasının Yanı Sıra Tüm IRK Değişimlerinin Loglarınıda Tutmaktadır.
* Kuyruk Sistemin Olması Sebebiyle Oyun İçi Power Up Storeden NTS Yaptırabilme İmkanı
* Oyuncunun Karakterleri veya Karakterlerinden Herhangi Biri Clan Sahibi veya Clan Üyesi ise Clandan Çıkartılır, Clan Sahibi ise Clanı Patlatır ve Kral ise Krallığı Silinir.
* Sorunsuz Class ve Race Değişimi.(Tablo Aşağıda)

Class ve Race Değişimleri Tablosu

* Human Barbar Warrior » Karus Barbar Warrior
* Human Erkek Warrior » Karus Barbar Warrior
* Human Kadın Warrior » Karus Barbar Warrior
* Human Erkek Rogue » Karus Erkek Rogue
* Human Kadın Rogue » Karus Erkek Rogue
* Human Erkek Mage » Karus Erkek Mage(CüCe)
* Human Kadın Mage » Karus Erkek Mage(CüCe)
* Human Erkek Priest » Karus Erkek Priest
* Human Kadın Priest » Karus Kadın Priest
* Karus Barbar Warrior » Human Erkek Warrior
* Karus Erkek Rogue » Human Erkek Rogue
* Karus Erkek Mage(CüCe) » Human Erkek Mage
* Karus Erkek Priest » Human Erkek Priest
* Karus Kadın Priest » Human Kadın Priest

Query Analyzer'e girin.


PHP- Kodu:
CREATE TABLE [dbo].[ACCOUNT_NATION_TRANSFERS_QUEUE] (
    [
ID] [numeric](180IDENTITY (11NOT NULL ,
    [
AccountID] [char] (21COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [
Process] [tinyintNULL ,
    [
Description] [char] (255COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [
UpdatedTime] [datetimeNULL ON [PRIMARY]GO

ALTER TABLE 
[dbo].[ACCOUNT_NATION_TRANSFERS_QUEUEWITH NOCHECK ADD
    CONSTRAINT 
[PK_ACCOUNT_NATION_TRANSFERSPRIMARY KEY  CLUSTERED
    
(
        [
ID]
    )  
ON [PRIMARYGO 
PHP- Kodu:
CREATE PROCEDURE [dbo].[ACCOUNT_NATION_TRANSFER]
@
AccountID char(21)
AS
/*
Author : AKUMA
Created : 18.03.2009 - 21:00
Updated : 19.03.2009 - 00:56
*/
DECLARE @IsValidAccountID tinyintDECLARE @CurrentNation tinyintDECLARE @InGameStatus tinyintDECLARE @NewNation tinyintDECLARE @Knights smallintDECLARE @CharNum tinyintDECLARE @CharID char(21)
DECLARE @Class 
tinyintDECLARE @Race tinyintDECLARE @Fame tinyintIF @AccountID ''BEGIN

    
DECLARE @ID int
    
DECLARE @ANTAccountID char(21)

    DECLARE 
ANT_CURSOR CURSOR FOR
    
SELECT ID,AccountID FROM ACCOUNT_NATION_TRANSFERS_QUEUE WHERE Process 0

    OPEN ANT_CURSOR

    FETCH NEXT FROM ANT_CURSOR INTO 
@ID,@ANTAccountID
    
WHILE @@FETCH_STATUS 0
    BEGIN

        SELECT 
@CurrentNation bNation FROM ACCOUNT_CHAR WHERE strAccountID = @ANTAccountID

        
IF @CurrentNation 1
            SET 
@NewNation 2
        
ELSE
            
SET @NewNation 1

                          SET 
@CharID NULL
        SET 
@Fame 0
        SET 
@Knights 0
        SET 
@Race 0
        SET 
@Class = 0

        SELECT 
@CharID strCharID1 FROM ACCOUNT_CHAR WHERE strAccountID = @ANTAccountID AND strCharID1 IS NOT NULL

        
IF @CharID IS NOT NULL
        BEGIN
            SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

            
IF @Race 1
                SET 
@Race 12
            
ELSE IF @Race 2
                SET 
@Race 12
            
ELSE IF @Race 3
                SET 
@Race 12
            
ELSE IF @Race 4
                SET 
@Race 13
            
ELSE IF @Race 11
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 204
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 211
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 212
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 204
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 211
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 212
                SET 
@Race 4

            
IF @NewNation 1
                SET 
@Class = @Class - 100
            
ELSE
                
SET @Class = @Class + 100

            UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID
              
            
IF @Knights <> AND @Fame 0
            BEGIN
                DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
            END      
            
ELSE IF @Knights <> AND @Fame 1
            BEGIN
                EXEC DELETE_KNIGHTS 0
,@Knights
            END

            UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
        END
      
                          SET 
@CharID NULL
        SET 
@Fame 0
        SET 
@Knights 0
        SET 
@Race 0
        SET 
@Class = 0
      
        SELECT 
@CharID strCharID2 FROM ACCOUNT_CHAR WHERE strAccountID = @ANTAccountID AND strCharID2 IS NOT NULL

        
IF @CharID IS NOT NULL
        BEGIN
            SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

            
IF @Race 1
                SET 
@Race 12
            
ELSE IF @Race 2
                SET 
@Race 12
            
ELSE IF @Race 3
                SET 
@Race 12
            
ELSE IF @Race 4
                SET 
@Race 13
            
ELSE IF @Race 11
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 204
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 211
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 212
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 204
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 211
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 212
                SET 
@Race 4

            
IF @NewNation 1
                SET 
@Class = @Class - 100
            
ELSE
                
SET @Class = @Class + 100

            UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID
              
            
IF @Knights <> AND @Fame 0
            BEGIN
                DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
            END      
            
ELSE IF @Knights <> AND @Fame 1
            BEGIN
                EXEC DELETE_KNIGHTS 0
,@Knights
            END

            UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
        END

                          SET 
@CharID NULL
        SET 
@Fame 0
        SET 
@Knights 0
        SET 
@Race 0
        SET 
@Class = 0
      
        SELECT 
@CharID strCharID3 FROM ACCOUNT_CHAR WHERE strAccountID = @ANTAccountID AND strCharID3 IS NOT NULL

        
IF @CharID IS NOT NULL
        BEGIN
            SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

            
IF @Race 1
                SET 
@Race 12
            
ELSE IF @Race 2
                SET 
@Race 12
            
ELSE IF @Race 3
                SET 
@Race 12
            
ELSE IF @Race 4
                SET 
@Race 13
            
ELSE IF @Race 11
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 201
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 205
                SET 
@Race 1
            
ELSE IF @Race 13 AND @Class = 206
                SET 
@Race 1
            
ELSE IF @Race 12 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 202
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 207
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 208
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 203
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 209
                SET 
@Race 3
            
ELSE IF @Race 13 AND @Class = 210
                SET 
@Race 3
            
ELSE IF @Race 12 AND @Class = 204
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 211
                SET 
@Race 2
            
ELSE IF @Race 12 AND @Class = 212
                SET 
@Race 2
            
ELSE IF @Race 13 AND @Class = 204
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 211
                SET 
@Race 4
            
ELSE IF @Race 13 AND @Class = 212
                SET 
@Race 4

            
IF @NewNation 1
                SET 
@Class = @Class - 100
            
ELSE
                
SET @Class = @Class + 100

            UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID
              
            
IF @Knights <> AND @Fame 0
            BEGIN
                DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
            END      
            
ELSE IF @Knights <> AND @Fame 1
            BEGIN
                EXEC DELETE_KNIGHTS 0
,@Knights
            END

            UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
        END

        UPDATE ACCOUNT_CHAR SET bNation 
= @NewNation WHERE strAccountID = @ANTAccountID

        
IF @NewNation 1
            UPDATE ACCOUNT_NATION_TRANSFERS_QUEUE SET Process 
1,Description 'Human dan Karus''a IRK Transferi Tamamlandı.',UpdatedTime GETDATE() WHERE ID = @ID AND AccountID = @ANTAccountID
        
ELSE
            
UPDATE ACCOUNT_NATION_TRANSFERS_QUEUE SET Process 1,Description 'Karus dan Human''a IRK Transferi Tamamlandı.',UpdatedTime GETDATE() WHERE ID = @ID AND AccountID = @ANTAccountID
      

    FETCH NEXT FROM ANT_CURSOR INTO 
@ID,@ANTAccountID
    END

CLOSE ANT_CURSOR
DEALLOCATE ANT_CURSOR

END
ELSEBEGIN

    SELECT 
@IsValidAccountID COUNT(strAccountIDFROM TB_USER WHERE strAccountID = @AccountID

    
IF @IsValidAccountID 0
    BEGIN
        
PRINT '# IRK Transferi Sonuçları ;'
        
PRINT '#'
        
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Adında Kayıtlı Hesap Bulunamadı, Bu Nedenle IRK Transferi Yapılamadı.'
        
PRINT '#'
    
END
    
ELSE
    
BEGIN

        SELECT 
@InGameStatus COUNT(*) FROM CURRENTUSER WHERE strAccountID = @AccountID

        SELECT 
@CharNum bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
  
        
IF @InGameStatus AND @CharNum <> 0
        BEGIN

            SELECT 
@CurrentNation bNation FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID

            
IF @CurrentNation 1
                SET 
@NewNation 2
            
ELSE
                
SET @NewNation 1

                                       SET 
@CharID NULL
                     SET 
@Fame 0
                     SET 
@Knights 0
                     SET 
@Race 0
                     SET 
@Class = 0

            SELECT 
@CharID strCharID1 FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID AND strCharID1 IS NOT NULL

            
IF @CharID IS NOT NULL
            BEGIN
                SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

                
IF @Race 1
                    SET 
@Race 12
                
ELSE IF @Race 2
                    SET 
@Race 12
                
ELSE IF @Race 3
                    SET 
@Race 12
                
ELSE IF @Race 4
                    SET 
@Race 13
                
ELSE IF @Race 11
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 204
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 211
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 212
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 204
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 211
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 212
                    SET 
@Race 4


                
IF @NewNation 1
                    SET 
@Class = @Class - 100
                
ELSE
                    
SET @Class = @Class + 100

                UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID

                
IF @Knights <> AND @Fame 0
                BEGIN
                    DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                    UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
                END      
                
ELSE IF @Knights <> AND @Fame 1
                BEGIN
                    EXEC DELETE_KNIGHTS 0
,@Knights
                END

                UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
            END
          
                                       SET 
@CharID NULL
                     SET 
@Fame 0
                     SET 
@Knights 0
                     SET 
@Race 0
                     SET 
@Class = 0

            SELECT 
@CharID strCharID2 FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID AND strCharID2 IS NOT NULL

            
IF @CharID IS NOT NULL
            BEGIN
                SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

                
IF @Race 1
                    SET 
@Race 12
                
ELSE IF @Race 2
                    SET 
@Race 12
                
ELSE IF @Race 3
                    SET 
@Race 12
                
ELSE IF @Race 4
                    SET 
@Race 13
                
ELSE IF @Race 11
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 204
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 211
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 212
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 204
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 211
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 212
                    SET 
@Race 4


                
IF @NewNation 1
                    SET 
@Class = @Class - 100
                
ELSE
                    
SET @Class = @Class + 100

                UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID

                
IF @Knights <> AND @Fame 0
                BEGIN
                    DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                    UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
                END      
                
ELSE IF @Knights <> AND @Fame 1
                BEGIN
                    EXEC DELETE_KNIGHTS 0
,@Knights
                END

                UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
            END

                                       SET 
@CharID NULL
                     SET 
@Fame 0
                     SET 
@Knights 0
                     SET 
@Race 0
                     SET 
@Class = 0
          
            SELECT 
@CharID strCharID3 FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID AND strCharID3 IS NOT NULL

            
IF @CharID IS NOT NULL
            BEGIN
                SELECT 
@Race Race,@Class = Class,@Knights Knights,@Fame Fame FROM USERDATA WHERE strUserId = @CharID

                
IF @Race 1
                    SET 
@Race 12
                
ELSE IF @Race 2
                    SET 
@Race 12
                
ELSE IF @Race 3
                    SET 
@Race 12
                
ELSE IF @Race 4
                    SET 
@Race 13
                
ELSE IF @Race 11
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 201
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 205
                    SET 
@Race 1
                
ELSE IF @Race 13 AND @Class = 206
                    SET 
@Race 1
                
ELSE IF @Race 12 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 202
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 207
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 208
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 203
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 209
                    SET 
@Race 3
                
ELSE IF @Race 13 AND @Class = 210
                    SET 
@Race 3
                
ELSE IF @Race 12 AND @Class = 204
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 211
                    SET 
@Race 2
                
ELSE IF @Race 12 AND @Class = 212
                    SET 
@Race 2
                
ELSE IF @Race 13 AND @Class = 204
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 211
                    SET 
@Race 4
                
ELSE IF @Race 13 AND @Class = 212
                    SET 
@Race 4


                
IF @NewNation 1
                    SET 
@Class = @Class - 100
                
ELSE
                    
SET @Class = @Class + 100

                UPDATE USERDATA SET Nation 
= @NewNation,Race = @Race,Class = @Class,Knights 0,Fame 0Rank 0Title 0 FROM USERDATA WHERE strUserId = @CharID

                
IF @Knights <> AND @Fame 0
                BEGIN
                    DELETE FROM KNIGHTS_USER WHERE strUserID 
= @CharID
                    UPDATE KNIGHTS SET ViceChief_1 
NULL WHERE ViceChief_1 = @CharID AND ViceChief_1 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_2 
NULL WHERE ViceChief_2 = @CharID AND ViceChief_2 IS NOT NULL
                    UPDATE KNIGHTS SET ViceChief_3 
NULL WHERE ViceChief_3 = @CharID AND ViceChief_3 IS NOT NULL
                END      
                
ELSE IF @Knights <> AND @Fame 1
                BEGIN
                    EXEC DELETE_KNIGHTS 0
,@Knights
                END

                UPDATE KING_SYSTEM SET strKingName 
NULL WHERE strKingName = @CharID AND strKingName IS NOT NULL AND byNation = @CurrentNation
            END

            UPDATE ACCOUNT_CHAR SET bNation 
= @NewNation WHERE strAccountID = @AccountID

            
IF @NewNation 1
            BEGIN
                INSERT INTO ACCOUNT_NATION_TRANSFERS_QUEUE 
(AccountID,Process,Description,UpdatedTimeVALUES (@AccountID,1,'Human dan Karus''a IRK Transferi Tamamlandı.',GETDATE())
                PRINT 
'# IRK Transferi Sonuçları ;'
                
PRINT '#'
                
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Hesabı Human IRK''ından Karus IRK''ına Transferi Başarı İle Tamamlandı.'
                
PRINT '#'
            
END
            
ELSE
            
BEGIN
                INSERT INTO ACCOUNT_NATION_TRANSFERS_QUEUE 
(AccountID,Process,Description,UpdatedTimeVALUES (@AccountID,1,'Karus dan Human''a IRK Transferi Tamamlandı.',GETDATE())
                PRINT 
'# IRK Transferi Sonuçları ;'
                
PRINT '#'
                
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Hesabı Karus IRK''ından Human IRK''ına Transferi Başarı İle Tamamlandı.'
                
PRINT '#'
            
END
      
      
        END
        
ELSE IF @InGameStatus <> AND @CharNum <> 0
        BEGIN
            INSERT INTO ACCOUNT_NATION_TRANSFERS_QUEUE 
(AccountID,Process,Description,UpdatedTimeVALUES (@AccountID,0,'Henüz İşlem Yapılmadı.',GETDATE())
            PRINT 
'# IRK Transferi Sonuçları ;'
            
PRINT '#'
            
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Hesabı Oyunda Olduğundan IRK Transferi Kuyruğa Atıldı.'
            
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Hesabı Oyundan Çıkıp, Girmesi Durumunda IRK Transferi Tamamlanmış Olacaktır.'
            
PRINT '#'
        
END
        
ELSE
        
BEGIN
            
PRINT '# IRK Transferi Sonuçları ;'
            
PRINT '#'
            
PRINT '# ' RTRIM(LTRIM(@AccountID)) + ' Hesabının, Hiç Karakteri Yok, Bu Nedenle IRK Transferi Yapılamadı.'
            
PRINT '#'
        
END
    END
END 
Kullanımı

Öncelikle "ACCOUNT_LOGIN" Prosedürünü Açıyoruz ve "AS" Yazan Yerin Hemen Altına Aşağıdaki Kodu Ekliyoruz.

PHP- Kodu:
-- # Account Nation Transfers Queue # --EXEC ACCOUNT_NATION_TRANSFER '' 
Prosedürün Kullanımı ;

PHP- Kodu:
EXEC ACCOUNT_NATION_TRANSFER 'HESAP_IDSI' 

Yorum Gönder

Daha yeni Daha eski