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

[Quest Behavior] Quest Behavior Request MegaThread

Status
Not open for further replies.

Natfoth

Community Developer
Joined
Jan 15, 2010
Messages
1,446
Reaction score
37
The whole point of this thread is to help cut down on all the community behavior variations that can be accomplished with current stock behaviors or that can be added to current ones. If you have a request of a change in a behavior or a modification that you wish to be made for a quest here is the place to post it.

Quest Behavior Request
------------------------------------------
An Example of the quest that uses the mechanic
List out exactly what you need
That it is not already possible


Current Behaviors
------------------------------------------
BasicInteractWith - Interacts with an NPC and will end the script
CastSpellOn - Will Cast a spell on the target
CombatUseItemOn - Will use an item after combat has already started such as "Use at 20% health"
CompleteLogQuest - Best for "InTheField" Quests that you can complete on the spot
EjectVeh - Good for if you just need to get out
Escort - Making sure NPCs don't kill themselves
ForceLoadProfile - Will load another profile
ForceTrain - Forces the bot to train and forces FindVendors On
ForceTrainRiding - Will train Riding
ItemWhileMoving - Will use an item over and over until location is reached
KillUntilComplete - Good for quests that say "Kill any wolf" or "Kill any trogg in the zone"
MountVehOnly - When you want to ride a "Taxi"
MyCTM - Use only for navigational problems
NoCombatMoveTo - When you want to avoid hostile mobs that are attacking friendly mobs
NoControlVehicle - Good for Cannons, Bombing Runs, Saving Lives, and Cannons that require you to click the ground
SetPullDistance - Good for a quest giver that is in the middle of a battlefield or a group of hostile mobs
Transport - Good for ships and elevators
UseGameObject - Will use an object over and over or until completed
UseItemOn - Can use items on dead targets, alive targets, and flying targets
UseItemTargetLocation - Can use an Item and click on a Npc, Object, or use defined location
VehicleBehavior - All vehicles that are player controlled
WaitTimer - When you want to wait for something to happen
WaterBehavior - For when the water is not meshed and you need to kill or collect
 
Last edited:
First!

Here are 4 that I asked KaZ to make me ... and I use them for various things. I know UseItemOn now has a "ranged" function on it, so i'll consider changing that over. But the other 3 are greatly needed to be incorporated into the current behaviors


PHP:
<CustomBehavior File="InteractWith5" QuestId="11936" ObjectType="Gameobject" MobId="188133" NumOfTimes="5" InteractTime="5000" CollectionDistance="1000" X="3800.385" Y="6941.689" Z="108.1623" />

<CustomBehavior File="InteractandBuy" QuestId="12648" ObjectType="NPC" MobId="28589" NumOfTimes="1" GossipOption="1" BuySlot="1" WaitTime="1000" CollectionDistance="10" X="5156.954" Y="-1591.637" Z="239.3643" />

<CustomBehavior File="TalkandInteractWith" QuestId="12504" ObjectType="NPC" MobId="28041" NumOfTimes="50" GossipOption="1" WaitTime="3000" CollectionDistance="200" X="6112.482" Y="-2616.265" Z="292.8627" />

<CustomBehavior File="UseItemAtRange" QuestId="11919" ObjectType="Npc" MobId="26127" ItemId="35506" NumOfTimes="1" WaitTime="23000" RangeWanted="60" CollectionDistance="500" X="4066.958" Y="7071.041" Z="167.2539" />

I would like:

InteractTime in hb stock InteractWith
Range function in UseItemOn (already there, woot)
GossipOption & GossipNumOfTimes (not to be confused with interact with mobs numoftimes)
Buy Function (gossipoption is essential to some npc's that have more than 1 function)

Other requests:

Various vehicle quests that I will QQ about in the future
Escort to be fixed so I can use the damn thing
A working Combat UseItemOn
when that works... Aura - target has, me.has, target is casting spell, use item or use object, or use pet spell (turtle quest in Hyjal when Nemises blows up - you have to use a pet turtle)
Raphus' Flightor to accept commands in a quest function and other CB's to be used within it.

Example:
PHP:
<CB File WaterSomething >

<CB />
<CB />
<Objective />
<Objective />

</CB>
 

Attachments

Last edited:
First!

Here are 4 that I asked KaZ to make me ... and I use them for various things. I know UseItemOn now has a "ranged" function on it, so i'll consider changing that over. But the other 3 are greatly needed to be incorporated into the current behaviors

Great will find a way to implement them.
 
I would like to see your ForceTrainRiding morph into a more general 'profession' trainer. Something like this...
[wiki]Honorbuddy Custom Behavior: TrainProfession[/wiki]


I know TalkToAndListenToStory isn't yours, but it'd be nice to beef up...
  • Be able to navigate through a multi-page dialog
  • Close the dialog when needed
    Sometimes the NPC does it, sometimes the NPC expect the toon to close it
Right now TalkToAndListenToStory has to have RunMacro and other CB supplements to do its job. It'd be nice if it did the *whole* job without requiring other CBs.

cheers & THANKS,
chinajade
 
Last edited:
Well, the TalkAndInteractWith has a gossip option, just not GossipNumOfTimes - which would let the profile creator do the quest for when TTALTS may bug out (such as the fizzcrank airstrip quest)

or maybe even another gossip added to it...

such as:

GossipClicks="1,1,2,4,2,3,1" for various things that are needed (1134231 may be for a quest where you have to answer questions, or talk to an npc, etc)
 
Kickazz006 said:
Well, the TalkAndInteractWith has a gossip option... GossipClicks="1,1,2,4,2,3,1"

This is precisely what I'm asking for, but with an additional 'close' option. E.g., GossipClicks="1,1,2,4,2,3,1,close".

From whence did TalkAndInteractWith come? Its not part of the Megathread Collection Ultimate Edition? , nor is it part of the shipped Honorbuddy behaviors. I just crawled the forums looking for all unheralded behaviors in the construction of this new Wiki page...
[wiki]Honorbuddy: Custom Behaviors by Function[/wiki]
So, I'm pretty sure its not posted in the forums, either.

Hording all the goodies, are we? I guess I'll have to call your Mom and get her to explain 'sharing' to you again.

All kidding aside, if TalkAndInteractWith is a complete replacement for TalkAndListenTo... then we need to deprecate the latter, if the original author of TalkAndInteractWith is willing.

All these redundant behaviors are truly are out of hand. Part of it is a communication problem which is painfully slow getting resolved. Thank you both for trying to apply some sanity to this chaos.

cheers,
chinajade
 
Last edited:
well atm TalkAndInteractWith is just a gossip option... it doesn't let you select ... say, 3 comments in a row. it interactswith, gossipoption 1 time, and closes =(

so if i want to do 2 or more, i have to use interactwith and runmacro for more gossip - it's *perfect* for the quest that it was made for, and I use it a LOT.

Author was KaZ, which all he did was take HB-shipped and add the gossip in... took him like 5 mins. same thing w/ the buy behavior. InteractWith5 ... he already had, i just borrowed it.

currently he's MIA
 
As already said, the escort behaviour needs to handle cases when the escorted npc turns hostile but doesnt attack you. We need to initiate combat ourselfes here.
Also, sometimes you neeed to defend objects which dont move. Right now th char only stands there and you fail the quest.
Targeting weight for mobs attacking your friendly npc/object should be higher so we get aggro of them early.

<CustomBehavior File="InteractandBuy" QuestId="12648" ObjectType="NPC" MobId="28589" NumOfTimes="1" GossipOption="1" BuySlot="1" WaitTime="1000" CollectionDistance="10" X="5156.954" Y="-1591.637" Z="239.3643" />

BuySlot="1"

this doesn't look good.
I think the argument should be more like
BuyItemID="12345"
Vendors can have items with limited supply, and therefore the slot-id with the item you have may vary.
If i recall correctly, we had a similiar Problem with CodenameGammas Darkmoon Faire plugin.
 
Laria - added to InteractWith

PHP:
    /// <summary>
    /// InteractWith by Nesox
    /// Allows you to do quests that requires you to interact with nearby objects.
    /// ##Syntax##
    /// [Optional]QuestId: Id of the quest.
    /// NpcId: Id of the object to interact with. (Still accepts MobId)
    /// NumOfTimes: Number of times to interact with object.
    /// [Optional]GossipOption: The Dialog numbers you wish to choose. Should be seperated with commas. ie. GossipOption="1,1,4,2" or GossipOption="1"
    /// [Optional]CollectionDistance: The distance it will use to collect objects. DefaultValue:100 yards
    /// [Optional]BuySlot: Buys the item from the slot. Slots are: 1 2
    ///                                                            3 4
    ///                                                            5 6
    ///                                                            7 8
    ///                                                            page2
    ///                                                            9 10 etc.
    /// [Optional]BuyItemId: Buys the item with that id from vendor.
    /// [Optional]BuyItemCount: The amount to buy the item. Default: 1
    /// [Optional]WaitTime: The time to wait once it has interacted with an object. DefaultValue:3000
    /// ObjectType: the type of object to interact with, expected value: Npc/Gameobject
    /// X,Y,Z: The general location where theese objects can be found
    /// </summary>

Escort behavior is semi fixed, it will generally kill most targets but sometimes doesn't kill 2nd due to being in combat and won't retarget. this needs additional testing / tweaking.
UseTransport now pwnsface on all transports, it will also go back to starting point if it messes up

UseItemOn now has more args

PHP:
    /// <summary>
    /// UseItemOn by Nesox
    /// Allows you to use items on nearby gameobjects/npc's
    /// ##Syntax##
    /// QuestId: The id of the quest.
    /// MobId: The id of the object.
    /// ItemId: The id of the item to use.
    /// NumOfTimes: Number of times to use said item.
    /// [Optional]WaitTime: Time to wait after using an item. DefaultValue: 1500 ms
    /// [Optional]CollectionDistance: The distance it will use to collect objects. DefaultValue:100 yards
    /// [Optional]HasAura: If a unit has a certian aura to check before using item. (By: j0achim)
    /// [Optional]Range: The range to object that it will use the item
    /// [Optional]NpcState: The state of the npc -> Dead, Alive, BelowHp. None is default
    /// [Optional]HpLeftAmount: Will only be used when NpcState is BelowHp
    /// ObjectType: the type of object to interact with, expected value: Npc/Gameobject
    /// X,Y,Z: The general location where theese objects can be found
    /// </summary>
 
Last edited:
Recently i'm trying to rewrite the UseItem, i need to check flying and dismount first then wait for some time and useitem cause with fly plugin sometimes he use the item while flying... Is this a good way

new Decorator(
ret => Location != WoWPoint.Empty && Location.Distance(StyxWoW.Me.Location) > 2,
new Sequence(
new Action(ret => TreeRoot.StatusText = "Moving to location"),
new Action(ret => Navigator.MoveTo(Location)))),

new Decorator(
ret => StyxWoW.Me.IsFlying && StyxWoW.Me.IsMoving,
new Action(ret => Navigator.PlayerMover.Move(WoWMovement.MovementDirection.Descend));
{
UtilLogMessage("info", "Descending before dismount");
Navigator.PlayerMover.Move(WoWMovement.MovementDirection.Descend);
Thread.Sleep(550);
Navigator.PlayerMover.MoveStop();
UtilLogMessage("info", "Dismounting");
Mount.Dismount();
})),


new Decorator(
ret => StyxWoW.Me.IsFlying,
new Action(ret => Navigator.PlayerMover.Move(WoWMovement.MovementDirection.Descend));
{
UtilLogMessage("info", "Descending before dismount");
Navigator.PlayerMover.Move(WoWMovement.MovementDirection.Descend);
Thread.Sleep(550);
Navigator.PlayerMover.MoveStop();
UtilLogMessage("info", "Dismounting");
Mount.Dismount();
})),




new Decorator(
ret => StyxWoW.Me.IsMoving,
new Action(ret =>
{

Navigator.PlayerMover.MoveStop();
UtilLogMessage("info", "Dismounting");
Mount.Dismount();
Thread.Sleep(550);
StyxWoW.SleepForLagDuration();
})),

new Decorator(
ret => Item != null,
new Action(ret =>
{
UtilLogMessage("info", "Dismounting");
TreeRoot.StatusText = "Using item - Count: " + Counter;
Mount.Dismount();
Thread.Sleep(550);
Item.UseContainerItem();
StyxWoW.SleepForLagDuration();
Counter++;
Thread.Sleep(WaitTime);
}))));
}
 
I'd love to have a questbehavior that will only clear my current target. That's all it needs to do: When I trigger it, it will clear the current target.
It will make it possible to AFK the Deepholme quests in the cave with the Giant Gyreworm better then they can now.
 
We have a ForceTrain. Would it be possible to also have a ForceRepair?
 
I'd love to have a questbehavior that will only clear my current target. That's all it needs to do: When I trigger it, it will clear the current target.
It will make it possible to AFK the Deepholme quests in the cave with the Giant Gyreworm better then they can now.

HTML:
<CustomBehavior File="Misc\RunLua" Lua="ClearTarget()" />
 
HTML:
<CustomBehavior File="Misc\RunLua" Lua="ClearTarget()" />
Awesomeness squared China! I'll be trying this out tomorrow. Another upgrade to Deepholme AFKability!
 
getting a lot of errors with the usegameobject QB:

Code:
[UseGameObject-vUnknown(warning)]: This method 'CheckForUnrecognizedAttributes' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    OnStart_HandleAttributeProblem()

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("ObjectId", True, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("NumOfTimes", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("QuestId", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("WaitTime", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetXYZAttributeAsWoWPoint' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<WoWPoint>("X", False, ConstrainAs.WoWPointNonEmpty, ATTRIBUTE_ALIASES))

[UseGameObject-vUnknown(warning)]: This method 'CheckForUnrecognizedAttributes' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    OnStart_HandleAttributeProblem()

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("ObjectId", True, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("NumOfTimes", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("QuestId", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetAttributeAsInteger' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<int>("WaitTime", False, new ConstrainTo.Domain<int>(0, 2147483647), ATTRIBUTE_ALIASES)

[UseGameObject-vUnknown(warning)]: This method 'GetXYZAttributeAsWoWPoint' is deprecated.
Please update your behavior to use one of the replacement methods provided by the CustomForcedBehavior class.Your replacement line is:
    GetAttributeAsNullable<WoWPoint>("X", False, ConstrainAs.WoWPointNonEmpty, ATTRIBUTE_ALIASES))

any idea?
 
Status
Not open for further replies.
Back
Top