- Konu Yazar
- #1
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.
#1. Uygulayacağiniz KOD
#2.Uygulayacağınız <PROCEDURE>
Kullanımı;
Panelden Bağışlama Sistemi Kurulabilir.
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.
#1. Uygulayacağiniz KOD
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
) ON [PRIMARY]
GO
#2.Uygulayacağınız <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
Kullanımı;
Kod:
exec np_bagis'Karakter ADI','Bağışlamak İstedigi Miktar'
Panelden Bağışlama Sistemi Kurulabilir.
