[PAYLAŞIM] NP Bağiş Sistemi

Kayıtlı Üye
Katılım
16 Eylül 2012
Mesajlar
284
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



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. :)
 
Administrator
Yönetici
Yönetici
Katılım
7 Mart 2012
Mesajlar
12,586
Cevap: [PAYLAŞIM] NP Bağiş Sistemi



bu şekilde olması kötü online olarak npc den olmalı
 
Kayıtlı Üye
Katılım
30 Mayıs 2012
Mesajlar
537
Cevap: [PAYLAŞIM] NP Bağiş Sistemi



paylasım için saol :D
 
Kayıtlı Üye
Katılım
28 Ekim 2012
Mesajlar
425
Cevap: [PAYLAŞIM] NP Bağiş Sistemi



sağol kankaaaaaaa
 
Kayıtlı Üye
Katılım
17 Ocak 2013
Mesajlar
895
Cevap: [PAYLAŞIM] NP Bağiş Sistemi



denemek lazım
 
Üst Alt
Reklam
Reklam