First of all, one of waypoint file seems to be bugged somehow. Sometimes it chose the wrong waypoint or one I never remembered to put there.
It should start from Snoop and through Lehman end at Varanas Bank on Central Plaza, but my chars often goes other way or ends under the bridge (yeah, I know it's weird). The funny thing is that it looks like it bugs if I'm not around. I could sit many hours near computer and, for example, read a book and it works fine. But when I go to school or take a nap it happens to the next char which runs the script. I put the code up here, hope you guys will find something about it.
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints type="NORMAL">
<!-- #1 --><waypoint x="-7062" z="-4297" y="171"> </waypoint>
<!-- #2 --><waypoint x="-6755" z="-3774" y="166"> </waypoint>
<!-- #3 --><waypoint x="-6375" z="-3854" y="165"> </waypoint>
<!-- #4 --><waypoint x="-6341" z="-3914" y="162">
player:target_NPC("Snoop the Stubborn"); yrest(1000);
sendMacro("ChoiceOption(1);");
waitForLoadingScreen();
player:update();
</waypoint>
<!-- #5 --><waypoint x="2697" z="965" y="49"> </waypoint>
<!-- #6 --><waypoint x="2777" z="960" y="54">
player:target_NPC("Lieve"); yrest(1000);
sendMacro("ChoiceOption(1);");
waitForLoadingScreen();
player:update();
yrest(2000);
</waypoint>
<!-- #7 --><waypoint x="5267" z="-3966" y="60"> </waypoint>
<!-- #8 --><waypoint x="5232" z="-4009" y="60"> </waypoint>
<!-- #9 --><waypoint x="5358" z="-4178" y="66"> </waypoint>
<!-- #10 --><waypoint x="5520" z="-4292" y="61"> </waypoint>
<!-- #11 --><waypoint x="5522" z="-4426" y="65">
player:target_NPC("Lehman"); yrest(1000);
sendMacro("OnClick_QuestListButton(1,1)"); yrest(2000);
sendMacro("AcceptQuest()"); yrest(2000);
player:target_NPC("Lehman");
sendMacro("OnClick_QuestListButton(3,1)"); yrest(2000);
sendMacro("CompleteQuest()"); yrest(2000);
</waypoint>
<!-- #12 --><waypoint x="5519" z="-4305" y="61"> </waypoint>
<!-- #13 --><waypoint x="5310" z="-4125" y="66"> </waypoint>
<!-- #14 --><waypoint x="5225" z="-4006" y="60"> </waypoint>
<!-- #15 --><waypoint x="5282" z="-3939" y="60"> </waypoint>
<!-- #16 --><waypoint x="5282" z="-3895" y="60">
player:target_NPC("Lyeve"); yrest(1000);
sendMacro("ChoiceOption(2);");
waitForLoadingScreen();
player:update();
yrest(2000);
</waypoint>
<!-- #17 --><waypoint x="4721" z="-2127" y="115"> </waypoint>
<!-- #18 --><waypoint x="4571" z="-2195" y="103">
LogNextToon(); <!-- I'm using modified version of this function, which I found up there, so I don't have to put in this waypoint any ending script -->
yrest(5000);
loadPaths("alt1-3"); <!-- Loop script for another char -->
</waypoint>
</waypoints>I ended up with:
Code: Select all
<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
chars = {"Brolld","Paraga","Parage","Mudkib","Mudkif"};
RoMScript("UMMFrame:Hide()");
if player.Name == "Brollyy" then
ChangeChar(2,1);
waitForLoadingScreen();
yrest(1000); player:update();
index = 1;
index1 = 1;
else
<!-- index means order of alt I'm onto now. I use only 7 chars on the one account, so I had to create such enourmous operation -->
index = (tonumber(RoMScript("CHARACTER_SELECT.selectedIndex;"))-1)+(7*(tonumber(RoMScript("LogID;"))-1));
<!-- index1 is for sending mails to chars which make Tier 7 stone -->
index1 = ((index-(index % 4))/4)+1;
end
</onLoad>
<!-- # 1 --><waypoint x="4569" z="-2205" y="103">
repeat
player:target_Object("Mailbox"); yrest(1000);
UMM_TakeMail(); yrest(1000);
if index ~= 21 and index % 4 ~= 0 then
Fusion_MakeMaxStones("Excellent Belt",4); yrest(1000);
UMM_SendByNameOrId(chars[index1],"Mana Stone Tier 4"); yrest(1000);
UMM_SendByNameOrId(chars[index1],"Mana Stone Tier 5"); yrest(1000);
inventory:update();
if inventory:getItemCount("Excellent Belt") > 0 then
UMM_SendByNameOrId(chars[index1],"Excellent Belt"); yrest(1000);
end
if inventory:getItemCount("Random Fusion Stone") > 0 then
UMM_SendByNameOrId(chars[index1],"Random Fusion Stone"); yrest(1000);
end
elseif index % 4 == 0 then
Fusion_MakeTier7(); yrest(1000);
UMM_SendByNameOrId("Brollyy","Mana Stone Tier 7"); yrest(1000);
elseif index == 21 then
<!-- It's the last alt. I know I could do that better. Lazy me. -- >
Fusion_MakeMaxStones("Excellent Belt", 4); yrest(1000);
UMM_SendByNameOrId("Brollyy","Mana Stone Tier 4"); yrest(1000);
UMM_SendByNameOrId("Brollyy","Mana Stone Tier 5"); yrest(1000);
inventory:update();
if inventory:getItemCount("Excellent Belt") > 0 then
UMM_SendByNameOrId("Brollyy","Excellent Belt"); yrest(1000);
elseif inventory:getItemCount("Random Fusion Stone") > 0 then
UMM_SendByNameOrId("Brollyy","Random Fusion Stone"); yrest(1000);
end
end
index = index + 1;
index1 = ((index-(index % 4))/4)+1;
RoMScript("UMMFrame:Hide()");
LogNextToon();
player:update();
yrest(2000);
until index == 22 <!-- number of alts + 1 -- >
RoMScript("UMMFrame:Hide()");
ChangeChar(1,1);
waitForLoadingScreen();
error("Laczenie zakonczone."); <!-- yeah, I'm from Poland. Happy now? -->
</waypoint>
</waypoints>Last problem is rather the cause of RoMBot mechanics. When my waypoints go insane and unsticking count is above 10, my char log out and bot stops. Is there any possibility of making script which will change char to another instead of logging it out?
I do realize that my English isn't the best, but I think I told everything clear enough for you to understand. I will be thankful if someone help me up there