Server Tanitimi , Ko Tanitimi , Silkroad Pvp Serverler , Metin2 Pvp Serverler

National Point (Np Bağışlama Sistemi)

Konu Bilgileri

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
27 May 2013
2,664
2
0
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.
 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst Alt