Botting in Caves or mines
Botting in Caves or mines
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
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
Re: Botting in Caves or mines
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
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
wiki here http://www.solarstrike.net/wiki/index.php?title=Manual
Re: Botting in Caves or mines
ok thx Ill give it a try
-
- Posts: 24
- Joined: Tue Mar 01, 2011 3:23 am
Re: Botting in Caves or mines
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
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
...
<!-- 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>
...
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
changeProfileOption("MAX_TARGET_DIST", 80);
</onLoad>
<waypoint ....></waypoint>
.....
</waypoints>
-
- Posts: 276
- Joined: Thu Oct 22, 2009 3:58 am
Re: Botting in Caves or mines
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
sth like
pseudocode
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
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>
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()
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
Re: Botting in Caves or mines
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
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
-
- Posts: 276
- Joined: Thu Oct 22, 2009 3:58 am
Re: Botting in Caves or mines
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
i would change all waypoints to TRAVEL > so no attack
and the userfunction would do the rest for me
Re: Botting in Caves or mines
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
Re: Botting in Caves or mines
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)
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)
Re: Botting in Caves or mines
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
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.
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
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
wiki here http://www.solarstrike.net/wiki/index.php?title=Manual
Re: Botting in Caves or mines
the flaw to that is that mobs may return -> stop following after a while if he doesn't get more than 8 mobs.
-
- Posts: 276
- Joined: Thu Oct 22, 2009 3:58 am
Re: Botting in Caves or mines
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
VK_9 contains an ingame macro
thus is for healing
my skills in CL
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
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>
Re: Botting in Caves or mines
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.
I don't have time to test it but i think that should work. Most of it was copied straight from other functions.
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
- 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
Re: Botting in Caves or mines
so... how would i use this?
something like that?
Botje
Code: Select all
if 4 > CountAggroTargets then
Botje
Re: Botting in Caves or mines
nvm, i got it, i made your fucntion in a addon, then use this:
Botje
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
Re: Botting in Caves or mines
An alternative;
Aoe until you get out of combat.
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
Re: Botting in Caves or mines
You can use a bot function to get if you are in combat or not, it will save doing hundreds of macros
replace
with
replace
Code: Select all
until sendMacro("GetPlayerCombatState()") == false
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
wiki here http://www.solarstrike.net/wiki/index.php?title=Manual
- 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
You're going to want to include a range check with that.
My RoM Bot toys:
- Object Viewer: http://www.solarstrike.net/phpBB3/viewt ... =27&t=2619
Teleporter Functions: http://www.solarstrike.net/phpBB3/viewt ... =27&t=2605
Waypoint Finder: http://www.solarstrike.net/phpBB3/viewt ... =27&t=2616
Mail Functions: http://www.solarstrike.net/phpBB3/viewt ... =27&t=2612
Equipment Swapper(TempFixed): http://www.solarstrike.net/phpBB3/viewt ... =27&t=2571
Who is online
Users browsing this forum: No registered users and 0 guests