Jump to content
eatsangels

How can I limit the players for maps to one account?

Recommended Posts

On 8/13/2022 at 4:51 PM, eatsangels said:

I need to know if there is any way to limit players to only one account per IP to enter the maps. Thank you

Sample Algorithm:

1) You need create a function which will accept role and return its IP address (GetChaIpAddress);

2) Create an empty list of IP addresses of characters in a map;

3) In check_can_enter_<mapname>() function get role's IP address. Check if IP is not on the list;

4a) IP address is in the list. Deny entry;

4b) IP address is not in the list. Allow entry. Add the IP address to the list;

5) In before_leave_<mapname>() function get role's IP address. Remove it from the list.

 

Ways to create GetChaIpAddress() function:

1) Using LuaSQL library;

2) Make a modification for GameServer.exe.

 

Don't forget that player can change their IP address using various proxies and etc.

  • Like 1

Share this post


Link to post
Share on other sites
On 8/21/2022 at 7:04 AM, V3ct0r said:

Sample Algorithm:

1) You need create a function which will accept role and return its IP address (GetChaIpAddress);

2) Create an empty list of IP addresses of characters in a map;

3) In check_can_enter_<mapname>() function get role's IP address. Check if IP is not on the list;

4a) IP address is in the list. Deny entry;

4b) IP address is not in the list. Allow entry. Add the IP address to the list;

5) In before_leave_<mapname>() function get role's IP address. Remove it from the list.

 

Ways to create GetChaIpAddress() function:

1) Using LuaSQL library;

2) Make a modification for GameServer.exe.

 

Don't forget that player can change their IP address using various proxies and etc.

How much do you charge me for doing that function for my server?

Share this post


Link to post
Share on other sites
1 hour ago, eatsangels said:

How much do you charge me for doing that function for my server?

I don't provide services at the moment.


Share this post


Link to post
Share on other sites
12 minutes ago, eatsangels said:

Ok. Do you have some files that have that script?

No, I don't have.


Share this post


Link to post
Share on other sites
11 minutes ago, eatsangels said:

Ok.,

I suggest you try to write such a script yourself.  This will help you learn programming and in the future you will be able to create cool things.


Share this post


Link to post
Share on other sites
2 minutes ago, V3ct0r said:

I suggest you try to write such a script yourself.  This will help you learn programming and in the future you will be able to create cool things.

Yes brother. Thank you very much.

  • Thanks 1

Share this post


Link to post
Share on other sites

I'd recommend trying to find a different approach, software solutions for this kind of problems usually aren't good solutions because software is plain simply unreliable. 
As Vector correctly mentioned, but I think he didn't stress it enough, people will find a way around it

If there's an incentive big enough, people will use proxies or other ways around it. 
I'd suggest pursuing different approaches, limit entrance by level, require expensive items/resources to join the map, if the marginal cost of entering with another client is higher than the marginal reward then people will not do it. 

So I'd tackle the issue by fine-tuning the costs/reward more than finding a technical solution to make it "impossible" for people to join, that's simply not a realistic way to solve the problem. 

Remember, there's always a dev better than you :P

  • Thanks 1

Share this post


Link to post
Share on other sites
42 minutes ago, Maximilian said:

I'd recommend trying to find a different approach, software solutions for this kind of problems usually aren't good solutions because software is plain simply unreliable. 
As Vector correctly mentioned, but I think he didn't stress it enough, people will find a way around it

If there's an incentive big enough, people will use proxies or other ways around it. 
I'd suggest pursuing different approaches, limit entrance by level, require expensive items/resources to join the map, if the marginal cost of entering with another client is higher than the marginal reward then people will not do it. 

So I'd tackle the issue by fine-tuning the costs/reward more than finding a technical solution to make it "impossible" for people to join, that's simply not a realistic way to solve the problem. 

Remember, there's always a dev better than you :P

Hello!

 

Yes, I wrote about the same idea in the next topic

 

@eatsangels,

 

If your players can get any advantage by entering the map from one IP (MAC) address, then that's a gameplay design problem. And if several different players are playing under the same IP address? Friends play through the same Wi-Fi router, for example.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, V3ct0r said:

Hello!

 

Yes, I wrote about the same idea in the next topic

 

@eatsangels,

 

If your players can get any advantage by entering the map from one IP (MAC) address, then that's a gameplay design problem. And if several different players are playing under the same IP address? Friends play through the same Wi-Fi router, for example.

Thx.

Share this post


Link to post
Share on other sites
1 hour ago, V3ct0r said:

Hello!

 

Yes, I wrote about the same idea in the next topic

 

@eatsangels,

 

If your players can get any advantage by entering the map from one IP (MAC) address, then that's a gameplay design problem. And if several different players are playing under the same IP address? Friends play through the same Wi-Fi router, for example.

Do not confuse IP address and MAC address, as that’s not the same thing. Saying IP (MAC) is invalid. You can share the same IP address by using the same network but your MAC addresses will normally be uniquely assigned to a device, hence even though this solution is not the most appropriate, it might be valid in the given context if we’re talking about MAC validation.

Share this post


Link to post
Share on other sites
3 minutes ago, champ said:

Do not confuse IP address and MAC address, as that’s not the same thing. Saying IP (MAC) is invalid. You can share the same IP address by using the same network but your MAC addresses will normally be uniquely assigned to a device, hence even though this solution is not the most appropriate, it might be valid in the given context if we’re talking about MAC validation.

Do you know how I can limit my players from entering my server by blocking the mac

Share this post


Link to post
Share on other sites
6 minutes ago, champ said:

Do not confuse IP address and MAC address, as that’s not the same thing. Saying IP (MAC) is invalid. You can share the same IP address by using the same network but your MAC addresses will normally be uniquely assigned to a device, hence even though this solution is not the most appropriate, it might be valid in the given context if we’re talking about MAC validation.

I try to do it with those methods and none of them worked for me.

Share this post


Link to post
Share on other sites
30 minutes ago, champ said:

Do not confuse IP address and MAC address, as that’s not the same thing. Saying IP (MAC) is invalid. You can share the same IP address by using the same network but your MAC addresses will normally be uniquely assigned to a device, hence even though this solution is not the most appropriate, it might be valid in the given context if we’re talking about MAC validation.

I can easily make a client modification and my MAC address will change every time the client starts. The server does not know anything about the client's MAC address, it is not transmitted over the TCP/IP protocol. The game client sends MAC address in the application layer protocol and this information cannot be trusted.


Share this post


Link to post
Share on other sites
4 minutes ago, V3ct0r said:

I can easily make a client modification and my MAC address will change every time the client starts. The server does not know anything about the client's MAC address, it is not transmitted over the TCP/IP protocol. The game client sends MAC address in the application layer protocol and this information cannot be trusted.

Alright. But I think not everyone has the same ability as you-

Share this post


Link to post
Share on other sites
1 minute ago, eatsangels said:

Alright. But I think not everyone has the same ability as you-

I wouldn't rely on this fact. Besides me, there are special programs that allow you to change the MAC address of your computer in a couple of clicks.


Share this post


Link to post
Share on other sites
6 minutes ago, V3ct0r said:

I can easily make a client modification and my MAC address will change every time the client starts. The server does not know anything about the client's MAC address, it is not transmitted over the TCP/IP protocol. The game client sends MAC address in the application layer protocol and this information cannot be trusted.

True, which is why I’ve said it’s not the most appropriate solution, however it should filter out script kiddies (which is about 80% of players).

Share this post


Link to post
Share on other sites
1 minute ago, V3ct0r said:

I wouldn't rely on this fact. Besides me, there are special programs that allow you to change the MAC address of your computer in a couple of clicks.

But I want to do it with the Mac. Even the server has something similar but it doesn't work for me and I don't understand why.

Share this post


Link to post
Share on other sites
6 minutes ago, eatsangels said:

But I want to do it with the Mac. Even the server has something similar but it doesn't work for me and I don't understand why.

Do not forget that the script that implements the functionality of checking the MAC address can be quite resource-intensive. You need to make SQL queries to another database (AccountServer), this takes a relatively long time. I'm not talking about the complexity of implementing such a script.

 

Why not just think through the map entry logic like @Maximilian suggested?


Share this post


Link to post
Share on other sites
1 minute ago, V3ct0r said:

Do not forget that the script that implements the functionality of checking the MAC address can be quite resource-intensive. You need to make SQL queries to another database (AccountServer), this takes a relatively long time. I'm not talking about the complexity of implementing such a script.

 

Why not just think through the map entry logic like @Maximilian suggested?

To take away valuable items?

Share this post


Link to post
Share on other sites
Just now, eatsangels said:

To take away valuable items?

Yes, or take gold. You can make players be more careful when entering the map, they will think about whether it makes sense to enter the map or not. Thus, you will limit the presence of players on the map.


Share this post


Link to post
Share on other sites
1 minute ago, V3ct0r said:

Yes, or take gold. You can make players be more careful when entering the map, they will think about whether it makes sense to enter the map or not. Thus, you will limit the presence of players on the map.

Okay, thank you very much. I have a currency created that is the one with which it is marketed. I will use that method.

Share this post


Link to post
Share on other sites
4 minutes ago, eatsangels said:

Okay, thank you very much. I have a currency created that is the one with which it is marketed. I will use that method.

You are welcome!


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...