Help with Dekaronserver, please?

03/30/2015 22:48 DarkMgk#1
Hey guys, I'm going to sound like a noob, but I'm trying to run Dekaronserver and well, I'm getting this error:

[2120] [ CRITICAL ERROR ] SP_SIEGE_INFO_R CALL FAIL

I've searched the forum up and down, looking for fixes.
I've ran 2 scripts successfully, since I'm running SQL 2008 r2, I'm not sure if the codes are newer than the old ones, or what.. I get this error
[Only registered and activated users can see links. Click Here To Register...]


If you don't trust the link, or want to see what the full error is, :
Msg 4121, Level 16, State 1, Line 33
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.FN_DateToShortStrDate", or the name is ambiguous.


The attachment is my full error when I run Dekaronserver, like I said it's all smooth and gravy until it all loads then I get this.

Please help, and I'm sorry for being such a noob at this.
03/31/2015 00:07 Godricc#2
I have fixed siege for our server(s) back when Rising, Salvation, and Dk9 were the only true action 9 servers out to the public and running. I never shared my work in action 9 before so this is new to me, but I'm currently not doing anything in dekaron at this time, so I honestly don't mind giving the help.

This is the BinDateToDateTime. It's part one to the siege script. "Action 3 BinDate scripts will not work on action 9, from my personal experience."
Code:
USE [character]
GO
/****** Object:  UserDefinedFunction [dbo].[FN_BinDateToDateTime]    Script Date: 07/04/2014 07:19:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO





/******************************************************************************
   ?  ? : dbo.FN_BinDateToDateTime
   ?  ? : Binary Date? DateTime ???? ????.
   ??? : 
   ????:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2006-05-05  Han Ji Wook      1. ????
   1.1        2009-12-22  Park Chanik    1. ?? 2010? ?? ?? ?? , 2010? ?? ??
 ******************************************************************************/
ALTER  FUNCTION [dbo].[FN_BinDateToDateTime] (
 @i_bin_time BINARY(4)
) RETURNS DATETIME
AS
BEGIN
 DECLARE @v_datetime DATETIME
 DECLARE @v_strtime VARCHAR(20)

 -- 2009? 12? 22? ?? 
 IF LEN(CAST(@i_bin_time AS INT)) < 10
 BEGIN
  SELECT @v_strtime = '200' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
 END
 ELSE
 BEGIN
  SELECT @v_strtime = '20' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
 END
 SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
      +'-'+SUBSTRING(@v_strtime,5,2)
      +'-'+SUBSTRING(@v_strtime,7,2)
      +' '+SUBSTRING(@v_strtime,9,2)
      +':'+SUBSTRING(@v_strtime,11,2) 
 SELECT @v_datetime = CAST(@v_strtime AS DATETIME)
 RETURN  @v_datetime
END

This is the main siege script. It's part two to the entire siege script. "Action 3 main siege scripts will work on action 9, also from my personal experience. Just be sure to change the necessary info to your likings before updating it!"
Code:
USE [Character];
GO
DECLARE @v_siege_no char(10) 
DECLARE @guild_code varchar(10) 
DECLARE @guild_name varchar(30)
DECLARE @v_strDate varchar(10)
DECLARE @v_regdate varchar(10)
DECLARE @v_strChannel varchar(2)
DECLARE @i_bychannel tinyint 
DECLARE @o_dwDungeonRegistTime varbinary(4)
DECLARE @o_DeadFrontTimeInfo varbinary(1000)
DECLARE @o_sp_rtn int
DECLARE @o_dwRegistTimeStart varbinary(4)
DECLARE @o_dwRegistTimeEnd varbinary(4)
DECLARE @o_dwTaxRegistTime varbinary(4)
DECLARE @o_dwStartTime varbinary(4)
DECLARE @o_dwRegistTime varbinary(4)
DECLARE @v_strDate1 varchar(10)
DECLARE @i_GetDate datetime
DECLARE @v_siege_start_date varchar(14)
DECLARE @v_siege_start_time varbinary(4)

SET @i_GetDate=getdate()



SELECT @v_siege_start_date = CONVERT(VARCHAR(10), DATEADD(d, 15-DATEPART(dw, @i_GetDate), @i_GetDate), 112) + '210000'
SELECT @v_siege_start_time = SUBSTRING(@v_siege_start_date,4,1) * 100000000
+ SUBSTRING(@v_siege_start_date,5,2) * 1000000
+ SUBSTRING(@v_siege_start_date,7,2) * 10000
+ SUBSTRING(@v_siege_start_date,9,2) * 100
+ SUBSTRING(@v_siege_start_date,11,2)

SET @guild_code = '001'
SET @guild_name = 'FirstSiege'
SET @v_siege_no = SUBSTRING(dbo.FN_DateToShortStrDate(GetDate()), 3, 4) + '0001'
INSERT 
INTO GUILD_INFO(guild_code, guild_name, guild_Level, bystate, bychannel)
VALUES (@guild_code, @guild_name, 3, 1, 1)
INSERT 
INTO SIEGE_INFO(SIEGE_NO, CHANNEL_NO, GUILD_CODE, GUILD_NAME, 
DWSTARTTIME, BYREGISTTIMEFLAG, DEFENDER_INFO, SIEGE_TAG)
VALUES (@v_siege_no, 1, @guild_code, @guild_name,@v_siege_start_time, 1, 0X0000, 'Y')

EXEC SP_SIEGE_START_TIME_U @guild_code,1,0x01,@v_siege_start_time output,@o_dwRegistTime output,@o_sp_rtn output

set @v_strDate1=dbo.FN_BinDateToDateTime(@v_siege_start_time)

declare @P1 varchar(13)
set @P1=NULL
declare @P2 varchar(33)
set @P2=NULL
declare @P3 varchar(25)
set @P3=NULL
declare @P4 varbinary(4)
set @P4=NULL
declare @P5 varbinary(4)
set @P5=NULL
declare @P6 varbinary(4)
set @P6=NULL
declare @P7 varbinary(4)
set @P7=NULL
declare @P8 varbinary(4)
set @P8=NULL
declare @P9 varbinary(4)
set @P9=NULL
declare @P10 varbinary(4)
set @P10=NULL
declare @P11 varbinary(2)
set @P11=NULL
declare @P12 varbinary(2)
set @P12=NULL
declare @P13 varbinary(2)
set @P13=NULL
declare @P14 int
set @P14=NULL
declare @P15 int
set @P15=NULL
declare @P16 varbinary(4)
set @P16=NULL
declare @P17 varbinary(996)
set @P17=NULL
declare @P18 varbinary(996)
set @P18=NULL
declare @P19 varbinary(1000)
set @P19=NULL
declare @P20 int
set @P20=NULL
exec SP_SIEGE_INFO_R 1, @P1 output, @P2 output, @P3 output, @P4 output, @P5 output, @P6 output, @P7 output, @P8 output, @P9 output, @P10 output, @P11 output, @P12 output, @P13 output, @P14 output, @P15 output, @P16 output, @P17 output, @P18 output, @P19 output, @P20 output
select @P1, @P2, @P3, @P4, @P5, @P6,@v_strDate1

Please note: I have had the ([ CRITICAL ERROR ] SP_SIEGE_INFO_R CALL FAIL) issue multiple times. I had to trial and error my way out, but I have successfully ran the script on 3 servers and they all worked great!

There is more to my process, but I'm almost sure you don't need it. If for some reason you do have the same or new issues, please feel free to let me know in this thread and Ill give you the [SP's] to fix it.
03/31/2015 02:43 freez00#3
Awesome thanks for posting this Godricc!
03/31/2015 08:46 6shadow6#4
Quote:
Originally Posted by Godricc View Post
I have fixed siege for our server(s) back when Rising, Salvation, and Dk9 were the only true action 9 servers out to the public and running. I never shared my work in action 9 before so this is new to me, but I'm currently not doing anything in dekaron at this time, so I honestly don't mind giving the help.

This is the BinDateToDateTime. It's part one to the siege script. "Action 3 BinDate scripts will not work on action 9, from my personal experience."
Code:
USE [character]
GO
/****** Object:  UserDefinedFunction [dbo].[FN_BinDateToDateTime]    Script Date: 07/04/2014 07:19:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO





/******************************************************************************
   ?  ? : dbo.FN_BinDateToDateTime
   ?  ? : Binary Date? DateTime ???? ????.
   ??? : 
   ????:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2006-05-05  Han Ji Wook      1. ????
   1.1        2009-12-22  Park Chanik    1. ?? 2010? ?? ?? ?? , 2010? ?? ??
 ******************************************************************************/
ALTER  FUNCTION [dbo].[FN_BinDateToDateTime] (
 @i_bin_time BINARY(4)
) RETURNS DATETIME
AS
BEGIN
 DECLARE @v_datetime DATETIME
 DECLARE @v_strtime VARCHAR(20)

 -- 2009? 12? 22? ?? 
 IF LEN(CAST(@i_bin_time AS INT)) < 10
 BEGIN
  SELECT @v_strtime = '200' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
 END
 ELSE
 BEGIN
  SELECT @v_strtime = '20' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
 END
 SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
      +'-'+SUBSTRING(@v_strtime,5,2)
      +'-'+SUBSTRING(@v_strtime,7,2)
      +' '+SUBSTRING(@v_strtime,9,2)
      +':'+SUBSTRING(@v_strtime,11,2) 
 SELECT @v_datetime = CAST(@v_strtime AS DATETIME)
 RETURN  @v_datetime
END

This is the main siege script. It's part two to the entire siege script. "Action 3 main siege scripts will work on action 9, also from my personal experience. Just be sure to change the necessary info to your likings before updating it!"
Code:
USE [Character];
GO
DECLARE @v_siege_no char(10) 
DECLARE @guild_code varchar(10) 
DECLARE @guild_name varchar(30)
DECLARE @v_strDate varchar(10)
DECLARE @v_regdate varchar(10)
DECLARE @v_strChannel varchar(2)
DECLARE @i_bychannel tinyint 
DECLARE @o_dwDungeonRegistTime varbinary(4)
DECLARE @o_DeadFrontTimeInfo varbinary(1000)
DECLARE @o_sp_rtn int
DECLARE @o_dwRegistTimeStart varbinary(4)
DECLARE @o_dwRegistTimeEnd varbinary(4)
DECLARE @o_dwTaxRegistTime varbinary(4)
DECLARE @o_dwStartTime varbinary(4)
DECLARE @o_dwRegistTime varbinary(4)
DECLARE @v_strDate1 varchar(10)
DECLARE @i_GetDate datetime
DECLARE @v_siege_start_date varchar(14)
DECLARE @v_siege_start_time varbinary(4)

SET @i_GetDate=getdate()



SELECT @v_siege_start_date = CONVERT(VARCHAR(10), DATEADD(d, 15-DATEPART(dw, @i_GetDate), @i_GetDate), 112) + '210000'
SELECT @v_siege_start_time = SUBSTRING(@v_siege_start_date,4,1) * 100000000
+ SUBSTRING(@v_siege_start_date,5,2) * 1000000
+ SUBSTRING(@v_siege_start_date,7,2) * 10000
+ SUBSTRING(@v_siege_start_date,9,2) * 100
+ SUBSTRING(@v_siege_start_date,11,2)

SET @guild_code = '001'
SET @guild_name = 'FirstSiege'
SET @v_siege_no = SUBSTRING(dbo.FN_DateToShortStrDate(GetDate()), 3, 4) + '0001'
INSERT 
INTO GUILD_INFO(guild_code, guild_name, guild_Level, bystate, bychannel)
VALUES (@guild_code, @guild_name, 3, 1, 1)
INSERT 
INTO SIEGE_INFO(SIEGE_NO, CHANNEL_NO, GUILD_CODE, GUILD_NAME, 
DWSTARTTIME, BYREGISTTIMEFLAG, DEFENDER_INFO, SIEGE_TAG)
VALUES (@v_siege_no, 1, @guild_code, @guild_name,@v_siege_start_time, 1, 0X0000, 'Y')

EXEC SP_SIEGE_START_TIME_U @guild_code,1,0x01,@v_siege_start_time output,@o_dwRegistTime output,@o_sp_rtn output

set @v_strDate1=dbo.FN_BinDateToDateTime(@v_siege_start_time)

declare @P1 varchar(13)
set @P1=NULL
declare @P2 varchar(33)
set @P2=NULL
declare @P3 varchar(25)
set @P3=NULL
declare @P4 varbinary(4)
set @P4=NULL
declare @P5 varbinary(4)
set @P5=NULL
declare @P6 varbinary(4)
set @P6=NULL
declare @P7 varbinary(4)
set @P7=NULL
declare @P8 varbinary(4)
set @P8=NULL
declare @P9 varbinary(4)
set @P9=NULL
declare @P10 varbinary(4)
set @P10=NULL
declare @P11 varbinary(2)
set @P11=NULL
declare @P12 varbinary(2)
set @P12=NULL
declare @P13 varbinary(2)
set @P13=NULL
declare @P14 int
set @P14=NULL
declare @P15 int
set @P15=NULL
declare @P16 varbinary(4)
set @P16=NULL
declare @P17 varbinary(996)
set @P17=NULL
declare @P18 varbinary(996)
set @P18=NULL
declare @P19 varbinary(1000)
set @P19=NULL
declare @P20 int
set @P20=NULL
exec SP_SIEGE_INFO_R 1, @P1 output, @P2 output, @P3 output, @P4 output, @P5 output, @P6 output, @P7 output, @P8 output, @P9 output, @P10 output, @P11 output, @P12 output, @P13 output, @P14 output, @P15 output, @P16 output, @P17 output, @P18 output, @P19 output, @P20 output
select @P1, @P2, @P3, @P4, @P5, @P6,@v_strDate1

Please note: I have had the ([ CRITICAL ERROR ] SP_SIEGE_INFO_R CALL FAIL) issue multiple times. I had to trial and error my way out, but I have successfully ran the script on 3 servers and they all worked great!

There is more to my process, but I'm almost sure you don't need it. If for some reason you do have the same or new issues, please feel free to let me know in this thread and Ill give you the [SP's] to fix it.
great work
03/31/2015 17:47 DarkMgk#5
Thank you, those scripts worked, but now I have a new problem. For some reason, my dekaronserver.exe is now crashing.....



Here's my error:
[704] .\Security\XignCode\Provider.cpp(18) :
[704] [ XIGNCODE_ZSWAVE_LINK_SUCCESS ]
[704] .\Executer\Provider.cpp(536) :
[704] [ ENGINE SUCCESS SUCCESS ]
[704] Execute Error.
[704] .\Security\AuthClient\Provider.cpp(97) :
[704] DekaronServer::Security::AuthClient::Provider::Pro vider
[704] .\Security\AuthClient\Provider.cpp(97) :
[704] .\Security\AuthClient\Provider.cpp(97) : Fri Jul 15 12:16:13 2011
[704] .\Security\AuthClient\Provider.cpp(101) :
[704] [ CheckVersion : 1 ]
[704] .\Dll\Provider.cpp(450) :
[704] [DekaronServer : 11,7,29,96] [ScriptProcess : 11,7,29,96] SAME VERSION LOAD SUCCESS.
[704] .\Dll\Provider.cpp(124) :
[704] [SCRIPTOBJECT DLL] Success - Load DLL .\ScriptProcess.dll
[704] .\Console\Reader.cpp(43) :
[704] Cannot Find from Console : CONTENTS_TYPE
[704] .\Console\Reader.cpp(44) :
[704] Framework::Console::Reader::Read
[704] .\Console\Reader.cpp(44) :
[704] .\Console\Reader.cpp(44) : Fri Jul 15 12:16:13 2011

I've checked everything that I could think of, and searched around :/
04/01/2015 02:25 Godricc#6
[704] Cannot Find from Console : CONTENTS_TYPE

This is where your problem is, I've never experienced it but I did want you to be aware so you weren't on a goose hunt. So for those who may know good luck helping him! Thanks ahead of time.

P.s: No problem, glad I could help everyone. In regards to the scripts.
04/01/2015 02:41 6shadow6#7
Quote:
Originally Posted by DarkMgk View Post
Thank you, those scripts worked, but now I have a new problem. For some reason, my dekaronserver.exe is now crashing.....



Here's my error:
[704] .\Security\XignCode\Provider.cpp(18) :
[704] [ XIGNCODE_ZSWAVE_LINK_SUCCESS ]
[704] .\Executer\Provider.cpp(536) :
[704] [ ENGINE SUCCESS SUCCESS ]
[704] Execute Error.
[704] .\Security\AuthClient\Provider.cpp(97) :
[704] DekaronServer::Security::AuthClient::Provider::Pro vider
[704] .\Security\AuthClient\Provider.cpp(97) :
[704] .\Security\AuthClient\Provider.cpp(97) : Fri Jul 15 12:16:13 2011
[704] .\Security\AuthClient\Provider.cpp(101) :
[704] [ CheckVersion : 1 ]
[704] .\Dll\Provider.cpp(450) :
[704] [DekaronServer : 11,7,29,96] [ScriptProcess : 11,7,29,96] SAME VERSION LOAD SUCCESS.
[704] .\Dll\Provider.cpp(124) :
[704] [SCRIPTOBJECT DLL] Success - Load DLL .\ScriptProcess.dll
[704] .\Console\Reader.cpp(43) :
[704] Cannot Find from Console : CONTENTS_TYPE
[704] .\Console\Reader.cpp(44) :
[704] Framework::Console::Reader::Read
[704] .\Console\Reader.cpp(44) :
[704] .\Console\Reader.cpp(44) : Fri Jul 15 12:16:13 2011

I've checked everything that I could think of, and searched around :/
go to your config.ini in dekaronserver folder open with notepad or notepad++

ten find this line

CONTENTS_TYPE

and you mast have this

CONTENTS_TYPE = NORMAL
CONTENTS_TYPE = ARENA
NORNAL for dekaron_server_normal
ARENA for dekaron_server_arena
04/26/2016 21:18 tice15#8
Hello, i get the following error on the second script

04/27/2016 13:34 Godricc#9
@[Only registered and activated users can see links. Click Here To Register...]

If you have ever ran the siege script before you will need to remove old lines before you re-run the new script.

It also looks like you ran into the same stored procedure problem I did through trial and error. You need to update your SP_Siege_Info_R. I'll post the correct SP later.
04/28/2016 16:49 tice15#10
That would be great. Then I can check your tip with the multiple run of the script.
05/21/2020 08:20 reybook123#11
I got an error sir

Msg 241, Level 16, State 1, Procedure SP_SIEGE_START_TIME_U, Line 56
Conversion failed when converting date and/or time from character string.

please help me. I've already reset my db because of this error

I'm using mssql 2014