Page 1 of 1
Botting in Caves or mines
Posted: Mon Mar 28, 2011 10:00 am
by RicalEyl
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
Re: Botting in Caves or mines
Posted: Mon Mar 28, 2011 10:55 am
by lisa
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" />
Re: Botting in Caves or mines
Posted: Mon Mar 28, 2011 12:00 pm
by RicalEyl
ok thx
Ill give it a try
Re: Botting in Caves or mines
Posted: Wed Mar 30, 2011 3:08 am
by Auto Pilot
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>
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 8:34 am
by Germangold
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
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 8:56 am
by Tsutomu
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
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 9:02 am
by Germangold
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
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 9:11 am
by rock5
That means you would have to heal and buff yourself too.
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 9:59 am
by Tsutomu
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)
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 10:06 am
by lisa
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.
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 10:24 am
by Tsutomu
the flaw to that is that mobs may return -> stop following after a while if he doesn't get more than 8 mobs.
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 4:46 pm
by Germangold
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>
Re: Botting in Caves or mines
Posted: Thu Mar 31, 2011 7:41 pm
by rock5
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.
Re: Botting in Caves or mines
Posted: Mon Jul 18, 2011 4:39 am
by botje
so... how would i use this?
something like that?
Botje
Re: Botting in Caves or mines
Posted: Mon Jul 18, 2011 5:20 am
by botje
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
Re: Botting in Caves or mines
Posted: Tue Jul 19, 2011 4:07 am
by ezgitaran
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.
Re: Botting in Caves or mines
Posted: Tue Jul 19, 2011 5:15 am
by lisa
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
Re: Botting in Caves or mines
Posted: Tue Jul 19, 2011 9:55 am
by MiesterMan
You're going to want to include a range check with that.