srocenter Can
Forum Admin
Moderatör
Center Üyesi
Bilişim Sahibi
Çevirmen
Coder
Grafiker
Guild Master
Guild Üyesi
Reklamcı
Server Sahibi
Supporter
V.i.P
- Katılım
- 18 Haz 2023
- Mesajlar
- 20,134
- Tepkime puanı
- 12
- Puanları
- 38
SQL:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_DeleteCharPermanently] Script Date: 02/14/2012 12:54:06 ******/
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 @DeLeTed_date datetime
declare @cur_date datetime
declare @elapsed_min int
declare @userJID int
-- declare @DeLeTed_slot int
set @cur_date = getdate()
select @userJID = UserJID, / @DeLeTed_slot = CharSlot,*/ @DeLeTed_date = deleteddate from _deletedchar with (nolock) where charid = @charID
-- ????? 6? + 23?? ??? ?? ????? (1?? ??? ???? ??? ?? ??~)
set @elapsed_min = datediff(minute, @DeLeTed_date, @cur_date)
if @elapsed_min < ((60 * 24 * 6) + (60 * 23)))
begin
return -2
end
------------------------------------
-- ??? ??? ??? ???? ??
------------------------------------
declare @is_deleted tinyint
select @is_deleted = deleted from _Char where CharID = @charID
if (@is_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 @DeLeTed_slot = 0)
begin select @char_id_to_check = CharID1 from _User where UserJID = @userJID end
else if @DeLeTed_slot = 1)
begin select @char_id_to_check = CharID2 from _User where UserJID = @userJID end
else if @DeLeTed_slot = 2)
begin select @char_id_to_check = CharID3 from _User where UserJID = @userJID 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 = @userJID and CharID = @charID
if @char_id_to_check = 0)
begin
-- ?? ???? _User ? ???
return -5
end
-- finish by novice.
begin transaction
declare @GuildID int
exec @GuildID = _DeleteCharPermanently_NoTX @userJID, @charID --, @DeLeTed_slot
if (@GuildID is null)
set @GuildID = -10000
if (@GuildID < 0)
begin
rollback transaction
return @GuildID
end
commit transaction
return @GuildID
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_DeleteCharPermanently] Script Date: 02/14/2012 12:54:06 ******/
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 @DeLeTed_date datetime
declare @cur_date datetime
declare @elapsed_min int
declare @userJID int
-- declare @DeLeTed_slot int
set @cur_date = getdate()
select @userJID = UserJID, / @DeLeTed_slot = CharSlot,*/ @DeLeTed_date = deleteddate from _deletedchar with (nolock) where charid = @charID
-- ????? 6? + 23?? ??? ?? ????? (1?? ??? ???? ??? ?? ??~)
set @elapsed_min = datediff(minute, @DeLeTed_date, @cur_date)
if @elapsed_min < ((60 * 24 * 6) + (60 * 23)))
begin
return -2
end
------------------------------------
-- ??? ??? ??? ???? ??
------------------------------------
declare @is_deleted tinyint
select @is_deleted = deleted from _Char where CharID = @charID
if (@is_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 @DeLeTed_slot = 0)
begin select @char_id_to_check = CharID1 from _User where UserJID = @userJID end
else if @DeLeTed_slot = 1)
begin select @char_id_to_check = CharID2 from _User where UserJID = @userJID end
else if @DeLeTed_slot = 2)
begin select @char_id_to_check = CharID3 from _User where UserJID = @userJID 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 = @userJID and CharID = @charID
if @char_id_to_check = 0)
begin
-- ?? ???? _User ? ???
return -5
end
-- finish by novice.
begin transaction
declare @GuildID int
exec @GuildID = _DeleteCharPermanently_NoTX @userJID, @charID --, @DeLeTed_slot
if (@GuildID is null)
set @GuildID = -10000
if (@GuildID < 0)
begin
rollback transaction
return @GuildID
end
commit transaction
return @GuildID