You can add or subtract silk/giftsilk/silkpoint without teleport character .
exec SRO_VT_ACCOUNT.._SilkSystem @charname,@silktype,@SilkAmount,@type -- cong or tru
USE [SRO_VT_ACCOUNT]
GO
/****** Object: StoredProcedure [dbo].[_SilkSystem] Script Date: 06/16/2019 1:50:26 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[_SilkSystem]
@Charname varchar(25),
@SilkType varchar(20),
@SilkAmount int,
@type varchar(5)
as
DECLARE @UserJID int = (SELECT JID FROM SRO_VT_ACCOUNT.dbo.TB_User U WITH(NOLOCK)JOIN SRO_VT_SHARD.dbo._User U2 WITH(NOLOCK) ON U.JID = U2.UserJID JOIN SRO_VT_SHARD.dbo._Char C WITH(NOLOCK) ON U2.CharID = C.CharID WHERE C.CharName16 = @Charname)
DECLARE @Cursilk INT = (SELECT silk_own FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
DECLARE @Cursilkpoint INT = (SELECT silk_point FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
DECLARE @Cursilkgift INT = (SELECT silk_gift FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
BEGIN TRY
BEGIN TRANSACTION
if @type = 'cong'
begin
IF not exists(SELECT JID from SRO_VT_ACCOUNT.dbo.SK_Silk WITH(NOLOCK) where JID = @UserJID)
BEGIN
IF(@SilkType = 'SILK')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,0,0)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,@SilkAmount,0,0)
END
ELSE IF (@SilkType = 'Silk_Gift')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,1,2)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,@SilkAmount,0)
END
ELSE IF (@SilkType = 'Silk_Point')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,2,2)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,0,@SilkAmount)
END
end
ELSE
BEGIN
IF(@SilkType = 'SILK')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilk,@SilkAmount,0 ,0)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own += @SilkAmount WHERE JID = @UserJID
END
ELSE IF(@SilkType = 'Silk_Gift')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilkgift,@SilkAmou nt,1,2)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift += @SilkAmount WHERE JID = @UserJID
END
ELSE IF(@SilkType = 'Silk_Point')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilkpoint,@SilkAmo unt,2,2)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point += @SilkAmount WHERE JID = @UserJID
END
end
end
else if @type = 'tru'
begin
IF not exists(SELECT JID from SRO_VT_ACCOUNT.dbo.SK_Silk WITH(NOLOCK) where JID = @UserJID)
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,0,0)
end
ELSE
BEGIN
IF(@SilkType = 'SILK')
BEGIN
if @Cursilk - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilk-@Cursilk,@Cursilk,0,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own -= @Cursilk WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilk-@SilkAmount,@SilkAmount,0,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own -= @SilkAmount WHERE JID = @UserJID
END
end
ELSE IF(@SilkType = 'Silk_Gift')
BEGIN
if @Cursilkgift - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkgift-@Cursilkgift,@Cursilkgift,1,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift -= @Cursilkgift WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkgift-@SilkAmount,@SilkAmount,1,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift -= @SilkAmount WHERE JID = @UserJID
END
end
ELSE IF(@SilkType = 'Silk_Point')
BEGIN
if @Cursilkpoint - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkpoint-@Cursilkpoint,@Cursilkpoint,2,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point -= @Cursilkpoint WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkpoint-@SilkAmount,@SilkAmount,2,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point -= @SilkAmount WHERE JID = @UserJID
END
end
end
end
COMMIT TRANSACTION
end TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
end
END CATCH
GO
/****** Object: StoredProcedure [dbo].[_SilkSystem] Script Date: 06/16/2019 1:50:26 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[_SilkSystem]
@Charname varchar(25),
@SilkType varchar(20),
@SilkAmount int,
@type varchar(5)
as
DECLARE @UserJID int = (SELECT JID FROM SRO_VT_ACCOUNT.dbo.TB_User U WITH(NOLOCK)JOIN SRO_VT_SHARD.dbo._User U2 WITH(NOLOCK) ON U.JID = U2.UserJID JOIN SRO_VT_SHARD.dbo._Char C WITH(NOLOCK) ON U2.CharID = C.CharID WHERE C.CharName16 = @Charname)
DECLARE @Cursilk INT = (SELECT silk_own FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
DECLARE @Cursilkpoint INT = (SELECT silk_point FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
DECLARE @Cursilkgift INT = (SELECT silk_gift FROM SRO_VT_ACCOUNT.dbo.SK_Silk where JID = @UserJID)
BEGIN TRY
BEGIN TRANSACTION
if @type = 'cong'
begin
IF not exists(SELECT JID from SRO_VT_ACCOUNT.dbo.SK_Silk WITH(NOLOCK) where JID = @UserJID)
BEGIN
IF(@SilkType = 'SILK')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,0,0)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,@SilkAmount,0,0)
END
ELSE IF (@SilkType = 'Silk_Gift')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,1,2)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,@SilkAmount,0)
END
ELSE IF (@SilkType = 'Silk_Point')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount,@SilkAmount,2,2)
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,0,@SilkAmount)
END
end
ELSE
BEGIN
IF(@SilkType = 'SILK')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilk,@SilkAmount,0 ,0)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own += @SilkAmount WHERE JID = @UserJID
END
ELSE IF(@SilkType = 'Silk_Gift')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilkgift,@SilkAmou nt,1,2)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift += @SilkAmount WHERE JID = @UserJID
END
ELSE IF(@SilkType = 'Silk_Point')
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@SilkAmount+@Cursilkpoint,@SilkAmo unt,2,2)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point += @SilkAmount WHERE JID = @UserJID
END
end
end
else if @type = 'tru'
begin
IF not exists(SELECT JID from SRO_VT_ACCOUNT.dbo.SK_Silk WITH(NOLOCK) where JID = @UserJID)
BEGIN
INSERT SRO_VT_ACCOUNT.dbo.SK_Silk(JID,silk_own,silk_gift, silk_Point)VALUES(@UserJID,0,0,0)
end
ELSE
BEGIN
IF(@SilkType = 'SILK')
BEGIN
if @Cursilk - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilk-@Cursilk,@Cursilk,0,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own -= @Cursilk WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilk-@SilkAmount,@SilkAmount,0,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_own -= @SilkAmount WHERE JID = @UserJID
END
end
ELSE IF(@SilkType = 'Silk_Gift')
BEGIN
if @Cursilkgift - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkgift-@Cursilkgift,@Cursilkgift,1,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift -= @Cursilkgift WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkgift-@SilkAmount,@SilkAmount,1,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_gift -= @SilkAmount WHERE JID = @UserJID
END
end
ELSE IF(@SilkType = 'Silk_Point')
BEGIN
if @Cursilkpoint - @SilkAmount < 0
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkpoint-@Cursilkpoint,@Cursilkpoint,2,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point -= @Cursilkpoint WHERE JID = @UserJID
end
else
begin
INSERT SRO_VT_ACCOUNT.dbo.SK_SilkChange_BY_Web(JID,silk_r emain,silk_offset,silk_type,reason) VALUES(@UserJID,@Cursilkpoint-@SilkAmount,@SilkAmount,2,5)
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk set silk_point -= @SilkAmount WHERE JID = @UserJID
END
end
end
end
COMMIT TRANSACTION
end TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
end
END CATCH



.gif)




