What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Contracts

So far stuff is working after lots of mistakes, but the one thing I think that wont get fixed easily is the Time Out contract. Looking around for solutions but it comes down to the cr and interrupting telegraphs. If anyone has a solution so far let me know.

I play a warrior and the default CR does a great job of interrupting telegraphs. That said, you should be somewhat particular about what mobs you choose to go after, pick beefier mobs that will live longer to ensure that they actually cast something, or more likely to do so at least. If your class doesn't interrupt via the CR you're using, then that's tough.
 
Ya some will have an easier time like engis but im trying it on various chars medic and esper seem to have the hardest time and so I am looking for those kind of creatures so that they can have a chance to complete it. my profile is almost ready for the tweaking like vendors and randomizing but I am running into looping my profile. I don't know what command to give my while function so that it will just repeat itself. Ive been trying <While Condition="not IsQuestUnknown()" /> and other variations of it but it gives me,

<While Condition="not IsQuestUnknown(9937)" /> (Line #2)Microsoft.Scripting.ArgumentTypeException: Invoke() takes exactly 2 arguments (1 given)

Do you have any suggestions on how to make a profile loop itself? Sorry for being noob I'm trying to learn this quickly to get these things rolling out.
 
Ya some will have an easier time like engis but im trying it on various chars medic and esper seem to have the hardest time and so I am looking for those kind of creatures so that they can have a chance to complete it. my profile is almost ready for the tweaking like vendors and randomizing but I am running into looping my profile. I don't know what command to give my while function so that it will just repeat itself. Ive been trying <While Condition="not IsQuestUnknown()" /> and other variations of it but it gives me,

<While Condition="not IsQuestUnknown(9937)" /> (Line #2)Microsoft.Scripting.ArgumentTypeException: Invoke() takes exactly 2 arguments (1 given)

Do you have any suggestions on how to make a profile loop itself? Sorry for being noob I'm trying to learn this quickly to get these things rolling out.


Code:
<While Condition="1 == 1">

</While>

Will loop for ever.
 
Something is wrong with my profile I can get it to read the loop and the first conditions I put on it but it doesn't see the conditions inside of it. What am I doing wrong?

<While Condition="1 == 1" >
<Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard" >
<If Condition="Buddy.Contracts.Accept(Buddy.Contracts.ContractType.Pve, 1)" />
</If>
<If Condition="HasQuest(9937)" >
<While Condition="not IsQuestObjectiveComplete(9937)" >
<Interact Name="" CreatureId="" X="" Y="" Z="" MapId="" RunOnce="True" />
<CSIAction YesNoOrder="Y" DelayInputMs="500" />
<Wait Time="1" />
<MoveTo Name="" CreatureId="" X="" Y="" Z="" MapId="" />
<Grind Condition="not IsQuestObjectiveComplete(9937, 0)" >
<Grind Name="" CreatureId="" X="" Y="" Z="" MapId="" />
<GrindArea >
<Hotspot X="" Y="" Z="" Timeout="" Range="" Name="" />
</GrindArea>
</Grind>
</While>
<While Condition="IsQuestObjectiveComplete(9937)" >
<Interact Name="" CreatureId="" X="" Y="" Z="" MapId="" RunOnce="True" />
<CSIAction YesNoOrder="Y" InputDelayMs="500" />
<Wait Time="1" />
<MoveTo Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" />
<Interact CreatureName="Protostar Contract Dispenser" CreatureId="69721" X="4051.677" Y="-796.9938" Z="-2394.372" MapId="51" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard" >
<If Condition="Buddy.Contracts.Complete()" />
</If>
</While>
</If>
</While>
 
Something is wrong with my profile I can get it to read the loop and the first conditions I put on it but it doesn't see the conditions inside of it. What am I doing wrong?

<While Condition="1 == 1" >
<Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard" >
<If Condition="Buddy.Contracts.Accept(Buddy.Contracts.ContractType.Pve, 1)" />
</If>
<If Condition="HasQuest(9937)" >
<While Condition="not IsQuestObjectiveComplete(9937)" >
<Interact Name="" CreatureId="" X="" Y="" Z="" MapId="" RunOnce="True" />
<CSIAction YesNoOrder="Y" DelayInputMs="500" />
<Wait Time="1" />
<MoveTo Name="" CreatureId="" X="" Y="" Z="" MapId="" />
<Grind Condition="not IsQuestObjectiveComplete(9937, 0)" >
<Grind Name="" CreatureId="" X="" Y="" Z="" MapId="" />
<GrindArea >
<Hotspot X="" Y="" Z="" Timeout="" Range="" Name="" />
</GrindArea>
</Grind>
</While>
<While Condition="IsQuestObjectiveComplete(9937)" >
<Interact Name="" CreatureId="" X="" Y="" Z="" MapId="" RunOnce="True" />
<CSIAction YesNoOrder="Y" InputDelayMs="500" />
<Wait Time="1" />
<MoveTo Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" />
<Interact CreatureName="Protostar Contract Dispenser" CreatureId="69721" X="4051.677" Y="-796.9938" Z="-2394.372" MapId="51" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard" >
<If Condition="Buddy.Contracts.Complete()" />
</If>
</While>
</If>
</While>

Code:
			<Grind Condition="not IsQuestObjectiveComplete(9937, 0)" >
				<Grind Name="" CreatureId="" X="" Y="" Z="" MapId="" />
				<GrindArea >
					<Hotspot X="" Y="" Z="" Timeout="" Range="" Name="" />
				</GrindArea>
			</Grind>

Your grindtag is malformed, which could be causing your problems. :)
 
You mean with tab spaces into the function above it? It is I just don't know how to post in a code box like you have soz xD where it stops is right after it interacts and picks up quest, it goes through the <If Condition="HasQuest()" > completes it without doing anything inside of it, then either loops or ends if i didnt loop it.
 
Last edited:
You mean with tab spaces into the function above it? It is I just don't know how to post in a code box like you have soz xD

This:
Code:
<Grind Condition="not IsQuestObjectiveComplete(9937, 0)" >
   <Grind Name="" CreatureId="" X="" Y="" Z="" MapId="" />
      <GrindArea >
         <Hotspot X="" Y="" Z="" Timeout="" Range="" Name="" />
      </GrindArea>
   </Grind>

should be this:
Code:
<Grind Condition="not IsQuestObjectiveComplete(9937, 0)" CreatureId="" />
   <GrindArea>
      <Hotspot X="" Y="" Z="" Timeout="" Range="" Name="" />
   </GrindArea>
</Grind>
 
Just trying to learn some more of the basic of code writing if anyone is willing to help me out and explain what im doing wrong it would be highly appreciated.

My goal is. Move to Contract Board and Interact > Select and Accept Quest > Move to and Interact with Teleport

Code:
<Profile Name="Contract" Author="King">
<While Condition="1 == 1" >
<Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard"/>
<If Condition="Buddy.Contracts.IsAccepted(9883)"/>
<If Condition="HasQuest(9883)">
<While Condition="Buddy.Contracts.IsAccepted(9883)">
<Interact CreatureId="67480" CreatureName="Ship to Crimson Badlands" MapId="51" X="4035.109" Y="-803.212036" Z="-2312.685" RunOnce="True" />
<Wait Time="1"/>
</While>
</If>
</While>
</Profile>

Error
Code:
Loading profile: D:\Users\<User>\Desktop\Wildbuddy\Profiles\Contracts.xml
Profile =Contracts= (version 0.0.0.0) by King loaded!
Setting game spell cast behavior to Normal
[string "?"]:7: attempt to index global 'xPvYzVFZ_Rc' (a nil value)
Setting game spell cast behavior to Normal
[string "?"]:7: attempt to index global 'xPvYzVFZ_Rc' (a nil value)
 
Just trying to learn some more of the basic of code writing if anyone is willing to help me out and explain what im doing wrong it would be highly appreciated.

My goal is. Move to Contract Board and Interact > Select and Accept Quest > Move to and Interact with Teleport

Code:
<Profile Name="Contract" Author="King">
<While Condition="1 == 1" >
<Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="22" RunOnce="true" />
<If Condition="Buddy.Contracts.IsAtContractBoard"/>
<If Condition="Buddy.Contracts.IsAccepted(9883)"/>
<If Condition="HasQuest(9883)">
<While Condition="Buddy.Contracts.IsAccepted(9883)">
<Interact CreatureId="67480" CreatureName="Ship to Crimson Badlands" MapId="51" X="4035.109" Y="-803.212036" Z="-2312.685" RunOnce="True" />
<Wait Time="1"/>
</While>
</If>
</While>
</Profile>

Error
Code:
Loading profile: D:\Users\<User>\Desktop\Wildbuddy\Profiles\Contracts.xml
Profile =Contracts= (version 0.0.0.0) by King loaded!
Setting game spell cast behavior to Normal
[string "?"]:7: attempt to index global 'xPvYzVFZ_Rc' (a nil value)
Setting game spell cast behavior to Normal
[string "?"]:7: attempt to index global 'xPvYzVFZ_Rc' (a nil value)

The above error isn't related to your profile, and requires you to reattach your bot to the game client!

Code:
<Profile Name="Contract" Author="King">
    <While Condition="1 == 1" >

    <!-- Contract Pick Up -->
    <Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" [B][U]MapId="22"[/U][/B] RunOnce="true" />
    [B][U]<If Condition="Buddy.Contracts.IsAtContractBoard"/>[/U][/B]
    [B][U]<If Condition="[B][U]Buddy.Contracts.IsAccepted(9883)[/U][/B]"/>[/U][/B]

    <!-- Do Contract -->
    <If Condition="HasQuest(9883)">
        <While Condition="Buddy.Contracts.IsAccepted(9883)">
            <Interact CreatureId="67480" CreatureName="Ship to Crimson Badlands" [B][U]MapId="51"[/U][/B] X="4035.109" Y="-803.212036" Z="-2312.685" RunOnce="True" />
            <Wait Time="1"/>
        </While>
    </If>

    </While>
</Profile>

As for your profile, I'll go through it and underline/bold the things I have noticed in respective order!

1) Will interact with the quest board in Illium (MapId 22) yet the interact with the ship to Crimson Badlands is MapId 51 (Thyad), one of the tags needs to change!
2) IsAtContractBoard will return true/false depending on your proximity to the board, it will most likely return true as you're interacting with it, but this tag is doing nothing as is. Consider changing it to the form <If Condition="">STUFF HERE</If> to properlly leverage the return value.
3) Will want to use Buddy.Contracts.Accept(####), and not Buddy.Contracts.IsAccepted(####) to pick up the quest.
4) See 1.
 
Cheers DD your always so helpful. Ill send my profile your way as soon as ive got the majority done as i know how you love free profiles :)
 
Will Pick up all Contracts available for Exile only

Code:
    <While Condition="1 == 1" >
    <Interact Name="Protostar Contract Dispenser" CreatureId="69721" X="-3316.129" Y="-886.6698" Z="-569.249" MapId="51" RunOnce="true" />
	<!--Tier 1--> 
    <If Condition="Buddy.Contracts.Accept(9947)" />
	<If Condition="Buddy.Contracts.Accept(9952)" />
    <If Condition="Buddy.Contracts.Accept(9937)" />
	<If Condition="Buddy.Contracts.Accept(9936)" />
	<If Condition="Buddy.Contracts.Accept(9983)" />
    <If Condition="Buddy.Contracts.Accept(9950)" />
    <If Condition="Buddy.Contracts.Accept(9881)" />
    <If Condition="Buddy.Contracts.Accept(9885)" />
    <If Condition="Buddy.Contracts.Accept(9880)" />
	<!--Tier 2-->
    <If Condition="Buddy.Contracts.Accept(9939)" />
	<If Condition="Buddy.Contracts.Accept(9894)" />
	<If Condition="Buddy.Contracts.Accept(9938)" />
	<If Condition="Buddy.Contracts.Accept(9951)" />
	<If Condition="Buddy.Contracts.Accept(9935)" />
	<If Condition="Buddy.Contracts.Accept(9895)" />
	<If Condition="Buddy.Contracts.Accept(9948)" />
	<If Condition="Buddy.Contracts.Accept(9940)" />
	<If Condition="Buddy.Contracts.Accept(9890)" />
	<If Condition="Buddy.Contracts.Accept(9911)" />
	<If Condition="Buddy.Contracts.Accept(9914)" />
	<If Condition="Buddy.Contracts.Accept(9913)" />	
	<!--Tier 3-->
	<If Condition="Buddy.Contracts.Accept(9891)" />
	<If Condition="Buddy.Contracts.Accept(9953)" />
	<If Condition="Buddy.Contracts.Accept(9892)" />
	<If Condition="Buddy.Contracts.Accept(9910)" />
	<If Condition="Buddy.Contracts.Accept(9893)" />
 
Last edited:
There is something I've been struggling to figure out from the profiles available on the forums.

How do I make it so if the bot crashes i can reload it and carry on from where it was without having to go back to thayd?
 
There is something I've been struggling to figure out from the profiles available on the forums.

How do I make it so if the bot crashes i can reload it and carry on from where it was without having to go back to thayd?

You will want to adapt to a recoverable profile format, here's the general format of my contract profile currently:

HTML:
<Profile>
    <!-- Start up stuff (Includes, Connections, References, etc) -->

    <While Condition="1 == 1">

        <!-- Do a quest if you have it. -->
        <While Condition="IsQuestAccepted(####)">
            <!-- Go to location for quest -->
            <!-- Do quest -->
        </While>

        <!-- Do another quest if you have it. -->
        <While Condition="IsQuestAccepted(####)">
            <!-- Go to location for quest -->
            <!-- Do quest -->
        </While>

        <!-- Return to Thyad -->
        <!-- Hand In Quest -->
        <!-- Pick up new quest -->

    </While>
</Profile>
 
Is it possible to get something like this to work or am i asking too much from the profile tags at this moment?

SOLVED!


Code:
<If Condition="(not IsQuestFinished(1234) && MapId"Thayd")">
               
                        <MoveTo Range="1" X="123" Y="123" Z="123"  MapId="Thayd" /> 
                       
                        <MoveTo QuestId="9913" Range="1"  X="123" Y="123" Z="123" MapId="Thayd" />
                       
                        <Interact CreatureId="12345" CreatureName="SHIP" MapId="Thayd" X="123" Y="123" Z="123" RunOnce="true" />
 
                        <Wait Time="2"/>
                       
                        <CSIAction YesNoOrder="Y" DelayInputMs="500" />

                       </If>

<Else If Condition="(not IsQuestFinished(1234) && MapId="Contract Area") >
                        <Wait Time="1"/>                       
                        <MoveTo QuestId="" Range="1" X="" Y="" Z="" MapId="" />                        
                        <Grind CreatureIds="" Condition="not IsQuestFinished()" >
                                <GrindArea>
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                </GrindArea>
                        </Grind>
               
                </If>

Ahhh dont worry i see how obvious this is now
 
Last edited:
Is it possible to get something like this to work or am i asking too much from the profile tags at this moment?

SOLVED!


Code:
<If Condition="(not IsQuestFinished(1234) && MapId"Thayd")">
               
                        <MoveTo Range="1" X="123" Y="123" Z="123"  MapId="Thayd" /> 
                       
                        <MoveTo QuestId="9913" Range="1"  X="123" Y="123" Z="123" MapId="Thayd" />
                       
                        <Interact CreatureId="12345" CreatureName="SHIP" MapId="Thayd" X="123" Y="123" Z="123" RunOnce="true" />
 
                        <Wait Time="2"/>
                       
                        <CSIAction YesNoOrder="Y" DelayInputMs="500" />

                       </If>

<Else If Condition="(not IsQuestFinished(1234) && MapId="Contract Area") >
                        <Wait Time="1"/>                       
                        <MoveTo QuestId="" Range="1" X="" Y="" Z="" MapId="" />                        
                        <Grind CreatureIds="" Condition="not IsQuestFinished()" >
                                <GrindArea>
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                </GrindArea>
                        </Grind>
               
                </If>

Ahhh dont worry i see how obvious this is now

Hey Angully and DD, thank you both for this back and forth! This is is definitely helping me piece together my own contract profile. Quick question to either of you, can the above section be modified from a world location to an expedition location with the following? I'm theorizing and can't test currently:

Code:
	<!-- Do EXPEDITION Contract -->
	<If Condition="HasQuest(1234)">
		<While Condition="Buddy.Contracts.IsAccepted(1234)">
		<If Condition="not IsQuestFinished(1234)">
			<If Condition="not Matchmaking.IsQueued">
			<MatchmakingQueue GameId="1234" FindOthers="false" AsGroup="false" IgnoreIfNotLeader="true" />
			</If>
			
			<If Condition="Matchmaking.IsGamePending">
				<MatchmakingJoin />
				<Wait Time="3" />
				<CSIAction YesNoOrder="Y" DelayInputMs="500" />
			</If>

<Else If Condition="(not IsQuestFinished(1234) && MapId="Contract Area") >
                        <Wait Time="1"/>                       
                        <MoveTo QuestId="" Range="1" X="" Y="" Z="" MapId="" />                        
                        <Grind CreatureIds="" Condition="not IsQuestFinished()" >
                                <GrindArea>
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                </GrindArea>
                        </Grind>
			</If>
 
Last edited:
Hey Angully and DD, thank you both for this back and forth! This is is definitely helping me piece together my own contract profile. Quick question to either of you, can the above section be modified from a world location to an expedition location with the following? I'm theorizing and can't test currently:

Code:
	<!-- Do EXPEDITION Contract -->
	<If Condition="HasQuest(1234)">
		<While Condition="Buddy.Contracts.IsAccepted(1234)">
		<If Condition="not IsQuestFinished(1234)">
			<If Condition="not Matchmaking.IsQueued">
			<MatchmakingQueue GameId="1234" FindOthers="false" AsGroup="false" IgnoreIfNotLeader="true" />
			</If>
			
			<If Condition="Matchmaking.IsGamePending">
				<MatchmakingJoin />
				<Wait Time="3" />
				<CSIAction YesNoOrder="Y" DelayInputMs="500" />
			</If>

<Else If Condition="(not IsQuestFinished(1234) && MapId="Contract Area") >
                        <Wait Time="1"/>                       
                        <MoveTo QuestId="" Range="1" X="" Y="" Z="" MapId="" />                        
                        <Grind CreatureIds="" Condition="not IsQuestFinished()" >
                                <GrindArea>
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                        <Hotspot X="" Y="" Z=""  Timeout="750" Range="250" />
                                </GrindArea>
                        </Grind>
			</If>

Yay! You are on the right track, here's the bit based on my profile that reflects your code above.

HTML:
<!-- Instanced Contract -->
<While Condition="IsQuestAccepted(1234)">

    <!-- Travel to location -->
    <While Condition="not GameManager.CurrentWorldId == 1234">
        <MatchmakingQueue GameId="1234" FindOthers="false" AsGroup="false" IgnoreIfNotLeader="true" />
        <Wait Time="2" />
        <MatchmakingJoin />
        <LoadScreen />
    <While />

    <!-- Kill Stuff -->
    <Kill Condition="IsQuestAccepted(1234)" ... />

</While>

You'll want to convert away from QH tags as needed, but always always ALWAYS place some sort of Wait (or LoadScreen) tag before a world transition event, or else you will be REALLY sad.
 
dd I didn't think you could do anything with expeditions because the nav server wouldn't see anything. is it possible? if so I'm not sure how cause when i try it tells me the nav server can't find anything.
 
dd I didn't think you could do anything with expeditions because the nav server wouldn't see anything. is it possible? if so I'm not sure how cause when i try it tells me the nav server can't find anything.

You can. Investation having running since yesterday without a problem.
Only thing is the gold medal which I cannot reach for now, because of some boxes the bot seems not to be able to reach. :D

But that is not the point of the discussion in this topic here, right.
 
Back
Top