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!

Questing as a Party with many HB (Think it's easily done)

Kloppe

New Member
Joined
Apr 22, 2012
Messages
57
I miss the possibility to Questing while in a group and do the same quest with many bots. As it can't be done by default I thought about if a plugin could do. This is what I think:

  • Each bot runt a very basic Plugin that save Me.Location in the Settings Folder.
  • The Questing Profile is edited and you (or a script) change the profile from:
PHP:
<PickUp QuestName="Your Place In The World" QuestId="25152" GiverName="Kaltunk" GiverId="10176" />
		<TurnIn QuestName="Your Place In The World" QuestId="25152" TurnInName="Gornek" TurnInId="3143" />
			<Objective QuestName="Cutting Teeth" QuestId="25126" Type="KillMob" MobId="3098" KillCount="6" />
		<TurnIn QuestName="Cutting Teeth" QuestId="25126" TurnInName="Gornek" TurnInId="3143" />
		<PickUp QuestName="Invaders in Our Home" QuestId="25172" GiverName="Gornek" GiverId="3143"/>
		<PickUp QuestName="Galgar's Cactus Apple Surprise" QuestId="25136" GiverName="Galgar" GiverId="9796" />
...

To:
PHP:
<PickUp QuestName="Your Place In The World" QuestId="25152" GiverName="Kaltunk" GiverId="10176" />
		<CustomBehavior File="PartyQuesting" Number="1"/>
		<TurnIn QuestName="Your Place In The World" QuestId="25152" TurnInName="Gornek" TurnInId="3143" />
		<CustomBehavior File="PartyQuesting" Number="2"/>
			<Objective QuestName="Cutting Teeth" QuestId="25126" Type="KillMob" MobId="3098" KillCount="6" />
			<CustomBehavior File="PartyQuesting" Number="3"/>
		<TurnIn QuestName="Cutting Teeth" QuestId="25126" TurnInName="Gornek" TurnInId="3143" />
		<CustomBehavior File="PartyQuesting" Number="4"/>
		<PickUp QuestName="Invaders in Our Home" QuestId="25172" GiverName="Gornek" GiverId="3143"/>
		<CustomBehavior File="PartyQuesting" Number="5"/>
		<PickUp QuestName="Galgar's Cactus Apple Surprise" QuestId="25136" GiverName="Galgar" GiverId="9796" />
		<CustomBehavior File="PartyQuesting" Number="6"/>
...

So each time you character complete or begin with a questing step it will run PartyQuesting.
You have a partyquesting.cs file in Quest Behaviors that:
  • Save the characters questing number to a file in the Settings Folder.
  • If any other character got a lower Quest-number than yourself you will go to his location (saved in the Settings Folder) and grind - Loop this
  • If you got a lower Quest-Number or the same as everyone else you will carry on with the Quest profile

Sounds easy if you are a better programmer than me, and it should work?
Any thoughts?
 
Sounds simple, should work in theory.

Edit: I'd be willing to help with the coding, in case you need any.
 
I miss the possibility to Questing while in a group and do the same quest with many bots. As it can't be done by default I thought about if a plugin could do. This is what I think:

  • Each bot runt a very basic Plugin that save Me.Location in the Settings Folder.
  • The Questing Profile is edited and you (or a script) change the profile from:
PHP:
<PickUp QuestName="Your Place In The World" QuestId="25152" GiverName="Kaltunk" GiverId="10176" />
		<TurnIn QuestName="Your Place In The World" QuestId="25152" TurnInName="Gornek" TurnInId="3143" />
			<Objective QuestName="Cutting Teeth" QuestId="25126" Type="KillMob" MobId="3098" KillCount="6" />
		<TurnIn QuestName="Cutting Teeth" QuestId="25126" TurnInName="Gornek" TurnInId="3143" />
		<PickUp QuestName="Invaders in Our Home" QuestId="25172" GiverName="Gornek" GiverId="3143"/>
		<PickUp QuestName="Galgar's Cactus Apple Surprise" QuestId="25136" GiverName="Galgar" GiverId="9796" />
...

To:
PHP:
<PickUp QuestName="Your Place In The World" QuestId="25152" GiverName="Kaltunk" GiverId="10176" />
		<CustomBehavior File="PartyQuesting" Number="1"/>
		<TurnIn QuestName="Your Place In The World" QuestId="25152" TurnInName="Gornek" TurnInId="3143" />
		<CustomBehavior File="PartyQuesting" Number="2"/>
			<Objective QuestName="Cutting Teeth" QuestId="25126" Type="KillMob" MobId="3098" KillCount="6" />
			<CustomBehavior File="PartyQuesting" Number="3"/>
		<TurnIn QuestName="Cutting Teeth" QuestId="25126" TurnInName="Gornek" TurnInId="3143" />
		<CustomBehavior File="PartyQuesting" Number="4"/>
		<PickUp QuestName="Invaders in Our Home" QuestId="25172" GiverName="Gornek" GiverId="3143"/>
		<CustomBehavior File="PartyQuesting" Number="5"/>
		<PickUp QuestName="Galgar's Cactus Apple Surprise" QuestId="25136" GiverName="Galgar" GiverId="9796" />
		<CustomBehavior File="PartyQuesting" Number="6"/>
...

So each time you character complete or begin with a questing step it will run PartyQuesting.
You have a partyquesting.cs file in Quest Behaviors that:
  • Save the characters questing number to a file in the Settings Folder.
  • If any other character got a lower Quest-number than yourself you will go to his location (saved in the Settings Folder) and grind - Loop this
  • If you got a lower Quest-Number or the same as everyone else you will carry on with the Quest profile

Sounds easy if you are a better programmer than me, and it should work?
Any thoughts?

This would make raf leveling so much easier/safer. I'd love to see this
 
Sounds simple, should work in theory.

Edit: I'd be willing to help with the coding, in case you need any.

Thanks for the help. I tried to fixed this alone.

I'm not sure about saving/loading with files so I edited your Guildinviter to save Me.Location (= "x=\"" + Me.Location.X.ToString() + "\" " + "y=\"" + Me.Location.Y.ToString() + "\" " + "z=\"" + Me.Location.Z.ToString() + "\" ";) each pulse but then I had no idea how do load that into a Questbehavior when I didn't even understand how that pulsed/ticked...
I came here because I gave up, but I can probably tweak a somewhat working code.
 
use a plugin instead

Then I have no idea how to read each persons current quest/mission and understand if that guy is the "leader" or not... I would gladly donate a few bucks to someone that get this "project" started.
 
Then I have no idea how to read each persons current quest/mission and understand if that guy is the "leader" or not... I would gladly donate a few bucks to someone that get this "project" started.

it would have to be a combo of partybot code + leader plugin
 
I made a simple plugin saves my Location to a file... At least it should?

PHP:
using System;
using System.IO;
using Styx;
using Styx.Helpers;
using Styx.Plugins.PluginClass;
using Styx.WoWInternals;
using Styx.WoWInternals.WoWObjects;
using System.Threading;
using System.Diagnostics;
using System.Xml;

namespace MyLocation
{
    public class MyLocation : HBPlugin
    {
        public override string Name { get { return "MyLocation"; } }
        public override string Author { get { return "Copy Paste"; } }
        public override Version Version { get { return new Version(0, 0, 0, 1);; } }
		
        private Stopwatch StopW = new Stopwatch();
        private bool _firstPulse = true;
		
        public override void Pulse()
        {
			if (_firstPulse)
				{
					Logging.Write("Pulsed First MyLocation");
					_firstPulse = false;
					StopW.Start();
				}

				if (StopW.ElapsedMilliseconds >= 5000)
				{
					XmlTextWriter writer = new XmlTextWriter(Me.Name + ".xml", null);
					writer.Formatting = Formatting.Indented;
					writer.WriteStartDocument();
					writer.WriteStartElement("Location");
					writer.WriteElementString("X", Me.Location.X.ToString());
					writer.WriteElementString("Y", Me.Location.Y.ToString());
					writer.WriteElementString("Z", Me.Location.Z.ToString());
					writer.WriteEndElement();		 
					writer.WriteEndDocument();
					writer.Close();
					Logging.Write("Pulsed MyLocation");
				}
        }
    }
}

I get "The name 'Me' does not exist in the current context"

Edit:
Thanks to anyone who helped out with HazzInviter. Use the Pulse from there.
 
Last edited:
PHP:
				if (StopW.ElapsedMilliseconds >= 5000)
				{
					XmlTextWriter writer = new XmlTextWriter(Me.Name + ".xml", null);
					writer.Formatting = Formatting.Indented;
					writer.WriteStartDocument();
					writer.WriteStartElement("Location");
					writer.WriteElementString("X", Me.Location.X.ToString());
					writer.WriteElementString("Y", Me.Location.Y.ToString());
					writer.WriteElementString("Z", Me.Location.Z.ToString());
					writer.WriteEndElement();		 
					writer.WriteEndDocument();
					writer.Close();
					Logging.Write("Pulsed MyLocation");
				}

As far as I see, you create a new document with the toons name every 5 sec. Imo, this is not really neccessary and could end in difficulties when the assisting toon tries to read hotspots from this document, as it might get replaced while he's trying to access it, or the hotspots cannot be updated, because the document is in use.

Just my 2 cents,

nerds

EDIT: In addition to that, the generated code would look something like this:
PHP:
<Location>
   X-12312.223Y2342.23Z345.1
</Location>

Please correct me if I'm wrong.

I'd go for storing the location the normal hotspot format, so you don't need to convert the "custom" XYZ to <Hotspot> before using them.

You could simply use
Code:
StyxWoW.Me.Location.ToString();
 
Last edited:
My code generated
PHP:
<X>123</X>
<Y>123</Y>
<Z>123</Z>

StyxWoW.Me.Location.ToString() gave me:
PHP:
&lt;123, 123, 123&gt;

Strange letters... But thanks for the StyxWoW.Me part and you are probably right about the writing. But I don't know how to fix it and I give up now. Anyone here are more than welcome to try make it all working.

/Kloppe
 
Are anyone on the forum trying to make this or any other method to work? Would be nice to know.
 
Back
Top