server-re/decomp/schema/RustyHearts/procs/up_insert_guild_increase_exp.sql

48 lines
1.3 KiB
Transact-SQL

CREATE PROCEDURE [dbo].[up_insert_guild_increase_exp]
(
@guild_id [uniqueidentifier]
,@character_id [uniqueidentifier]
,@exp int
,@time NVARCHAR(20)
,@character_name nvarchar(16)
)
AS
declare @experience bigint
declare @charexp int
SET NOCOUNT ON
IF EXISTS(select guild_id from GuildTable with (READUNCOMMITTED) where guild_id = @guild_id)
BEGIN
--캐릭터의 길드 포인트를 감소 시킨다
SELECT @charexp = GuildPoint FROM CharacterTable with (READUNCOMMITTED) WHERE character_ID = @character_id
IF( 0>=@charexp OR 0>=(@charexp - @exp) )
BEGIN
SET @charexp = 0
END
ELSE
BEGIN
SET @charexp = @charexp - @exp
END
UPDATE CharacterTable SET GuildPoint = @charexp WHERE character_ID = @character_id
--길드 포인트 주입
SELECT @experience = experience FROM GuildTable with (READUNCOMMITTED) WHERE guild_id = @guild_id
SET @experience = @experience + @exp
UPDATE GuildTable SET experience = @experience WHERE guild_id = @guild_id
INSERT INTO tbl_Guild_Exp_List VALUES ( @guild_id
,@character_id
,@exp
,@time
,@character_name
)
END
RETURN @@error