vSRO Paylaşım vSRO old 3 job Prosedürü

Admin1

silkroadpvp.com.tr
Yönetici
Katılım
26 Ocak 2022
Mesajlar
511
Tepkime puanı
0
Puanları
0
Konum
KRAL
[HIDE]
Merhaba, buyrunuz old 3 job (Guardlar hali hazırda bu hizmeti veriyor mu bilmiyorum. Kendinize ait guardınız yoksa Kguard-Maxiguard gibi guardlar eşliğinde de kullanabilirsiniz. )

NOT: Tamamen kendim yazdım, denedim ve çalışır durumda yorum satırlarını kaldırmadan paylaşıyorum belki yorum satırlarından yola çıkıp ''Aaa bak bunu unutmuş eklenebilir gibisinden bir düşünce ortaya çıkar''


Görselde sağ tarafta ki gibi butonlu şekilde veya pm komutu ile (!thief-!trader-!hunter) gibi komut gönderebilirsiniz.

nemli :

_AddNewChar içerisine bu satırı eklemezseniz çalışmaz.




SQL:
Insert Into SRO_VT_SHARD.._CharTrijobSafeTrade ( CharID, AbleCount, Status, LastSafeTrade ) Values ( @NewCharID,0,0, GETDATE() )

Gelelim Prosedüre prosedür aşağıda

SQL:
USE [SRO_VT_CREATE]

GO

/****** Object: StoredProcedure [dbo].[_3Job] Script Date: 23.03.2024 00:17:13 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO









ALTER PROCEDURE [dbo].[_3Job]

@Message varchar (6),

@CharID int

as



DECLARE @ItemName varchar (30)

,@ItemID bigint

,@ItemIDInventory bigint

,@Slot tinyint

,@JobType tinyint

,@CharName varchar (12)

,@RefObjID int

,@Sex varchar (3)

,@Race varchar (3)

,@Level tinyint

,@Exp int

,@JobType2 tinyint

,@Job_Level tinyint

,@Job_Exp int



Select @CharName = CharName16 From SRO_VT_SHARD.._Char Where CharID = @CharID



Select @RefObjID = RefObjID From SRO_VT_SHARD.._Char Where CharID = @CharID



IF @Message like 'Exit'

BEGIN

--IF Exists ( Select LatestRegion From SRO_VT_SHARD.._Char Where CharID = @CharID AND LatestRegion = 26521 )

--Begin

-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'You cannot exit job mode in this area.',@CharName);



-- Return -1

--END



--IF Exists ( Select ItemID From SRO_VT_SHARD.._Inventory Where CharID = @CharID AND Slot = 8 AND ItemID =0)

--Begin

-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'This button is used to exit the job mode.',@CharName);



-- Return -1

--END



IF Exists ( Select wRegionID From SRO_VT_SHARD.._RefRegion Where IsBattleField = 1 And wRegionID = ( Select LatestRegion From SRO_VT_SHARD.._Char Where CharID = @CharID))

BEGIN

INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'Job mode can be exited only inside the town. You can switch to Job mode anywhere.',@CharName);

Return -1

END

IF Exists ( Select OwnerCharID From SRO_VT_SHARD.._CharCOS Where OwnerCharID = @CharID )

BEGIN

INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'You cannot leave the job without closing the pet.',@CharName);



Return -1

END

ELSE

BEGIN



select @JobType2=JobType, @Level=[Level],@Exp=[Exp] from SRO_VT_SHARD.._CharTrijob where CharID =@CharID



if (@JobType2=1)

begin

update CLEAN_GUARD.._CharStatics set Trader_Level=@Level,Trader_Exp=@Exp where CharID=@CharID

end

if (@JobType2=2)

begin

update CLEAN_GUARD.._CharStatics set Thief_Level=@Level,Thief_Exp=@Exp where CharID=@CharID

end

if (@JobType2=3)

begin

update CLEAN_GUARD.._CharStatics set Hunter_Level=@Level,Hunter_Exp=@Exp where CharID=@CharID

end



Update SRO_VT_SHARD.._Inventory Set ItemID = 0 Where CharID = @CharID and Slot = 8



INSERT INTO CLEAN_GUARD.._InstantCharReloadDelivery(CharID) Values ((select CharID from SRO_VT_SHARD.._Char where CharName16 = @CharName))



Return -1

END



END









IF @Message = 'Thief' OR @Message = 'Trader' OR @Message = 'Hunter'

begin



-- IF Exists ( Select LatestRegion From SRO_VT_SHARD.._Char Where CharID = @CharID AND LatestRegion = 26521 )

--Begin

-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'You cannot switch to job mode in this area.',@CharName);



-- Return -1

--END



--+++ ERKEK MI ARVAT MI IRKI NE ONU DA EKLE

--++ IF = @Region = 1 sorgusu ekle başına

--++ CharInventory Full mu onun sorgusu eklenecek.

--++ Itemı çarttığında 2 adet oluyor. Buna çözüm bul mk = Çözüm bulundu process başlangıcında job itemleri sil.

-- Online job sorgula limit için. = Kullanacağın panele bağlı olarak en son yapacaksın bunu. = Hak yol maxiguard oradan sorgulatacam.





-- IF Exists ( Select WorldID From SRO_VT_SHARD.._Char Where CharID = @CharID and WorldID != 1 )

--BEGIN

-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'You cannot switch to job mode during the event.',@CharName);



-- RETURN -1

--END



-- IF Exists ( Select ItemID From SRO_VT_SHARD.._Inventory Where CharID = @CharID AND ItemID != 0 and slot = 8) --- Jobta ise

--BEGIN
[/B][/B][/B]



-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'You are in active job mode, you cannot switch to a different job without exiting.',@CharName);

-- RETURN -1

--END







-- IF Exists ( Select ItemID From SRO_VT_SHARD.._Inventory Where CharID = @CharID AND ItemID = 0 and slot between 13 and 108) --- Çanta dolu ise

--BEGIN



-- print 'Devam'

--END

--ELSE

--BEGIN



-- INSERT INTO CLEAN_GUARD.._FilterCommands (CommandID, Executor, Data1, Data2, Data3,Data4) VALUES(1, 'Private','sendchar', 12, 'In order to switch to job mode, there must be at least 1 free slot in the inventory.',@CharName);

-- Return -1

--END



IF ( @RefObjID between 1907 and 1919 ) Set @Sex = 'M'



IF ( @RefObjID between 1920 and 1932 ) Set @Sex = 'W'



IF ( @RefObjID between 14875 and 14887 ) Set @Sex = 'M'



IF ( @RefObjID between 14888 and 14900 ) Set @Sex = 'W'



IF ( @RefObjID between 1907 and 1932 ) Set @Race = 'CH'



IF ( @RefObjID between 14875 and 14900 ) Set @Race = 'EU'





Select @ItemIDInventory = ItemID, @Slot = Slot From SRO_VT_SHARD.._Inventory Where CharID = @CharID and ItemID =



( Select ID64 From SRO_VT_SHARD.._Items Where RefItemID = @ItemID and ID64 = ItemID)



IF ( @Message = 'Trader') SET @ItemName = 'ITEM_'+CONVERT (varchar (3), @Race)+'_'+CONVERT (varchar (3), @Sex)+'_TRADE_TRADER_03'

IF ( @Message = 'Thief') SET @ItemName = 'ITEM_'+CONVERT (varchar (3), @Race)+'_'+CONVERT (varchar (3), @Sex)+'_TRADE_THIEF_03'

IF ( @Message = 'Hunter') SET @ItemName = 'ITEM_'+CONVERT (varchar (3), @Race)+'_'+CONVERT (varchar (3), @Sex)+'_TRADE_HUNTER_03'



IF ( @Message = 'Trader') SET @JobType = '1'

IF ( @Message = 'Thief') SET @JobType = '2'

IF ( @Message = 'Hunter') SET @JobType = '3'



Select @ItemID = ID From SRO_VT_SHARD.._RefObjCommon Where CodeName128 = @ItemName



exec SRO_VT_SHARD.._ADD_ITEM_EXTERN @CharName, @ItemName, 1, 0



Select @ItemIDInventory = ItemID, @Slot = Slot From SRO_VT_SHARD.._Inventory Where CharID = @CharID and ItemID =



( Select ID64 From SRO_VT_SHARD.._Items Where RefItemID = @ItemID and ID64 = ItemID)



--deneysel char meslek seçmeden önce bir önceki mesleğin level ve exp cek daha sonrada seçtiği mesleğin son kaydını chartrijob bas



if(@JobType=1)

begin

select @job_level=Trader_Level,@Job_Exp= Trader_Exp from CLEAN_GUARD.._CharStatics where CharID =@CharID

end

if(@JobType=2)

begin

select @job_level=Thief_Level,@Job_Exp= Thief_Exp from CLEAN_GUARD.._CharStatics where CharID =@CharID

end

if(@JobType=3)

begin

select @job_level=Hunter_Level,@Job_Exp= Hunter_Exp from CLEAN_GUARD.._CharStatics where CharID =@CharID

end



Update SRO_VT_SHARD.._Inventory Set ItemID = @ItemIDInventory Where CharID = @CharID and Slot = 8



Update SRO_VT_SHARD.._Inventory Set ItemID = 0 Where CharID = @CharID and Slot = @Slot And Slot != 8







Update SRO_VT_SHARD.._Char Set NickName16 = CharName16 Where CharID = @CharID



Update SRO_VT_SHARD.._CharTrijob Set JobType = @JobType ,[Level]=@Job_Level,[Exp]=@Job_Exp where CharID = @CharID





-- IF Exists ( Select AbleCount From SRO_VT_SHARD.._CharTrijobSafeTrade Where CharID = @CharID and AbleCount = 0 )

-- BEGIN

-- Print @CharID

-- END

-- ELSE

-- BEGIN

-- Insert Into SRO_VT_SHARD.._CharTrijobSafeTrade ( CharID, AbleCount, Status, LastSafeTrade ) Values ( @CharID,0,0, GETDATE() )

-- END







--INSERT INTO _BridgeCommands(CommandID, Executor, Data1, Data2, Date) VALUES(63, 'SMC', @CharName, @CharName, GETDATE())

INSERT INTO CLEAN_GUARD.._InstantCharReloadDelivery(CharID) Values ((select CharID from SRO_VT_SHARD.._Char where CharName16 = @CharName))



END

[/HIDE]
 

Konu görüntüleyen kullanıcılar

Benzer konular

Geri
Üst