Aşağıda verdigim kodu Calıstırın. ve Tek Komutla Krak Ekleyip Silin. ve Oyuna Restart Çekmeden.
Örnek * :
Kullanımı : EXEC KRAL 'Hasan'
Hasan adlı Oyuncu Kral olarak Eklendi, Oyuncu oyunda olmasın Ebenzer Consola /reload_king komutunu yazdıktan sonra bir bakıyorsunuz. Hasan adlı oyuncu Kral olmus. Eğer eklediginiz Kralı silmek istiyorsanız gene aynı komutu kullanıyoruz.
EXEC KRAL 'Hasan'
Prosedur bakıyor hasan adlı oyuncu daha onceden kralmı eger kralsa siliyor degilse ekliyor. Bu kadar basit.Biz Hasan adlı oyuncuyu daha once kral olarak ekledigimiz için Krallıktan silecektir. ve Değişikliklerin Geçerli olması için tekrar ebenzere /reload_king komutunu yazıyoruz ve işte bu kadar.
Herkese iyi günler dilerim.
Kod:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KRAL]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[KRAL]
GO
CREATE PROCEDURE [dbo].[KRAL]
@CharID varchar(21)
AS
/*
AUTHOR : omear
Kullanım : EXEC KRAL 'CharID'
*/
BEGIN
SET NOCOUNT ON
SET LANGUAGE Turkish
DECLARE @KnightsIndex smallint,@Nation tinyint,@IsValidUserID tinyint,@Aut tinyint,@Row tinyint
SELECT @Nation = Nation, @KnightsIndex = Knights, @Aut = Authority FROM USERDATA WHERE strUserId = @CharID
SELECT @Row = Count(*) FROM KING_ELECTION_LIST WHERE strName = @CharID and byType=1
SELECT @IsValidUserID = COUNT(*) FROM USERDATA WHERE strUserID = @CharID
IF @IsValidUserId = 0
BEGIN
PRINT '# KRAL EKLEME/SILME Işlemi ;'
PRINT '#'
PRINT '# '+ RTRIM(LTRIM(@CharID)) + ' Adında Kullanıcı Bulunamadı, Bu Nedenle Işlem Gercekleştirilemedi.'
PRINT '#'
END
ELSE IF @Row > 0
BEGIN
DELETE FROM KING_ELECTION_LIST WHERE strName = @CharID
PRINT '# KRAL EKLEME/SILME Işlemi ;'
PRINT '#'
PRINT '# '+ RTRIM(LTRIM(@CharID)) +' Kullanıcının Krallığı Başarıyla ''Silinmiştir''.'
PRINT '# Değişikliklerin Gecerli Olması İçin Ebenezere /reload_king Yazmanız Yeterlidir.'
PRINT '#'
PRINT '#'
RETURN
END
ELSE IF @Aut <> 0 AND @Aut <> 1
BEGIN
PRINT '# KRAL EKLEME/SILME Işlemi ;'
PRINT '#'
PRINT '# '+ RTRIM(LTRIM(@CharID)) + ' Hata! Geçersiz Kullanıcı Yetkisi.'
PRINT '#'
RETURN
END
ELSE
BEGIN
IF @Aut = 1
BEGIN
IF EXISTS (SELECT * FROM KING_ELECTION_LIST WHERE strName = @CharID AND byType=2)
DELETE FROM KING_ELECTION_LIST WHERE strName = @CharID
INSERT INTO KING_ELECTION_LIST VALUES(1, @Nation, @KnightsIndex, @CharID, 0)
UPDATE KING_SYSTEM SET /*byType=7,byItemType=2,*/ nTerritoryTax = 1000000000, nNationalTreasury = 2100000000, strKingName = @CharID WHERE byNation = @Nation
PRINT '# KRAL EKLEME/SILME Işlemi ;'
PRINT '#'
PRINT '# ' + RTRIM(LTRIM(@CharID)) +' Adlı Kullanıcı Başarıyla Kral ''Olmuştur''.'
PRINT '# Değişikliklerin Gecerli Olması İçin Ebenezere /reload_king Yazmanız Yeterlidir.'
PRINT '#'
PRINT '#'
END
ELSE IF @Aut = 0
BEGIN
IF EXISTS (SELECT * FROM KING_ELECTION_LIST WHERE strName = @CharID AND byType=2)
DELETE FROM KING_ELECTION_LIST WHERE strName = @CharID
INSERT INTO KING_ELECTION_LIST VALUES(1, @Nation, @KnightsIndex, @CharID, 0)
UPDATE KING_SYSTEM SET /*byType=7,byItemType=2,*/ nTerritoryTax = 1000000000, nNationalTreasury = 2100000000 WHERE byNation = @Nation
PRINT '# KRAL EKLEME/SILME Işlemi ;'
PRINT '#'
PRINT '# ' + RTRIM(LTRIM(@CharID)) +' Adlı Oyun Yönetcisi Başarıyla ''Kral Olmuştur''.'
PRINT '# Değişikliklerin Gecerli Olması İçin Ebenezere /reload_king Yazmanız Yeterlidir.'
PRINT '#'
PRINT '#'
END
END
END