GM detection and banning chance reduction

Additional botting resources. Addons may be either for the game itself or for the RoM bot.
Forum rules
Only post additional bot resources here. Please do not ask unrelated questions.
Locked
Message
Author
User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

GM detection and banning chance reduction

#1 Post by lisa » Fri May 27, 2011 3:18 am

GM's have changed the way they do things so keep up to date on the latest in the topic and don't rely on this keeping you safe as it may not be doing the job it used to do.


Ok well alot has changed today, so redoing the first post.

To use the userfunction add startGMDetect() to WP onload or Profile onload.

Code: Select all

	<onLoad><![CDATA[
			startGMDetect()
	]]></onLoad>
Also need to add some options to your profile

Code: Select all

		<!-- GM detection options -->
		<option name="GMDETECT"			value="true" /> -- enables the GM detection userfunction
		<option name="GMnearbylogout"		value="true" /> -- If a GM is close to the character it will log out.
		<option name="PAUSEONGM"		value="300" />  -- Pauses when GM whispers for value in seconds. ie 300 = 5 minutes
		<option name="RECALL"			value="true" /> -- if in combat while pausing it will use recall and whisper/logout
<option name="playerDETECT"      value="true" /> -- enables the player detection userfunction
All profile options can be changed in WP using

Code: Select all

changeProfileOption("GMDETECT", true); -- no "" if using true/false, just change option name for the other profile options 
GMDETECT set to true will make the bot actually monitor for GM's, false to not monitor for GM's.

GMnearbylogout set to true if you want the bot to log out anytime a GM is close to your character, otherwise it will just make a beeping sound. This works independant of the whisper response coding. If a GM is within range, I believe 250 yards, if this is true then it will logout the character.

PAUSEONGM set this to a number value in seconds, if 300 then it is 5 minutes. This will make the bot stop what it is doing and not move for the designated time. After that time it will continue what it was doing. If it gets in combat at any time it will behave depending on the RECALL option. If a GM has messaged in the last 1 minute before pause finishes then it will pause again.

RECALL If PAUSEONGM has a value and in combat and RECALL is set to true then the bot will use the skill recall and then after using recall successfully it will whisper GM and logout, if false then it will just keep fighting and try to pause. It is very difficult to make the bot kill everything and then do something else without recoding the current fighting code.

I included a way for people to test this function without needing a GM. Line 6 has

Code: Select all

testcharname = "Charname"
change Charname to a character you can log on to whisper your bot. The bot will treat this character as if it is a GM in all aspects.

Also please make sure to open the userfunction_gmmonitor.lua and edit the response text to something different. If all bots reply the same then there isn't much point to the function.
I am talking about line 25-30 which is a table of response texts

Code: Select all

[1] = "Sorry, got to go",
[2] = "Im just logging off, sorry.",
[3] = "My favourite show is about to start. See ya.",
[4] = "Daughter just got hurt I need to go sorry",
[5] = "Sorry mum is yelling I need to log",
[6] = "Dad said not to talk to anyone and now I have to go =(",
Just remember not to use ' as it will mess with the code.

As always many thanks to Admin and Rock5 =)

-------Installation instructions -------
place file in your rom-bot rom/userfunctions folder

V 6.5 has following player detection (new proifle option)and improved log creation with the userfunction logInfo()
http://www.solarstrike.net/phpBB3/viewt ... =27&t=4009
V 5.0 First patch of chapter V
V 3.0P for private server, set player lvl to 100 max.
V 2.2 Made it ignore Newbie Pet, Might need multi language support for the varying names.
V1.8 Made more friendly for log next character, Call function in WP onload only.

A WP purely for testing that you have event monitoring funtional.
Can be any character even brand new and you don't need any extra code in profile for it to work, just run bot with this waypoint file.
eventmonitortest.xml
Tests if event monitoring is working, posts LOL in Say, posts on MM window that it is working.
(618 Bytes) Downloaded 1132 times
If you don't currently have an addon to give the os.time() function in game then you will need an addon like d303fix
http://www.curse.com/addons/rom/d303fix/451968

This is a sound file for the GM nearby detection, when a GM is close it will make a beeping sound, unless you have GMnearbylogout set to true in which case it will just logout and not play the sound.
alarmwave.zip
alarm.wav extract to rom/userfunctions folder
(52.64 KiB) Downloaded 1080 times
If you can do testing on this function I would appreciate it, I have been testing it for around 8 hours and altering code as I felt necessary.
All you need is to change line 6 and have the ability to have 2 characters online at the same time and you can test all aspects of this function.

If you get the can't find file alarm.wav error then you might need this
here


--=== example ===--

Code: Select all

function gmnearby()
	_pause = 30 -- 30 seconds
	_time = os.time()
	cprintf(cli.yellow,"Paused for GM detected, hold down (".. getKeyName(settings.hotkeys.STOP_BOT.key)..") to stop the pause..\n")
	repeat
		rest(2000)
		_pause = _pause - 2
		print(_pause.." seconds remaining.")
	until os.time() - _time >= _pause or keyPressed(settings.hotkeys.STOP_BOT.key)
	print("Bot resumed.")
end
--=== NOTE ===--
using yrest() will not stop the bot from doing any actions in the gmnearby() loop, you need to use rest() and because of this keypresses arn't registerd while in the 2 second loop, so if you want to leave the pause loop you need to hold down the STOP_BOT key so that it is pressed when the loop finishes which is every 2 seconds.


--=== New following player detection ===--
You can edit the timer settings at the top of the userfunction

-- this is for monitoring players who may be following you.
local ignoreplayertime = 30
-- time in seconds when alarm will be sounded for a player "following" you

local clearplayertime = 60
-- time in seconds for players to be removed from table

-- when the ignoreplayertime time is reached it will play the alarm sound
-- if you want your own code performed then create a function named beingfollowed() and that code will be done instead.

-- ignores whispers by characters in the friends table, the names must be exact.
local friends = {"someone","someoneelse","whoever"}



There is also a new profile option to enable player following detection.

Code: Select all

      <option name="playerDETECT"      value="true" /> -- enables the player detection userfunction


--=== Added ===--
Need to rewrite this page, becoming a big mess of new added things lol
Last edited by lisa on Wed Aug 03, 2011 6:45 am, edited 13 times in total.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: GM detection and banning chance reduction

#2 Post by rock5 » Fri May 27, 2011 4:51 am

I don't see the difficulty.

Code: Select all

ResponseTable = {
    [1] = "Sorry, got to go",
    [2] = "I'm just logging off, sorry.",
    [3] = "My favourite show is about to start. See ya.",
}
print(ResponseTable[math.random(#ResponseTable)])
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#3 Post by lisa » Fri May 27, 2011 5:07 am

I love it how you just throw it out there and go, whats the issue? =)

I'll add it in, I've made some big improvements since I last posted in dev chat.

Ok so now I need some excuse type things as to why people are logging out, please post as many as you can =)
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: GM detection and banning chance reduction

#4 Post by rock5 » Fri May 27, 2011 5:20 am

I don't know, if I were to use it I would change them all to my own list anyway. Why noy leave it up to the users to come up with their own list? Also consider some users will want to use responses in their own language.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#5 Post by lisa » Fri May 27, 2011 5:30 am

Yeah I was thinking about both, I thought that could have diff tables for diff languages to get round that issue. I also considered people would just set it up to work and not bother to add their own responses, so by doing 10-15 in the default atleast it's better then one response.
By adding in some it also sets the format for people to easily see how to add in their own.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#6 Post by lisa » Fri May 27, 2011 7:01 am

Ok I am finally happy enough to upload the function for people to use =)
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
Edamh
Posts: 106
Joined: Tue May 24, 2011 11:56 pm

Re: GM detection and banning chance reduction

#7 Post by Edamh » Fri May 27, 2011 9:36 am

Added startGMDetect() to profile onload.
Added options to profile.
Customized responses in line 21-26 of userfunction_gmmonitor.lua

Getting error

Code: Select all

Loaded waypoint path WAYPOINTFILENAME.xml
Waypoint #115 is closer then #1. Hence we start with waypoint #115.
No return path with default naming WAYPOINTFILENAME.xml found.
We use the normal waypoint path WAYPOINTFILENAME.xml now.
GM detection started
The ingamefunctions addon (igf) is not installed or needs updating. You can not
monitor in-game events until you do so.The ingamefunctions addon (igf) is not in
stalled or needs updating. You can not monitor in-game events until you do so.Cl
earing target.
Moving to waypoint #115, (103, 21769)
The ingamefunctions addon (igf) is not installed or needs updating. You can not
monitor in-game events until you do so....scripts/rom/userfunctions/userfunction
_gmmonitor.lua:95: attempt to concatenate local 'name' (a nil value)
I updated rom folder to see if any updates needed for C:\micromacro\scripts\rom\devtools Then copied ingamefunctions folder to D:\Program Files\Runes of Magic\interface\addons

Still same error. Did I miss a step?

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: GM detection and banning chance reduction

#8 Post by rock5 » Fri May 27, 2011 9:45 am

I'm not sure you need the GMDETECT option in the profile. If the user is using the function that means they want it to work. If they don't want to use it anymore they can remove it or comment it out.

I noticed a small problem when checking the event monitor. The example I wrote for you used the 3rd option "true" when checking the system messages so it got only the latest message which would have just been generated, otherwise it would return the oldest message which would most likely be wrong. Probably it worked for you in testing because you didn't give it time to collect a bunch of system messages.

A couple of questions to clarify things for users;
1. When you say
lisa wrote:anywhere you want to actually start monitoring for GM's, even in a WP file.
you mean in the onload section right? You wouldn't want a user to add it to a waypoint where it would be executed more than once. You might want to clarify that it should be placed somewhere to be executed only once.

2. If I set GMnearbylogout to false does it still log off if a GM Whispers me?

3. Is the version of d303Fix different from the version on curse.com?

4. If I'm using another addon that provides os.time() do I still have to install d303fix?
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: GM detection and banning chance reduction

#9 Post by rock5 » Fri May 27, 2011 9:48 am

Edamh wrote:I updated rom folder to see if any updates needed for C:\micromacro\scripts\rom\devtools Then copied ingamefunctions folder to D:\Program Files\Runes of Magic\interface\addons

Still same error. Did I miss a step?
Did you restart the game? Changes to addons require a game restart or "/script ReloadUI()".
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#10 Post by lisa » Fri May 27, 2011 10:29 am

I added in the profile option so that you can stop the logout feature when you want using code to change the profile option. So if you are going into an area which is known that GM's hang out, like varanas bridge then you can dissable the logout function within a WP and then re-enable it within the WP.
I'd need to look up the code you added in a few weeks back to post it for people.

Hmm i took out the true part of that because millers gets alot of system messages and if you get a system message saying you fed a hen in that 1 second between checking the player details and when checking the system message then it will only look at the message saying you fed a hen. I hoped by removing true it would look at more then just the last message. If it is only looking at the first message then this part needs reworking.

1. yes very true you would only want to start it once.

2. yes if you have GMnearbylogout set to false and get messaged you will still reply and logout, GMnearbylogout is only when a GM is detected close to you, same distance you detect mobs, 250yards I believe.
3. the d303 is the same as I downloaded a few days ago from curse, you can d/l it from curse if you wish. It should be exactly the same.
4. if you have another addon providing the os.time() for the game then you shouldn't need d303
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: GM detection and banning chance reduction

#11 Post by rock5 » Fri May 27, 2011 11:23 am

lisa wrote:Hmm i took out the true part of that because millers gets alot of system messages and if you get a system message saying you fed a hen in that 1 second between checking the player details and when checking the system message then it will only look at the message saying you fed a hen. I hoped by removing true it would look at more then just the last message. If it is only looking at the first message then this part needs reworking.
The way I wrote it was with the intention of placing it in the eggscript waypoint file. It would be placed between actions so no system messages would be generated while it was checking the monitors. You could check all the messages like is done with the GMdetect monitor but then that would mean it would do a RoMScript for every system message generated. And if it's been awhile since the last whisper there could be a lot of messages banked up and it could takes ages. The only solution I can think of is to start GMdetect2 just before running "AskPlayerInfo" and then checking all messages. There shouldn't be more than 1 or 2.

Like

Code: Select all

	if time ~= nil then -- make sure something was returned
		EventMonitorStart("GMdetect2", "CHAT_MSG_SYSTEM");
		sendMacro("AskPlayerInfo(\'"..name.."\');")
		yrest(1000)
		printf("You have been whispered by: " ..name.. "\n")
		repeat
			local time, moreToCome, msg = EventMonitorCheck("GMdetect2", "1")
			if string.find(msg,"GM") or string.find(msg,"200") or string.find(msg,"Moderator") then
				messagereply(name)
				yrest(1000)
				RoMScript("Logout();");
				error("Logging out because GM whispered.")
			end
		until moreToCome == false
		EventMonitorStop("GMdetect2")
	else break
	end
Also I noticed you assigned 'name' to 'gm' but the only other place 'gm' is used is in another function but 'gm' isn't defined globally so I don't think it would have worked. You should, anyway I think, send it as an argument anyway. So with the code above you would also need to change,

Code: Select all

function messagereply()
to

Code: Select all

function messagereply(gm)
lisa wrote:1. yes very true you would only want to start it once.

2. yes if you have GMnearbylogout set to false and get messaged you will still reply and logout, GMnearbylogout is only when a GM is detected close to you, same distance you detect mobs, 250yards I believe.
3. the d303 is the same as I downloaded a few days ago from curse, you can d/l it from curse if you wish. It should be exactly the same.
4. if you have another addon providing the os.time() for the game then you shouldn't need d303
Maybe you should add some of this to the first post?
lisa wrote:3. the d303 is the same as I downloaded a few days ago from curse, you can d/l it from curse if you wish. It should be exactly the same.
Maybe provide a link instead?
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
Edamh
Posts: 106
Joined: Tue May 24, 2011 11:56 pm

Re: GM detection and banning chance reduction

#12 Post by Edamh » Fri May 27, 2011 11:28 am

rock5 wrote:
Edamh wrote:I updated rom folder to see if any updates needed for C:\micromacro\scripts\rom\devtools Then copied ingamefunctions folder to D:\Program Files\Runes of Magic\interface\addons

Still same error. Did I miss a step?
Did you restart the game? Changes to addons require a game restart or "/script ReloadUI()".
That's what it was. I needed to reload/restart. After reload/restart, no more error. Thanks.

hackzor
Posts: 24
Joined: Sun Apr 17, 2011 1:42 am

Re: GM detection and banning chance reduction

#13 Post by hackzor » Fri May 27, 2011 6:24 pm

havnt seen any delay there, isnt it a bit strange if the GM says something and you reply after 0,5 sec xD?

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#14 Post by lisa » Fri May 27, 2011 7:05 pm

There is a 3 second timer on the monitoring so it may be 3 seconds after you get whispered before the filter checks they are a GM or not. There is also 1.5-2 seconds after it notices that you have been whispered before responding. So the response can be 1.5 - 5 seconds after you are whispered. If responses are kept less then 15 words that shouldn't be an issue.
I can think of is to start GMdetect2 just before running "AskPlayerInfo"
I actually originally had it like this, I don't remember why I changed it.
Also I noticed you assigned 'name' to 'gm' but the only other place 'gm'
Yeah I had issues with trying to use name elsewhere so I just added in a gm = name and it worked fine after that. I was getting a lot of name is nil errors.

I like the stoping monitor system chat and I'll do some testing =)
Even though there was only a 1 second gap it was still enough and during testing I had it not check the player info many times, it was checking the normal millers system messages which there are many of.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#15 Post by lisa » Fri May 27, 2011 7:22 pm

seems a slight hickup with

Code: Select all

local function valid_name(name)
	-- Checks to make sure only valid characters are in the name.
	for i = 1,#name do
		local char = string.sub(name, i, i);
		if( not table.contains(valid_chars, char) ) then
			return false;
		end
	end

	return true;
end
I hadn't been able to test this code, does anything stick out as to why it wouldn't work?

Edit:
K done some testing and it works perfectly for me.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

hackzor
Posts: 24
Joined: Sun Apr 17, 2011 1:42 am

Re: GM detection and banning chance reduction

#16 Post by hackzor » Sat May 28, 2011 4:20 am

okay fine, but i cant get it work actually it tells me that "global eventmonitorstart is a nil value" and jep i extracted both things in the correct folders, i added the onload function and those 2 options. . hm

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#17 Post by lisa » Sat May 28, 2011 4:28 am

Sounds like you are missing the igf_events.lua and igf_events.xml from your client interface/Addons/ingamefunctions folder. They should come with default rom-bot but you need to copy the files to that location from rom/devtools/ingamefunctions folder
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#18 Post by lisa » Sat May 28, 2011 7:13 am

K need some thoughts on the subject.
I have set it up so it can have a pause option with the duration of the pause defined in profile options.

Assume you have the pause option set in place, so it will just stop still for a period of time until the GM basically gets bored.

Trouble I am trying to decide on is what if you are in combat when you are whispered or get attacked while paused after being whispered.
1. Do you reply and just log out very quickly and hope not to die, when you log back in you might also die while screen is loading.

2. Kill the mobs and the GM will know you are at keyboard and then pause, in which case you might get in combat again. So GM will know you are definately at keyboard and increase your chances of being banned.

3. Kill mobs and then reply to GM and logout, still might die when logging in.

4. Stop attacking, use recall. reply saying ur logging and log out.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

hackzor
Posts: 24
Joined: Sun Apr 17, 2011 1:42 am

Re: GM detection and banning chance reduction

#19 Post by hackzor » Sat May 28, 2011 8:20 am

ahh right, copied the devtools to addons now, but still same prob, do i have to change parts of the code of those devtools?

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: GM detection and banning chance reduction

#20 Post by lisa » Sat May 28, 2011 9:10 am

hackzor wrote:ahh right, copied the devtools to addons now, but still same prob, do i have to change parts of the code of those devtools?
Nope, so both files were there that I named cus it seems like you have an old version to get that error.

I'm adding a WP to first post to purely test that you can use the event monitoring system, If it doesn't work then need to address that and any issues have nothing to do with this user function.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Locked

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 4 guests