check in SRO_VT_SHAR IN Stored Procedures at _DeleteCharPermanently you have like this?
PHP Code:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_DeleteCharPermanently] Script Date: 5/8/2016 3:47:28 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
--!!!CHECK!!!
ALTER PROCEDURE [dbo].[_DeleteCharPermanently]
@CharID as int
as
------------------------------------
-- 일단 삭제된 캐릭인지 부터 검사!
------------------------------------
if (not exists(select charid from _deletedchar where charid = @CharID))
begin
return -1
end
------------------------------------
-- 삭제후 경과된 시간이 대략 7일이 맞는가 확인 (샤드에 혹시 버그가 있을지 모르니깐...)
------------------------------------
declare [MENTION=560038]deleted[/MENTION]_date datetime
declare @cur_date datetime
declare [MENTION=1536325]elapse[/MENTION]d_min int
declare [MENTION=292919]user[/MENTION]JID int
-- declare [MENTION=560038]deleted[/MENTION]_slot int
set @cur_date = getdate()
select [MENTION=292919]user[/MENTION]JID = UserJID, / [MENTION=560038]deleted[/MENTION]_slot = CharSlot,*/ [MENTION=560038]deleted[/MENTION]_date = deleteddate from _deletedchar with (nolock) where charid = @CharID
-- 삭제시킨지 6일 + 23시간 이상이 지난 캐릭인가? (1시간 정도의 오차라면 인정해 준다 냐하~)
set [MENTION=1536325]elapse[/MENTION]d_min = datediff(minute, [MENTION=560038]deleted[/MENTION]_date, @cur_date)
if [MENTION=1536325]elapse[/MENTION]d_min < ((60 * 24 * 6) + (60 * 23)))
begin
return -2
end
------------------------------------
-- 삭제된 캐릭이 맞는지 다시한번 확인
------------------------------------
declare [MENTION=5807866]IS_[/MENTION]deleted tinyint
select [MENTION=5807866]IS_[/MENTION]deleted = deleted from _Char where CharID = @CharID
if [MENTION=5807866]IS_[/MENTION]deleted <> 1)
begin
return -3
end
------------------------------------
-- 지울 캐릭이 _User 에 있는 CharID와 일치하는가 검사
------------------------------------
declare @char_id_to_check int
set @char_id_to_check = 0
/* -- commented by novice. for server integration.
if [MENTION=560038]deleted[/MENTION]_slot = 0)
begin select @char_id_to_check = CharID1 from _User where UserJID = [MENTION=292919]user[/MENTION]JID end
else if [MENTION=560038]deleted[/MENTION]_slot = 1)
begin select @char_id_to_check = CharID2 from _User where UserJID = [MENTION=292919]user[/MENTION]JID end
else if [MENTION=560038]deleted[/MENTION]_slot = 2)
begin select @char_id_to_check = CharID3 from _User where UserJID = [MENTION=292919]user[/MENTION]JID end
else
begin
return -4
end
-- 켁! 어떻게 된거야? 이상한 넘이 자리를 차지하고 있다!
if (@char_id_to_check <> @CharID)
begin
return -5
end
*/
-- start by novice.
select @char_id_to_check = CharID from _User where UserJID = [MENTION=292919]user[/MENTION]JID and CharID = @CharID
if (@char_id_to_check = 0)
begin
-- 지울 캐릭터가 _User 에 없어?
return -5
end
-- finish by novice.
begin transaction
declare [MENTION=4796157]Guildi[/MENTION]D int
exec [MENTION=4796157]Guildi[/MENTION]D = _DeleteCharPermanently_NoTX [MENTION=292919]user[/MENTION]JID, @CharID --, [MENTION=560038]deleted[/MENTION]_slot
if [MENTION=4796157]Guildi[/MENTION]D is null)
set [MENTION=4796157]Guildi[/MENTION]D = -10000
if [MENTION=4796157]Guildi[/MENTION]D < 0)
begin
rollback transaction
return [MENTION=4796157]Guildi[/MENTION]D
end
commit transaction
return [MENTION=4796157]Guildi[/MENTION]D