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

Re: GM detection and banning chance reduction

#201 Post by lisa » Tue Dec 06, 2011 12:14 am

yoyodoggg wrote:Hello i noticed today when trying to use this addon that it spams me in game with
Cannot get log event for montior 'GMdetect'. No such monitor name exists.
can i only have gmdetect running on 1 bot at a time or something?
I forgot all about this, anyway I noticed it today and it's not from multi client it is from logging next character.
What happens is the timer event still occurs every 5 seconds but since the character that started the event monitoring has logged out then the addon is no longer tracking the event.

Once the WP is loaded it does however start the event monitoring again.

So everything still works as it should but you will get some messages saying " No such monitor name exists" a few times until the WP is started on the new character. Then it will work as usual.
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

kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: GM detection and banning chance reduction

#202 Post by kuripot » Thu Dec 08, 2011 11:10 am

im using version 681 rigth now... i wandering why when i started miller not indicated that i started gmdetection... im afraid my gmdetection is not activated.. can you check my wp... if i miss something and my profile

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>

<!--        Rock5's Millers Ranch Chickens run        -->
<!--           By Rock5         Version 4.1           -->
<!--      Incorporating Jduartedj's enhancements      -->
<!-- www.solarstrike.net/phpBB3/viewtopic.php?p=12139 -->

   <onLoad><![CDATA[
         startGMDetect()
   ]]></onLoad>

<onLoad>
	--== User Option ==--

	Deliver = 100         -- Change if you want to enable/disable deliver quests  0=disable, any number = deliver after that amount of eggs (must b bigger than 9)
	LagTime = 0           -- Affects accepting/completing quests. Increase LagTime if time is wasted by repeated CompleteQuests or AcceptQuests.
	RunningSpeed = 100    -- The speed the character runs when not teleporting. 50 is normal. Recommended 100.
	UseTeleporter = true  -- Use Jduratedj's teleport userfunction. Please make sure you have it installed to use this option.
	Timeout = 300         -- Time hens and eggs stay in the ignore list before being given another chance. '0' disables it, remains permanently in ignore list.
	debugging = true      -- Set to true to display extra useful information regarding egg drop rates and ignore lists.

	--=================--

	ignoredHens = {}
	ignoredEggs = {}

	changeProfileOption("HARVEST_DISTANCE", 150)
	setwindow(204792)

	-- Get name strings
	questname = RoMScript("TEXT('Sys422386_name')"); yrest(500) -- ie. "An Easy Lay?"
	npcname = RoMScript("TEXT('Sys114930_name')"); yrest(500)   -- ie. "Jenna Miller"
	merchant = RoMScript("TEXT('Sys114935_name')"); yrest(500)  -- ie. "Pykesile"

	-- Don't need assist. Disable it.
	if settings.profile.options.EGGPET_ENABLE_ASSIST == true then
		settings.profile.options.EGGPET_ENABLE_ASSIST = false
		local assistPet = CEggPet(settings.profile.options.EGGPET_ASSIST_SLOT)
		assistPet:Return()
	end

	-- Don't need buffs, disable those skills
	for i, skill in pairs(settings.profile.skills) do
		if skill.Type == STYPE_BUFF then
			settings.profile.skills[i].AutoUse = false
		end
	end

	local zoneid = RoMScript("GetZoneID()")
	if zoneid ~= 304 then -- not at Miller's Ranch
		-- Try to find Sorrun and teleport in
		if player:target_NPC("Sorrun") then
			sendMacro("ChoiceOption(3)") yrest(1000)
			sendMacro("ChoiceOption(1)")
			waitForLoadingScreen()
			yrest(1000)
			__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z))
		else
			error("You are too far from Miller's Ranch")
		end
	end

	-- Apply speed hack
	local playerAddress = memoryReadIntPtr(getProc(), addresses.staticbase_char, addresses.charPtr_offset);
	if playerAddress ~= 0 then
		memoryWriteFloat(getProc(), playerAddress + 0x40, RunningSpeed);
	end

	-- eval functions
	function feedHenEvalFunc(address)
		-- Don't target hens in the ignore list
		for k,v in pairs(ignoredHens) do
			if v.address == address then
				if Timeout == 0 or (Timeout > 0 and Timeout > (os.time() - v.time)) then
					return false
				end
			end
		end

		local hen = CObject(address)

		-- Don't target hens in coop
		if hen.Z > 3240 then return false end -- Hen in coop

		-- Don't target moving hens
		local oldX, oldZ = hen.X, hen.Z
		yrest(100)
		hen:update()
		if distance(hen.X,hen.Z,oldX,oldZ) > 2 then return false end

		return true
	end

	function coopHenEvalFunc(address)
		-- Don't target hens in the ignore list
		for k,v in pairs(ignoredHens) do
			if v.address == address then
				if Timeout == 0 or (Timeout > 0 and Timeout > (os.time() - v.time)) then
					return false
				end
			end
		end

		-- Only target coop Hens
		if 3240 > CObject(address).Z then return false end

		return true
	end

	function eggEvalFunc(address)
		-- Don't target eggs in the ignore list
		for k,v in pairs(ignoredEggs) do
			if Timeout > 0 and (os.time() - v.time) > Timeout then
				table.remove(ignoredEggs,k)
			elseif v.address == address then
				return false
			end
		end

		return true
	end

	function feedEvalFunc(address)
		-- Make sure the feed is from the right shed
		local feed = CObject(address)

		if feed.X > 4000 or feed.Z > 3030 then
			return false
		end

		return true
	end

	-- local teleport function checker
	function portTo(_x, _z, notWaypoint)
		-- Is Teleporter is enabled?
		if not UseTeleporter then
			return
		end

		-- Close enough. Don't teleport (when feeding hens)
		if notWaypoint then
			local dist = distance(player.X, player.Z, _x, _z)
			if 19 > dist then
				return
			end
		end

		teleport(_x, _z)
	end

	-- Debuging -----
	hencount = 0
	eggcount = 0
	speedlog = {}
	speedlogcount = 0
	ongoingGoldenEggCount = inventory:itemTotalCount(204792)
	-- Record start data for collected eggs but only if starting with less than 10 Fresh eggs.
	if 10 > inventory:itemTotalCount(204795) then
		speedlogcount = speedlogcount + 1
		speedlog[speedlogcount] = {start = os.clock()}
	end
	-----------------

</onLoad>

	<!-- #  1 --><waypoint x="4026" z="3400">
		if settings.profile.options.EGGPET_ENABLE_CRAFT == true then -- if crafting is enabled
			player:merchant(merchant);
		end
		__WPL:setDirection(WPT_FORWARD)
	</waypoint>
	<!-- #  2 --><waypoint x="4029" z="3327">	</waypoint>
	<!-- #  3 --><waypoint x="4016" z="3172" tag="merchant">	</waypoint>
	<!-- #  4 --><waypoint x="3948" z="3107" tag="Main">
		-- Do we need more pet tools?
		if settings.profile.options.EGGPET_ENABLE_CRAFT == true then
			local craftpet = CEggPet(settings.profile.options.EGGPET_CRAFT_SLOT)
			local toolChoice = craftpet:getToolChoices()
			if inventory:itemTotalCount(toolChoice[1].Id) == 0 then
				-- go buy some.
				__WPL:setDirection(WPT_BACKWARD)
				__WPL:setWaypointIndex(__WPL:findWaypointTag("merchant"));
				return
			end
		end

		queststate = getQuestStatus(questname)
		if queststate == "complete" and Deliver > 0 and inventory:itemTotalCount(204795) >= Deliver then
			-- Debuging -----
			-- Record end data for collected eggs
			if speedlog[speedlogcount] ~= nil then
				speedlog[speedlogcount].finish = os.clock()
				speedlog[speedlogcount].goldeneggs = inventory:itemTotalCount(204792) - ongoingGoldenEggCount
				ongoingGoldenEggCount = inventory:itemTotalCount(204792)
			end
			local deliverstart = os.clock()
			-----------------
			while inventory:itemTotalCount(204795) > 9 do --if 9+ fresh eggs
				-- Complete quest
				repeat
					repeat
					player:target_NPC(npcname); yrest(LagTime)
					until RoMScript("SpeakFrame:IsVisible()")

					sendMacro("CompleteQuest()")
					yrest(LagTime + 1500);
				until getQuestStatus(questname) ~= "complete"

				-- Accept quest
				repeat
					repeat
					player:target_NPC(npcname); yrest(LagTime)
					until RoMScript("SpeakFrame:IsVisible()")

					sendMacro("AcceptQuest()")
					yrest(LagTime +1000);
				until getQuestStatus(questname) ~= "not accepted"
			end
			-- Debuging -----
			-- Record delivery duration and start data for collected eggs
			if speedlog[speedlogcount] ~= nil then
				speedlog[speedlogcount].deliver = os.clock() - deliverstart
			end
			speedlogcount = speedlogcount + 1
			speedlog[speedlogcount] = {start = os.clock()}
			-----------------
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"))

		elseif queststate == "not accepted" then
			-- Accept quest
			player:target_NPC(npcname);
			sendMacro("AcceptQuest()"); yrest(LagTime)
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"))
		else
			local feedNumber = inventory:itemTotalCount(204789)
			local strikes = 0

			local hen = player:findNearestNameOrId(112955, nil, feedHenEvalFunc)
			while feedNumber > 0 and hen do -- While you have feed and hen
				portTo(hen.X, hen.Z, true)
				player:target_Object(112955,nil,nil,true,function(address) return address == hen.Address end ) -- Feed Hen
				if( inventory:itemTotalCount(204789) == feedNumber ) then -- Feed didn't work
					strikes = strikes + 1
					if strikes >= 3 then -- Add to ignore list
						-- First see if it isn't already on list
						local found
						for k,v in pairs(ignoredHens) do
							if v.address == hen.Address then
								found = k
								break
							end
						end
						if found then -- reset timer
							ignoredHens[found].time = os.time()
						else
							-- Debuging -----
							-- Used to keep track of total number of stuck hens.
							hencount = hencount + 1
							-----------------
							table.insert(ignoredHens,{address=hen.Address, time=os.time()})
						end
						strikes = 0
					end
				else
					-- If it's on the ignore list, remove it.
					for k,v in pairs(ignoredHens) do
						if v.address == hen.Address then
							table.remove(ignoredHens,k)
							break
						end
					end
					strikes = 0
				end

				feedNumber = inventory:itemTotalCount(204789)

				hen = player:findNearestNameOrId(112955, nil, feedHenEvalFunc)
			end
			-- Out of feed or hens
			if 1 > inventory:itemTotalCount(204789) then -- Get more feed
				if distance(player.X,player.Z,3940,3055)>128 then
					portTo(3948,3107); -- back to main
				end
				__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Feed"));
				portTo(3940,3055);
			else
				if distance(player.X,player.Z,3928,3185)>128 then
					portTo(3948,3107); -- back to main
				end
				__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Eggs"))
				portTo(3928,3185);
			end
		end
		-- Debuging -----
		-- Print stats
		if debugging then
			if speedlogcount > 1 or #ignoredHens > 0 or hencount > 0 or #ignoredEggs > 0 or eggcount > 0 then
				cprintf(cli.lightgreen, "\nDisplaying Stats:\n")
			end
			if speedlogcount > 1 then
				cprintf(cli.yellow,"Egg Stats:\n")
				print("Per " .. Deliver .. " fresh eggs.")
				print("","To Collect\tTo Deliver\tGolden Eggs Dropped")
				local totaltime = 0
				local totalcount = 0
				local totalgoldeneggs = 0
				for k,v in pairs(speedlog) do
					if v.finish then
						local timetaken = (v.finish - v.start)/60
						cprintf(cli.white,"\t%dm\t\t%ds\t\t%d\n",math.floor(timetaken), math.floor(v.deliver), v.goldeneggs )
						totaltime = totaltime + timetaken
						totalcount = totalcount + 1
						totalgoldeneggs = totalgoldeneggs + v.goldeneggs
					end
				end
				local eggtotal = 0

				printf("Fresh Eggs average drop rate: ") cprintf(cli.white, math.floor(Deliver * totalcount/totaltime * 6000)/100 .. " per hour\n")
				printf("Golden Eggs average drop rate: ") cprintf(cli.white, math.floor(totalgoldeneggs/totaltime * 6000)/100 .. " per hour\n\n")
			end
			if #ignoredHens > 0 or #ignoredEggs > 0 then
				cprintf(cli.yellow,"Ignore lists:\n")
			end
			if #ignoredHens > 0 then
				printf("Ignored hens\tSeconds\n")
				for k,v in pairs(ignoredHens) do
					cprintf(cli.white, "%x  \t%d\n", v.address, os.time()-v.time)
				end
			end
			if hencount > 0 then printf("Total stuck hens = ") cprintf(cli.white, hencount.."\n") end
			if #ignoredHens > 0 or hencount > 0 then printf("\n") end

			if #ignoredEggs > 0 then
				printf("Ignored eggs\tSeconds\n")
				for k,v in pairs(ignoredEggs) do
					cprintf(cli.white, "%x  \t%d\n", v.address, os.time()-v.time)
				end
			end
			if eggcount > 0 then printf("Total stuck eggs = ") cprintf(cli.white, eggcount.."\n") end
			if #ignoredEggs > 0 or eggcount > 0 then printf("\n") end
		end
		-----------------

		if #ignoredHens == 3 and inventory:itemTotalCount(204789) > 0 then

			if Timeout == 0 then -- Timeout is disabled. No trying again.
				printf("All hens are stuck.\n")
				player:sleep()
			else -- wait until next hen due to be tried again
				cprintf(cli.yellow, "All hens are stuck. Waiting for hens Timeout to end before trying again.\n")
				repeat
					yrest(1000)
					-- get highest time
					local highest = 0
					for k,v in pairs (ignoredHens) do
						local donetime = os.time() - v.time
						if donetime > highest then
							highest = donetime
						end
					end
					displayProgressBar(highest / Timeout * 100, 60)
				until highest > Timeout

				__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"))
			end
		end
	</waypoint>
	<!-- #  5 --><waypoint x="3940" z="3055" tag="Get Feed">
		portTo(3937,2978)	</waypoint>
	<!-- #  6 --><waypoint x="3937" z="2978">
		player:target_Object(112956,nil,true,false,feedEvalFunc)
		portTo(3940,3055)	</waypoint>
	<!-- #  7 --><waypoint x="3935" z="3051">
		__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
		portTo(3948,3107)	</waypoint>

	<!-- #  8 --><waypoint x="3928" z="3185" tag="Get Eggs">
		portTo(3929,3261)	</waypoint>
	<!-- #  9 --><waypoint x="3929" z="3261">
		while player:target_Object(112955,nil,nil,true,coopHenEvalFunc) do -- Check for hens
			yrest(500)

			local egg = player:findNearestNameOrId({112958,114931}, player.LastTargetPtr, eggEvalFunc)
			while egg do
				player:target_Object({112958,114931},nil,nil,false, function(address) return address == egg.Address end) -- Get Fresh/Golden Eggs
				-- wait till egg disappears. Avoids same address problem. We have time till the next hen is ready anyway.
				local maxWaitTime = 4
				local startTime = os.clock()
				repeat
					yrest(200)
					player:update()
				until player.TargetPtr == 0 or (os.clock() - startTime) > maxWaitTime

				-- Didn't disappear. Add to ignore list
				if player.TargetPtr ~= 0 then
					-- Debuging -----
					-- Used to keep track of total number of stuck eggs.
					eggcount = eggcount + 1
					-----------------
					table.insert(ignoredEggs,{address=egg.Address, time=os.time()})
				end

				egg = player:findNearestNameOrId({112958,114931}, player.LastTargetPtr, eggEvalFunc)
			end
		end

		portTo(3926,3198);
		if 1 > inventory:itemTotalCount(204789) then yrest(LagTime+1000) end --if he gooes directly to feed he is rubberbanded!
	</waypoint>
	<!-- # 10 --><waypoint x="3926" z="3198">
		__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"))
		portTo(3948,3107)	</waypoint>
</waypoints>

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<profile>
	<options>
		<!-- Try the bot with a new char mage                   -->
		<!-- At the pioneer village. Use demo.xml waypoint file -->



		<!-- 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="600" />  -- 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="HP_LOW"			value="85" />
		<option name="MP_LOW_POTION"	value="50" />
		<option name="HP_LOW_POTION"	value="40" />
		<option name="USE_HP_POTION"	value="best" />	<!-- potion select strategy: best|minstack -->
		<option name="USE_MANA_POTION"	value="best" />	<!-- potion select strategy: best|minstack -->

		<!-- Rest if HP or Mana is below that level -->
		<option name="HP_REST" value="15" />
		<option name="MP_REST" value="15" />

		<!-- Shopping options, how many of what do you want to keep in your inventory -->
		<option name="HEALING_POTION" value="99" />
		<option name="MANA_POTION" value="99" />
		<option name="ARROW_QUIVER" value="2" />
		<option name="THROWN_BAG" value="2" />
		<option name="POISON" value="30" />

		<!-- either false or arrow or thrown -->
		<option name="RELOAD_AMMUNITION" value="false" />	<!-- false|arrow|thrown -->

		<!-- Combat options -->
		<option name="COMBAT_TYPE"        value="" />	<!-- leave empty or choose ranged/melee if not using class default -->
		<option name="COMBAT_RANGED_PULL" value="true" /> <!-- only important for melees -->
		<option name="COMBAT_DISTANCE"    value="200" />
		<option name="MAX_FIGHT_TIME"     value="15" />	<!-- Max time without damage before break -->
		<option name="DOT_PERCENT"        value="90" />
		<option name="ANTI_KS"            value="true" />
		<option name="MAX_TARGET_DIST"    value="225" />

		<!-- Attack monsters 3 levels above or 10 below your level -->
		<option name="TARGET_LEVELDIF_ABOVE" value="3" />
		<option name="TARGET_LEVELDIF_BELOW" value="10" />

		<!-- Waypoint and movement settings -->
		<option name="WAYPOINTS"		value="" />  <!-- leave empty to show a list -->
		<option name="RETURNPATH"		value="" />
		<option name="PATH_TYPE"		value="waypoints" />	<!-- waypoints | wander -->
		<option name="WANDER_RADIUS"		value="500" />
		<option name="WAYPOINT_DEVIATION"	value="0" />
		<option name="QUICK_TURN" 		value="true" />

		<!-- Loot settings -->
		<option name="LOOT"               value="true" />
		<option name="LOOT_IN_COMBAT"     value="true" />
		<option name="LOOT_DISTANCE"      value="100" />
		<option name="LOOT_PAUSE_AFTER"   value="0" />		<!-- probability in % for a short rest -->

		<!-- Harvest options -->
		<option name="HARVEST_DISTANCE"		value="120" />
		<option name="HARVEST_WOOD"			value="true" /> <!-- Choose which types to harvest. -->
		<option name="HARVEST_HERB"			value="true" /> <!-- "true" = harvest, "false" = do not harvest -->
		<option name="HARVEST_ORE"			value="true" />

		<!-- Eggpet options -->
		<option name="EGGPET_ENABLE_CRAFT"	value="false" /><!-- If using same slot for assist and craft, onlt 1 can be enabled. -->
		<option name="EGGPET_CRAFT_SLOT"	value="1" />
		<option name="EGGPET_ENABLE_ASSIST"	value="false" />
		<option name="EGGPET_ASSIST_SLOT"	value="1" />
		<option name="EGGPET_CRAFT_RATIO"	value="1:4:4" /> <!-- mining:woodworking:herbalism ratio to produce. -->
		<option name="EGGPET_CRAFT_INDEXES"	value="" /> 	 <!-- override auto craft index for mining,woodworking,herbalism eg. "2,,"-->


		<!-- Log out and resurrect settings -->
		<option name="LOGOUT_TIME" 			value="0" />	<!-- in minutes, 0 = timer disabled -->
		<option name="LOGOUT_SHUTDOWN"		value="false" />
		<option name="LOGOUT_WHEN_STUCK"	value="true" />
		<option name="CLOSE_WHEN_STUCK"		value="true" />
		<option name="RES_AUTOMATIC_AFTER_DEATH" value="true" />
		<option name="MAX_DEATHS" value="10" /> <!-- Log out after this many deaths -->

		<!-- For more options and documentation see the RoM Bot Wiki:  -->
		<!-- http://www.solarstrike.net/wiki/index.php5?title=RoM_Bot  -->

	</options>

	<friends>
		<!-- names of friends we help fighting or enemys we don't want to attack -->
		<!-- for umlauts use \129 (ue),\132 (ae),\148 (oe) e.g. K\132fer         -->
		<friend name="MyOtherCharacter1" />
		<friend name="MyOtherCharacter2" />
		<friend name="Elite_Mob_Name1" />
		<friend name="Elite_Mob_Name2" />
	</friends>

	<mobs>
		<!-- names of mobs we want to attack 				-->
		<!-- if no names defined we will attack all mobs	-->
		<mob name="" />
		<mob name="" />
		<mob name="" />
	</mobs>

	<hotkeys>
    	<!-- to communicate with the RoM API / define ingame dummy macro at place 1 -->
		<hotkey name="MACRO"        modifier="" key="VK_0" />
	</hotkeys>

	<!-- define your skills depending from your actual primary class -->
	<!-- see the example for a priest/mage                           -->
	<!-- delete skills you don't have or don't want to use.          -->
	<!-- For more skills to use see /database/skills.xml             -->
	<!-- demo skills for LvL 1 character for all classes             -->
	<skills_priest>
		<skill name="PRIEST_SOUL_SOURCE"   modifier="" hotkey="MACRO" priority="110" inbattle="true" hpper="15" />
		<skill name="PRIEST_HOLY_AURA"     modifier="" hotkey="MACRO" priority="100" inbattle="true" hpper="24" />
		<skill name="PRIEST_URGENT_HEAL"   modifier="" hotkey="MACRO" priority="100" hpper="30"  />
		<skill name="PRIEST_REGENERATE"    modifier="" hotkey="MACRO" priority="90" />
		<skill name="PRIEST_RISING_TIDE"   modifier="" hotkey="MACRO" priority="80" />
		<skill name="PRIEST_WAVE_ARMOR"    modifier="" hotkey="MACRO" priority="40"  inbattle="true" />
		<!--skill name="PRIEST_SOUL_BOND"     hotkey="VK_T" priority="30" /> -->
		<!--skill name="PRIEST_MAGIC_BARRIER" hotkey="VK_F" priority="20" rebuffcut="60" inbattle="false" /> -->
	</skills_priest>

	<skills_warrior>
		<skill name="WARRIOR_SLASH"          modifier="" hotkey="MACRO" priority="90" />
		<skill name="WARRIOR_PROBING_ATTACK" modifier="" hotkey="MACRO" priority="80" />
		<skill name="WARRIOR_OPEN_FLANK"     modifier="" hotkey="MACRO" priority="70" />
	</skills_warrior>

	<skills_scout>
		<skill name="SCOUT_SHOT"        modifier="" hotkey="MACRO" priority="90" />
		<skill name="SCOUT_AUTOSHOT"    modifier="" hotkey="MACRO" priority="80" />
		<skill name="SCOUT_WIND_ARROWS" modifier="" hotkey="MACRO" priority="70" />
	</skills_scout>

	<skills_rogue>
		<skill name="ROGUE_SHADOWSTAB"  modifier="" hotkey="MACRO" priority="90" />
		<skill name="ROGUE_LOW_BLOW"    modifier="" hotkey="MACRO" priority="80" />
	</skills_rogue>

	<skills_mage>
		<skill name="MAGE_FIREBALL"              modifier="" hotkey="MACRO" priority="80" />
		<skill name="MAGE_ELEMENTAL_CATALYST" modifier="" hotkey="MACRO" priority="30" inbattle="true" />
	</skills_mage>

	<skills_knight>
		<skill name="KNIGHT_HOLY_STRIKE"  modifier="" hotkey="MACRO" priority="90" />
		<skill name="KNIGHT_HOLY_SHIELD"  modifier="" hotkey="MACRO" priority="80" inbattle="true" hpper="15" />
		<skill name="KNIGHT_HOLY_SEAL"    modifier="" hotkey="MACRO" priority="70" />
		<skill name="KNIGHT_PUNISHMENT"   modifier="" hotkey="MACRO" priority="60" />
	</skills_knight>

	<skills_warden>
		<skill name="WARDEN_CHARGED_CHOP"	modifier="" hotkey="MACRO" priority="90" />
		<skill name="WARDEN_ENERGY_ABSORB"	modifier="" hotkey="MACRO" priority="80" inbattle="true" hpper="25" />
	</skills_warden>

	<skills_druid>
		<skill name="DRUID_RECOVER"        modifier="" hotkey="MACRO" priority="90" hpper="30" />
		<skill name="DRUID_EARTH_ARROW"    modifier="" hotkey="MACRO" priority="80" />
	</skills_druid>

	<onLoad><![CDATA[
			startGMDetect()
			setwindow(204792)
	]]></onLoad>

</profile>

userfunction_gmmonitor.LUA and alarm in userfunction

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

Re: GM detection and banning chance reduction

#203 Post by lisa » Thu Dec 08, 2011 11:29 am

you have 2 lots of <onLoad>

replace

Code: Select all

   <onLoad><![CDATA[
         startGMDetect()
   ]]></onLoad>

<onLoad>
   --== User Option ==--

with this.

Code: Select all

<onLoad>
   --== User Option ==--
         startGMDetect()

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

onewhoknows
Posts: 11
Joined: Sat Nov 19, 2011 9:34 pm

Re: GM detection and banning chance reduction

#204 Post by onewhoknows » Thu Dec 22, 2011 12:50 am

man, I got a big kick when I saw this first posted. And of course being a good GM I forwarded it to all the support staff - and downloaded it to see exactly how it worked. It actually got some GM's talking about bot hunting using lower level non-gm flagged under cover characters. I never did as I always felt that a player needs to talk to a clearly identified staff member - nothing says a player has to talk to an other player. Thus a GM posing as a player to talk to a bot was a flawed way of testing in my eyes.

As far as I know - only one player may have used this on the US servers.


To bad there wasn't an AI engine that could make a character talk some what intelligently - imagine a GM who comes up to a botter, who appears to be having an intelligent conversation in guild chat or better world chat. That would quickly cause a GM to move on.


Its a great tool - but don't rely on it as your sole means of avoiding a GM or ban. Especially if you are jumping around in millers ranch lol

User avatar
Administrator
Site Admin
Posts: 5307
Joined: Sat Jan 05, 2008 4:21 pm

Re: GM detection and banning chance reduction

#205 Post by Administrator » Thu Dec 22, 2011 2:13 am

onewhoknows wrote:To bad there wasn't an AI engine that could make a character talk some what intelligently - imagine a GM who comes up to a botter, who appears to be having an intelligent conversation in guild chat or better world chat. That would quickly cause a GM to move on.
I've experimented with that in the past, but frankly, I don't think it is worth the time. There are too many variables to work with, and it can be counter-productive if they know which responses to look for.

The best thing to do is just be near the computer and be alert of any messages you receive. I've never been caught botting in any game, really, by just following simple rules like this. At most I've had a GM occasionally show up, but I was always there to respond so they disappeared in a flash. However, I did once have a GM show up to check for botters in a specific area. After checking a few other players (and banning them right there), he whispered me. I obviously stopped the bot, but the game was bugging out and I was unable to chat for a minute or so. The GM took my jumping around and spamming emotes at him to mean that I was active. This all happened in different games, though. I've never had contact with a RoM GM.

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

Re: GM detection and banning chance reduction

#206 Post by lisa » Thu Dec 22, 2011 2:28 am

lol
well as the title says
banning chance reduction
onewhoknows wrote:I never did as I always felt that a player needs to talk to a clearly identified staff member
Exactly, if a GM whispers you on a non tagged character then you can just ignore them like any other player. If they do have a GM tag though then you are supposed to talk back.

End of the day it is just a tool to help reduce the chance of being banned, if you post 10,000 golden eggs on AH then nothing will help prevent you from being banned.

I know of many people who have messaged me saying they read the logs and had been whispered by a GM and didn't get banned.
So it has deffinately helped people =)
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

markd
Posts: 17
Joined: Sat Dec 03, 2011 6:28 pm

Re: GM detection and banning chance reduction

#207 Post by markd » Sat Jan 07, 2012 5:40 pm

I am using AutoAcceptInvitations Addon and when my other characters whisper to accept they get logged in the GMdetectwhispers.xml. Is there a way to ignore those whispers.

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

Re: GM detection and banning chance reduction

#208 Post by lisa » Sat Jan 07, 2012 8:41 pm

does them being recorded in the log affect anything?
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

markd
Posts: 17
Joined: Sat Dec 03, 2011 6:28 pm

Re: GM detection and banning chance reduction

#209 Post by markd » Tue Jan 10, 2012 12:45 am

No, but it is just a lot of whispers and if I get whispered by a player it is hard to find it in all those accept invitation whispers.

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

Re: GM detection and banning chance reduction

#210 Post by lisa » Tue Jan 10, 2012 12:50 am

Line 103 has this

Code: Select all

		if time ~= nil and name ~= "Newbie Pet" then -- make sure something was returned
So it is set to ignore messages from the "Newbie Pet", reminds me I should probably get name from ID for other languages.

Anyway you can add in more names if you want.

Code: Select all

if time ~= nil and name ~= "Newbie Pet" and name ~= "Loopy" and name~="Elvis" and name ~="Pink" then
you get the idea.
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

kx9488
Posts: 60
Joined: Wed Jan 26, 2011 6:27 pm

Re: GM detection and banning chance reduction

#211 Post by kx9488 » Wed Jan 25, 2012 11:43 pm

first of all thank you for making this,

i am having trouble getting my bot to answer my test GM character, the bot pauses and tells me that it has been whispered by my test char and does nothing, then continues to bot after the rest timer is up.

if i send it 2 consecutive whispers on my test char, the bot will stop for the rest timer, start when the timer is finished, then pause again for the 2nd whisper it received, never answering back.

i put d303Fix in my runes of magic/interface/addons folder,

put "userfunction_gmmonitor" in rom/userfunctions,
-changed the char name to test char in this line:

Code: Select all

--== Change this to another character you can use to test the userfunction, function will basically think it is a GM. ==--
testcharname = "kx9488" -- Must be exactly as the character's name, any capitals and any special letters.
-edited the 6 replies to my own without the use of " ' "
-changed "gm_detected = true;"

added to each profile

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<profile>
	<options>

<!-- 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

		<!-- Try the bot with a new char mage                   -->
		<!-- At the pioneer village. Use demo.xml waypoint file -->
i am using rock5's millersranchchickens WP file, i added "startgmdetect ()" here: (i also threw in the changeprofile option to try and make it work after it failed to whisper me back)

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>

<!--        Rock5's Millers Ranch Chickens run        -->
<!--           By Rock5     Version 3.2 (Final)       -->
<!-- www.solarstrike.net/phpBB3/viewtopic.php?p=12139 -->

<onLoad>
changeProfileOption("GMDETECT", true); -- no "" if using true/false, just change option name for the other profile options 
	startGMDetect()
	--== User Option ==--
not sure what i'm doing wrong, the only thing i skipped was the sound WAV file alarms, im not interrested in that aspect of the script as ill be at work, so it will not benefit me. any ideas why the test GM is not getting whispered back by my bot?

thank you in advance
Image

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

Re: GM detection and banning chance reduction

#212 Post by lisa » Thu Jan 26, 2012 12:35 am

Test the event monitoring with the WP I have on first post to make sure you have that working properly.

Then make sure the name is exactly as it is in game
kx9488 wrote:testcharname = "kx9488"
I assume you edited that for the forum of course but make sure it is exact, So capital first letter.

"Druggy"
"Scoobydoo"
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

kx9488
Posts: 60
Joined: Wed Jan 26, 2011 6:27 pm

Re: GM detection and banning chance reduction

#213 Post by kx9488 » Thu Jan 26, 2012 3:31 am

thank you for reply,

yes i made sure the name was correct, it is.

i ran the test script, it types "LOL" and runs fine,

but when tested with my test-GM it will only pause the bot, and if i run up to the bot it will log me out. for some reason the bot doesn't send the text, but in the event monitoring wp it runs flawlessly and enters text.
Image

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

Re: GM detection and banning chance reduction

#214 Post by lisa » Thu Jan 26, 2012 3:48 am

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.
If you want the bot to log out when it is whispered you need to have nothing for PAUSEONGM. If any number for pause then it will pause.

It sounds to me that the function is performing as intended.

You get the prints on MM counting down the pause time right?
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

kx9488
Posts: 60
Joined: Wed Jan 26, 2011 6:27 pm

Re: GM detection and banning chance reduction

#215 Post by kx9488 » Thu Jan 26, 2012 7:49 pm

yes ,
the bot ticks down the default 300 seconds (5minutes) in 10 second intervals, and display's the GM name (my test char), and pauses again if whispered within 1 min time frame.
the bot logs out if i bring him out of miller's and stand next to my test GM
and the test WP file runs smoothly and makes the character type "LOL" in normal chat

everything seems to be working normal except the bot doesn't respond to my test GM. i want it to respond to the GM if one ever whispers my bot.
instead of just pausing for 5 minutes or logging out when the GM stands next to me

Code: Select all

function messagereply()
-- You can write pretty much anything you want as the response 
-- but don't use any ' as it will mess with the code and just error out
	ResponseTable = {
		[1] = "random response",
		[2] = "random response",
		[3] = "random response",
		[4] = "random response",
		[5] = "random response",
		[6] = "random response",
	}
	gmreply = ResponseTable[math.random(#ResponseTable)]
	sendMacro("SendChatMessage(\'"..gmreply.."\', 'WHISPER', 0, \'"..gmname.."\');");
end
i actually made my own six different responses, only used characters a-z, and commas ",",
no other characters were used, such as :
apostrophes " ' " or 1-0 numbers or other characters or punctuation... such as !@#$%^&...

p.s.
thank you for your help, and great user functions.
Image

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

Re: GM detection and banning chance reduction

#216 Post by lisa » Thu Jan 26, 2012 7:57 pm

if you have in your profile
PAUSEONGM
to be 0 or nil then it will not pause and will only reply to GM and then logout.

Code: Select all

<option name="PAUSEONGM"		value="" />
or

Code: Select all

<option name="PAUSEONGM"		value="0" />
So the way the function is at the moment you either pause OR you reply and logout.

Reason I didn't want it to pause and whisper is because if you reply to GM and then pause for say 10 mins, they whisper you again and you reply again and pause another 10 mins. You might actually reply with the exact same message again which wouldn't be good really.
So the theory was just to reply with some excuse as to why your leaving and then logout, which is better then just suddenly logging 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

kx9488
Posts: 60
Joined: Wed Jan 26, 2011 6:27 pm

Re: GM detection and banning chance reduction

#217 Post by kx9488 » Thu Jan 26, 2012 8:17 pm

oooohhhhh, THANK YOU for explaining that!!

i feel very dumb now :( ,

i was hoping it would be easier to avoid the bot logging out, when a quick response from the bot could possibly get the GM off my case letting the bot keep on farming.

i guess it wouldn't make sense the way i had interpreted the function, it would have to be more complex.

i thought it would log out when the GM was standing near me, and answer his messages if messaged... it wouldn't make sense answering him more than once, he could just not stand next to me ever and realize what i was up to, getting the same responses from my bot as he whispered me over and over.

is there a way to make it pause then send a message, and then if whispered again grab from a 2nd table, whisper back and then logout?
i think that would be genius if you don't mind me saying

table one, could have "im too buisy blah blah blah" responses
----------------------------------
Edit,

depending on how many #'s can be placed in the table of replies one phrase can be written over 50 times, typo's and all, depending on how much free time one had.

i.e: "i have to go"
gtg
GtG
g2g
gotta go
Got 2 go
i g2g
i have 2 leave
etc.....


event monitor, check GM name if messages from gm > 1, then reply from table 2 then logout

table 2, could have " i now have to leave blah blah blah, apologies" responses

it would have to keep track of what GM whispered you to be able to pick from the right table of replies the 2nd time and trigger log out.

thank you again
Image

kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: GM detection and banning chance reduction

#218 Post by kuripot » Sun Jan 29, 2012 7:21 am

is this really GM???
i try to bot in rom4u server.. and my character keep loging out and gm detected..
Attachments
gms.JPG
gm detect.JPG

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

Re: GM detection and banning chance reduction

#219 Post by rock5 » Sun Jan 29, 2012 7:37 am

Isn't the cap still 70? I think then it must be a gm.
  • 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
MustHave
Posts: 28
Joined: Sat Jan 21, 2012 11:51 pm
Location: 742, Evergreen Terrace, Springfield

Re: GM detection and banning chance reduction

#220 Post by MustHave » Sun Jan 29, 2012 7:42 am

rom4u seems to be a private server.
Are there any GMs you know?
Beer: The cause of, and solution to, all of life's problems.
Thnx to all of those who are working their ass off for us dumb asses

Locked

Who is online

Users browsing this forum: Bing [Bot] and 0 guests