i don't think that my bot have more 30sec for loading screen
I noticed that if my camera is away at max distance, I have more chance of having a bug, and strangely my bot does not resurection, it tries to invoke my pet... :s
so, therefore have less bug, I zoom to the max and never even my player
it works better now .. but when even a bug some time
i can post my waypoint, but its not micromacro (bot) attack boss, i have make a function for that... all instance is on function... i prefer that, my bot have a better DPS
if my player use potion speed cast, my function donc wait Cool down, he try if can cast skill, if not.. he try next cast
userfunction_ntfunction: exemple function
Code: Select all
function ntAttackCombo()
if(0 >= player.HP/player.MaxHP*100) then
return false;
end
if player.Name == "player name" or player.Name == "player name" then
if player.Class1 == 2 and player.Class2 == 6 then -- scout/knight
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
elseif player.Class1 == 2 and player.Class2 == 5 then -- scout/priest
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_PRIEST_SNIPE") then return false; end
if not player:ntCast("SCOUT_WRIST_ATTACK") then return false; end
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PRIEST_SNIPE") then return false; end
elseif player.Class1 == 2 and player.Class2 == 1 then -- scout/warior
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_PRIEST_SNIPE") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_VAMPIRE_ARROWS") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_REFLECTED_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_COMBO_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_PRIEST_SNIPE") then return false; end
if not player:ntCast("SCOUT_PIERCING_ARROW") then return false; end
if not player:ntCast("SCOUT_SHOT") then return false; end
if not player:ntCast("SCOUT_WIND_ARROWS") then return false; end
end
elseif player.Name == "player name" then
repeat
Attack();
if not player:ntCast("WARRIOR_SAVAGE_WHIRLWIND") then return false; end
if not player:ntCast("WARDEN_POWER_OF_THE_WOOD_SPIRIT") then return false; end
player:update();
until player.Rage > 70;
if not player:ntCast("WARRIOR_SLASH") then return false; end
if not player:ntCast("WARRIOR_TACTICAL_ATTACK") then return false; end
if not player:ntCast("WARRIOR_PROBING_ATTACK") then return false; end
if not player:ntCast("WARRIOR_OPEN_FLANK") then return false; end
repeat
Attack();
if not player:ntCast("WARRIOR_SAVAGE_WHIRLWIND") then return false; end
if not player:ntCast("WARDEN_POWER_OF_THE_WOOD_SPIRIT") then return false; end
player:update();
until player.Rage > 70;
if not player:ntCast("WARRIOR_SLASH") then return false; end
if not player:ntCast("WARRIOR_TACTICAL_ATTACK") then return false; end
if not player:ntCast("WARRIOR_PROBING_ATTACK") then return false; end
if not player:ntCast("WARRIOR_OPEN_FLANK") then return false; end
else
player:fight();
return false;
end
return true;
end;
and my waypoint is: little exemple --->
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
<onLoad>
if RoMScript("GetZoneID()") == 15 then
loadPaths("dodreturn");
player:update();
end;
function PortailEnter()
keyboardHold( settings.hotkeys.MOVE_FORWARD.key );
yrest(200);
keyboardRelease( settings.hotkeys.MOVE_FORWARD.key );
waitForLoadingScreen(30);
end
function PortailOut()
keyboardHold( settings.hotkeys.MOVE_FORWARD.key );
yrest(200);
keyboardRelease( settings.hotkeys.MOVE_FORWARD.key );
waitForLoadingScreen(30);
end
function Invite()
if player.Name == "MYNAME" then
sendMacro('InviteByName("2nd MANE")');
yrest(10);
sendMacro('InviteByName("3rdNAMEr")');
end
if (not player:hasBuff("506684")) then
inventory:useItem(207200);
end
end
settings.profile.mobs = {"aucun mob"};
settings.profile.options.AUTO_ELITE_FACTOR = 9999;
settings.profile.options.MAX_FIGHT_TIME = 15;
settings.profile.options.MAX_TARGET_DIST = 300
settings.options.MELEE_DISTANCE = 105;
function NeedReparation()
local dura = inventory:getMainHandDurability();
printf("Weapon Durability:%s\n", dura);
if (85 > dura) then
player:update();
print("---------== GO REPAIR ==--------");
__WPL:setWaypointIndex(__WPL:findWaypointTag("repair"));
end
if( 3 > inventory:getItemCount(0) ) then
print("---------== GO SELL ==--------");
__WPL:setWaypointIndex(__WPL:findWaypointTag("repair"));
end
end
unregisterTimer("timedSetWindowName");
local _starttime = os.time()
local _startmomentos = inventory:itemTotalCount(206879)
local function _window()
local _timepassed = (os.time() - _starttime)/3600 -- total time in hours
local _gatheredmomentos = inventory:itemTotalCount(206879) - _startmomentos -- total momentos aquired since starting
local _momentosperhour = (_gatheredmomentos/_timepassed)
local _currentmomentos = inventory:itemTotalCount(206879)
setWindowName(getHwnd(),sprintf(player.Name.." Momentos: ".._currentmomentos..", ".._momentosperhour.." Momentos/Hr, Time Passed:".._timepassed.."Hrs"))
end
registerTimer("setwindow", secondsToTimer(1), _window);
</onLoad>
--------------------------------------------------------------------------------------------------------------------------------------------------
<!-- # 1 --><waypoint x="1644" z="-4921" y="752" tag="start">
print("---------============= 1ere phase / Guide Spirituel ===============--------");
speed(73);
SlashCommand("ILG destroy");
yrest(15);
Invite()
SlashCommand("ILG inv");
SlashCommand("ILG inv");
sendMacro('SetInstanceLevel("normal")')
NeedReparation()
</waypoint>
<!-- # 2 --><waypoint x="1670" z="-5077" y="760" tag="In">sendMacro('SetInstanceLevel("normal")'); </waypoint>
<!-- # 3 --><waypoint x="1688" z="-5162" y="759">
PortailEnter()
if RoMScript("GetZoneID()") == 209 then
__WPL:setWaypointIndex(__WPL:findWaypointTag("In"))
else
player:update();
end
</waypoint>
<!-- # 1 --><waypoint x="1772" z="2886" y="433">
fly();
speed(73);
changeProfileOption("LOOT", false);
if player:hasBuff(506684) then
teleport(1890,2889,509);
end
</waypoint>
<!-- # 2 --><waypoint x="1890" z="2889" y="509">teleport(1985,2776,497); </waypoint>
<!-- # 3 --><waypoint x="1985" z="2776" y="497">
if player:hasBuff(506684) then
teleport(2045,2701,482);
end
</waypoint>
<!-- # 4 --><waypoint x="2045" z="2701" y="482"> </waypoint>
<!-- # 5 --><waypoint x="2124" z="2609" y="443">flyoff(); teleport(2229,2487,401); </waypoint>
<!-- # 6 --><waypoint x="2229" z="2487" y="401">
local bossname = "Okander Mallen, le \"Fou\""
changeProfileOption("MAX_TARGET_DIST", 300);
ntAdjustPosition(2226, 2478);
ntFacePosition(2334, 2364);
changeProfileOption("LOOT", true);
player:target_Unit(bossname);
if ntAttackableTarget() then
ntCheckPotions_Full(_inParty)
player:updateBuffs();
if player.Name == "MYNAME" then
player:ntCast("SCOUT_SPIRITUAL_LEADER", true);
end;
ntBossBuff_0m(true);
while true do
player:target_Unit(bossname);
if not ntAttackableTarget() then
break;
end
while ntAttackCombo() do end
end
player:target_Unit(bossname);
ntLootTarget();
end
changeProfileOption("LOOT", false);
teleport(2158,2561,417);
</waypoint>
<!-- # 7 --><waypoint x="2158" z="2561" y="417">fly(); speed(73);
changeProfileOption("MAX_TARGET_DIST", 50);
changeProfileOption("LOOT", false);
teleport(2075,2659,470);
</waypoint>
<!-- # 8 --><waypoint x="2075" z="2659" y="470">
</waypoint>
<!-- # 9 --><waypoint x="2054" z="2687" y="495">teleport(1945,2794,510); </waypoint>
<!-- # 10 --><waypoint x="1945" z="2794" y="510"> </waypoint>
<!-- # 11 --><waypoint x="1884" z="2855" y="510">teleport(1774,2883,433); flyoff(); </waypoint>
<!-- # 11 --><waypoint x="1774" z="2883" y="433" type="NORMAL">changeProfileOption("MAX_TARGET_DIST", 50); </waypoint>
<!-- # 12 --><waypoint x="1696" z="2891" y="433" tag="Out">
PortailOut()
if RoMScript("GetZoneID()") == 128 then
teleport(1774,2883,433);
yrest(100);
player:faceDirection(3.14,0);
yrest(100);
keyboardHold( settings.hotkeys.MOVE_FORWARD.key );
yrest(100);
keyboardPress( key.VK_SPACE);
yrest(600);
keyboardRelease( settings.hotkeys.MOVE_FORWARD.key );
waitForLoadingScreen(30);
else
player:update();
SlashCommand("ILG destroy");
yrest(100)
SlashCommand("ILG inv");
yrest(100)
SlashCommand("ILG inv");
end
</waypoint>
CONTINUE.....
when my bot makes water dragon (110 momentos / h), ET never bug, it never falls into the void ... but I made less momentos, that's why I have a bot that works 100% in dod