-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#1
Post
by poioip » Fri Feb 03, 2012 8:39 pm
so how do i make the bot only to cast spells or attack the target i manually select.
for example, i do not specfy any waypoints not it is in wander but i only select a target and it attacks automatically in a specific order
1st lets say i select a goblin, then it should attack in a specified order like flame first then fireball and repeat until target is dead.
so the pseudocode must be something like
Code: Select all
if a target is selected then
if target hp>0% then
| repeat
| | cast spell on target
| | if player health <x% then
| | heal player //potion or spell
| | cast spell on target
| | if player health <x% then
| | heal player //potion or spell
| until target hp<=0%
end if
end if
if u get an error read
http://www.solarstrike.net/phpBB3/viewt ... 326#p34326
here is the CORRECT CODE credits to lisa
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- self buff and heal
player:update()
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
Last edited by
poioip on Sun Feb 05, 2012 1:18 pm, edited 3 times in total.
-
lisa
- Posts: 8332
- Joined: Tue Nov 09, 2010 11:46 pm
- Location: Australia
#2
Post
by lisa » Fri Feb 03, 2012 8:57 pm
make a WP file that looks like this.
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- buff and heal
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
player:fight()
end
end
end
</onLoad>
</waypoints>
1. Have profile set up with the skills the way you want.
2. manually move around as you want
3. target monster
4. press F key
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#3
Post
by poioip » Fri Feb 03, 2012 9:07 pm
player:fight()
so that means that i have to set my skills in mu profile onskillcast option
Code: Select all
<onSkillCast><![CDATA[
player:cast("MAGE_FLAME");
]]></onSkillCast>
with some extra if statements right?
and almost forgot
how do i get the distance of my target away from me?
-
lisa
- Posts: 8332
- Joined: Tue Nov 09, 2010 11:46 pm
- Location: Australia
#4
Post
by lisa » Fri Feb 03, 2012 9:22 pm
Actually that means you just set up your skills in profile.
for example
Code: Select all
<skills_mage>
<skill name="MAGE_PURGATORY_FIRE" hotkey="MACRO" priority="100" />
<skill name="MAGE_ESSENCE_OF_MAGIC" hotkey="MACRO" priority="30" />
<skill name="PRIEST_URGENT_HEAL" hotkey="MACRO" priority="100" hpper="60" />
<skill name="PRIEST_REGENERATE" hotkey="MACRO" priority="100" hpper="80" />
<skill name="MAGE_ENERGY_INFLUX" hotkey="MACRO" priority="30" inbattle="true" />
<skill name="MAGE_ENERGY_WELL" hotkey="MACRO" priority="30" inbattle="true" />
<skill name="PRIEST_HOLY_AURA" hotkey="MACRO" priority="100" inbattle="true" hpper="24" />
<skill name="MAGE_ELEMENTAL_CATALYST" hotkey="MACRO" priority="30" inbattle="true" />
<skill name="MAGE_FLAME" hotkey="MACRO" priority="80" />
<skill name="MAGE_FIREBALL" hotkey="MACRO" priority="70" />
</skills_mage>
If you really really really insist on doing skills the WP and not use the bot for skills at all then you can alter the code to what you want.
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- self buff and heal
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
-
kuripot
- Posts: 493
- Joined: Mon Nov 07, 2011 9:14 pm
#5
Post
by kuripot » Sat Feb 04, 2012 7:36 am
how about if my char recieving damage that don't need to press "F"
activate fighting when receiving damage that i can use when im in afk??
it is possible??
-
lisa
- Posts: 8332
- Joined: Tue Nov 09, 2010 11:46 pm
- Location: Australia
#6
Post
by lisa » Sat Feb 04, 2012 8:30 am
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- self buff and heal
player:update()
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
or if you don't want it to always check for combat then you can add a toggle key to turn on and off if looking or not.
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
local afk = false
while (true) do
player:checkSkills(true) -- self buff and heal
if keyPressed(key.VK_U) then
if afk == true then
afk = false
print("Please don't let me die as I am weak and won't defend myself")
else
afk = true
print("I will defend our honor while you go powder your nose")
end
end
player:update()
if afk == true then
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
end
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
key U is the toggle on and off for afk.
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#7
Post
by poioip » Sat Feb 04, 2012 11:16 am
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- self buff and heal
player:update()
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
i am getting an error
and also the target is a mob that selection colour yellow is yellow not red
-
Attachments
-
-
rock5
- Posts: 12173
- Joined: Tue Jan 05, 2010 3:30 am
- Location: Australia
#8
Post
by rock5 » Sat Feb 04, 2012 11:31 am
Code: Select all
attempt to call method "getTartget"
So what is the problem? You can't find "getTartget"? You don't see what is wrong with "getTartget"? Do you really need help to fix "getTartget"?
Lol
Seriously, just change it to "getTarget".
- 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.”
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#9
Post
by poioip » Sat Feb 04, 2012 12:30 pm
so can u edit her post or let her know to change it because it will be a great help for others
-
kuripot
- Posts: 493
- Joined: Mon Nov 07, 2011 9:14 pm
#10
Post
by kuripot » Sat Feb 04, 2012 11:24 pm
same error... i try to edit and its work
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
local afk = false
while (true) do
player:checkSkills(true) -- self buff and heal
if keyPressed(key.VK_U) then
if afk == true then
afk = false
print("Please don't let me die as I am weak and won't defend myself")
else
afk = true
print("I will defend our honor while you go powder your nose")
end
end
player:update()
if afk == true then
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
end
player:checkSkills(true) -- buff and heal
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
player:fight()
end
end
end
</onLoad>
</waypoints>
i dont know why this command are not work
Code: Select all
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
by the way this my profile skill
Code: Select all
<skills_mage>
<skill name="MAGE_FLAME" hotkey="MACRO" priority="70" />
<skill name="MAGE_MAGMA_BLADE" hotkey="MACRO" priority="70" />
<skill name="MAGE_FIREBALL" hotkey="MACRO" priority="90" />
<skill name="MAGE_LIGHTNING" hotkey="MACRO" priority="80" />
<skill name="MAGE_PURGATORY_FIRE" hotkey="MACRO" priority="60" />
<skill name="DRUID_RECOVER" hotkey="MACRO" priority="100" hpper="80" />
<skill name="MAGE_ENERGY_INFLUX" hotkey="MACRO" priority="50" inbattle="false" />
<skill name="MAGE_ELEMENTAL_CATALYST" hotkey="MACRO" priority="50" inbattle="false" />
<skill name="MAGE_INTENSIFICATION" hotkey="MACRO" priority="50" inbattle="false" />
<skill name="MAGE_ENERGY_WELL" hotkey="MACRO" priority="50" inbattle="false" />
<skill name="MAGE_PERCEPTION" hotkey="MACRO" priority="50" inbattle="true" />
<skill name="MAGE_MAGIC_TARGET" hotkey="MACRO" priority="50" inbattle="true" />
<skill name="DRUID_SAVAGE_BLESSING" hotkey="MACRO" priority="50" inbattle="true" />
</skills_mage>
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#11
Post
by poioip » Sat Feb 04, 2012 11:52 pm
kuripot wrote:
Code: Select all
until 5 > target.HP/target.MaxHP*100
instead of 5 try using 0 because if the enemy's hp is liss than 5% and not dead it may not attack
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("CLASS_SKILLNAME")
player:cast("CLASS_SKILLNAME")
player:cast("CLASS_SKILLNAME")
player:cast("CLASS_SKILLNAME")
player:cast("CLASS_SKILLNAME")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
replace CLASS_SKILLNAME with ur own skills and u need in ur prefered order and tada done
-
kuripot
- Posts: 493
- Joined: Mon Nov 07, 2011 9:14 pm
#12
Post
by kuripot » Sun Feb 05, 2012 12:20 am
i know what you said..
i only want to say
this is not working
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
when i try to edit and it's work.... i don't know why
Code: Select all
player:checkSkills(true) -- buff and heal
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
player:fight()
end
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#13
Post
by poioip » Sun Feb 05, 2012 1:07 pm
basically change
into
kuripot wrote:i know what you said..
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
into
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
Last edited by
poioip on Sun Feb 05, 2012 5:28 pm, edited 1 time in total.
-
kuripot
- Posts: 493
- Joined: Mon Nov 07, 2011 9:14 pm
#14
Post
by kuripot » Sun Feb 05, 2012 2:38 pm
poioip wrote:
kuripot wrote:i know what you said..
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
into
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
what the different???
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#15
Post
by poioip » Sun Feb 05, 2012 5:31 pm
kuripot wrote:poioip wrote:
kuripot wrote:i know what you said..
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
into
Code: Select all
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
what the different???
before lisa made a typing error
change that into
-
poioip
- Posts: 18
- Joined: Tue Jul 12, 2011 8:14 pm
#16
Post
by poioip » Tue Feb 07, 2012 7:00 pm
how do i get the distance away from target?
and how to find the # of mobs within the range of x units?
-
rock5
- Posts: 12173
- Joined: Tue Jan 05, 2010 3:30 am
- Location: Australia
#17
Post
by rock5 » Wed Feb 08, 2012 12:09 am
poioip wrote:how do i get the distance away from target?
Assuming you already have a target, let's call it "target".
Code: Select all
distance(player.X, player.Z, target.X, target.Z)
poioip wrote:and how to find the # of mobs within the range of x units?
The bot doesn't save this information so you would have to create a function for it. I posted a function for counting aggro mobs awhile back. I could modify that.
I'll put them into a file for safe keeping and post the whole file. Just put it in your userfunctions folder or copy the function into your waypoint onload section.
To use
The other function is
-
Attachments
-
- userfunction_countmobs.lua
- (924 Bytes) Downloaded 216 times
- 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.”
-
kuripot
- Posts: 493
- Joined: Mon Nov 07, 2011 9:14 pm
#18
Post
by kuripot » Mon Feb 13, 2012 11:45 pm
lisa wrote:Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
while (true) do
player:checkSkills(true) -- self buff and heal
player:update()
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
or if you don't want it to always check for combat then you can add a toggle key to turn on and off if looking or not.
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
local afk = false
while (true) do
player:checkSkills(true) -- self buff and heal
if keyPressed(key.VK_U) then
if afk == true then
afk = false
print("Please don't let me die as I am weak and won't defend myself")
else
afk = true
print("I will defend our honor while you go powder your nose")
end
end
player:update()
if afk == true then
if player.Battling then
player:target(player:findEnemy(true, nil, evalTargetDefault, player.IgnoreTarget));
if player:haveTarget() then
player:fight()
end
end
end
if keyPressed(key.VK_F) then
target = player:getTartget()
if target then
repeat
player:checkSkills(true) -- self buff and heal
player:cast("MAGE_FLAME")
player:cast("MAGE_FIREBALL")
target:update()
until 5 > target.HP/target.MaxHP*100
end
end
end
</onLoad>
</waypoints>
key U is the toggle on and off for afk.
i try to learn and edit.. for another situation... that if i find a given mobs... even he dont attack me... i will him first
but not working
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
local afk = false
while (true) do
player:checkSkills(true) -- self buff and heal
if keyPressed(key.VK_U) then
if afk == true then
afk = false
print("Please don't let me die as I am weak and won't defend myself")
else
afk = true
print("I will defend our honor while you go powder your nose")
end
end
player:update()
if afk == true then
if player:findNearestNameOrId(Spirit Core) then
player:target(Spirit Core)
player:fight()
end
end
end
player:checkSkills(true) -- buff and heal
if keyPressed(key.VK_F) then
target = player:getTarget()
if target then
player:fight()
end
end
end
</onLoad>
</waypoints>
and also
Code: Select all
if player:findNearestNameOrId(389a6e00) then
local Spirit Core = player:findNearestNameOrId(389a6e00)
player:target(Spirit Core)
player:fight()
-
lisa
- Posts: 8332
- Joined: Tue Nov 09, 2010 11:46 pm
- Location: Australia
#19
Post
by lisa » Tue Feb 14, 2012 12:09 am
kuripot wrote: if player:findNearestNameOrId(389a6e00) then
local Spirit Core = player:findNearestNameOrId(389a6e00)
player:target(Spirit Core)
player:fight()
Pretty sure having a space in a variable is a bad thing.
Also the Id can't be right, must be 6 numbers.
I get spirit core to be 105299
Code: Select all
local core = player:findNearestNameOrId(105299)
if core then
player:target(core)
player:fight()
end
Who is online
Users browsing this forum: Ahrefs [Bot] and 3 guests