Botting in Caves or mines

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Post Reply
Message
Author
RicalEyl
Posts: 63
Joined: Fri Aug 13, 2010 2:38 pm

Botting in Caves or mines

#1 Post by RicalEyl » Mon Mar 28, 2011 10:00 am

I have the problem that the bot is trying to attack enemys through walls which he cant see...
Is there a solution for this, i didnt find one using the search funktion.

The only Idea that I got is to maybe tell him only to attack villains that are like 10m next to him. But I didnt even find a funktion for that. Is there one or another solution for the problem?
Thanks :)

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

Re: Botting in Caves or mines

#2 Post by lisa » Mon Mar 28, 2011 10:55 am

There are profile options which deal with distance and combat. reduce the max combat distance and combat distance if you want it to only attack things close to the bot.
eg

Code: Select all

		<option name="COMBAT_DISTANCE"    value="80" />
		<option name="MAX_TARGET_DIST"    value="85" />
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

RicalEyl
Posts: 63
Joined: Fri Aug 13, 2010 2:38 pm

Re: Botting in Caves or mines

#3 Post by RicalEyl » Mon Mar 28, 2011 12:00 pm

ok thx :) Ill give it a try

Auto Pilot
Posts: 24
Joined: Tue Mar 01, 2011 3:23 am

Re: Botting in Caves or mines

#4 Post by Auto Pilot » Wed Mar 30, 2011 3:08 am

You can also change the target distance in waypoints themselves, both to not have to use a custom profile for that path and also to change it all along the path (in some big room you might want it at your max range and when going inside some tunnel you probably want it reduced to the minimum) and your waypoint file could look like that

Code: Select all

...
<!-- Entering Tunnel -->
<waypoint x="42" y="42" z="42>changeProfileOption("MAX_TARGET_DIST", 80);</waypoint>
<waypoint x="43" y="42" z="42></waypoint>
<waypoint x="44" y="42" z="42></waypoint>
<!-- Entering big room -->
<waypoint x="45" y="42" z="42>changeProfileOption("MAX_TARGET_DIST", 200);</waypoint>
<waypoint x="46" y="42" z="42></waypoint>
<waypoint x="47" y="42" z="42></waypoint>
<waypoint x="48" y="42" z="42></waypoint>
<!-- Entering Tunnel Again -->
<waypoint x="49" y="42" z="42>changeProfileOption("MAX_TARGET_DIST", 80);</waypoint>
...
Or if one target distance works nicely for the entire instance, use the onLoad tag in waypoint file to change it there

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>
	<onLoad>
		changeProfileOption("MAX_TARGET_DIST", 80);
	</onLoad>
	<waypoint ....></waypoint>
	.....
</waypoints>

Germangold
Posts: 276
Joined: Thu Oct 22, 2009 3:58 am

Re: Botting in Caves or mines

#5 Post by Germangold » Thu Mar 31, 2011 8:34 am

i need an elegant solution for Cylops Lair and Shrine of Kalin farming...

i use a mage/priest

main skill is Purgatory Fire

how do i pull like 10 Mobs and then firing about 8 rounds of Purgatory Fire?
this is my wp inside cl right before boss #1 room
moobs are always in quad clusters or less
i just want to optimize the killspeed
single targeting is realy out of option is does take to long

Code: Select all

	<!-- Inside CL -->
	<!-- # 8 --><waypoint x="1971" z="1089" >	</waypoint>
	<!-- # 9 --><waypoint x="1990" z="1100" >	</waypoint>
	<!-- # 10 --><waypoint x="2035" z="1278" >	</waypoint>
	<!-- # 11 --><waypoint x="2025" z="1386">	</waypoint>
	<!-- # 12 --><waypoint x="2031" z="1494">	</waypoint>
	<!-- # 13 --><waypoint x="2052" z="1552">	</waypoint>
	<!-- # 14 --><waypoint x="2120" z="1609">	</waypoint>
	<!-- # 15 --><waypoint x="2203" z="1627">	</waypoint>
	<!-- # 16 --><waypoint x="2303" z="1632">	</waypoint>
	<!-- # 17 --><waypoint x="2417" z="1636">	</waypoint>
	<!-- # 18 --><waypoint x="2512" z="1635">	</waypoint>
	<!-- # 19 --><waypoint x="2615" z="1630">	</waypoint>
	<!-- # 20 --><waypoint x="2704" z="1635">	</waypoint>
	<!-- # 21 --><waypoint x="2786" z="1663">	</waypoint>
	<!-- # 22 --><waypoint x="2793" z="1716">	</waypoint>
	<!-- # 23 --><waypoint x="2735" z="1749">	</waypoint>
	<!-- # 24 --><waypoint x="2699" z="1790">	</waypoint>
	<!-- # 25 --><waypoint x="2680" z="1835">	</waypoint>
	<!-- # 26 --><waypoint x="2655" z="1904">	</waypoint>
	<!-- # 27 --><waypoint x="2649" z="1957">	</waypoint>
	<!-- # 28 --><waypoint x="2730" z="2093">	</waypoint>
	<!-- # 29 --><waypoint x="2765" z="2101">	</waypoint>
	<!-- # 30 --><waypoint x="2802" z="2107">	</waypoint>
	<!-- # 31 --><waypoint x="2860" z="2117">	</waypoint>
	<!-- # 32 --><waypoint x="2896" z="2134">	 </waypoint>
	<!-- # 33 --><waypoint x="2936" z="2180">	</waypoint>
	<!-- # 34 --><waypoint x="2941" z="2260">	</waypoint>
	<!-- # 35 --><waypoint x="2943" z="2340">	</waypoint>
	<!-- # 36 --><waypoint x="2946" z="2431">	</waypoint>
	<!-- # 37 --><waypoint x="2957" z="2492">	</waypoint>
	<!-- # 38 --><waypoint x="3008" z="2537">	</waypoint>
	<!-- # 39 --><waypoint x="3054" z="2563">	</waypoint>
	<!-- # 40 --><waypoint x="3135" z="2610">	</waypoint>
	<!-- # 41 --><waypoint x="3212" z="2653">	</waypoint>
	<!-- # 42 --><waypoint x="3281" z="2684"> 	</waypoint>
	<!-- # 43 --><waypoint x="3350" z="2700">	</waypoint>
	<!-- # 44 --><waypoint x="3400" z="2698">	</waypoint>
	<!-- # 45 --><waypoint x="3431" z="2696">  </waypoint>
sth like
pseudocode

Code: Select all

if (player.followedbymobs > 8) then
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
	player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
end
lootBodies()

followedbymobs is my imaginative funtions to check how many mobs are already on Aggro and targeting the player
if more then eight mobs are on aggro player should imma. start firing purgatory rounds till no mob is left
and additional would be good to add a distance check funktion because there caster type mobs in CL, they used to have a large distance to the player

like
if (player.target == monsterid(101364)) then -- Storm Summoner
player.cast("any instant spell would do the magic");
end

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: Botting in Caves or mines

#6 Post by Tsutomu » Thu Mar 31, 2011 8:56 am

I don't think you can do it without coding new functions in rombot.
What i'd suggest that you pick the points for firing purgatory.

For ex. waypoint 1,2,3 you go by with travel mode, then on 4 you change to normal.
Then, bot will kill all enemies that follow him.

But you will have to plan it all while making waypoint file.
That's the best i can think of you can get right now.

Btw, bot is a bot, it can have many functions, but hardly will ever be able to be effective as human ;)

Germangold
Posts: 276
Joined: Thu Oct 22, 2009 3:58 am

Re: Botting in Caves or mines

#7 Post by Germangold » Thu Mar 31, 2011 9:02 am

the function doesnt has to be hard coded into rombot i meant it more like a userfunction that i can call

i would change all waypoints to TRAVEL > so no attack
and the userfunction would do the rest for me

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

Re: Botting in Caves or mines

#8 Post by rock5 » Thu Mar 31, 2011 9:11 am

That means you would have to heal and buff yourself too.
  • 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
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: Botting in Caves or mines

#9 Post by Tsutomu » Thu Mar 31, 2011 9:59 am

I think that my suggestion is much better than making all points travel.
You'll just need a bit of planning while making a waypoint file but pays off in the end as you'll get what you need.
For example in KS are mostly 3 mobs in stack.
You could take first three, second threee and on third waypoint to make it normal to kill them all.
Much easier than coding a bunch of stuff that will have no good functionality - no buffs, heals etc.
(might use ntBuff though)

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

Re: Botting in Caves or mines

#10 Post by lisa » Thu Mar 31, 2011 10:06 am

I'm wondering if you could create a table of mobs that are targeting you to populate the table and then if i >= 8 then call a function like this

Code: Select all

function killaoe()
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
   player:cast("MAGE_PURGATORY_FIRE"); yrest(150);
-- change waypoint to normal to fight back.
end
You would need all the waypoints that you are just cruising through before boss to set type to travel, so you could stop at anytime for the aoe and then continue without doing any single target kills.

What you think?

Edit: I assumed if you can solo the bosses then you wouldn't need to many heals along the way. Also if 8 purg is enough to kill the mobs you are lvled and geared to not need heals until bosses.
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
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: Botting in Caves or mines

#11 Post by Tsutomu » Thu Mar 31, 2011 10:24 am

the flaw to that is that mobs may return -> stop following after a while if he doesn't get more than 8 mobs.

Germangold
Posts: 276
Joined: Thu Oct 22, 2009 3:58 am

Re: Botting in Caves or mines

#12 Post by Germangold » Thu Mar 31, 2011 4:46 pm

8 is just an example,
if i farm CL manually i do pull over 20 mobs together and finsh them with 4x purgaro. fire

onskillcast

Code: Select all

   if not player:hasBuff(GetIdName(500998)) then
		keyboardPress(key.VK_9);   	yrest(555);  end
VK_9 contains an ingame macro
thus is for healing

Code: Select all

/Script FocusUnit(12,"target")
/Script TargetUnit("player")
/Script UseItemByName("Sigil of Regeneration")
/Script TargetUnit("focus12")
/Script FocusUnit(12,"")

my skills in CL

Code: Select all

	<skills_mage>
		<skill name="PRIEST_URGENT_HEAL"   		hotkey="VK_F1" priority="100" hpper="65"  	/>
		<skill name="PRIEST_REGENERATE"    		hotkey="VK_F2" priority="90" hpper="90"		/>
		<skill name="PRIEST_MAGIC_BARRIER" 		hotkey="VK_F3" priority="100" rebuffcut="5" />
		<skill name="MAGE_PURGATORY_FIRE"       hotkey="VK_F4" priority="150" 				/>
		<skill name="MAGE_INTENSIFICATION"      hotkey="VK_F6" priority="110" inbattle="true"	/>
		<skill name="MAGE_ENERGY_INFLUX"		hotkey="VK_F7" priority="110" />
		<skill name="MAGE_ESSENCE_OF_MAGIC" 	hotkey="VK_F8" priority="110" />	
		
		<skill name="MAGE_DISCHARGE" 	hotkey="VK_7" priority="10"/>
		<skill name="PRIEST_HOLY_AURA"     		hotkey="VK_4" priority="120" hpper="22" inbattle="true" />
		<skill name="MAGE_ELEMENTAL_CATALYST" 	hotkey="VK_5" priority="110" inbattle="true" />
	
		<skill name="MAGE_ELECTROSTATIC_CHARGE" hotkey="VK_8" priority="110"   />
	</skills_mage>

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

Re: Botting in Caves or mines

#13 Post by rock5 » Thu Mar 31, 2011 7:41 pm

Actually I think it would be pretty easy to create a function that counts targets that have you targeted. Let me give it a try.

Code: Select all

function CountAggroTargets()
	local aggrocount = 0

	local objectList = CObjectList();
	objectList:update();
	for i = 0,objectList:size() do
		local obj = objectList:getObject(i);
		if( obj ~= nil ) then
			local pawn = CPawn(obj.Address);

			if pawn.TargetPtr == player.Address then
				aggrocount = aggrocount + 1
			end
		end
	end
	return aggrocount
end
I don't have time to test it but i think that should work. Most of it was copied straight from other functions.
  • 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
botje
Posts: 656
Joined: Wed Oct 27, 2010 7:17 am

Re: Botting in Caves or mines

#14 Post by botje » Mon Jul 18, 2011 4:39 am

so... how would i use this?

Code: Select all

if 4 > CountAggroTargets then
something like that?

Botje

User avatar
botje
Posts: 656
Joined: Wed Oct 27, 2010 7:17 am

Re: Botting in Caves or mines

#15 Post by botje » Mon Jul 18, 2011 5:20 am

nvm, i got it, i made your fucntion in a addon, then use this:

Code: Select all

if CountAggroTargets() > 2 then
     player:cast("WARRIOR_BLASTING_CYCLONE");
     player:cast("WARRIOR_WHIRLWIND");
     player:cast("WARRIOR_MOON_CLEAVE");
     printf("Found targets: "..CountAggroTargets().."\n");
end
Botje

User avatar
ezgitaran
Posts: 25
Joined: Tue Sep 14, 2010 8:47 am

Re: Botting in Caves or mines

#16 Post by ezgitaran » Tue Jul 19, 2011 4:07 am

An alternative;

Code: Select all

function Aoe()
	repeat
	player:cast("MAGE_PURGATORY_FIRE");
			if( 75 > player.HP/player.MaxHP*100 ) then
        	player:cast("PRIEST_REGENERATE");
			end
	yrest(100);
	until sendMacro("GetPlayerCombatState()") == false
	player:lootAll();
end
Aoe until you get out of combat.

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

Re: Botting in Caves or mines

#17 Post by lisa » Tue Jul 19, 2011 5:15 am

You can use a bot function to get if you are in combat or not, it will save doing hundreds of macros

replace

Code: Select all

until sendMacro("GetPlayerCombatState()") == false
with

Code: Select all

until not player.Battling
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
MiesterMan
Posts: 543
Joined: Tue Jul 06, 2010 9:15 pm
Location: Between the Second and Third Circles of Hell

Re: Botting in Caves or mines

#18 Post by MiesterMan » Tue Jul 19, 2011 9:55 am

You're going to want to include a range check with that.

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests