|
You last visited: Today at 20:39
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.
12/29/2012, 09:11
|
#1
|
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.
|
|
|
12/29/2012, 14:54
|
#2
|
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
|
Quote:
Originally Posted by Fаng
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
|
|
|
|
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.
|
|
|
12/29/2012, 19:57
|
#4
|
elite*gold: 0
Join Date: Mar 2008
Posts: 303
Received Thanks: 39
|
Quote:
Originally Posted by pro4never
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.
|
|
|
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
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.
|
|
|
12/29/2012, 21:02
|
#6
|
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
|
Quote:
Originally Posted by L1nk1n*P4rK
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.
|
|
|
12/29/2012, 21:03
|
#7
|
elite*gold: 0
Join Date: Jan 2008
Posts: 1,444
Received Thanks: 1,176
|
Quote:
Originally Posted by L1nk1n*P4rK
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.
|
|
|
12/29/2012, 23:10
|
#8
|
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.
|
|
|
12/29/2012, 23:23
|
#9
|
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-
|
|
|
 |
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.
|
|