Hi again!
I have another suggestion for the new xml tags, Giles.
Code:<!-- Beginig of the profile --> <TrinityZoneControl id="Azmodan" enable="1"> <TrinityZoneControl id="KeepsLvl3" enable="1"> <!-- Awful lot of code --> <TrinityZone id="Azmodan"> <!-- Azmodan code--> </TrinityZone> <TrinityZone id="KeepsLvl3"> <!-- KeepsLvl3code--> </TrinityZone>
<!-- Beginig of the profile -->
<TrinityRandomRoll id="5555" min="5" max="5" />
<TrinityRandomRoll id="6666" min="5" max="5" />
<!-- Awful lot of code -->
<TrinityIfRandom id="5555" result="5">
<!-- Azmodan code-->
</TrinityIfRandom>
<TrinityIfRandom id="6666" result="5">
<!-- KeepsLvl3code-->
</TrinityIfRandom>
Yep, I thought of that, and it would work. But in my experience some people have problems dealing withIf I didn't mis-understand you, I think you can achieve what you want with TrinityRandom with a range of 1 (to force it to a specific value, as a way to "set a variable"?)
Code:<!-- Beginig of the profile --> <TrinityRandomRoll id="5555" min="5" max="5" /> <TrinityRandomRoll id="6666" min="5" max="5" /> <!-- Awful lot of code --> <TrinityIfRandom id="5555" result="5"> <!-- Azmodan code--> </TrinityIfRandom> <TrinityIfRandom id="6666" result="5"> <!-- KeepsLvl3code--> </TrinityIfRandom>
<!--Continue profile="BigRed_CoreOnly.xml"/-->
<Continue profile="BigRed_CoreAzmodan.xml"/>
<!-- Check Damp Cellar -->
<TrinityIfSNOInRange snoid="176007" range="40">
<TrinityUseOnce id="333">
<TrinityLog questId="1" output="Found Damp Cellar!" />
<TrinityMoveToSNO questId="1" snoid="176007" pathPrecision="4" />
<While questId="1" condition="Zeta.ZetaDia.CurrentWorldId==71150">
<TrinityInteract questId="1" snoid="176007" />
<WaitTimer questId="1" WaitTime="2000" />
</While>
<TrinityMoveTo questId="1" x="109.04" y="130.4184" z="0.1000015" />
<TrinityMoveTo questId="1" x="155.7926" y="131.6428" z="0.1000012" />
<TrinityMoveTo questId="1" x="47.92988" y="131.4628" z="0.1000038" />
<While questId="1" condition="Zeta.ZetaDia.CurrentWorldId==106752">
<TrinityInteract questId="1" snoid="175467" />
<WaitTimer questId="1" WaitTime="2000" />
</While>
<TrinityMoveTo questId="1" x="2315.098" y="2562.739" z="27.1" />
</TrinityUseOnce>
</TrinityIfSNOInRange>
I have a problem with the new XML tags. I'm running a profile than runs through Old Tristram Road and checks the possible Cellars. If one its found, it will go in, clear it and continue. For example I have the following for Damp Cellar:
The bot runs the profile with no problem, checks the Cellars and if found it prints the "Cellar found!" message in DB, enters it, clears it, exits it but once exited it prints againt the message and stops. The bot doesn't continue its path and DB reports as bot stopped. The rest of the path from Tristram to Old Ruins runs without any problem, so I'm guessing the problem might be inside the TrinityIfSNOInRange... Any clue what would be wrong in the TrinityIfSNOInRange tag?
<While questId="1" condition="Zeta.ZetaDia.CurrentWorldId==106752">
<TrinityInteract questId="1" snoid="175467" />
<WaitTimer questId="1" WaitTime="2000" />
</While>
<TrinityMoveTo questId="1" x="2315.098" y="2562.739" z="27.1" />
<TrinityLog questId="1" output="Should now be successfully outside the cellar after clearing!" />
</TrinityUseOnce>
<TrinityLog questId="1" output="Outside the UseOnce tag for ID 333!" />
</TrinityIfSNOInRange>
<TrinityLog questId="1" output="Outside the main If check for cellar in range!" />
Thanks, I will try to test it that way to see if it works or where is it failing.
Also another thing, since I'm using TrinityMoveTo and sometimes I've found the bot jumps one point since it just passed through while fighting mobs, is there a way to force the bot to obey an specific TrinityMoveTo despite having passed nearby?
01 <!-- Musty Cellar -->
02 <TrinityIfSNOInRange questId="1" snoid="176007" range="50">
03 <TrinityUseOnce questId="1" id="111">
04 <TrinityLog questId="1" output="Found Musty Cellar!" />
05 <TrinityMoveToSNO questId="1" snoid="176007" pathPrecision="4" />
06 <While questId="1" condition="Zeta.ZetaDia.CurrentWorldId==71150">
07 <TrinityInteract questId="1" snoid="176007" />
08 <WaitTimer questId="1" WaitTime="2000" />
09 </While>
10 <TrinityMoveTo questId="1" x="101.7225" y="119.4111" z="0.1000005" name="Musty Cellar #1" />
11 <TrinityMoveTo questId="1" x="155.6693" y="60.14513" z="0.1000001" name="Musty Cellar #2" />
12 <TrinityMoveTo questId="1" x="110.495" y="61.63305" z="0.1000003" name="Musty Cellar #3" />
13 <TrinityMoveTo questId="1" x="101.7225" y="119.4111" z="0.1000005" name="Musty Cellar #4" />
14 <TrinityMoveTo questId="1" x="31.35483" y="120.6416" z="0.3730062" name="Musty Cellar #5" />
15 <While questId="1" condition="Zeta.ZetaDia.CurrentWorldId==80730">
16 <TrinityInteract questId="1" snoid="175467" />
17 <WaitTimer questId="1" WaitTime="2000" />
18 </While>
19 <TrinityMoveTo questId="1" x="2397.397" y="2795.226" z="27.1" name="Return to road #1" />
20 <TrinityLog questId="1" output="Outside Cellar" />
21 </TrinityUseOnce>
22 <TrinityLog questId="1" output="Outside UseOnce for ID=111" />
23 </TrinityIfSNOInRange>
24 <TrinityLog questId="1" output="Outside TrinityIf for ID=111" />
[22:31:36.536 N] Found Musty Cellar!
[22:31:39.006 N] ========== Grid segmentation resetting!!! ============
[22:32:03.776 N] ========== Grid segmentation resetting!!! ============
[22:32:05.656 N] Outside Cellar
[22:32:05.726 N] Found Musty Cellar!
[22:40:43.972 N] Found Musty Cellar!
[22:40:46.272 N] ========== Grid segmentation resetting!!! ============
[22:41:01.212 N] ========== Grid segmentation resetting!!! ============
[22:41:03.122 N] Outside Cellar
[22:41:03.172 N] Found Musty Cellar!
Hey Giles, any plans to implement Stuck Handling tags, like death handling?
<TrinityHandleStuck maxtries="8" />
<TrinityIfStuck maxtries="8">
<!-- moveto some coords -->
<!-- ExploreArea a dungeon -->
</TrinityIfStuck>
That won't solve your problem. As long the IsDone is false, it does not release the execution.
Maybe It's too deep for me, but that's what I noticed.
<TrinityUseOnce id="1" max="5">
<!-- Do stuff -->
<TrinityUseOnce id="11" max="2">
<!-- Check someplace -->
</TrinityUseOnce>
<!-- Do more stuff 1 -->
<TrinityUseOnce id="12" max="2" disableprevious="true">
<!-- Check someplace else -->
</TrinityUseOnce>
<!-- Do more stuff 2-->
</TrinityUseOnce>