• Visit Rebornbuddy
  • Wildstar

    Discussion in 'General Discussion Forum' started by gearheadalex, Aug 10, 2013.

    Thread Status:
    Not open for further replies.
    1. PhaseRoll

      PhaseRoll New Member

      Joined:
      Oct 29, 2012
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      Soon™
       
    2. Shock18

      Shock18 New Member

      Joined:
      Feb 27, 2010
      Messages:
      253
      Likes Received:
      0
      Trophy Points:
      0
      When its ready.
       
    3. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Sorry for the lack of updates folks.

      This one won't be too long unfortunately :(

      Carbine has been doing patch after patch lately, and making large enough changes, that my head is beginning to hurt. (4 days spent on updating to the Sabotage patch, only for them to go and patch again literally an hour later)

      That said, navigation works, ability casting works, telegraphs work (mostly... stupid math), and our first "bot" is already done.

      Here's the source for the aptly named "Profile" bot:

      Code:
      using System;using System.IO;
      using System.Reflection;
      using System.Threading.Tasks;
      
      
      using ApocDev.Wildstar.Engine;
      using ApocDev.Wildstar.Engine.Profiles;
      using ApocDev.Wildstar.Game;
      
      
      using log4net;
      
      
      using Microsoft.Win32;
      
      
      namespace Buddy.ProfileBot
      {
      	public class ProfileBot : CoroutinePulsable, IBot, IUIButtonProvider
      	{
      		private static ILog Log = LogManager.GetLogger(typeof(ProfileBot));
      
      
      		public ProfileElement CurrentBehavior { get; private set; }
      
      
      		#region Overrides of CoroutinePulsable
      
      
      		/// <summary>
      		///     Whether or not this Pulsable object is currently allowed to be pulsed.
      		/// </summary>
      		public override bool CanBePulsed
      		{
      			get
      			{
      				// Some behaviors do support in-combat logic.
      				// Most however (and by default) do not. So we won't pulse if we're in combat, and don't support combat behaviors.
      				if (GameManager.LocalPlayer.IsInCombat)
      				{
      					return CurrentBehavior != null && CurrentBehavior.CanRunDuringCombat;
      				}
      
      
      				// Otherwise, we can always pulse
      				return true;
      			}
      		}
      
      
      		public override async Task CoroutineImplementation()
      		{
      			// This is *really* *really* simple.
      			foreach (var element in CurrentProfile.Elements)
      			{
      				Log.Info("Moved to new profile element: " + element);
      				CurrentBehavior = element;
      				while (!element.IsFinished)
      				{
      					// TODO: Move this to it's own IPulsable instance so it can be run in parallel with any behaviors, etc.
      					if (GameManager.CanVacuum)
      					{
      						GameManager.InputManager.KeyPress(InputAction.VacuumLoot);
      					}
      
      
      					// Run the current element in the profile.
      					await element.ProfileTagLogic();
      				}
      			}
      		}
      
      
      		#endregion
      
      
      		#region Implementation of IAuthored
      
      
      		/// <summary>
      		///     The name of this authored object.
      		/// </summary>
      		public string Name { get { return "Profile Bot"; } }
      
      
      		/// <summary>
      		///     The author of this object.
      		/// </summary>
      		public string Author { get { return "Bossland GmbH"; } }
      
      
      		/// <summary>
      		///     The version of this object implementation.
      		/// </summary>
      		public Version Version { get { return new Version(0, 0, 0, 1); } }
      
      
      		#endregion
      
      
      		#region Implementation of IEquatable<IBot>
      
      
      		/// <summary>
      		///     Indicates whether the current object is equal to another object of the same type.
      		/// </summary>
      		/// <returns>
      		///     true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.
      		/// </returns>
      		/// <param name="other">An object to compare with this object.</param>
      		public bool Equals(IBot other)
      		{
      			return ReferenceEquals(this, other) || (other.Name == Name && other.Version == Version);
      		}
      
      
      		#endregion
      
      
      		#region Implementation of IBot
      
      
      		/// <summary>
      		///     Called the first time the bot is to be started. Load any settings, register bot-level event handlers, etc here.
      		/// </summary>
      		public void OnInitialize()
      		{
      		}
      
      
      		/// <summary>
      		///     Called each time the pulsator holding this IBot is started. Initialize any Lua-level event handlers, or other
      		///     game-related actions here.
      		/// </summary>
      		public void OnStart()
      		{
      			GameEngine.BotPulsator.RegisterForPulse(GameManager.Lua.Events);
      			GameEngine.BotPulsator.RegisterForPulse(GameEngine.CurrentRoutine);
      		}
      
      
      		/// <summary>
      		///     Called each time the pulsator holding this IBot is stopped. Unregister any Lua-level event handlers, or other
      		///     game-related things here.
      		/// </summary>
      		public void OnStop()
      		{
      			GameEngine.BotPulsator.UnregisterForPulse(GameManager.Lua.Events);
      			GameEngine.BotPulsator.UnregisterForPulse(GameEngine.CurrentRoutine);
      		}
      
      
      		/// <summary>
      		///     Called when either this IBot instance is no longer the current bot (when the user/3rd party has switched IBot
      		///     instances), or the entirety of the program is shutting down.
      		///     Unregister any bot-level event handlers, implementations, etc, here.
      		/// </summary>
      		public void OnUninitialize()
      		{
      		}
      
      
      		#endregion
      
      
      		#region Implementation of IUIButtonProvider
      
      
      		/// <summary>
      		///     The text to be displayed on the button in the UI
      		/// </summary>
      		// Note: Button text should be all uppercase to go with the style of the main window. Totally optional for 3rd parties, but must be all upper for our official products.
      		public string ButtonText { get { return "LOAD PROFILE"; } }
      
      
      		/// <summary>
      		///     Called when the button is clicked.
      		/// </summary>
      		/// <param name="sender"></param>
      		public void OnButtonClicked(object sender)
      		{
      			OpenFileDialog ofd = new OpenFileDialog();
      			ofd.Title = "Please select a profile...";
      			ofd.Filter = "Profile|*.xml;*.profile|All Files|*.*";
      			ofd.Multiselect = false;
      			ofd.InitialDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
      			ofd.CheckFileExists = true;
      
      
      			if (ofd.ShowDialog() == true)
      			{
      				Log.Info(string.Format("Loading profile: {0}", ofd.FileName.Replace(Environment.UserName, "<User>")));
      				var profile = ProfileLoader.LoadProfile(ofd.FileName);
      				Log.Info(string.Format("Profile {0} (version {1}) by {2} loaded!", profile.Name, profile.Version, profile.Author));
      				CurrentProfile = profile;
      			}
      		}
      
      
      		#endregion
      
      
      		/// <summary>
      		/// The currently running profile. This value should not be changed while the bot is running!
      		/// </summary>
      		// TODO: Write-protect only while running
      		public Profile CurrentProfile { get; set; }
      	}
      }
       
    4. matt84

      matt84 Member

      Joined:
      Mar 22, 2010
      Messages:
      440
      Likes Received:
      12
      Trophy Points:
      18
      monthly content patches must be kind of rough -_-
       
    5. laria

      laria Well-Known Member

      Joined:
      Jan 15, 2010
      Messages:
      5,386
      Likes Received:
      36
      Trophy Points:
      48
      that reminds me of rift. they patched so often that it wasn't feasible to bot
       
    6. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Well, it's mostly just between trying to keep things updated, and actually get work on the bot done at the same time. This stage of the bot, is the worst for big updates to happen.
       
    7. Giwin

      Giwin Well-Known Member Buddy Store Developer

      Joined:
      Dec 3, 2011
      Messages:
      3,431
      Likes Received:
      49
      Trophy Points:
      48
      don't give warden guy tips
       
    8. Whatsmacroing

      Whatsmacroing Banned

      Joined:
      Jul 20, 2014
      Messages:
      162
      Likes Received:
      2
      Trophy Points:
      0
    9. Filewalker

      Filewalker Member

      Joined:
      Sep 29, 2012
      Messages:
      32
      Likes Received:
      1
      Trophy Points:
      8
      Last edited: Aug 10, 2014
    10. HB2371R23

      HB2371R23 New Member

      Joined:
      Apr 26, 2011
      Messages:
      50
      Likes Received:
      1
      Trophy Points:
      0
      Did you even watch this video? He ends the video by saying why wild star is awesome and he likes it. Every game has things we dont like.
       
    11. hartkoowr

      hartkoowr Member

      Joined:
      Jul 12, 2010
      Messages:
      75
      Likes Received:
      0
      Trophy Points:
      6
    12. includao

      includao New Member

      Joined:
      Aug 6, 2014
      Messages:
      9
      Likes Received:
      1
      Trophy Points:
      0
      Anxiously waiting for Apoc's bot :)
       
    13. fluxflux

      fluxflux New Member

      Joined:
      Dec 6, 2011
      Messages:
      30
      Likes Received:
      0
      Trophy Points:
      0
      iss there a ETA? or can you say it´s coming in a few weeks or Months?
       
    14. curep4

      curep4 New Member

      Joined:
      Feb 7, 2012
      Messages:
      182
      Likes Received:
      0
      Trophy Points:
      0
      yea, if you guys had to give a ETA.. would it be months away or weeks?
       
    15. Gentoo

      Gentoo Active Member

      Joined:
      Apr 29, 2011
      Messages:
      1,364
      Likes Received:
      24
      Trophy Points:
      38
      He cooked a steak in a pan, wtf!
       
    16. fifidong

      fifidong Member

      Joined:
      May 31, 2012
      Messages:
      124
      Likes Received:
      0
      Trophy Points:
      16
    17. lightwave

      lightwave New Member

      Joined:
      Sep 17, 2012
      Messages:
      17
      Likes Received:
      0
      Trophy Points:
      1
      I am in culinary school and there is only select cuts you will cook in a pan its not for all cuts but most can be cooked in a cast iron pan
       
    18. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      oh man.. I've got all those ingredients in my kitchen :)
       
    19. Shock18

      Shock18 New Member

      Joined:
      Feb 27, 2010
      Messages:
      253
      Likes Received:
      0
      Trophy Points:
      0
      So any beta testers needed yet ;)
       
    20. Giwin

      Giwin Well-Known Member Buddy Store Developer

      Joined:
      Dec 3, 2011
      Messages:
      3,431
      Likes Received:
      49
      Trophy Points:
      48

      the best way to give yourself a heart attack from blocked arteries, the guy uses way too much salt and the amount of butter... one of the best way is to grill, 7 minutes each side (medium rare) and put garlic and herb (sometimes comes with it) ontop; If I could I'd stonebake it or use a Lava rock, the best way is by flame/gas/barb not electric.
       
      Last edited: Aug 18, 2014
    Thread Status:
    Not open for further replies.

    Share This Page