Merhaba, uzun zamandır aktif değildim ve geçtiğimiz günlerde 60 cap bir server da 1 hafta oynadım ve 3 job eksikliğini hissettim ve paylaşma gereği duydum. (Guardlar hali hazırda bu hizmeti veriyor mu bilmiyorum. Kendinize ait guardınız yoksa Kguard-Maxiguard gibi guardlar eşliğinde de kullanabilirsiniz. )
2 kullanım yöntemi vardır.
1- Guard sağlayıcınızdan mümkünse buton talep edebilirsiniz.
2- Bir Pm botu ile komut gönderebilirsiniz.
NOT: Olduğu gibi atıyorum üzerinde iptal ettiğim kısımlar, not aldığım kısımlar var bu haliyle çalışır durumda. Sorun yaşayan olursa yardımcı olurum.
Procedure:
2 kullanım yöntemi vardır.
1- Guard sağlayıcınızdan mümkünse buton talep edebilirsiniz.
2- Bir Pm botu ile komut gönderebilirsiniz.
NOT: Olduğu gibi atıyorum üzerinde iptal ettiğim kısımlar, not aldığım kısımlar var bu haliyle çalışır durumda. Sorun yaşayan olursa yardımcı olurum.
Procedure:
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
-- 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
Moderatör tarafında düzenlendi: