D3aG1.gif
ÜCRETSİZ 1299 TEKNİK DESTEK ALMAK İÇİN TIKLAYINIZ

National Point (Np Bağışlama Sistemi)

[XFB] Konu Bilgileri

Konu Hakkında Merhaba, tarihinde Prosedür & Kod Paylaşımları kategorisinde Stark tarafından oluşturulan National Point (Np Bağışlama Sistemi) başlıklı konuyu okuyorsunuz. Bu konu şimdiye dek 373 kez görüntülenmiş, 0 yorum ve 0 tepki puanı almıştır...
Kategori Adı Prosedür & Kod Paylaşımları
Konu Başlığı National Point (Np Bağışlama Sistemi)
Konbuyu başlatan Stark
Başlangıç tarihi
Cevaplar
Görüntüleme
İlk mesaj tepki puanı
Son Mesaj Yazan Stark

Stark

K.Destek Yöneticisi
Merhabalar,







PROCEDURE Özellikleri ;







*NP Kontrolü Yapar Bağişlayacaği Miktar NP'sinden Yüksek Olamaz.



*Clana Üye Olmayanlar Bağiş Yapamaz.



*Database'de Karakterin Olup Olmadıgını Kontrol Eder.



*Online Olup Olmadığını Kontrol Eder.



*Bağişlanan NP'leri NP_BAGIS_LOG'adlı Tabloda Log'lar



*Bağiş Knights Tablosunun Points Sütününe Eklenir









Kod:

CREATE TABLE [dbo].[NP_BAGIS_LOG] (

[Karakter ADI] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

[Clan ADI] [smallint] NULL ,

[Bagisladigi Miktar] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

KoD2 Procedure









Kod:

CREATE PROCEDURE [dbo].[NP_BAGIS]

@strUserID char(21), @nDonation int

AS

BEGIN

SET NOCOUNT ON;



DECLARE @nConnected tinyint, @nKnight int, @nUser tinyint, @nLoyalty int, @strClanName char



SELECT @nLoyalty = Loyalty, @nUser = COUNT(*), @nKnight = Knights FROM USERDATA WHERE strUserId = @strUserID GROUP BY Loyalty, Knights

IF (@nUser = 1)

BEGIN

SELECT @nConnected = COUNT(*) FROM CURRENTUSER WHERE strCharID = @strUserID

IF (@nConnected = 0)

BEGIN

IF (@nKnight > 0)

BEGIN

IF (@nLoyalty > @nDonation)

BEGIN

UPDATE KNIGHTS SET Points = (Points + @nDonation) WHERE IDNum = @nKnight

UPDATE USERDATA SET Loyalty = (Loyalty - @nDonation) WHERE strUserId = @strUserID

INSERT INTO NP_BAGIS_LOG VALUES(@strUserID, @nKnight, @nDonation)

PRINT RTRIM(LTRIM(@strUserID)) + ' İsimli Karakter ' + RTRIM(LTRIM(@nKnight)) + ' Adlı Clana ' + RTRIM(LTRIM(@nDonation)) + ' Np Bağişlamiştir'

END

ELSE

BEGIN

PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakterin Bağiş İçin Belirlenenden Daha AZ NPsi Bulunmaktadir.'

END

END

ELSE

BEGIN

PRINT RTRIM(LTRIM(@strUserID)) + ' Clana Üye Olmadıgı İçin Bağiş Yapamamaktadır'

END

END

ELSE

BEGIN

PRINT RTRIM(LTRIM(@strUserID)) + ' Adlı Karakter Oyunda Oldugu İçin İşlem Yapilmamaktadir'

END

END

ELSE

BEGIN

PRINT RTRIM(LTRIM(@strUserID)) + ' Karakter Bulunamadı'

END

END

GO

KULLANIMI



exec np_bagis'Karakter ADI','Bağışlamak İstedigi Miktar'











Kullanımı ...







1 Başlat > Tüm Programlar > Microsoft SQL Server > Query Analyzer ‘ a giriyoruz.



2 SQL Server’ a bağlanıyoruz ve açılan ekranda ” master ” yerine ” DBmizi ” seçiyoruz.



3 Seçtikten sonra aşağıdaki kodu kopyalayıp , yapıştırıyoruz ve F5 yaparak kodumuzu uyguluyoruz.
 
Üst