Vsro 3 Job procedure

sroline

Mangyang
Bilgiler
Katılım
22 Mar 2024
Mesajlar
2
Tepkime puanı
1
Puanları
3
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:


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:

Bu konuyu okuyanlar:

Etiketler
3job silkroad 3job vsro 3job

Üst