• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Echo's Profile Cheat Sheet!

    Discussion in 'Wildbuddy Developers' started by EchoTiger, Nov 20, 2014.

    1. EchoTiger

      EchoTiger Official Profile and Singular Developer Staff Member Moderator

      Joined:
      Nov 28, 2012
      Messages:
      6,810
      Likes Received:
      631
      Trophy Points:
      113
      This is a simple profile cheat-sheet for the everyday copy+paster.
      This cheat sheet goes over every profile tag and explains its functionality and usage in a (hopefully) user-friendly manner.


      Always assume that your copy of the cheat-sheet is out of date.
      Also, always assume that the updated cheat-sheet is out of date.

      New features are added to the bot nearly every day and I only update the cheat sheet when I have time.
      A version number should be listed at the top of the cheat-sheet.

      The download link is passively updated, so make sure to check back here before you start working on your profile!

      https://www.dropbox.com/s/15zfpl7fflpjqbe/CheatSheet.xml?dl=0


      If you're not wanting to download it, well then here's a paste of it:
      (excuse the grammar, some apostrophes were removed to avoid the PHP text highlighting)

      PHP:
      CheatSheet Ver.2
      Values with 
      are optional.

      ###############
      Table of Contents:
          
      '>Navigation and Movement'
              
      1'<MoveTo />'Move to a location.
              
      2'<Jump />'Jump to a location.
          
      '>Combat'
              
      3'<KillCreature />'Kill a single creature within a small area
              
      4'<Grind />'Kill multiple creatures within a small/large area.
          
      '>Utility'
              
      5'<If Condition />''if' statement that expects True or False from a condition.
              
      6'<While Condition />''while' statement that expects True or False from a condition, and will loop until False.
              
      7'<UseItem />'Used to equip or salvage items.
              
      8'<InputAction />'Used to 'interact' with UI elements such as the spellbar.
              
      9'<Wait />'Make the bot wait before going to the next line.
              
      10'<SkipCutscene />'Skips a cutscene.
              
      11'<Interact />'Interact with a object or NPC.  
              
      12'<PickUp />'Pick up a quest from a NPC or the Communicator.
              
      13'<TurnIn />'Turn in a quest to a NPC or the Communicator.
              
      14'<CSIAction />'Used to do the complex mini-games. (Simon SaysTap F) - Also used for keypads and Yes/No questions.
              
      15'<Reference />'Used to 'nickname' a XYZ location.
              
      16'<Lua />'Used to execute game-Lua.
              
      17'<Include />'Pull code from another profile.
              
      18'<RemoteInclude />'Pull code from a remote profile.
              
      19'<Collect />'Collect items from Objects or interact with multiple NPCs.
      ##############



      '> Navigation and Movement:'

      1:    <MoveTo QuestId="" QuestObjective="" CreatureId="" MapId="" Range="" X="" Y="" Z="" Range="" NoPathfind="false" Display="" />
              *
      QuestId: If this quest is completethe MoveTo will not run.
              *
      QuestObjective: If this objective is completethe MoveTo will not run.
              *
      CreatureIdUsed to move to the creature once its availible in the object manager.  The bot will move to the XYZ until this CreatureId appears.
              *
      NoPathfindA true false statement that will tell the bot wheter or not it should use the Mesh to navigate.  (Default: False)
              *
      DisplayA small verbose on the bot that will tell the player where its moving to.  Ex:  Display="Going to a mailbox."
              
      *RefTagA RefTag allows you to MoveTo a location by a assigned name rather than using XYZ.  Please see <Reference></Reference> for more information on this.
              *
      RangeHow many meters the bot should come within the XYZ of.  (Default: 5)
              
      XThe X coordinate the bot will be moving to.
              
      YThe Y coordinate the bot will be moving to.
              
      ZThe Z coordinate the bot will be moving to.
              
      MapIdThe map that the MoveTo takes place on.
          
      ALT+CTRL+M  will dump your current location.  This can be used to quickly make a MoveTo statement.

      2:    <Jump FromX="" FromY="" FromZ="" ToX="" ToY="" ToZ="" MapId="" DoubleJump="false" />
              *
      DoubleJumpThe bot will attempt to double jump between the two coordinates.  Default: false.
              
      FromXThe starting X coordinate in which the bot will move to before jumping.
              
      FromYThe starting Y coordinate in which the bot will move to before jumping.
              
      FromZThe starting Z coordinate in which the bot will move to before jumping.
              
      ToXThe ending X coordinate in which the bot will attempt to land on.
              
      ToYThe ending Y coordinate in which the bot will attempt to land on.
              
      ToZThe ending Z coordinate in which the bot will attempt to land on.




      '> Combat:'

      3:    <KillCreature QuestId="" QuestObjective="" X="" Y="" Z="" MapId="" CreatureId="" SearchRange="" />
              
      This will force the bot to kill a specific creature.  Useful for boss-kill quests.
                  *
      QuestId: If the player isnt currently on this questthe KillCreature will not execute.
                  *
      QuestObjective: If the player isnt currently on this Objectivethe KillCreature will not execute.
                  *
      SkipIfNotFoundA true/false statement that will tell the bot to skip the code if the mob isnt found.
                  
      MapIdMapIdThe map that the Interact takes place on.
                  
      XThe X coordinate the bot will be moving before attempting the KillCreature code.
                  
      YThe Y coordinate the bot will be moving before attempting the KillCreature code.
                  
      ZThe Z coordinate the bot will be moving before attempting the KillCreature code.
                  
      CreatureIdThe Id of the creature the bot will be searching for.
                  
      SearchRangeThe range (in metersthat the bot will look for the NPC.


      4:    <Grind Condition="True"></Grind>
              
      This is your generic grind wrap.  Here the bot will kill mobs within a specified location.
              If 
      you do not supply CreatureIdsthe bot will target any mob within the hotspot locations.
                  *<
      Mail></Mail>  The assigned mailbox the bot should use while grinding.
                  *<
      Vendor></Vendor>  The assigned vendor the bot should use while grinding.
                  *<
      ExcludeNeutral>true/false</ExcludeNeutralA true/false statement that determines whether or not the bot should attack neutrals.
                  *<
      CreatureId></CreatureIdlist of NPC Ids the bot will actively engage while grinding.
                  
      ConditionA statement that will make the grind farm until the statement
                  
      <GrindArea></GrindArea>  The list of hotpots the bot should grind around.
              
      Example Grind:
                  <
      Grind Condition="True" >
                      <
      Repair PreferClosest="true" PreferFirst="false">
                          <
      RepairNPCs>
                              <
      RepairNPC Name="Supply Officer Windward" CreatureID="11705" X="4346.549" Y="-751.1421" Z="-5683.651" MapID="426" ExileFaction="true" DominionFaction="false" />
                          </
      RepairNPCs>
                      </
      Repair>
                      <
      Vendor>
                          <
      VendorNPC Name="Supply Officer Windward" CreatureId="11705" X="4346.549" Y="-751.1421" Z="-5683.651" MapId="426" ExileFaction="true" DominionFaction="false" />
                      </
      Vendor>
                      <
      GrindArea>
                          <
      Hotspot X="3952.92" Y="-708.4681" Z="-5375.278" Timeout="120" Range="40" />
                          <
      Hotspot X="3974.462" Y="-715.9048" Z="-5416.048" Timeout="120" Range="60" />
                          <
      Hotspot X="3936.23" Y="-709.5997" Z="-5435.215" Timeout="120" Range="20" />
                          <
      Hotspot X="4012.792" Y="-725.5556" Z="-5440.237" Timeout="120" Range="10" />
                          <
      Hotspot X="4068.139" Y="-737.3195" Z="-5461.592" Timeout="120" Name="Put a name for this spot here." />
                      </
      GrindArea>
                  </
      Grind>
              
      Hotspots can be generated via Target by using CTRL+ALT+H.




      '> Utility:'

      5:    <If Condition="True/False" >
          </If>
              
      A generic 'If' statement.  If the player meets the condition requirements (Resulting True), anything inside of the <If> will be executed.
              
      'If' statement will NOT loop.   See  <While Condition> (below) if you want it to loop.
              
      Example:  
                  <If 
      Condition="HasQuest(6917)" >
                      <
      MoveTo X="-3078.396" Y="-800.0771" Z="-3142.859" MapId="22" />
                      <
      Wait Time="10" />
                  </If>
              
      Multiple conditions can be used by adding  'and' or 'or'.
              
      Example:
                  <If 
      Condition="HasQuest(6917) or HasQuest(1943)" >
                  
      This would require the player to have either of the two quests.
              
      Alternativelyadding 'not' will say   "If we dont have the quest."
              
      Example:
                  <If 
      Condition="not HasQuest(6917) or HasQuest(1943)" >
                  
      This would require the player to *nothave quest 6917,  *or havequest 1943.


      6
      :    <While Condition="True/False" >
          </While>
              
      A generic 'While' statement.  This is the exact same as 'If.'
              
      The only difference is that a 'While' statement will continuously loop until the condition results to 'False.'


      7:    <UseItem Salvage="" Equip="" EquipInto="" SkipMissing="" Items="1,2,3,4,5" Display="" />
              *
      SalvageA true/false statement that tells the bot that it will be salvaging the items.  Default: false
              
      *EquipA true/false statement that tells the bot that it will be equiping the items.  Default: false
              
      *SkipMissingA true/false statement that tells the bot to skip any items if they arent found in the inventory. If false and item isnt foundbot will stop with error. Default: false
              Items
      list of item Ids that the bot will be attempting to salvage or equip.
              
      DisplayA verbose message that tells the user that the bot is doing.
          
      CTRL+ALT+I will dump information regarding the items in your inventory.


      8:    <InputAction Action="Action_Name_Here" />
              
      This will execute an action.  
              
      list of action references can be found here:
                  
      http://pastie.org/private/yp3yrxcioordgxghrpqjaq


      9:    <Wait QuestId="" QuestObjective="" Time="" />
              
      Forces the bot to wait X amount of seconds before continuing the profile code.
                  *
      QuestId: If this quest is completethe Wait timer will not execute.
                  *
      QuestObjective: If this objective is completethe Wait timer will not execute.
                  *
      ForCastToEndA true/false statement that will make the bot wait until the 'cast' is complete.
                  
      TimeHow long (in secondsthe bot should wait before continuing the profile.


      10:    <SkipCutscene QuestId="" QuestObjective="" />
              
      Skips a cutscene.
                  *
      QuestId: If this quest is completethe SkipCutscene code will not execute.
                  *
      QuestObjective: If this objective is completethe SkipCutscene code will not execute.


      11:    <Interact QuestId="" QuestObjective="" CreatureId="" CreatureName="" MapId="" X="" Y="" Z="" />
              
      Makes the bot 'interact' with a specific object or creature.
                  *
      QuestId: If this quest is completethe Interact will not execute.
                  *
      QuestObjective: If this objective is completethe Interact will not execute.
                  *
      InteractRangeThe range (in metersat which the bot will interact with the object at.
                  
      CreatureIdThe ID of the creature that the bot will be attempting to interact with.
                  
      MapIdMapIdThe map that the Interact takes place on.
                  
      XThe X coordinate the bot will be moving before attempting the Interaction code.
                  
      YThe Y coordinate the bot will be moving before attempting the Interaction code.
                  
      ZThe Z coordinate the bot will be moving before attempting the Interaction code.
              
      ALT+CTRL+I will generate a interaction code with your current target.


      12:    <PickUpQuest QuestId="" CreatureId="" CreatureName="" MapId="" X="" Y="" Z="" />
              
      Picks up a quest from a NPC or the communicator.
                  
      QuestIdThe QuestId of the quest that the bot will look for while picking the quest up.
                  
      CreatureIdThe Id of the NPC that the bot will be picking the quest up from.
                  
      CreatureNameThe name of the creature that the bot will be picking the quest up from.
                  
      MapIdThe map that the Quest Pickup takes place on.
                  
      XThe X coordinate in which the bot will look for the Quest giver at.
                  
      YThe Y coordinate in which the bot will look for the Quest giver at.
                  
      ZThe Z coordinate in which the bot will look for the Quest giver at.
                  *
      CommunicatorPickUpA true/false statement that will tell the bot to use the communicator when picking the quest up.  Default: false.
                      
      In a situation where were using the Communicatorthe XYZ isnt required.
               
      Alt+Ctrl+P will generate a PickUp code that can be pasted into a profile.  In order for this to work you must click on the NPC and ready to pick the quest up.


      13:    <TurnInQuest QuestId="" CreatureId="" CreatureName="" MapId="" X="" Y="" Z="" />
              
      Turns in a quest from a NPC or the communicator.
                  
      QuestIdThe QuestId of the quest that the bot will look for while picking the quest up.
                  
      CreatureIdThe Id of the NPC that the bot will be picking the quest up from.
                  
      CreatureNameThe name of the creature that the bot will be picking the quest up from.
                  
      MapIdThe map that the Quest Turnin takes place on.
                  
      XThe X coordinate in which the bot will look for the Quest giver at.
                  
      YThe Y coordinate in which the bot will look for the Quest giver at.
                  
      ZThe Z coordinate in which the bot will look for the Quest giver at.
                  *
      CommunicatorTurnInA true/false statement that will tell the bot to use the communicator when turning in the quest.  Default: false.
                      
      In a situation where were using the Communicatorthe XYZ isnt required.
              
      Alt+Ctrl+T will generate a TurnIn code that can be pasted into a profile.  In order for this to work you must click on the NPC and ready to turn the quest in.


      14:    <CSIAction QuestId="" QuestObjective="" />
              
      A CSI action is when you must play the 'Simon Says' game, or the 'Push F' mini-games.
              
      By simply supplying the QuestId and QuestObjectivethe bot will know how to handle the rest.
              
      An Interaction code will need to be used before the CSI action to start the event.
              
      In a situation where you need to input manual commandsyou may by using these tunables:
                  
      YesNoOrder="Y,N,Yes,No" (Y/N  or Yes/No will both work)
                      
      Will push YesNoYesYes.
                  
      KeypadOrder="1,2,3,4,5,6,7,8,9"
                      
      Will push 123456789.
                  Example Usage
      :
                      <
      CSIAction YesNoOrder="Y,N,Y" />


      15:    <Reference></Reference>
              
      The Reference tag *cango anywhere in the profilebut its preferred if you put it at the top.
              
      It allows you to store a MoveTo direction into a name rather than using XYZ.
              
      Example:
                  <
      Reference>
                      <
      MoveTo X="-2719.056" Y="-1024.626" Z="-5936.5" MapId="1387" RefName="Mailbox_Location" />
                  </
      Reference>
              
      Once this is declairedyou may then use it in a MoveTo to make the bot go to that specified location.
              
      Example:
                   <
      MoveTo RefTag="Mailbox_Location" />
              
      Note!  When the reference is declaredwe use RefName.   When the reference is usedwe use RefTag.


      16:    <Lua Code="" />
              
      This allows you to execute a Lua string through the bot.
                  
      CodeThe Lua string you wish to execute.


      17:    <Include Uri="FileName.xml" />
              
      This will replace the existing <Include> line with the code inside of the assigned XML file.
                  
      UriFilename that will be used.
              
      Example: If FileName.xml has:   <TurnInQuest QuestId="6916" CreatureId="33034" MapId="22" CommunicatorTurnIn="true" />
              
      The <Include Uri="FileName.xml" />  will be replaced with <TurnInQuest QuestId="6916" CreatureId="33034" MapId="22" CommunicatorTurnIn="true" />
              *Do 
      not* use <Profile></Profilein the Uri file.


      18:    <RemoteInclude Uri="http://example.com/FileName.xml" />
              
      This will replace the <RemoteIncludeline with the code inside of the remote assigned XML file.
                  
      UriRemote link that will be used.
              
      Example:  FileName.xml has:   <TurnInQuest QuestId="6916" CreatureId="33034" MapId="22" CommunicatorTurnIn="true" />
              
      The <RemoteInclude Uri="http://example.com/FileName.xml" />  will be replaced with <TurnInQuest QuestId="6916" CreatureId="33034" MapId="22" CommunicatorTurnIn="true" />.
              *Do 
      not* use <Profile></Profilein the remote Uri file.


      19:    <Collect QuestId="1234" QuestObjective="0" CreatureIds="1, 2, 3, 4, 5" InteractRange="5"></Collect>
              
      This is a collect wrap.  Similar to the grind wrap this will patrol around Hotspotted locations looking for objects to collect from or NPCs to interact with.
                  *
      QuestId: If this quest is completethe <Collectwill be considered complete.
                  *
      QuestObjective: If this quest objective is completethe <Collectwill be considered complete.
                  *
      InteractRangeThe distance (in metersthe bot will get to before interacting with the Object/NPC.
                  
      CreatureIdIds of the Objects/NPCs that you want the bot to collect from.
              
      Example Collect #1:
                  
      <Collect QuestId="6992" QuestObjective="3" CreatureId="52550, 52551, 52552, 52546, 52549" InteractRange="5">
                      <
      SearchAreas>
                          <
      Hotspot X="678.401855" Y="72.10318" Z="-62.0756226" Range="40" Timeout="600" Name="Interact with Suspicious Citizen" />
                      </
      SearchAreas>
                  </
      Collect>
              *
      Tip!  QuestId and QuestObjective isnt required.  This gives you the ability to use <Collectto collect/farm/etc any object/NPC you desire!
              
      Example Collect #2:
                  
      <While Condition="True" >
                      <
      Collect CreatureIds="123, 456, 789" InteractRange="5">
                          <
      SearchAreas>
                              <
      Hotspot X="987" Y="654" Z="321" Range="100" Timeout="2000" Name="Farm spot #1" />
                          </
      SearchAreas>
                      </
      Collect>
                  </While>
              
      Hotspots can be generated via Target by using CTRL+ALT+H.
       
      Last edited: Nov 20, 2014
    2. Angully

      Angully Member

      Joined:
      Sep 19, 2010
      Messages:
      764
      Likes Received:
      1
      Trophy Points:
      18
      Any chance you would be willing to upload a small segment of combat code for engineer that includes casting conditions like Procs, Snares, Volatality => i would greatly appreciate it since im finding it difficult to translate omnibus into a single file combat profile
       
    3. EchoTiger

      EchoTiger Official Profile and Singular Developer Staff Member Moderator

      Joined:
      Nov 28, 2012
      Messages:
      6,810
      Likes Received:
      631
      Trophy Points:
      113
      LastCoder works on the combat routine and all that, he'd probably be better to go to for anything regarding this.

      I haven't worked in that area yet, just generic Quest logic.
       

    Share This Page