[PAYLAŞIM] Clan Lideri Değişimi
Egzotik Forumları

Hayatın içinden...

Giriş yap

Şifremi unuttum



Anket

Egzotik Forum'dan MemNun Musunuz?

[PAYLAŞIM] Clan Lideri Değişimi I_vote_lcap96%[PAYLAŞIM] Clan Lideri Değişimi I_vote_rcap 96% [ 915 ]
[PAYLAŞIM] Clan Lideri Değişimi I_vote_lcap1%[PAYLAŞIM] Clan Lideri Değişimi I_vote_rcap 1% [ 7 ]
[PAYLAŞIM] Clan Lideri Değişimi I_vote_lcap1%[PAYLAŞIM] Clan Lideri Değişimi I_vote_rcap 1% [ 6 ]
[PAYLAŞIM] Clan Lideri Değişimi I_vote_lcap3%[PAYLAŞIM] Clan Lideri Değişimi I_vote_rcap 3% [ 24 ]

Toplam Oylar : 952

En son konular

» Nikola Jokic 40 sayı attı, Denver seride öne geçti
tarafından Yazar : EgzotikForum Dün 19:55:48

» Galatasaray Kulübünün başkan adaylarından Süheyl Batum, vizyonunu ve hedeflerini paylaşmak üzere kongre üyeleriyle kahvaltıda bir araya geldi. Kulübün Kalamış'taki tesislerinde gerçekleştirilen kahvaltıya Süheyl Batum ve yönetim listesinde bulunan kişiler
tarafından Yazar : EgzotikForum Dün 19:54:35

» Galatasaray taraftarından Fenerbahçe maçı için olay yaratan koreografi hazırlığı iddiası!
tarafından Yazar : EgzotikForum Dün 19:53:07

» Fenerbahçe'nin eski golcüsü Emenike'den Aziz Yıldırım paylaşımları! Galatasaray'a gönderme yapmayı da ihmal etmedi...
tarafından Yazar : EgzotikForum Dün 19:51:33

» Ferdi Kadıoğlu için istenilen bonservisi kabul ettiler! Yıldız isim yeni sezonda 'Ada' yolcusu
tarafından Yazar : EgzotikForum Dün 19:49:55

» Aziz Yıldırım'dan Ali Koç'a tarihi çağrı! ''Fenerbahçe için gelin yeni bir sayfa açalım, ne yapacaksak birlikte yapalım''
tarafından Yazar : EgzotikForum Dün 19:48:56

» Kerem İnan: "Galatasaray’ın minimum 3 gol atacağını düşünüyorum"
tarafından Yazar : EgzotikForum Dün 19:47:47

» Galatasaray-Fenerbahçe maçı için araba parasına bilet satılıyor! Tam 750 bin TL'ye onlarca bilet satışta...
tarafından Yazar : EgzotikForum Dün 19:46:50

» Kerem Aktürkoğlu, Süper Lig devi Beşiktaş ile görüşme yapacak! Transfer döneminin bomba gelişmesi...
tarafından Yazar : EgzotikForum Dün 19:41:11

» Beşiktaş Sergen Yalçın ile görüştü! Başarılı hocanın şartları belli oldu
tarafından Yazar : EgzotikForum Dün 19:40:12


Bağlı değilsiniz. Bağlanın ya da kayıt olun

[PAYLAŞIM] Clan Lideri Değişimi

Aşağa gitmek  Mesaj [1 sayfadaki 1 sayfası]

1[PAYLAŞIM] Clan Lideri Değişimi Empty [PAYLAŞIM] Clan Lideri Değişimi Perş. 3 Eyl. - 5:20:58

nuri504

nuri504
Egzotik Forumdan Sınır Dışı Edilmiş Kullanıcı
Egzotik Forumdan Sınır Dışı Edilmiş Kullanıcı

Selamlar,
Clan Lider Değişimi İçin Bir Procedure Oluşturdum, Umarım Herkeze Faydalı Olur.

Özelliklerini Sayacak Olursak,
1. Hataya Sebebiyet Vermemesi Açısından Karakterler Kontrolü Yapılıyor,USERDATA da Varmı Yokmu Olayı.
2. IRK Kontrolü Yapıyor, Eğer Farklı Irklardan ise Lider Değişimi Olmuyor, Buna Gerek Yok Aslında Ama SQL i Yormamak Adına Alttaki Kodlar İletilmesin Diye Yaptım.
3. Clan Kontrolü Yapılıyor, Eğer Farklı Clanlardan ise Lider Değişimi Olmuyor.
4. Assist Kontrolü Yapılabiliyor, İsteğe Göre Kapatıp Açabilirsiniz yani Kısacası Assist Kontrolü Yapmadanda Sadece Clan Üyesi ise Bile Lider Değişimi Yaptırabilirsiniz.
5. Eski Lider ile Yeni Liderin Oyundaki Durumu CurrentUserdan Kontrol Ediliyor Eğer Oyunda ise Clan Değişimi Gerçekleşmiyor.
6. Eski Kullanıcının Clan Lideri Olup Olmadığı Kontrol Ediliyor.
7. Yukarıda Yazan Herşey İçin Hata Mesajları PRINT Edilmektedir.

Kısacası Herşeyin Kontrolü Var 

Kod:
CREATE PROCEDURE CHANGE_KNIGHTS_LEADER
(
@KnightsLeaderOld varchar(30),
@KnightsLeaderNew varchar(30)
)
AS
/*
Author : AKUMA
*/
BEGIN TRAN
DECLARE
@KnightsNumOldLeader int,
@FameStatusOldLeader tinyint,
@NationOldLeader tinyint,
@InGameStatusOldLeader tinyint,
@KnightsNumNewLeader int,
@NationNewLeader tinyint,
@InGameStatusNewLeader tinyint,
@KnightsName varchar(50),
@CheckChief1 tinyint,
@CheckChief2 tinyint,
@CheckChief3 tinyint,
@CheckAssist tinyint,
@CheckAssistStatus tinyint,
@CheckLeaderOld tinyint,
@CheckLeaderNew tinyint
/*
Check Assist Status
1 : On - Checking Assist
2 : Off - Not Check
*/
-- Start
SET @CheckAssistStatus = 2
-- End
SELECT @CheckLeaderOld = COUNT(strUserID) FROM USERDATA WHERE strUserID = @KnightsLeaderOld
SELECT @CheckLeaderNew = COUNT(strUserID) FROM USERDATA WHERE strUserID = @KnightsLeaderNew
IF @CheckLeaderOld = 0
BEGIN
 PRINT RTRIM(LTRIM(@KnightsLeaderOld)) + ' Kullanıcı Adında Bir Oyuncu Bulunamadı.'
END
ELSE IF @CheckLeaderNew = 0
BEGIN
  PRINT RTRIM(LTRIM(@KnightsLeaderNew)) + ' Kullanıcı Adında Bir Oyuncu Bulunamadı.'
END
ELSE
BEGIN
SELECT @InGameStatusOldLeader = COUNT(strCharID) FROM CURRENTUSER WHERE strCharID = @KnightsLeaderOld
SELECT @InGameStatusNewLeader = COUNT(strCharID) FROM CURRENTUSER WHERE strCharID = @KnightsLeaderNew
IF @InGameStatusOldLeader <> 0
BEGIN
 PRINT RTRIM(LTRIM(@KnightsLeaderOld)) + ' Kullanıcısı Oyundadır, Bu Sebeplen Clan Lider Değişimi Yapılamadı.'
END
ELSE IF @InGameStatusNewLeader <> 0
BEGIN
 PRINT RTRIM(LTRIM(@KnightsLeaderOld)) + ' Kullanıcısı Oyundadır, Bu Sebeplen Clan Lider Değişimi Yapılamadı.'
END
ELSE
BEGIN
 SELECT @KnightsNumOldLeader = Knights, @FameStatusOldLeader = Fame, @NationOldLeader = Nation FROM USERDATA WHERE strUserID = @KnightsLeaderOld
 SELECT @KnightsName = IDName FROM KNIGHTS WHERE IDNum = @KnightsNumNewLeader
 IF @FameStatusOldLeader = 0
 BEGIN
  PRINT RTRIM(LTRIM(@KnightsLeaderOld)) + ' Clan Lideri Değil, Bu Sebepten Dolayı İşlem Yapılamadı.'
 END
 ELSE
 BEGIN
 
  SELECT @KnightsNumNewLeader = Knights, @NationNewLeader = Nation FROM USERDATA WHERE strUserID = @KnightsLeaderNew
 
  IF @NationOldLeader = @NationNewLeader
  BEGIN
 
  IF @KnightsNumOldLeader <> @KnightsNumNewLeader
  BEGIN
  PRINT RTRIM(LTRIM(@KnightsLeaderNew)) + ' Kullanıcısı Farklı Bir Clanda, Lider Değişimi İçin Kullanıcın Aynı Clanda Olması ve Assist Gerekmektedir.'
  END
  ELSE IF @CheckAssistStatus = 1
  BEGIN
 
  SELECT @CheckChief1 = Count(ViceChief_1) FROM KNIGHTS WHERE ViceChief_1 = @KnightsLeaderNew AND ViceChief_1 is not null
  SELECT @CheckChief2 = Count(ViceChief_2) FROM KNIGHTS WHERE ViceChief_2 = @KnightsLeaderNew AND ViceChief_2 is not null
  SELECT @CheckChief3 = Count(ViceChief_3) FROM KNIGHTS WHERE ViceChief_3 = @KnightsLeaderNew AND ViceChief_3 is not null
  IF (@CheckChief1 <> 0) OR (@CheckChief2 <> 0) OR (@CheckChief3 <> 0)
  BEGIN
  PRINT RTRIM(LTRIM(@KnightsLeaderNew)) + ' Kullanıcısı ' + RTRIM(LTRIM(@KnightsName)) + ' Clanında Assist Değildir, Lütfen Assist Yapınız.'
  END
  END
  ELSE
  BEGIN
  -- Updating Table for Old Leader
  UPDATE USERDATA SET Knights = @KnightsNumOldLeader, Fame = 0 WHERE strUserID = @KnightsLeaderOld
 
  -- Updating Table for New Leader
  UPDATE KNIGHTS SET ViceChief_1 = NULL WHERE Chief = @KnightsLeaderNew AND ViceChief_1 is not null
  UPDATE KNIGHTS SET ViceChief_2 = NULL WHERE Chief = @KnightsLeaderNew AND ViceChief_2 is not null
  UPDATE KNIGHTS SET ViceChief_3 = NULL WHERE Chief = @KnightsLeaderNew AND ViceChief_3 is not null
  UPDATE KNIGHTS SET Chief = @KnightsLeaderNew WHERE Chief = @KnightsLeaderOld
  UPDATE USERDATA SET Fame = 1 WHERE strUserID = @KnightsLeaderNew
  PRINT RTRIM(LTRIM(@KnightsName)) + ' Clanın, Clan Lideri ' + RTRIM(LTRIM(@KnightsLeaderNew)) + ' Olarak Değişmiştir.'
  END
  END
  ELSE
  BEGIN
  PRINT RTRIM(LTRIM(@KnightsLeaderOld)) + ' İle ' + RTRIM(LTRIM(@KnightsLeaderNew)) + ' Farklı IRKlardan, Bu Sebeple Lider Değişimi Yapılamadı.'
  END
 
 END
END
END
COMMIT TRAN
Kullanımına İlişkin Bilgiler ;

Kod:
Kullanım : EXEC CHANGE_KNIGHTS_LEADER 'ESKICLANLIDERI','YENICLANLIDERI'
Örnek : EXEC CHANGE_KNIGHTS_LEADER 'AKUMA','GOUKI'
Eğer Ben Assit Kontrolü Yaptırmayacam Clan ÜYeside Olsa Yapsın Lider Değişimini Diyorsanız

Procedurenin En Üstüne Bakarsanız

Kod:
/*
Check Assist Status
1 : On - Checking Assist
2 : Off - Not Check
*/
-- Start
SET @CheckAssistStatus = 1
-- End
Eğer Yukarıda "SET @CheckAssistStatus = 1" Bölümünü "2" Yaparsanız, Assist Kontrolü Yapılmaz.

alıntı

http://blackknight.yetkinforum.com/

Sayfa başına dön  Mesaj [1 sayfadaki 1 sayfası]

Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz