Page 23 of 25
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 4:41 am
by BlubBlab
Hä? Okay first when they would no message my last version would have a hang up because it's include a speed optimization which wait until I the bot finds a message instead of yrest. So is it nil or an empty string?
When it is nil I can add a timeout( 10s ) with a flag,when it is a empty string I can check that and use again a flag.( found = true)
By the way Kansaki your code seems incomplete GMFound and GMNOTFound I see nowhere.
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 5:58 am
by Kansaki
For what i test, and what i saw, it returns a NIL value. I play on the official server and several days ago we had a easter event done by the GM, and tested there with positive result.
And yes, my macro its incomplete, the GMFound and GMNotFound are two function that send some chat message to warn some users and set the gm flags to true so i know which GM went online and offline.
The biggest issue about this script is that sometimes, i dont know if its the lag or what, but i get some false positive. It seems that it get the NIL cause the client didnt response in time and act like as a GM log in. If you can manage to solve that or find a workaround it will be work without any issue. I ve been running like a week on the server I played and I manage to get to know when the GM got online.
This are the two functions I didnt put:
Code: Select all
function GMFound( GMName )
if gmNameList[ GMName ] == false then
gmNameList[ GMName ] = true
for _,GroupName in pairs( groupNameList ) do
SendONChat( "CHANNEL", GroupName, GMName )
end
end
end
function GMNotFound( GMName )
if gmNameList[ GMName ] == true then
gmNameList[ GMName ] = false
for _,GroupName in pairs( groupNameList ) do
SendOFFChat( "CHANNEL", GroupName, GMName )
end
end
end
function SendONChat( Type, Name, GMName )
sendMacro( "SendChatMessage(\'GM ONLINE: "..GMName.." \', \'"..Type.."\', 0,"..Name..")" )
rest(200)
end
function SendOFFChat( Type, Name, GMName )
sendMacro( "SendChatMessage(\'GM OFFLINE: "..GMName.." \', \'"..Type.."\', 0,"..Name..")" )
rest(200)
end
By the way, i use this script like your watcher, and i run it all the time. If a GM logs in i send a chat message to one private channel or whisper to a specific character.
Hope this info get us to have another way to know if a GM got online or not.
Regards,
Kan.
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 6:15 am
by lisa
I think I'll poke my nose in here.
The way the monitoring works is that it is checking messages, in this case system messages.
Code: Select all
local time, moreToCome, msg = EventMonitorCheck("GMdetect2", "1")
So it starts to monitor when that code is done, ANY messages will be stored in the eventmonitor table.
So the code then goes through all the messages looking for key things.
Because of the way this works looking for NIL could be problematic.
I like the idea of looking for if the player is offline or not because that IS something we can check with accuracy.
*exits stage right*
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 7:03 am
by BlubBlab
Okay I need the localized version of the offline message. I think I know a fast and safe way first check if it is offline or match the pattern and react on it if it is nil start a timeout.(short version) Unfortunately I haven't installed rom at the moment.

Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 10:16 am
by Kansaki
Guys,
Here i post the two localized message i have right now. The spanish and the english.
Code: Select all
local Message_SPA = "La búsqueda ha fallado. El objetivo no existe o está desconectado."
local Message_ENG = "Search failed, target does not exist or is offline."
I tried to do that too, but the thing is that when you perform a AskPlayerInfo and you have a friend on the shortlist going online or offline, or some message from the server cause an event start or so. The message came join with the disconnect message. All in one string message from the monitor. I dont know LUA so well to test it by comparing portions of the string or to see if a substring is inside a string.
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 2:36 pm
by latino18fr
seems this userfunction is old actually all player near me are "GM" because they have many classe since new update may be.
i have the last file 7.8c
Re: GM detection and banning chance reduction
Posted: Mon Apr 28, 2014 8:57 pm
by rock5
Kansaki wrote:Code:
local Message_SPA = "La búsqueda ha fallado. El objetivo no existe o está desconectado."
local Message_ENG = "Search failed, target does not exist or is offline."
You can use
Code: Select all
Message = getTEXT("SYS_ASK_PLAYER_INFO_NOT_FIND")
Re: GM detection and banning chance reduction
Posted: Tue Apr 29, 2014 11:15 am
by BlubBlab
Thx that was what I was looking for
Okay this way it should work:
Code: Select all
for _,v in pairs(gmNameList) do
local foundmsg = false
local waitstart = os.time()
sendMacro("AskPlayerInfo(\'"..v.."\');");
repeat
local time, moreToCome, msg = EventMonitorCheck("detectGMast", "1")
if msg and string.find(msg, ".*%(.*%).*%(.*%)") then
-- found GM
found = true
break
end
if msg ~= nil and msg == offline then
-- timer reset just in cases
waitstart = os.time()
-- end loop flag
foundmsg = true
end
-- timer so we have a time out
if( waitduration <= (os.time() - waitstart))then
-- we found a GM because no valid message was replied in time
found = true
end
until moreToCome ~= true and foundmsg
if found == true then
break;
end
end
waitduration is defined on top in the configs and at least the syntax should be correct thanks to eclipse
Re: GM detection and banning chance reduction
Posted: Wed Apr 30, 2014 5:18 am
by BlubBlab
ups I did miss a break sry.
Code: Select all
if( waitduration <= (os.time() - waitstart))then
-- we found a GM because no valid message was replied in time
found = true
-- leave inner loop because we found a GM (missed that in the previous version)
break;
end
Re: GM detection and banning chance reduction
Posted: Wed Apr 30, 2014 5:34 am
by Notorious
Doesent work for me. If GM is online MM stops at AskPlayerINfo("GM name"), and nothing happens. Sometimes work if I manually typed /run AskPlayerInfo or be using in game macro, usually I have to click the macro several times. It seems to me that the use of AskPlayerInfo when gm is online causes a lag in game chat. My in game macro looks like this:
Code: Select all
/run AskPlayerInfo("gmname1")
/wait 1
/run AskPlayerInfo("gmname2")
/wait 1
/run AskPlayerInfo("gmname3")
So, if gmname1 is online usually I have to click the macro several times that showed up information about gmname2 and gmname3.
I hope you understand, my English is weak in writing
EDIT: Im try the new version
EDIT2: New Version works perfect

Thank You.
Re: GM detection and banning chance reduction
Posted: Thu May 01, 2014 7:29 pm
by latino18fr
Why logout alway near this player??
it s not GM
GM detected! Name: (playername), Class IDs: 4/5
Alarm has been sounded
Re: GM detection and banning chance reduction
Posted: Fri May 02, 2014 5:00 am
by Notorious
This function no longer works properly. I propose to delete it, because only misleading. GM can no longer be detected in this way. The only function that works is searchGMList ().
Re: GM detection and banning chance reduction
Posted: Fri May 02, 2014 12:10 pm
by BlubBlab
I 'm not sure bit I think it is the level, you need maybe to increase it in the script because the Class ID are correct and not the cause of it.
Re: GM detection and banning chance reduction
Posted: Sat May 31, 2014 1:21 pm
by Agrozet
Hi,
I have v. 7.8d.
Script was released and I was not at home
This is a listing of the console
Code: Select all
Use MACRO: Executing RoMScript "AskPlayerInfo('**');".
You have been whispered by: **
GM detected! Name: **, Class IDs: 0/-1
The game client did not crash.
- ...cro/scripts/rom/userfunctions/userfunction_gmmonitor.lua:418: Logging out because GM detected.
Script>
I play on the official server
-= Google translation =-
Re: GM detection and banning chance reduction
Posted: Sat May 31, 2014 5:41 pm
by BlubBlab
We discussed this earlier it looks like the GM can make them self, completely invisible even for a memory search.
That why I came up with the watchdog script , x days are not that much properly because he couldn't make 100% sure what are you doing.
I would recommend removing some infos from your post, you posted when, what, how long you have been banned and who did bann you, in addition to the fact that not many player are left and the guys reading this board you giving away who you are to GF.
That with the watchdog script is cat and mouse game with GF in the end.(so it maybe not work forever) Maybe Lisa can add it/update the first post in the thread.
How they find who they must check out for being a botter is another story, that someone report you is one thing. I know that most publisher finding botters through a statistical analyse, they start a sql query about player above some limits, like how much time he/she plays or how much gold someone make. If you go high enough you get on a red list the checked out, if you get reported from another player and you already on the list you will get visited from a GM very very soon.
When Frogster did running the game they only had the sql queries which RW gave them with the admin tool, so the only one which where caught through this way where new players which have a sudden increase of gold. GF have not those limitations, they have there own sql database engineers, so getting not inspected is difficult.
To add it and make it complete with "sudden increase of gold" I naturally mend guys who ran to goldsellers and also hacks which are unknown to the publisher will detected the same way.
Re: GM detection and banning chance reduction
Posted: Sat May 31, 2014 8:52 pm
by lisa
BlubBlab wrote:completely invisible even for a memory search.
Agrozet wrote:GM detected! Name: **, Class IDs: 0/-1The game client did not crash.2014-05-30 16:35:25 - ...cro/scripts/rom/userfunctions/userfunction_gmmonitor.lua:418: Logging out because GM detected.
The memory search did work as intended, unfortunately for the user checking the details of the person who whispered did not work.
Agrozet wrote:
Use MACRO: Executing RoMScript "AskPlayerInfo(**);".
You have been whispered by: **
So the GF has decided this character may be doing something wrong and so whispered them, no reply, time passed (maybe a min or so) and then the GF entered their instance to check on them, the monitor detected the GF and logged out.
From what I can tell if a GF is entering your instance you are pretty much getting banned, they don't just wander around entering everyones instance.
KS farming is a tricky one because in order for you to get the benefit you need to do it for many hours and I don't think there would be many players who would actually manually farm KS for hours on end.
As I always say though B.O.T = banned over time, eventually you will get banned and you need to accept that before even starting to bot.
So from what I can tell this post is that the only thing that failed was the checking who whispered you, from looking back v 7.8d didn't have any way to deal with the askplayerinfo not getting any info in return.
BlubBlab wrote:Maybe Lisa can add it/update the first post in the thread.
If you tell me a version is tested and works then I will, if you post a version and say it "should" work or ask people to test it then I don't see a reason to constantly be updating the first post.
Re: GM detection and banning chance reduction
Posted: Sun Jun 01, 2014 3:16 am
by BlubBlab
Basically yeah that was what I meant.
The memory search from a technical standpoint works only they don't show up in it, either because they aren't in your near or they don't send any information to your client but that doesn't matter on the point when they ask you, you are screwed.
@Lisa
What I wanted is add some information about the watchdog script on the top because it is the only way I know that work. Yeah until they stop that to and this whole thread become nonsense.
Anyway I found a "bug" through this discussion, when I updated searchGMList() I didn't thought what happens in the rest of the code when the GM's are invisible for
Code: Select all
sendMacro("AskPlayerInfo(\'"..name.."\');")
So it is broken about line 461, take some time to fix it.
Re: GM detection and banning chance reduction
Posted: Sun Jun 01, 2014 5:59 pm
by lisa
BlubBlab wrote:The memory search from a technical standpoint works only they don't show up in it, either because they aren't in your near or they don't send any information to your client but that doesn't matter on the point when they ask you, you are screwed.
The print he posted shows that the GF was detected in memory, how can you keep saying that they don't show up in memory?
Re: GM detection and banning chance reduction
Posted: Mon Jun 02, 2014 5:51 am
by BlubBlab
I mean what all have reported and I self have witnessed, the GM whisper you is no where to see nor to be found in the memory, after you don't answer him, the GM show up and can be seen with your eyes and be found in the memory.
From my ban last year I can tell from the log he was also in KS. If it was the same instance I don't know. It possible they that they aren't in the near but it is very likely that they block the server output about any information about the GM for other players client until they want to. This is very similar to what they done to the askplayer() function.
In rare cases it might still help(like you run accidentally in a event with a GM) but it's general usability against banns has become near zero.
My personal tips beside using the watchdog script is mainly don't do the same thing over and over again on the same spot, make a big loop. Don't bot KS or watchdog meat use unique spots for TQ, at best you would choose your next activity randomly together with a timer.
Re: GM detection and banning chance reduction
Posted: Wed Jun 04, 2014 5:44 pm
by BlubBlab
Okay to fill the summer hole. I fixed the small bug (need testing)
Like I said I don't know how long this will hold until they change it again. The main problem is every time we found something and got posted here it will be fixed sooner or later. So PN me better instead of posting it in the forum when you found a new method to detect GM. I will think of a method to make it hard to understand the code or something like that.