I think @xinn made it with no think, because a report to a server high exp that i don't remember the name...
Where a guy cried here on forum cause that server give you some coin to stay online, so people open 30 mc's to get that coin and it get the server on the high on otlist
I will never play a server who give a coin to you stay online where a lot people should open 30 mc to abuse, but anyways, the server not count xloged players
---
It will fuck servers low exp, where you need makers
Lans, Coffes, and everybody who use proxy will fuck the server owner
I think after this medivia will need to remove proxy on client, let they players play on lag, or search to a proxy to fuck the server on otlist
---
Who want to abuse will be abuse and now with this new rulles, will get more higher then before on otlist
Yes, is really izi to abuse
uint32_t real = 0;
std::unordered_map<uint32_t, uint32_t> listIP;
for (const auto& it : g_game.getPlayers()) {
if (it.second->getIP() != 0) {
auto ip = listIP.find(it.second->getIP());
if (ip != listIP.end()) {
ip->second++;
if (ip->second < 5) {
real++;
}
} else {
listIP[it.second->getIP()] = 1;
real++;
}
}
}
players.append_attribute("online") = std::to_string(real).c_str();
All the more reason to use competitors otlists.
local AccForIp = 4
function onLogin(player)
local mc = 0
for _, check in ipairs(Game.getPlayers()) do
if player:getIp() == check:getIp() then
mc = mc + 1
if mc > AccForIp then
return false
end
end
end
return true
end
@xinn @gunz @MatheusMkalo
And what about this script?:
...
In creaturescripts folder...
Is very simple and for me work fine, so is allowed?
...When are you making your own OTLand account instead of using Williams one?I'm too lazy to read whole topic, but you did great job.
Finally, we will see real count of players online.
/Niebieski
We have a huge mix of people who actually knows what is good for the players, people who don't really understand that this rule isn't about limitting the number of characters logged in from single IP (but about what status protocol says), theoretist which bases their opinion on wrong assumptions, and people who thinks that this change will have any negative effect on otservlistThis rule is about sending the MORE accurate information about your server. It's good for people searching for servers because they receive more accurate server, it is bad for servers who thinks that they can encourage few people to login as many MCs as possible to look like a big server and deceive people who doesn't like playing on low populated servers.
@gunz:
Thank you for the code. I've updated the first post to include a link to it so everyone can find it without any problems. You are totally correct about the proxies/internet caffes, it's the same here on Hexera. We have none players from internet caffes and few
@Sir Knighter
When I checked your server last time, there were not a single IP exceeding the number of 4MC's connected to your server using any of the proxy service. I haven't checked the numbers below 4 but you can do it by yourself to have a full picture. It just shows that even that you are "sponsored by wtfast", this change will have a neutral effect when it comes to counting people connected via external proxy services.
@Flatlander:
Your assumptions about the number of proxy players are just wrong. There is NO server with such numbers of players logging in via external proxy services. For example now, on our server, we have 0 players logged in via proxy who have 2-4 MCs. If majority of your players are forced to use proxy to play lag-free on your server than you made a bad business decision about the location of your server. Internal proxies which doesn't relay the real client IP are just wrong so I don't even take them into the consideration because they simply shouldn't exist.
@OpenTibiaServer:
How is that better than counting IPs?I have 4 old laptops here. Not to mention Virtual PCs which will have different hardware ID than the PC on which they are run.
Also, please read the first post one more time because it looks like you keep discussing but you don't get the fundamental thing - we don't want to limit servers to have more than 4 characters logged in from single IP. We just want them to return the more accurate number of players playing their server.
@Three Magic:
I believe you are talking from a server's owner perspective. Server owner who tries to deceive casual players about the real number of players playing on particular server because for my visitors this change is great. It would be perfect if all servers also returned the number of unique players connected to the server.
I still say, just require servers to display their "unique IPs" when sending the update.
Players Online: 300
Unique IPs: 240
There is absolutely no reason to "spoof" the data and make it inaccurate.
1st off.. whats stopping someone from creating code to make it look like everyone logged in has a different ip address? XD if someones really trying to spoof, it would be easy to get around this fix.
@xinn
@Flatlander
Xinn I think flatlander might be a little bit in the ballpark. I think 40-70% of my player base uses proxies to connect.. in the morning its nothing but EU's logged in with proxies. If you want proof I will go ham.. but please dont make me sit at my computer for a while and take screen shots.... Pls..
![]()
![]()
I see common IPS constantly...
This goes for EU players who want to play my server in the US as well as South American players, or just players who want to have a better ping in general( who wouldn't want that) (I use WTFAST)
even tho a lot of people on my server uses WTFast it seems my server Waropolis.no-ip.org hasn't been banned so im cool..
I just posted this just in-case.. seems a lot of other people claim to have player bases who use external proxies. Including mine.
As for the cafe thing..
I met a guy from Bosnia the other day who plays in a crew of 20 people in a cafe.
He added me on facebookI can link him here?
^ This is a good idea.. but couldn't you just make a database of common proxy ip addresses for us?
PS:From your post looks like you checked @Sir Knighter server connections and were able to examine the connected ips? So from my understanding your asking the entire community to change their code when you have the ability to code it yourself to allow proxy server IP connections, block non 4+ proxy ips, and make less work for everyone? xD
Just makes more sense to me that you change your website rather than make an entire community change their servers.
had to laugh about this oneMANY of today OTs run with LAN groups, launches normally includes a huge group of players playing in LAN.
I'm not 100% sure, but when MoonHawk from Shadowcores launched, there was more than 300 players in LAN parties entering the game.
And in such event, the game has to make it look like they actually have 295 less players that they really do?
What's wrong in using it? I've got somewhere my own account but just can't remember my password @Niebieski;...When are you making your own OTLand account instead of using Williams one?![]()
You are very right about this, Medivia was doing something very deceiving. Which comes as no surprise from someone who works with Ryan.Online numbers sure look different today.
About 1/4 lower on Medivia than shown on their website.
Meaning 1/4 of characters online are from players with more than 4 connections from the same adress.
That makes me curious to see unique IPs connected.
Any helpful information given is welcome to a player.
High online numbers can be deceiving.
Thank you.
Make it 1 - 2 and block the rest... then allow all proxy IPS( WTFast, Battleping) etc..Xinn layin down the fuckn hammer! I love it good job buddy don't let em' get away with that shit
IMO 4 is still too many
You are very right about this, Medivia was doing something very deceiving. Which comes as no surprise from someone who works with Ryan.
Make it 1 - 2 and block the rest... then allow all proxy IPS( WTFast, Battleping) etc..
Wouldn't be to hard to figure out if a player has a proxy IP or not XD... appreciate the effort but the fix doesn't cut it in the least in my opinion tho..
Personally the best option in my opinion is this.. How wouldn't this method fix the issue at hand? Hopefuly players have enough logic to understand players online to ip ratios XD
Xinn just adds this code to otservlist..
Players Online:
Unique IPs:
now everyone doesn't have to change their server >.> only xinn.. not everyone knows how to code in C++
personally in my eyes.. if an MC is out of PZ making runes or somethign.. why shouldnt they be counted as another char..? they are a killable lootable object? Its a player that logged in a char that can be killed..?
1 player who MC's 5 chars is still 5 characters you can gank ingame..?
Maybe this?
Players Online:
Characters Online:
another point..
Do you see cipsoft not counting MC bot chars? XD
Im pretty sure if cipsoft didnt count bot/mc chars Tibia would look dead as fk.
I second @Flatlander and all what @OpenTibiaServer said.
I've created a working code you can implement in your server.
protocolstatus.cpp (TFS 1.0/1.1/1.2)
Someone can do it for 8.6
@xinn @Sir Knighter @Flatlander
Change:
Code:players.append_attribute("online") = std::to_string(g_game.getPlayersOnline()).c_str();
To this:
Code:uint32_t real = 0; std::map<uint32_t, uint32_t> listIP; for (const auto& it : g_game.getPlayers()) { if (it.second->getIP() != 0) { auto ip = listIP.find(it.second->getIP()); if (ip != listIP.end()) { listIP[it.second->getIP()]++; if (listIP[it.second->getIP()] < 5) { real++; } } else { listIP[it.second->getIP()] = 1; real++; } } } players.append_attribute("online") = std::to_string(real).c_str();
I've created a working code you can implement in your server.
protocolstatus.cpp (TFS 1.0/1.1/1.2)
Someone can do it for 8.6
@xinn @Sir Knighter @Flatlander
Change:
Code:players.append_attribute("online") = std::to_string(g_game.getPlayersOnline()).c_str();
To this:
Code:uint32_t real = 0; std::map<uint32_t, uint32_t> listIP; for (const auto& it : g_game.getPlayers()) { if (it.second->getIP() != 0) { auto ip = listIP.find(it.second->getIP()); if (ip != listIP.end()) { listIP[it.second->getIP()]++; if (listIP[it.second->getIP()] < 5) { real++; } } else { listIP[it.second->getIP()] = 1; real++; } } } players.append_attribute("online") = std::to_string(real).c_str();