Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Dekaron > Dekaron Private Server
You last visited: Today at 13:13

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release]Dekaron Event Server

Discussion on [Release]Dekaron Event Server within the Dekaron Private Server forum part of the Dekaron category.

Reply
 
Old   #1



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Smile [Release]Dekaron Event Server

Hi,

I decided to release the Event Server as a separate program for all private servers to use.
This version of the event server will work for most (or every?) Action 9 private server files.

So, to the point:
What is it?
it's a program that emulates a client and throws events

What can it do?
Most of the things that a GM can do and more. it's must faster and more reliable than a regular human GM. You no longer have to take the risk of a GM going corrupt and doing things that will lead to your server's downfall.


How to set it up:
1. Execute the SQL scripts in your database (I left the "USE [GM Tool]" phrase, but you can change it to your own database, or for example CHARACTER. up to you.
2. Update the settings.ini file with your database credentials
3. Create an account for the [GM] char to be on
4. Create the GM character
5. Put that user_id, password and character name in the settings.ini file
a) this point refers to those values in the settings.ini file:
Account=gmaccount
Password=gmaccountpassword
Character=[GM]EventHoster

Event Server will not work if your GM char name is not found on the account.
This is crucial and I thought its easy but I really had a surprising number of questions regarding this.


6. Update your IP address and ports for the game (loginserver, dekaronserver ports and IP!)
NotificationCenterPort is not used in this version.

Rest is self explanatory.

What events are included?
Ruby Eye - spawns mobs in Space of Pilgrimage
Golden Invasion - spawns mobs in Aquarai Ruins

How can I schedule an event?
Schedule is kept in EventSchedule table. You only need to insert your desired time and event symbol.
For built-in events the symbols are:
RUBY_EYE
GOLDEN_INVASION


How can I create my own events?
This is a new feature I have been working on for the past few days.
You can create your own events and schedule them.

To create an event you need to create a text file with .event extension.
Basically this is a simple scripting language I created. It consists of a couple commands, which correspond to the actions executed by the Event Server.

List of currently supported actions:
MOVEMAP wMapIndex wCoordX wCoordY//used for teleporting the GM char from one map to another
SLEEP dwDuration//used to wait between executing commands. Takes time as a parameter in miliseconds
NOTICE text//sends a GM notification in game.
CALLMONSTER wMonsterIndex wCoordX wCoordY//spawns a monster, takes 2 additional params: x and y coordinates
RESETMONSTER wMonsterIndex//resets monsters
FIELDRETURN wMapIndex//returns everyone in a map
FIELDHEAL wMapIndex//heals everyone in a map
CREATEBRICK dwBrickIndex//spawns a brick
DESTROYBRICK dwBrickIndex//despawns a brick
CALLMONSTERS wCount wMonsterIndex wCoordX wCoordY//spawn a set of monsters, takes 3 additional params: count, x and y coordinates
RESETCOOLTIME_MAP wMapIndex//resets skill cooltime on a specified map
ANNOUNCEMENT szText//Much like Notice, it sends a dedicated GM-like announcement. This was requested by people who run Event Server on Evolution server files.
For everyone else - Notice will work exactly the same way as Announcement.

The Event Server has a script validator built in so it should be fairly fool-proof. or if you made a mistake, it should let you know what it is.

How can I schedule a custom event?
execute this script and rename the script.event to whatever you named your custom script. Remember to keep the .event extension as thats what the Event Server looks for when setting symbols for the scheduler.

Code:
Insert into EventSchedule (EventType, StartTime) values ('script.event','10:00')
First custom script:
Code:
movemap 46 0 0
notice Aquarai invasion will begin in 10 minutes!
sleep 300000
notice Aquarai invasion will begin in 5 minutes!
sleep 300000
notice Strong monster have spawned all around Aquarai Ruins!\\Defeat them!
callmonster 10008 352 467
callmonster 10008 258 453
callmonster 10008 179 371
callmonster 10009 455 199
callmonster 10009 368 197
callmonster 10009 330 345
callmonster 10009 326 281
callmonster 10010 293 57
callmonster 10010 181 74
callmonster 10010 157 273
movemap 150 0 0
I had a lot of fun coding the script interpreter. I might continue developing this
Please post your:
- Ideas
- Requests
- Problems
- Feedback

----changelog----
2025-05-06:
- Added support for SQLEXPRESS
- Fixed script validator where SLEEP would only accept values up to 65535
- Added CREATEBRICK and DESTROYBRICK commands
- Added EvoEnabled flag for enabling the program to run on Evolution files. Set it to False to use it on normal servers. The difference is mainly in notifications: Evo uses quest-like notifications and if you set the flag to false it'll just use GM notification.
- Minor bugfixes
2025-05-06.1:
- Fixed casting for SLEEP (unsigned short -> unsigned int)
2025-05-06.2:
- Fixed connection request packet opcode mismatch for Evo false flag
2025-05-06.3:
- Fixed character checkout packet opcode mismatch for Evo false flag
2025-05-08.1:
- Added config value for SessionServerID (add it to your settings.ini)
- Added config value for DekaronServerVersion (add it to your settings.ini)
2025-06-08:
- Fixed scheduler timer (was showing wrong time in timezones other than european)
- Added CALLMONSTERS command
- Added RESETCOOLTIME_MAP command
2025-06-19.1:
- Config strings max length changed 20 -> 256 bytes
- Added ANNOUNCEMENT command
- Fixed minor bugs
2025-06-23.1:
- Improved logging (will print out error code if version validation doesnt match)
Attached Files
File Type: rar Event Server.rar (2.91 MB, 95 views)
File Type: rar Event Server 2025-05-06.rar (2.78 MB, 39 views)
File Type: rar Event Server 2025-05-06.1.rar (2.71 MB, 40 views)
File Type: rar Event Server 2025-05-06.2.rar (2.76 MB, 36 views)
File Type: rar Event Server 2025-05-06.3.rar (2.74 MB, 58 views)
File Type: rar Event Server 2025-05-08.1.rar (2.75 MB, 70 views)
File Type: rar Event Server 2025-06-08.rar (2.77 MB, 47 views)
File Type: rar Event Server 2025-06-19.1.rar (2.55 MB, 36 views)
File Type: rar Event Server 2025-06-23.1.rar (2.48 MB, 62 views)
guesswho-.- is offline  
Thanks
22 Users
Old 05/05/2025, 15:54   #2
 
elite*gold: 0
Join Date: Jan 2018
Posts: 5
Received Thanks: 1
This is cool.. Even cooler that you shared it with the community. Thanks man!
WhoAreYouPeople is offline  
Old 05/06/2025, 05:35   #3
 
elite*gold: 0
Join Date: Oct 2020
Posts: 71
Received Thanks: 118
maybe you can add a date or something like a siege war that will start every few days like the event will run every 3 days or every 7 days

by google translate
avosnick is offline  
Old 05/06/2025, 20:18   #4
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
wow op release. thanks man! hope to see "createbrick" & "destroybrick" be part of the supported actions
iidagger is offline  
Old 05/06/2025, 20:34   #5



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Quote:
Originally Posted by iidagger View Post
wow op release. thanks man! hope to see "createbrick" & "destroybrick" be part of the supported actions
it was supported by the program, but I didnt include it in the validator.
I added it just now and it's available in the release.
guesswho-.- is offline  
Thanks
1 User
Old 05/06/2025, 21:38   #6
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
Quote:
Originally Posted by guesswho-.- View Post
it was supported by the program, but I didnt include it in the validator.
I added it just now and it's available in the release.
awesome! that was quick. ty mate! also I am not sure what I am doing wrong however never had luck making it work.

I tried the first release and below is what I've gone so far


Code:
[03:31:54] Starting Event Server 2.0.0
[03:31:54] LoginServer Port = 7880
[03:31:54] DekaronServer Port = 50005
[03:31:54] NotificationCenter Port = 5555
[03:31:54] IP Address = 127.0.0.1
[03:31:54] Account = admin1
[03:31:54] Password = admin
[03:31:54] Character name = [GM]Host
[03:31:54] Summer time = false
[03:31:54] EvoEnabled = false
[03:31:54] Selecting CET offset
[03:31:54] Initiating Scheduler
[03:31:54] Found custom script -> script.event
[03:31:54] Connecting to 127.0.0.1:7880 (LoginServer)
[03:31:54] Connected, took 0ms
[03:31:54] Setting new crypt key = 0F
[03:31:54] Ping thread started successfully
[03:31:54] Receiving thread started successfully
[03:31:54] Setting new crypt key = 31
[03:31:54] Logging in as admin1
[03:31:54] Login result = 0. Session key = 1D48B780
[03:31:54] Requesting character list
[03:31:54] Character on account: [GM]Host
[03:31:54] Char list finished. Entering world [127.0.0.1:50005]
And for recent onese 05-06 & 05-06.1:

Code:
[03:27:52] Starting Event Server 2.0.0
[03:27:52] LoginServer Port = 7880
[03:27:52] DekaronServer Port = 50005
[03:27:52] NotificationCenter Port = 5555
[03:27:52] IP Address = 127.0.0.1
[03:27:52] Account = admin1
[03:27:52] Password = admin
[03:27:52] Character name = [GM]Host
[03:27:52] Summer time = false
[03:27:52] EvoEnabled = false
[03:27:52] Selecting CET offset
[03:27:52] Initiating Scheduler
[03:27:52] Connecting to 127.0.0.1:7880 (LoginServer)
[03:27:52] Connected, took 0ms
[03:27:52] Setting new crypt key = 0F
[03:27:52] Ping thread started successfully
[03:27:52] Receiving thread started successfully
[03:28:02] Connection closed. Error code = 10054
[03:28:02] Suspending recv thread for 1 second..
[03:28:03] Connection closed. Error code = 10038
[03:28:03] Suspending recv thread for 1 second..
[03:28:04] Connection closed. Error code = 10038
[03:28:04] Suspending recv thread for 1 second..
[03:28:05] Suspending recv thread for 1 second..
[03:28:06] Suspending recv thread for 1 second..
iidagger is offline  
Old 05/06/2025, 21:40   #7



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
which server files are you using?
nvm, found the error. it should be fixed now.
guesswho-.- is offline  
Thanks
1 User
Old 05/07/2025, 08:26   #8
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
Quote:
Originally Posted by guesswho-.- View Post
which server files are you using?
nvm, found the error. it should be fixed now.
Thanks mate.. unfortunately still no luck in my end. I am trying to test it with the shangrila a9 files (farius release), but I think its having conflict with the account gate I guess. prolly I am just doing something wrong or missed something.
iidagger is offline  
Old 05/07/2025, 08:31   #9



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Even with version 3?

If you can provide the login sequence (packets) for farius files then I can implement it.
guesswho-.- is offline  
Old 05/07/2025, 09:06   #10
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
oh didnt notice there was ver 3, I will test it later when I get home and let you know..

Update @
Ok so I step back a little as I might be doing something wrong, I rerun the queries as how they were provided in the following sequence


- Create table eventschedule
- populate eventschedule
- SP get eventschedule


And this how far I got:

Code:
[00:14:05] Starting Event Server 2.0.0
[00:14:05] LoginServer Port = 7880
[00:14:05] DekaronServer Port = 50005
[00:14:05] NotificationCenter Port = 5555
[00:14:05] IP Address = 127.0.0.1
[00:14:05] Account = admin1
[00:14:05] Password = admin
[00:14:05] Character name = [GM]Host
[00:14:05] Summer time = false
[00:14:05] EvoEnabled = false
[00:14:05] Selecting CET offset
[00:14:05] Initiating Scheduler
[00:14:05] Connecting to 127.0.0.1:7880 (LoginServer)
[00:14:05] Connected, took 0ms
[00:14:05] Setting new crypt key = 0F
[00:14:05] Ping thread started successfully
[00:14:05] Receiving thread started successfully
[00:14:05] Setting new crypt key = 11
[00:14:05] Logging in as admin1
[00:14:06] Login result = 0. Session key = 1856B438
[00:14:06] Requesting character list
[00:14:06] Character on account: [GM]Host
[00:14:06] Char list finished. Entering world [127.0.0.1:50005]
[00:14:08] Connecting to 127.0.0.1:50005 (DekaronServer)
[00:14:08] Connected, took 0ms
[00:14:08] Setting new crypt key = 0F
[00:14:08] Setting new crypt key = 13
[00:14:08] Char list finished. Entering world [127.0.0.1:50005]
[00:14:08] Connection closed. Error code = 10054
[00:14:08] Suspending recv thread for 1 second..
[00:14:09] Connection closed. Error code = 10038
[00:14:09] Suspending recv thread for 1 second..
[00:14:10] Connection closed. Error code = 10038
[00:14:10] Suspending recv thread for 1 second..
[00:14:11] Suspending recv thread for 1 second..
[00:14:12] Suspending recv thread for 1 second..
[00:14:13] Suspending recv thread for 1 second..
[00:14:14] Suspending recv thread for 1 second..
I checked DBmon it gives the following:

Code:
14032: .\Client\Pc\State\NotLogins\Authening.cpp(157) : 
14032: [OnAccountGatePacket][Recv AccountGate Packet]
14032: .\Client\Pc\State\NotLogins\Loginings\Logining.cpp(170) : 
14032: [Logining][Session Recved APcket][0]
14416: .\Process\Service\Init\Client\OnCQLock.cpp(103) : 
14416: CQ_Lock Process Invalid Session ID [SerialKey : 408335416] [ Nothing Session Server ID 1100 ]
For the packets not really sure if this is what you are referring to:

Code:
Logincmd
packet send = 3000000
packet receive = 3000001

checkoutcmd
packet send = 3010000
packet receive = 3010001


connectcmd
packet send = 3010002
packet receive = 3010003
iidagger is offline  
Old 05/07/2025, 18:36   #11



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Ok, it seems like the error is related to session server ID I'm putting. I probably hardcore 1100.

Can you change your session server ID to 1100 and see if it helps? Change it in session server folder and dekaronserver. And maybe login, not sure.

If that helps, I'll add a config value for sessionserverid


Also good debugging skills. I honestly expected much less xd
guesswho-.- is offline  
Thanks
1 User
Old 05/07/2025, 19:43   #12
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
Ok I think it helps, now a new error showing in dbmon:

Code:
08696: .\Client\Pc\State\NotLogins\Authening.cpp(157) : 
08696: [OnAccountGatePacket][Recv AccountGate Packet]
08696: .\Client\Pc\State\NotLogins\Loginings\Logining.cpp(170) : 
08696: [Logining][Session Recved APcket][0]
16260: .\Process\Service\Init\Client\OnCQLock.cpp(125) : 
16260: CQ_Lock Process Invalid Version [SerialKey : 590890984] [Client : EU-18.0.3] [Server : test101]
iidagger is offline  
Old 05/07/2025, 19:49   #13



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Ok, that's an easy one ;p you should update your version.ini in your servers share folder to the same value. I'll also export it to a config line later
guesswho-.- is offline  
Old 05/07/2025, 20:04   #14
 
elite*gold: 78
Join Date: Jan 2022
Posts: 57
Received Thanks: 26
Quote:
Originally Posted by guesswho-.- View Post
Ok, that's an easy one ;p you should update your version.ini in your servers share folder to the same value. I'll also export it to a config line later
Perfect that SOLVES it ty mate


Code:
[01:58:52] Starting Event Server 2.0.0
[01:58:52] LoginServer Port = 7880
[01:58:52] DekaronServer Port = 50005
[01:58:52] NotificationCenter Port = 5555
[01:58:52] IP Address = 127.0.0.1
[01:58:52] Account = admin1
[01:58:52] Password = admin
[01:58:52] Character name = [GM]Host
[01:58:52] Summer time = false
[01:58:52] EvoEnabled = false
[01:58:52] Selecting CET offset
[01:58:52] Initiating Scheduler
[01:58:53] Found custom script -> script.event
[01:58:53] Connecting to 127.0.0.1:7880 (LoginServer)
[01:58:53] Connected, took 0ms
[01:58:53] Setting new crypt key = 0F
[01:58:53] Ping thread started successfully
[01:58:53] Receiving thread started successfully
[01:58:53] Setting new crypt key = 0F
[01:58:53] Logging in as admin1
[01:58:53] Login result = 0. Session key = 233847E8
[01:58:53] Requesting character list
[01:58:53] Character on account: [GM]Host
[01:58:53] Char list finished. Entering world [127.0.0.1:50005]
[01:58:53] Connecting to 127.0.0.1:50005 (DekaronServer)
[01:58:53] Connected, took 0ms
[01:58:53] Setting new crypt key = 0F
[01:58:53] Setting new crypt key = 1F
[01:58:53] Char list finished. Entering world [127.0.0.1:50005]
[01:58:53] Character on account: [GM]Host
[01:58:53] Login sequence ended, we are online!!
[01:58:54] Checking event schedule for event [GUILD_TOURNAMENT]
[01:58:54] Comparing time [09:55] vs [18:58]
[01:58:54] Checking event schedule for event [RUBY_EYE]
[01:58:54] Comparing time [13:25] vs [18:58]
[01:58:54] Checking event schedule for event [RUBY_EYE]
[01:58:54] Comparing time [17:55] vs [18:58]
[01:58:54] Checking event schedule for event [RUBY_EYE]
[01:58:54] Comparing time [21:55] vs [18:58]
[01:58:54] Checking event schedule for event [GOLDEN_INVASION]
[01:58:54] Comparing time [14:55] vs [18:58]
[01:58:54] Checking event schedule for event [GOLDEN_INVASION]
[01:58:54] Comparing time [18:55] vs [18:58]
[01:58:54] Checking event schedule for event [GOLDEN_INVASION]
[01:58:54] Comparing time [22:25] vs [18:58]
[01:58:54] Checking event schedule for event [script.event]
[01:58:54] Comparing time [03:00] vs [18:58]
Yes, adding the server id and version lines to config.ini would be a valuable addition. It would enhance the portability and flexibility of the eventserver
iidagger is offline  
Thanks
1 User
Old 05/07/2025, 20:13   #15



 
guesswho-.-'s Avatar
 
elite*gold: 293
Join Date: Jan 2012
Posts: 2,445
Received Thanks: 1,100
Awesome, glad to see someone run it.
I'll work on it later tonight
guesswho-.- is offline  
Thanks
1 User
Reply




All times are GMT +1. The time now is 13:14.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.