decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
213
decomp/schema/RustyHearts/procs/up_ItemMove.sql
Normal file
213
decomp/schema/RustyHearts/procs/up_ItemMove.sql
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
CREATE PROCEDURE [dbo].[up_ItemMove]
|
||||
@character_id [uniqueidentifier],
|
||||
@item_uid [uniqueidentifier],
|
||||
|
||||
@item_count int,
|
||||
|
||||
@inven_dest_type tinyint,
|
||||
@inven_dest_page tinyint,
|
||||
@inven_dest_slot tinyint,
|
||||
|
||||
@inven_src_type tinyint,
|
||||
@inven_src_page tinyint,
|
||||
@inven_src_slot tinyint
|
||||
as
|
||||
set nocount on
|
||||
|
||||
declare @char_id nvarchar(50)
|
||||
declare @item_id nvarchar(50)
|
||||
|
||||
declare @TableName_Src nvarchar(50)
|
||||
declare @TableName_Dest nvarchar(50)
|
||||
|
||||
declare @SQL nvarchar(500)
|
||||
|
||||
declare @src_item_count int
|
||||
declare @get_item_code int
|
||||
|
||||
set @get_item_code = 0
|
||||
|
||||
set @char_id = CONVERT(NVARCHAR(50), @character_id)
|
||||
set @item_id = CONVERT(NVARCHAR(50), @item_uid)
|
||||
|
||||
-- 1-인벤, 2-창고, 3-장착
|
||||
if(@inven_src_type = 1)
|
||||
Set @TableName_Src = 'N_InventoryItem'
|
||||
else if(@inven_src_type = 2)
|
||||
Set @TableName_Src = 'N_StorageItem'
|
||||
else if(@inven_src_type = 3)
|
||||
Set @TableName_Src = 'N_EquipItem'
|
||||
else
|
||||
return
|
||||
|
||||
if(@inven_dest_type = 1)
|
||||
Set @TableName_Dest = 'N_InventoryItem'
|
||||
else if(@inven_dest_type = 2)
|
||||
Set @TableName_Dest = 'N_StorageItem'
|
||||
else if(@inven_dest_type = 3)
|
||||
Set @TableName_Dest = 'N_EquipItem'
|
||||
else
|
||||
return
|
||||
|
||||
begin tran
|
||||
|
||||
-- Dest에 아이템이 있는지 알아본다.
|
||||
set @SQL = 'select '
|
||||
+@get_item_code
|
||||
+' = [code] as variable'
|
||||
+'from '
|
||||
+@TableName_Dest
|
||||
+' with (READUNCOMMITTED) where [character_id] ='
|
||||
+@char_id
|
||||
+' and [page_index] = '
|
||||
+@inven_dest_page
|
||||
+' and [slot_index] = '
|
||||
+@inven_dest_slot
|
||||
|
||||
exec(@SQL)
|
||||
|
||||
|
||||
-- dest에 이미 아이템이 있으면 개수를 업데이트 해준다.
|
||||
if(@get_item_code > 0)
|
||||
begin
|
||||
set @SQL = 'update'+ ' '
|
||||
+@TableName_Dest
|
||||
+'set [use_cnt] = '
|
||||
+'[use_cnt]'+@item_count
|
||||
+' where [character_id] ='
|
||||
+@char_id
|
||||
+' and [page_index] = '
|
||||
+@inven_dest_page
|
||||
+' and [slot_index] = '
|
||||
+@inven_dest_slot
|
||||
|
||||
exec(@SQL)
|
||||
end
|
||||
|
||||
-- dest에 아이템이 없으면 인서트 시켜준다.
|
||||
else
|
||||
begin
|
||||
set @SQL = 'insert'+ ' '
|
||||
+@TableName_Dest+ ' '
|
||||
+'[item_uid], '
|
||||
+'[character_id], '
|
||||
+'[auth_id], '
|
||||
+'[page_index], '
|
||||
+'[slot_index], '
|
||||
+'[code], '
|
||||
+'[use_cnt], '
|
||||
+'[remain_time], '
|
||||
+'[create_time], '
|
||||
+'[update_time], '
|
||||
+'[gcode], '
|
||||
+'[durability], '
|
||||
+'[enhance_level], '
|
||||
+'[option_1_code], '
|
||||
+'[option_1_value], '
|
||||
+'[option_2_code], '
|
||||
+'[option_2_value], '
|
||||
+'[option_3_code], '
|
||||
+'[option_3_value], '
|
||||
+'[wa_grade], '
|
||||
+'[identity], '
|
||||
+'[socket_count], '
|
||||
+'[socket_1_code], '
|
||||
+'[socket_1_value], '
|
||||
+'[socket_2_code], '
|
||||
+'[socket_2_value], '
|
||||
+'[socket_3_code], '
|
||||
+'[socket_3_value], '
|
||||
+'[rank], '
|
||||
+'[acquireroute], '
|
||||
+'[physical], '
|
||||
+'[magical], '
|
||||
+'[durabilitymax], '
|
||||
+'[weight]) '
|
||||
+'select '
|
||||
+'[item_uid], '
|
||||
+'[character_id], '
|
||||
+'[auth_id], '
|
||||
+@inven_dest_page
|
||||
+','
|
||||
+@inven_dest_slot
|
||||
+', '
|
||||
+'[code],'
|
||||
+@item_count
|
||||
+', '
|
||||
+'[remain_time], '
|
||||
+'[create_time], '
|
||||
+'[update_time], '
|
||||
+'[gcode], '
|
||||
+'[durability], '
|
||||
+'[enhance_level], '
|
||||
+'[option_1_code], '
|
||||
+'[option_1_value], '
|
||||
+'[option_2_code], '
|
||||
+'[option_2_value], '
|
||||
+'[option_3_code], '
|
||||
+'[option_3_value], '
|
||||
+'[wa_grade], '
|
||||
+'[identity], '
|
||||
+'[socket_count], '
|
||||
+'[socket_1_code], '
|
||||
+'[socket_1_value], '
|
||||
+'[socket_2_code], '
|
||||
+'[socket_2_value], '
|
||||
+'[socket_3_code], '
|
||||
+'[socket_3_value], '
|
||||
+'[rank], '
|
||||
+'[acquireroute], '
|
||||
+'[physical], '
|
||||
+'[magical], '
|
||||
+'[durabilitymax], '
|
||||
+'[weight]'
|
||||
+'from '
|
||||
+@TableName_Src
|
||||
+' where [item_uid] ='
|
||||
+ @item_id
|
||||
|
||||
exec(@SQL)
|
||||
end
|
||||
|
||||
--
|
||||
set @SQL = 'select'+ ' '
|
||||
+@src_item_count+ ' = [use_cnt]'
|
||||
+'from '
|
||||
+@TableName_Src
|
||||
+' with (READUNCOMMITTED) where [item_uid] ='
|
||||
+@item_id
|
||||
|
||||
exec(@SQL)
|
||||
|
||||
-- 모두 옮겼으면 옮긴 아이템을 삭제한다.
|
||||
if @src_item_count <= @item_count
|
||||
begin
|
||||
set @SQL = 'delete from'+ ' '
|
||||
+@TableName_Src
|
||||
+' where [item_uid] ='
|
||||
+@item_id
|
||||
|
||||
exec(@SQL)
|
||||
end
|
||||
-- 특정 몇개만 옮겼으면 개수를 빼준다.
|
||||
else if @src_item_count > @item_count
|
||||
begin
|
||||
set @SQL = 'update'+ ' '
|
||||
+@TableName_Src
|
||||
+'set [use_cnt] = '
|
||||
+@src_item_count-@item_count
|
||||
+' where [item_uid] ='
|
||||
+@item_id
|
||||
|
||||
exec(@SQL)
|
||||
end
|
||||
|
||||
declare @ERR int
|
||||
|
||||
SET @ERR = @@ERROR
|
||||
IF @ERR <> 0 BEGIN
|
||||
RAISERROR('처리오류', 16, 10)
|
||||
IF @@TRANCOUNT <> 0 ROLLBACK
|
||||
RETURN (@ERR)
|
||||
END
|
||||
COMMIT TRAN
|
||||
Loading…
Add table
Add a link
Reference in a new issue