Page 1 of 1
dod
Posted: Sun Oct 06, 2013 4:58 am
by Supergala
i have a problem when farm first boss in dod....my main attack and target okander but when i kill and loot rombot say me always clearing target...why?
Code: Select all
</waypoint>
<!-- # 9 --><waypoint x="2153" z="2569" y="421"> </waypoint>
<!-- # 10 --><waypoint x="2331" z="2361" y="401" tag="okander">
if CountObjectsNearPoint("Okander") > 0 then
if not player.Battling then
yrest(250)
end
__WPL:setWaypointIndex(10)
else
__WPL:setDirection(WPT_BACKWARD)
repeat
yrest(500*math.random(4))
local okander = player:findNearestNameOrId("okander")
if not okander then break end
player:target(okander)
player:update()
player:loot()
until inventory:itemTotalCount("Ancient Memento") > mentos
end
</waypoint>
<!-- # 11 --><waypoint x="1704" z="-4756" y="752" tag="merchant">
player:merchant(npcName)
RoMScript("CloseAllWindows()")
__WPL:setWaypointIndex(2)
</waypoint>
<!-- To the Sewers -->
<!-- # 1 --><waypoint x="-3813" z="5117" y="19" tag="res">
__WPL:setForcedWaypointType("RUN")
player:mount()
</waypoint>
<!-- # 2 --><waypoint x="-3722" z="5220" y="12"> </waypoint>
<!-- # 3 --><waypoint x="-3664" z="5311" y="11"> </waypoint>
<!-- # 4 --><waypoint x="-3564" z="5362" y="11"> </waypoint>
<!-- # 5 --><waypoint x="-3458" z="5434" y="9"> </waypoint>
<!-- # 6 --><waypoint x="-3356" z="5530" y="10"> </waypoint>
<!-- # 7 --><waypoint x="-3252" z="5629" y="3"> </waypoint>
<!-- # 8 --><waypoint x="-3164" z="5736" y="4"> </waypoint>
<!-- # 9 --><waypoint x="-3025" z="5864" y="2"> </waypoint>
<!-- # 10 --><waypoint x="-2903" z="5980" y="10"> </waypoint>
<!-- # 11 --><waypoint x="-2842" z="6059" y="9"> </waypoint>
<!-- # 12 --><waypoint x="-2782" z="6170" y="10"> </waypoint>
<!-- # 13 --><waypoint x="-2712" z="6284" y="4"> </waypoint>
<!-- # 14 --><waypoint x="-2622" z="6353" y="6"> </waypoint>
<!-- # 15 --><waypoint x="-2524" z="6397" y="15"> </waypoint>
<!-- # 16 --><waypoint x="-2469" z="6465" y="19"> </waypoint>
<!-- # 17 --><waypoint x="-2472" z="6526" y="30"> </waypoint>
<!-- # 18 --><waypoint x="-2517" z="6567" y="38"> </waypoint>
<!-- # 19 --><waypoint x="-2595" z="6612" y="49"> </waypoint>
<!-- # 20 --><waypoint x="-2726" z="6687" y="32"> </waypoint>
<!-- # 21 --><waypoint x="-2786" z="6721" y="42"> </waypoint>
<!-- # 22 --><waypoint x="-2847" z="6764" y="40"> </waypoint>
<!-- # 23 --><waypoint x="-2865" z="6824" y="40"> </waypoint>
<!-- # 24 --><waypoint x="-2826" z="6956" y="40"> </waypoint>
<!-- # 25 --><waypoint x="-2851" z="7047" y="15"> </waypoint>
<!-- # 26 --><waypoint x="-2838" z="7121" y="-24"> </waypoint>
<!-- # 27 --><waypoint x="-2912" z="7231" y="-96">
GoThroughPortal(200)
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
</waypoint>
<!-- # 28 --><waypoint x="43" z="-882" y="857">
local jake = GetIdName(115572)
NPCTeleport(jake,"Please transport me.")
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
</waypoint>
</waypoints>
profile:
Code: Select all
<onLeaveCombat><![CDATA[
;
]]></onLeaveCombat>
<onLevelup><![CDATA[
-- Additional Lua code to execute after having a levelup
-- and levelup the skills for a new character (mage or priest recommended)
-- e.g. sendMacro("SetSpellPoint(_tabnr, _skillnr);"); would levelup a skill
]]></onLevelup>
<onSkillCast><![CDATA[
target = player:getTarget();
if target.Id == 103857 then
if sendMacro("madman.Time") >= 1 then
player:clearTarget();
printf("Running\n")
yrest(4000)
end
end
Re: dod
Posted: Sun Oct 06, 2013 11:16 pm
by rock5
I've never Killed Okander myself but, as far as I know, the only way to bot him is to use Lisas madman addon.
http://www.solarstrike.net/phpBB3/viewt ... 736#p42736
Follow all the instructions there.
Re: dod
Posted: Mon Oct 07, 2013 7:44 pm
by lisa
my guess is the issue is here.
Code: Select all
<!-- # 10 --><waypoint x="2331" z="2361" y="401" tag="okander">
if CountObjectsNearPoint("Okander") > 0 then
if not player.Battling then
yrest(250)
end
__WPL:setWaypointIndex(10)
else
__WPL:setDirection(WPT_BACKWARD)
repeat
yrest(500*math.random(4))
local okander = player:findNearestNameOrId("okander")
if not okander then break end
player:target(okander)
player:update()
player:loot()
until inventory:itemTotalCount("Ancient Memento") > mentos
end
</waypoint>
Add in some prints, as it seems to be stuck in the loop of trying to loot, also if it is saying it is skipping waypoint 10 and going to 11 that will seriously affect how the WP will work, I believe there is an option that makes it not skip but I don't recall it off hand.
Re: dod
Posted: Mon Oct 07, 2013 9:03 pm
by Supergala
bot loot boss ,but the problem is after this....i don't understand how i must change ty lisa
Re: dod
Posted: Tue Oct 08, 2013 1:20 am
by lisa
Yeah from ur pic in the message you sent me, the issue is that it is skiping WP 10.
it looks like it is trying to get to wp 10 and finds oakander first and so kills him, it then checks player coords and decides it is closer to waypoint 11. So you can either change the coords of the waypoints or deal with it in another way.
Maybe add another waypoint between 10 and 11 to deal with it trying to go to 11 and not doing your code in 10.
So make another waypoint near the back of the room where oakander is and just set it to go to waypoint "10"
I would suguest using the tags aswell instead of the index.
Code: Select all
__WPL:setWaypointIndex(__WPL:findWaypointTag("okander"))
Re: dod
Posted: Tue Oct 08, 2013 4:57 am
by rock5
Note: if a waypoint is skipped it will still execute the code in it. So if it's killing Okander before reaching waypoint 10, when it decides to skip it and go to 11, it still executes the code in 10 and is probably getting stuck there. I just thought I'd clarify that. So, yeah, like Lisa said, you want it to reach waypoint 10 before seeing Okander.
Re: dod
Posted: Tue Oct 08, 2013 1:10 pm
by Bill D Cat
I'd have to disagree with that assessment. I've had many waypoints skipped due to my character attacking a target and moving on to the next waypoint, effectively skipping quest goals along the way. I've had to add checks that reroute the character back to a previous waypoint to ensure that the code gets executed.
Re: dod
Posted: Tue Oct 08, 2013 2:02 pm
by rock5
It definitely does execute it but of course it doesn't mean it will work. For instance if you want to collect something but you are too far away from it then the code might not work. But it does run.
Here is the code that displays the skipped waypoint message and immediately after that it runs the waypoint code.
Code: Select all
cprintf(cli.green, "We overrun waypoint #%d, skip it and move on to #%d\n",currentWp.wpnum, nextWp.wpnum);
WPLorRPL:advance(); -- set next waypoint
-- execute the action from the skiped wp
if( currentWp.Action and type(currentWp.Action) == "string" ) then
local actionchunk = loadstring(currentWp.Action);
assert( actionchunk, sprintf(language[150], WPLorRPL.CurrentWaypoint) );
actionchunk();
end
Re: dod
Posted: Tue Oct 08, 2013 6:31 pm
by lisa
This is where adding trouble shooting prints comes into use, like i suguested earlier.
Add something like
print("I am in loop at waypoint 10")
Code: Select all
<!-- # 10 --><waypoint x="2331" z="2361" y="401" tag="okander">
if CountObjectsNearPoint("Okander") > 0 then
if not player.Battling then
yrest(250)
end
__WPL:setWaypointIndex(10)
else
__WPL:setDirection(WPT_BACKWARD)
repeat
yrest(500*math.random(4))
local okander = player:findNearestNameOrId("okander")
if not okander then break end
player:target(okander)
player:update()
player:loot()
local curmems = inventory:itemTotalCount("Ancient Memento")
print("I am in loop at waypoint 10, mentos was: ".. mentos.." current mems are: "..curmems)
until curmems > mentos
end
</waypoint>
Re: dod
Posted: Sat Oct 12, 2013 8:46 am
by Supergala
noe work but i have another problem....follower enter in party and enter in istance...when the screen appears the follower aggro mobs then the leader goes into the boss room and begins to kill the priest still in the hallway ..... so I would know how to wait for the tracker in the hallway waiting for the leader clean everything ..... if i stop the bot and followers expect the leader clean the trash and attack the boss happens instead of the follower enters from the boss goes back and back without wait for the leader to kill him and putty on the gates closed, at the time that the leader of the boss kills the follower continues to exit the istance and not loot the boss ... can you help?
this is follower waypoint:(i'd like follower buff leader ):
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad><![CDATA[
DOD_PARTY_LEADER = "Leader"
changeProfileOption("AUTO_ELITE_FACTOR",1000)
changeProfileOption("LOOT_IN_COMBAT",false)
EventMonitorStart("DoD", "CHAT_MSG_PARTY")
function waitForLeader()
yrest(100)
keyboardPress(settings.hotkeys.JUMP.key)
while true do
cprintf(cli.lightred,"Waiting for leader...\n")
local time, moreToCome, _name, _message = EventMonitorCheck("DoD","4,1",true)
if _message then
string.lower(_message)
end
if _message and (_message == "enter" or _message == "ready" or _message == "okander") then
break
else
yrest(2000)
end
player:update()
end
cprintf(cli.lightgreen,"Party is ready!\n")
end
function CountObjectsNearPoint(_nameorid, _point, inrange, printnames)
if type(_point) ~= "table" then _point = {player.X,player.Z,player.Y} end
local objectList = CObjectList();
local detected = {}
objectList:update()
for i = 0,objectList:size() do
local obj = objectList:getObject(i)
if obj ~= nil and (obj.Id == _nameorid or obj.Name == _nameorid) and obj.Address ~= player.Address and obj.Name ~= "<UNKNOWN>" and (inrange == nil or inrange >= distance(_point.X,_point.Z,_point.Y,obj.X,obj.Z,obj.Y) ) then
if printnames then
table.insert(detected,obj.Name)
end
end
end
if #detected > 0 then
cprintf(cli.yellow,"Objects in range:\n")
for i = 1, #detected do
cprintf(cli.pink,detected[i].."\t")
end
printf("\n")
end
return #detected
end
npcName = GetIdName(115536) -- Isaac Haden
function visitmerchant()
if inventory:getMainHandDurability() < 95 or inventory:itemTotalCount(0) < 12 then
return true
else
return false
end
end
mentos = 0
]]></onLoad>
<!-- # 1 --><waypoint x="1645" z="-4908" y="752">
__WPL:setDirection(WPT_FORWARD)
if visitmerchant() then
changeProfileOption("WAYPOINT_DEVIATION", 25)
__WPL:setWaypointIndex(11)
end
</waypoint>
<!-- # 2 --><waypoint x="1662" z="-4970" y="760"> </waypoint>
<!-- # 3 --><waypoint x="1660" z="-5072" y="760">
changeProfileOption("WAYPOINT_DEVIATION", 75)
</waypoint>
<!-- # 4 --><waypoint x="1665" z="-5069" y="760" tag="entrance">
changeProfileOption("WAYPOINT_DEVIATION", 0)
player:faceDirection(math.atan2(-5124 - player.Z, 1667 - player.X))
waitForLeader()
__WPL:setForcedWaypointType("RUN")
GoThroughPortal(200)
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
</waypoint>
<!-- # 5 --><waypoint x="1793" z="2880" y="433" tag="exit">
if __WPL.Direction == WPT_BACKWARD then
__WPL:setForcedWaypointType("RUN")
GoThroughPortal(200)
player:update()
if getZoneId() ~= 209 then
if RoMScript("GetNumPartyMembers()") > 1 then
RoMScript("LeaveParty()")
waitForLoadingScreen(15)
else
RoMScript("SendWedgePointReport()")
waitForLoadingScreen(75)
end
__WPL:setDirection(WPT_FORWARD)
end
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
end
</waypoint>
<!-- # 6 --><waypoint x="1892" z="2887" y="433"> </waypoint>
<!-- # 7 --><waypoint x="2043" z="2699" y="433"> </waypoint>
<!-- # 8 --><waypoint x="2124" z="2602" y="432">
if __WPL.Direction == WPT_FORWARD then
waitForLeader()
mentos = inventory:itemTotalCount("Ancient Memento")
end
</waypoint>
<!-- # 9 --><waypoint x="2153" z="2569" y="421"> </waypoint>
<!-- # 10 --><waypoint x="2331" z="2361" y="401" tag="okander">
if CountObjectsNearPoint("Okander") > 0 then
if not player.Battling then
yrest(250)
end
__WPL:setWaypointIndex(10)
else
__WPL:setDirection(WPT_BACKWARD)
repeat
yrest(500*math.random(4))
local okander = player:findNearestNameOrId("okander")
if not okander then break end
player:target(okander)
player:update()
player:loot()
local curmems = inventory:itemTotalCount("Ancient Memento")
print("I am in loop at waypoint 10, mentos was: ".. mentos.." current mems are: "..curmems)
until curmems > mentos
end
</waypoint>
<!-- # 11 --><waypoint x="1704" z="-4756" y="752" tag="merchant">
player:merchant(npcName)
RoMScript("CloseAllWindows()")
__WPL:setWaypointIndex(2)
</waypoint>
<!-- To the Sewers -->
<!-- # 1 --><waypoint x="-3813" z="5117" y="19" tag="res">
__WPL:setForcedWaypointType("RUN")
player:mount()
</waypoint>
<!-- # 2 --><waypoint x="-3722" z="5220" y="12"> </waypoint>
<!-- # 3 --><waypoint x="-3664" z="5311" y="11"> </waypoint>
<!-- # 4 --><waypoint x="-3564" z="5362" y="11"> </waypoint>
<!-- # 5 --><waypoint x="-3458" z="5434" y="9"> </waypoint>
<!-- # 6 --><waypoint x="-3356" z="5530" y="10"> </waypoint>
<!-- # 7 --><waypoint x="-3252" z="5629" y="3"> </waypoint>
<!-- # 8 --><waypoint x="-3164" z="5736" y="4"> </waypoint>
<!-- # 9 --><waypoint x="-3025" z="5864" y="2"> </waypoint>
<!-- # 10 --><waypoint x="-2903" z="5980" y="10"> </waypoint>
<!-- # 11 --><waypoint x="-2842" z="6059" y="9"> </waypoint>
<!-- # 12 --><waypoint x="-2782" z="6170" y="10"> </waypoint>
<!-- # 13 --><waypoint x="-2712" z="6284" y="4"> </waypoint>
<!-- # 14 --><waypoint x="-2622" z="6353" y="6"> </waypoint>
<!-- # 15 --><waypoint x="-2524" z="6397" y="15"> </waypoint>
<!-- # 16 --><waypoint x="-2469" z="6465" y="19"> </waypoint>
<!-- # 17 --><waypoint x="-2472" z="6526" y="30"> </waypoint>
<!-- # 18 --><waypoint x="-2517" z="6567" y="38"> </waypoint>
<!-- # 19 --><waypoint x="-2595" z="6612" y="49"> </waypoint>
<!-- # 20 --><waypoint x="-2726" z="6687" y="32"> </waypoint>
<!-- # 21 --><waypoint x="-2786" z="6721" y="42"> </waypoint>
<!-- # 22 --><waypoint x="-2847" z="6764" y="40"> </waypoint>
<!-- # 23 --><waypoint x="-2865" z="6824" y="40"> </waypoint>
<!-- # 24 --><waypoint x="-2826" z="6956" y="40"> </waypoint>
<!-- # 25 --><waypoint x="-2851" z="7047" y="15"> </waypoint>
<!-- # 26 --><waypoint x="-2838" z="7121" y="-24"> </waypoint>
<!-- # 27 --><waypoint x="-2912" z="7231" y="-96">
GoThroughPortal(200)
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
</waypoint>
<!-- # 28 --><waypoint x="43" z="-882" y="857">
local jake = GetIdName(115572)
NPCTeleport(jake,"Please transport me.")
__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z,player.Y))
</waypoint>
</waypoints>
Re: dod
Posted: Sat Oct 12, 2013 8:57 am
by Supergala
i add from leader to follower the waypoint section posted lisa where leader skip waypoint after kill okander for exit from istance,infact before follower after kill boss say"clearing target" but probably now the bot's follower don't understand must wait boss kill and exit