Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server > CO2 PServer Guides & Releases
You last visited: Today at 20:39

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

Advertisement



[Conceptual Guide] Detecting Missing Client Maps - Server Side

Discussion on [Conceptual Guide] Detecting Missing Client Maps - Server Side within the CO2 PServer Guides & Releases forum part of the CO2 Private Server category.

Reply
 
Old   #1
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,283
Received Thanks: 4,192
[Conceptual Guide] Detecting Missing Client Maps - Server Side

Introduction:
Hey everyone. So, in Conquer Online, there's a teleportation feature where you can teleport a character to any map and (x, y) coordinate on the server. The problem is, when you teleport a character to a map that does not exist in the client, the client seems to freeze. That's because the client cannot find the dmap file that should be in its map folder. You can detect when this happens though, and either teleport the character back to its previous location, or disconnect it.

The Concept:
When a successful teleportation occurs, the client sends a packet to the server requesting for surrounding spawns. This packet is the general action packet, subtype 114. When a unsuccessful teleportation occurs, that packet is not sent.

The Solution:
To detect when a map is not being loaded by the client, you should start a timer on the map change method. When the map has been assigned to the client in server management, it should take no longer than 10 seconds (one ping cycle in Conquer Online) to receive the request for surroundings. If the map loaded successfully, the timer should be stopped (reset at map change). Else, the timer will continue and the timer action will be executed. That action can be what you like, but it only occurs if the map has not been loaded (or the player is attempting to play using a bot that removes entity spawns). This is also helpful for the server so that the character doesn't just stand their defenseless for longer than the protection period (which should also be one ping cycle in Conquer Online). Cheers.
Spirited is offline  
Thanks
2 Users
Old 12/29/2012, 14:54   #2
 
InfamousNoone's Avatar
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
Quote:
Originally Posted by Fаng View Post
Introduction:
Hey everyone. So, in Conquer Online, there's a teleportation feature where you can teleport a character to any map and (x, y) coordinate on the server. The problem is, when you teleport a character to a map that does not exist in the client, the client seems to freeze. That's because the client cannot find the dmap file that should be in its map folder. You can detect when this happens though, and either teleport the character back to its previous location, or disconnect it.

The Concept:
When a successful teleportation occurs, the client sends a packet to the server requesting for surrounding spawns. This packet is the general action packet, subtype 114. When a unsuccessful teleportation occurs, that packet is not sent.

The Solution:
To detect when a map is not being loaded by the client, you should start a timer on the map change method. When the map has been assigned to the client in server management, it should take no longer than 10 seconds (one ping cycle in Conquer Online) to receive the request for surroundings. If the map loaded successfully, the timer should be stopped (reset at map change). Else, the timer will continue and the timer action will be executed. That action can be what you like, but it only occurs if the map has not been loaded (or the player is attempting to play using a bot that removes entity spawns). This is also helpful for the server so that the character doesn't just stand their defenseless for longer than the protection period (which should also be one ping cycle in Conquer Online). Cheers.
This is slightly incorrect. Logically, without a basis, we first assumed many years back that subtype 114 was GetSurroundings due to the phenomenon you just described. However, a later look down the road revealed that this sub type was used when vending and coincided to values close to other vending sub types. We later concluded that the subtype was really "StopVending", but conventionally never changed it from GetSurroudings; See CSV3:
Quote:
GetSurroundings = 114, // This is actually "StopVending" but I abuse it for locations
InfamousNoone is offline  
Thanks
3 Users
Old 12/29/2012, 17:13   #3
 
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,380
Regardless of the official purpose of the packet it wouldn't be such a bad idea to put a system like this in for development purposes. Personally I never had a problem as you can still type and send commands during the black screen to get back to a valid map but it could be nice for quickly checking out different maps and getting events setup.

As you mentioned though, not correct usage of the subtype and also serves no real purpose in most live server environments.
pro4never is offline  
Thanks
1 User
Old 12/29/2012, 19:57   #4
 
L1nk1n*P4rK's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 303
Received Thanks: 39
Quote:
Originally Posted by pro4never View Post
also serves no real purpose in most live server environments.
The problem starts when your players use other clients, with edited files.

But this is a very informative thread and I would love to hear other opinions.
L1nk1n*P4rK is offline  
Old 12/29/2012, 20:55   #5
 
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,380
Quote:
Originally Posted by L1nk1n*P4rK View Post
The problem starts when your players use other clients, with edited files.

But this is a very informative thread and I would love to hear other opinions.

Unless you're doing completely custom maps this would serve no purpose... there's been like 5 maps added in the last few years total and if they can connect to your server at all then chances are high they already have the map.

The only time this would be useful would be on a server where commands are enabled to keep people from getting their character stuck.
pro4never is offline  
Thanks
1 User
Old 12/29/2012, 21:02   #6


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Quote:
Originally Posted by L1nk1n*P4rK View Post
The problem starts when your players use other clients, with edited files.

But this is a very informative thread and I would love to hear other opinions.
Very simple solution, change the protocol value sent by the client to mark your client as...your own, then any invalid clients that connect are disconnected and told to download your client instead. Saves you a hell of alot more time than this system.
Korvacs is offline  
Thanks
1 User
Old 12/29/2012, 21:03   #7


 
CptSky's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,444
Received Thanks: 1,176
Quote:
Originally Posted by L1nk1n*P4rK View Post
The problem starts when your players use other clients, with edited files.

But this is a very informative thread and I would love to hear other opinions.
Meh. As Korvacs said, you can "force" your players to use your client and to be always on the lastest patch. Plus, if you're really motivated, you could include a checksum of the client.
CptSky is offline  
Thanks
1 User
Old 12/29/2012, 23:10   #8
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,283
Received Thanks: 4,192
Everything we do is an assumption that our previous work is correct.
Spirited is offline  
Thanks
1 User
Old 12/29/2012, 23:23   #9
 
L1nk1n*P4rK's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 303
Received Thanks: 39
So many ways to handle such a small issue :3
I'm glad I saw this thread.

-Thanks for everyone-
L1nk1n*P4rK is offline  
Reply


Similar Threads Similar Threads
[SUCHE]Neue 2012 Waffen client side + server side
06/07/2012 - Metin2 PServer Guides & Strategies - 4 Replies
Hallo com wie Überschrift schon sagt suche ich die neuen 2012 Waffen Server Side + Client Side. Ich weiß echt gibt hier genug Post die die neuen Waffen haben aber selten welche die die dazugehörigen Server side Querys Ein großen dank schon mal der mir die richtigen per Kommi oder pn schickt :)
implement the client side maps
12/03/2011 - Metin2 Private Server - 0 Replies
Sorry guys, I'm trying to implement new maps, but unfortunately I can not, I pretty much just to get the warp on the map I will close the client and then the Bugga me pg. Of course the server has been implemented correctly. If someone could learn to implement new maps and also how to set the Index daughters I would be very grateful, please try a detailed description, even in your own words just to be complete. Thank you. Please help me :( .
Brauche hilfe neu maps client side
08/10/2011 - Metin2 Private Server - 1 Replies
Mogen epvp, ich habe ein probelm ich bekomme diese map: http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/680906-release-new-map-von-_babyc ake-version-2-h0t.html nicht cliend side rein ich weis leider nicht wie ich die epk wieder packen soll und bekomme es auch nicht hin! Brauche dringet hilfe! MFG Kiren
Character name restrictions are client side, not server side
04/24/2008 - Conquer Online 2 - 1 Replies
"Sorry non-alpha numberic....." That error message you get when you type in special characters in your character name, is client sided. It does no server check. Im not a coder or anything, so I'm not sure how to fix that. But since it is client sided, it would be a lot easier to repair this problem.



All times are GMT +1. The time now is 20:39.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.