I see some newbyes needing help and i know for some knows more this will be a stupid post or something else but my intention is help some Newbies.
If i say something not correct or not like this way just pm or reply for i can correct it !
- pCast is null = If you got this error: "\Process\Cast\Server\Process\Guild\Initialize \OnI sGuildMemberACK.cpp<94
: OnIsGuildMemberACK : pCast is NULL"
Go in your cast server config and dekaronserver config , in both you got on line saying "CAST_SERVER_ID = 1100 " so in both just make "CAST_SERVER_ID = 20 ". It should work now
For this problem go in ur dekaronserver config and session config (also login too) and change port to 10001 if it was 10000 can be hackable and fatal for people have ur servers . It works with 10001 but you need to portfoward and in this 3 put that port and same server id.
If the error was "\... Provider etc " that means you dont have RAM to load the files so here is a solution :
1. Click Start.
2. Select Control Panel.
3. Select System.
4. Click the Advanced tab.
5. In the Performance region, select Settings.
6. Click the Advanced and Virtual memory click on Change button.
7. Check the box saying "Custom size" and add the gb that u wanna take from disk C:/ or D:/
8. Click Apply and Reboot
1. Click Start.
2. Select Control Panel.
3. Select System.
4. Click the Advanced tab.
5. In the Performance region, select Settings.
6. Click the Data Execute tab in the dialog box that opens.
7. Select Turn on DEP for all programs and services except for those I select.
8. Click Add.
9. The open dialog box will open. Browse and select your application.
10. Click Open
11. Click Apply
12. Click Ok
13. Reboot
- When you try to login in A9 and it says "Invalid ID":
1. Go in your data\script\localdefine\local and open it
2. If it was global change it to korea , or if it was korea change it to global just try this 2 ways (it depends in your databases too )
3. Go in your SQL Server
4. New Querry
5. Paste this
USE [Account]
GO
/****** Object: StoredProcedure [dbo].[SP_ACC_LOGIN] Script Date: 04/05/2014 05:32:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @v_login_failure_count int
DECLARE @v_onlineIdCount int
BEGIN
SET LOCK_TIMEOUT 1000
SET @v_bigint_ip = CAST(@user_ip_addr as BIGINT)
SET @ipt_time = GetDate()
SET @conn_rtn = 0
SET @user_no = '0000000000'
SET @session_id = 0
SET @teen_tag = 0
SET @ip_addr_tag = 0
SET @sp_rtn = 0
SET @o_ac_conn_no = '0000000000000000'
SET @o_pcbang_no = ''
SET @o_pc_agency_no = ''
SET @a = 0
SET @b = 0
--************************************
-- ?????? IP?? Start
--************************************
SELECT @ip_tag = dbo.FN_IsBlockIP( @user_ip_addr )
IF @ip_tag = 1
BEGIN
SET @sp_rtn = -6
RETURN
END
--************************************
-- ?????? IP?? End
--************************************
--************************************
-- ??IP ?? ?? (2005.08.17 - Hanjiwook)
--************************************
IF dbo.FN_ExistBanIP(@user_ip_addr) = 1
BEGIN
SET @sp_rtn = -11
RETURN
END
--************************************************** **********
-- ??? ?IP?? 5??? ??? ???? ??? ??.(CHOI JI HWAN - 2007.04.24)
--************************************************** **********
EXEC dbo.SP_LOGIN_FAILURE_LOG_GetCountByIp @ipt_time
, @user_ip_addr
, @v_login_failure_count OUTPUT
, @v_in_sp_rtn OUTPUT
IF ( @v_login_failure_count >= 5 )
BEGIN
SET @sp_rtn = -12
RETURN
END
--************************************************** **********
-- IP? ?? ?????? 30??? ??. (CHOI JI HWAN - 2007.04.26)
--************************************************** **********
SELECT @v_onlineIdCount = COUNT(*)
FROM dbo.user_profile WITH(NOLOCK)
WHERE login_flag > 0
AND user_ip_addr = @user_ip_addr
--AND login_tag = 'Y'
IF ( @v_onlineIdCount >= 30 )
BEGIN
SET @sp_rtn = -13
RETURN
END
--************************************************** **********
BEGIN TRANSACTION
--// Login_Tag
--// 'Y' : normal, 'P' : Password Not Change
SELECT @v_user_no = user_no,
@v_user_pwd = isnull(user_pwd, ''),
@v_login_flag = login_flag,
@v_login_tag = login_tag,
@v_resident_no = resident_no
FROM dbo.user_profile WITH(UPDLOCK)
WHERE user_id = @user_id
AND login_tag IN ('Y', 'P')
SET @rowcnt = @@ROWCOUNT
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -10
RETURN
END
--************************************
-- ???? Check
--************************************
--// 1. ???? ?? ??
IF @rowcnt = 0
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -1 --old : -1
RETURN
END
-- --// 3.1 2006.05.01 ?? ??????? ???? ?? ?? ('P')
-- --// 3.2 ?????? ???? ???? login_tag? 'Y'? ???.
-- IF @v_login_tag = 'P'
-- BEGIN
-- ROLLBACK TRANSACTION
-- SET @sp_rtn = -22
-- RETURN
-- END
--END
/*
--// 3.1 ?????? ?????? ????? ??
--// 3.2 ?????? ???????? login_tag? 'Y'? ???.
IF @v_login_tag = 'C'
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -3
RETURN
END
*/
--// 4. Dont forget fix
--IF ( (@v_login_flag <> 0) AND (@v_login_flag = @login_flag) ) BEGIN
-- --// ROLLBACK TRANSACTION
-- SET @session_id = @v_login_flag
-- SET @sp_rtn = -4
-- --// RETURN
--END
IF ( (@v_login_flag <> 0) AND (@v_login_flag <> @login_flag) ) BEGIN
ROLLBACK TRANSACTION
SET @session_id = @v_login_flag
SET @sp_rtn = -4
RETURN
END
--************************************
-- ?????(????) ??
--************************************
EXEC dbo.MB_USR_PUN_CheckBlock_R @v_user_no , --????
@o_p_step_no OUTPUT, --????
@o_p_reason_sort OUTPUT, --??????
@o_p_expire_time OUTPUT, --??????
@v_lo_block_tag OUTPUT, --???????(Y=??, N=?????)
@o_wr_block_tag OUTPUT, --????(????? ????)
@v_in_sp_rtn OUTPUT --????(0:??)
IF @v_in_sp_rtn <> 0 OR @@Error <> 0
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -7
RETURN
END
IF Upper(@v_lo_block_tag) = 'Y' --?????? ??.
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -8
RETURN
END
SET @user_no = @v_user_no
SET @v_user_age = dbo.FN_ResidentNoToAge(@v_resident_no,getDate())
SET @v_server_id = dbo.FN_LoginFlagToServerID(@login_flag)
SET @v_user_sex = dbo.FN_ResidentNoToSex(@v_resident_no)
SET @teen_tag = CASE
WHEN @v_user_age < 18 THEN 1
ELSE 0
END
--// ????? ??
UPDATE dbo.user_profile
SET login_flag = @login_flag ,
login_time = @ipt_time ,
user_ip_addr= @user_ip_addr ,
server_id = @v_server_id
WHERE user_no = @user_no
AND login_flag = @v_login_flag
IF (@@ERROR <> 0 or @@ROWCOUNT <> 1)
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -5
RETURN
END
1. Go to 0094C4E8 and nop the conditional jump
for everyone else:
open up the exe in olly (make sure the exe is unpacked), right click on the code -> search for -> all intermodular calls
then look for KERNEL32.OutputDebugStringA
there will be like 4 - 6 results and only one of them is the correct one, make sure to push ctrl+A to analyze the exe, then go to the call address and place a breakpoint on the beginning of the code. it's disabled by default so the real call will never execute.
then after you find the right one and see that the conditional jump always jumps over the right call, nop it.
thats it, save the exe and from now on you'll have debug string output. keep in mind that running the game with a debug monitor will significantly slow down the load time and general game performance. so for public releases make sure to retn the call
Dekaron crashes % :
If it crash at 0% (begin) its because u got some folder of data not in correct place
If it crash at 50% its because you got duplicated Action file or theres non exist in the item folder or monster folder the csv and it cant load it
If it crash at 70% thats because some changes in script folder
If it crash at 99% thats because you got in your exe client dependecy , so you need to launch by Launcher
INSERT INTO [account].[dbo].[USER_PROFILE]
([user_no],[user_id],[user_pwd],[resident_no],[user_type],[login_flag],[login_tag],[ipt_time],[login_time],[logout_time],[user_ip_addr],[server_id],[auth_tag])
Dekaron client crash reasons can be easily debugged.
Enable debug output in the exe and run a debug monitor. it will tell you exactly which file messes up and crashes it.
also dont open port the sessionserver port. it's an internal connection between the executables and they should never be accessible from the outside.
since sessionserver.exe acts as a client you can easily hijack the connection with your own dekaronserver.exe. imagine the possibilities yourself.
also your create-account query looks fishy, why dont you call the SP from the database? SP_ACC_CREATE should be in the database by default, but in case someone doesnt have it, here it is:
USE [Account]
GO
/****** Object: StoredProcedure [dbo].[SP_ACC_CREATE] Script Date: 11/1/2015 7:41:11 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
BEGIN TRANSACTION
SET @userpwd = CONVERT(varchar(32), HASHBYTES('MD5', @user_pwd), 2)
INSERT INTO dbo.user_profile
( user_no,
user_id,
user_pwd,
resident_no,
user_type,
ipt_time,
user_ip_addr)
VALUES (@user_no,
@user_id,
@userpwd,
'801011000000',
@user_type,
@ipt_time,
@user_ip_addr)
IF ( @@error <> 0 or @@rowcount <>1 )
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -2
RETURN
END
SET @sp_rtn = 0
COMMIT TRANSACTION
RETURN
END
and this is how you should call it (it's a generated query.. doesnt get much easier than this)
keep in mind sessionserver sends a MD5 hash of your password when contacting the database, so your password has to be in MD5 too.
- How to remove IPList from DekaronServer (IP protection)
1. Download ollydebug cuz you need it to edit the exe.
2. After you open dekaronserver exe just click CTRL + G to find the following adress : 00661418 and there will appear like this : Click here
For this problem go in ur dekaronserver config and session config (also login too) and change port to 10000 if it was 10001 . It works with 10001 but you need to portfoward and in this 3 put that port and same server id.
Never forward this port and don't open any connection for this port on you'r router or network.
my dekaronserver config have
SESSION_NO1_PORT = 10001 port are closed not forward.
sesionserver
SESSION_SERVER_PORT = 10001 port are close not forward
loginserver
SESSION_NO1_PORT = 10001 port are close not forward
Dekaron client crash reasons can be easily debugged.
Enable debug output in the exe and run a debug monitor. it will tell you exactly which file messes up and crashes it.
also dont open port the sessionserver port. it's an internal connection between the executables and they should never be accessible from the outside.
since sessionserver.exe acts as a client you can easily hijack the connection with your own dekaronserver.exe. imagine the possibilities yourself.
also your create-account query looks fishy, why dont you call the SP from the database? SP_ACC_CREATE should be in the database by default, but in case someone doesnt have it, here it is:
USE [Account]
GO
/****** Object: StoredProcedure [dbo].[SP_ACC_CREATE] Script Date: 11/1/2015 7:41:11 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
BEGIN TRANSACTION
SET @userpwd = CONVERT(varchar(32), HASHBYTES('MD5', @user_pwd), 2)
INSERT INTO dbo.user_profile
( user_no,
user_id,
user_pwd,
resident_no,
user_type,
ipt_time,
user_ip_addr)
VALUES (@user_no,
@user_id,
@userpwd,
'801011000000',
@user_type,
@ipt_time,
@user_ip_addr)
IF ( @@error <> 0 or @@rowcount <>1 )
BEGIN
ROLLBACK TRANSACTION
SET @sp_rtn = -2
RETURN
END
SET @sp_rtn = 0
COMMIT TRANSACTION
RETURN
END
and this is how you should call it (it's a generated query.. doesnt get much easier than this)
keep in mind sessionserver sends a MD5 hash of your password when contacting the database, so your password has to be in MD5 too.
and to enable debug output on the client side
for noobs:
go to 0094C4E8 and nop the conditional jump
for everyone else:
open up the exe in olly (make sure the exe is unpacked), right click on the code -> search for -> all intermodular calls
then look for KERNEL32.OutputDebugStringA
there will be like 4 - 6 results and only one of them is the correct one, make sure to push ctrl+A to analyze the exe, then go to the call address and place a breakpoint on the beginning of the code. it's disabled by default so the real call will never execute.
then after you find the right one and see that the conditional jump always jumps over the right call, nop it.
thats it, save the exe and from now on you'll have debug string output. keep in mind that running the game with a debug monitor will significantly slow down the load time and general game performance. so for public releases make sure to retn the call
For who need the Regedit key here it is !
Go to Local machine -> Software -> WoW6432Node -> Make new folder called GameHi and there u need to create the key . Here is the code for key
Action 9 Small help - collection of others 10/17/2014 - Dekaron Private Server - 9 Replies Hello everyone, so this is mainly for my own sake so I dont have to look through everything again when I need something.
I will put credit to whoever I take it from to paste in here.
I will not provide support of any kind so if you try then dont expect me to answer nor care :p
now back to the thread.
LobbyServer,AIServer And Location:
Mega Link thanks to Farius
[Small-Release] Mob regen helper (small) 06/15/2012 - Metin2 PServer Guides & Strategies - 8 Replies Huhu, ich fülle gerade einige maps mit Monster voll und da der Map Pointer da nichts funktioniert von Musicinstrutor..
Hab ich eben schnell ne Funktion geschrieben.
function mob_add_temp_regendata()
--
local filename = 'wuste'
local mob_vnums = number(2340,2346)
--
local rr = number(1,2)