Re: GM detection and banning chance reduction
Posted: Tue Jan 28, 2014 2:31 pm
That would be great!BlubBlab wrote: I work on a method to make a watchdog that inform your farm character if a GM goes on.
MicroMacro home
https://www.solarstrike.net/phpBB3/
That would be great!BlubBlab wrote: I work on a method to make a watchdog that inform your farm character if a GM goes on.
Just because you can't see them doesn't mean their info isn't in memory, the memory scanning works as it should.artosaari wrote:The GMNearby option actually wokrs as intended but since you never see them when they are watching you, i don't think you can detect them.
To be able to check characters are online or not before they are within memory range means you have to use the in game function, this in itself isn't an issue unless you are checking for many names in which case the process takes time so putting it on a timer to monitor the names would be problematic for the bot.gloover wrote: the bot did a logout saying "GM... detected", but it was allready to late - the GM had seen my character.
You "could" make an addon for tha game to repeatedly check the names on a list to see if a GM is online and then change a value to true, the bot would check the value in a timed event, this would free the bot to just do what it does but the game itself would be doing the "player does not exist" spam on your screen constantly and may cause issues for the game itself, or it might not, hard to say without testing.BlubBlab wrote:I posted It earlier that you have to put searchGMList() in your waypoint file so that It will be called
I'm not sure about that I have the feeling that they can ove through the game recently like in a read only mode, the got many people ins KS while they were in KS them self the GM Detect didn't triggerd.(okay partial thinks weren't up to date but I fixed that)lisa wrote:Just because you can't see them doesn't mean their info isn't in memory, the memory scanning works as it should.artosaari wrote:The GMNearby option actually wokrs as intended but since you never see them when they are watching you, i don't think you can detect them.
I know but they haven't done such thing until now at least one the official server.lisa wrote:
Having said that all a GM needs to do is change it's characters name or log a different character and then that "precaution" is useless.
This fails. Still says the char is following you.lisa wrote:sure, probably a good idea.
find
and change it toCode: Select all
--players if settings.profile.options.playerDETECT == true then for k,v in pairs(playertable) do if v.Name == obj.Name then --name in table already playerexists = true end end
This will go through the friends table at the top of the file and basically ignore any names in it, the names must be exact though.Code: Select all
--players if settings.profile.options.playerDETECT == true then for k,v in pairs(playertable) do for l,m in pairs(friends) do if v.Name == m then playerexists = true end end if v.Name == obj.Name then --name in table already playerexists = true end end
Not going to add a file as I don't know where BlubBlab is up to with his version.Code: Select all
-- ignores whispers by characters in the friends table, the names must be exact. local friends = {"someone","someoneelse","whoever"}
This is untested but should work.
Hmm that would make no senceL33t_Of_Lag wrote:This fails. Still says the char is following you.
Code: Select all
Command> local friends = {"someone","someoneelse","whoever"} for l,m in pairs(friends) do if m == "someone" then print("works with name: "..m) end end
works with name: someone
Code: Select all
if playerexists ~= true then
table.insert(playertable,{Name = pawn.Name, ptime = os.time(), alarmsounded = 0})
else
Code: Select all
if playerexists ~= true then
print(pawn.Name.." added to the following table")
table.insert(playertable,{Name = pawn.Name, ptime = os.time(), alarmsounded = 0})
else
I agree with you. I can't see any reason why the GMs couldn't have an option to have the server not transmit their info to clients thereby making them invisible to the clients. Then they could move around and watch people without being detectable. Of course such a feature might not exist.BlubBlab wrote:Lisa wrote:Just because you can't see them doesn't mean their info isn't in memory, the memory scanning works as it should.
I'm not sure about that I have the feeling that they can ove through the game recently like in a read only mode
I can asure you, GM is just not visible. it has occurred to me today. a GM that was not visible for me, was just asking me to answer a few questions, related to were i where, name of NPC near me, name of even a player that was next to me. GM is just invisible.rock5 wrote:I agree with you. I can't see any reason why the GMs couldn't have an option to have the server not transmit their info to clients thereby making them invisible to the clients. Then they could move around and watch people without being detectable. Of course such a feature might not exist.BlubBlab wrote:Lisa wrote:Just because you can't see them doesn't mean their info isn't in memory, the memory scanning works as it should.
I'm not sure about that I have the feeling that they can ove through the game recently like in a read only mode
Code: Select all
local gmNameList = {
["Berenrom"] = false,
["Drakulmentor"] = false,
["Moonlight"] = false,
["Moonmod"] = false,
["Saitomentor"] = false,
["Zodiacmentor"] = false,
["Cmsis"] = false,
["Majîk"] = false,
["Kaligm"] = false,
["Aqualink"] = false,
["Salvajementor"] = false,
};
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."
function searchGMList()
EventMonitorStart( "detectGMast", "CHAT_MSG_SYSTEM" )
for GMName, GMStatus in pairs( gmNameList ) do
sendMacro( "AskPlayerInfo(\'"..GMName.."\');" )
yrest(500)
repeat
local time, moreToCome, msg = EventMonitorCheck( "detectGMast", "1" )
if msg == nil then
GMFound( GMName )
else
if ( msg == Message_ENG ) or
( msg == Message_SPA ) then
GMNotFound( GMName )
end
end
until moreToCome ~= true
yrest(600)
end
EventMonitorStop("detectGMast")
rest(5000) -- 60000 => check every 60 sec => recursion 60 deep after 1 hour
searchGMList()
end