You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One problem with this quest along with 5821 is how to handle availability:
This is the first of two quests on the caravan trade route between Kormek's Hut and the Gelkis Village. It is also the easier of the two. After returning to Kormek's Hut, the caravan sets up shop and rests for 10 minutes. Then it departs headed east along the road and stops just north of the Kolkar Village. At this point the quest becomes available for only 4 minutes. If it is not recieved within that period, the caravan continues south along the road and then west straight to the Gelkis Village. You have to then wait for the caravan to complete it's circut before you can pick up the quest (which takes approx. 40-60 minutes! depending on the quests being picked up or not along the way)
So this means that the caravan should move by itself, but at the same time should allow players to take quest only in certain locations.
The only way I can think of is a combination of SD2 script and wp movement.
Yeah, That would be a task to time correctly. Seems like this would be handled in core like the transports for the Caravan. Just a thought. There is also another one like this at the EP chappel. But that will be later on in another issue... :)
Infact i think at some other place there was already talk about adding condition support to quests
probably here however changing npc-flags with db-scripts is what is supposed to happen.
The difficulty that we are facing with quests 5943 and 5821 is not really enabling / disabling the quest.
That can be done by movement_scripts by changing the NPC flag.
The tricky thing is that the caravan stops in point A and point B for a few min, allowing the player to take the quest. If any player takes the quest then escort starts, otherwise it will continue on its path without player support.
This will work just fine with wp movement and db_scripts.
The problem comes in when the quest start. The player will escort the caravan, and after the quest is completed, the caravan will continue on it's way.
So the only way I can think of this is with a combination of dbscript and SD2 script. The SD2 part will not be an escortAI, but it should emulate that AI as close as possible.
well, there exists the possibility to toggle the wait-timer of waypoint-movement.
Anyhow - either we postphone this quest until we support real waypoint-movement with sd2,
or we make it by moving everything (including normal movement) into sd2,
or we make it by "hacking" sd2 and db together in ways to ie use MovementInform - waypoint-id within SD2.
the last will basicly resort to simply storing the player-guid, and giving quest-credit when a player-guid is set when a defined waypoint is reached.
everything else can basicly be handled with DB-scripting.
Also an idea might be to infact allow storing escort-like information in a place db-scripting can be accessed and as a condition
(like escorting playerGuid, escorting quest-id somewhere, a new condition "IsEscorting" and a new action "GiveQuestCreditToEscortedPlayer" )
Edit: The last part might be doable with expanding the buddy-concept to create a flag "BuddyIsEscortedPlayer"
I'd like to draw your attention on a nice PR recently made on Classic DB repository by @Zingzah that addresses those two quests.
I did not test it, but from what I read of the code, I don't think the timing issue discussed here is fixed by that PR. But I think that a good deal of the DB code of those quests is done in that PR.
So it might be a good idea to have a look at it when doing the SD2 part. And of course, if you need any contribution, I'm your man (and Zingzah will probably help to I dare say).
Thanks @Rushor for the data.
I've started working on those two quests. As I understand/remember it:
there are four NPCs (2 goblins, 2 kodos)
moving along a circular path
they stop here and there and perform emotes, yells and spawn NPCs
on two locations, one of the two goblins proposes a quest for a short time (different quest and different NPC at each location)
the two quests are typical escort quests with ambushes and emotes
Based on this and all the comments above, I think most of the waypoint movement and quests availability could be handled by creature_movement table and DBScripts. However, the two escort quests required SD2 in order to handle the various scripted stages of the escort and more importantly to correctly reset the whole thing in case of quest failure.
are the waypoints from creature_movement or creature_movement_template can be used in a switch (waypoint) the same way waypoints from script_waypoint are?
just a side-node: i saw that you already got datas for the waypoints for both creatures. i don't know if these datas are from current retail, but if you want to sniff it on the current wod-version it will be really hard to find them. 4 months ago i spended like 3 hours to find these creatures in desolace, but they never appeared xD
are the waypoints from creature_movement or creature_movement_template can be used in a switch (waypoint) the same way waypoints from script_waypoint are?
Activity
xfurry commentedon Jun 5, 2014
One problem with this quest along with 5821 is how to handle availability:
So this means that the caravan should move by itself, but at the same time should allow players to take quest only in certain locations.
The only way I can think of is a combination of SD2 script and wp movement.
Rog360 commentedon Jun 6, 2014
Yeah, That would be a task to time correctly. Seems like this would be handled in core like the transports for the Caravan. Just a thought. There is also another one like this at the EP chappel. But that will be later on in another issue... :)
Schmoozerd commentedon Jun 6, 2014
Condition last-reached waypoint might be helping.
Infact i think at some other place there was already talk about adding condition support to quests
probably here however changing npc-flags with db-scripts is what is supposed to happen.
xfurry commentedon Jun 13, 2014
The difficulty that we are facing with quests 5943 and 5821 is not really enabling / disabling the quest.
That can be done by movement_scripts by changing the NPC flag.
The tricky thing is that the caravan stops in point A and point B for a few min, allowing the player to take the quest. If any player takes the quest then escort starts, otherwise it will continue on its path without player support.
This will work just fine with wp movement and db_scripts.
The problem comes in when the quest start. The player will escort the caravan, and after the quest is completed, the caravan will continue on it's way.
So the only way I can think of this is with a combination of dbscript and SD2 script. The SD2 part will not be an escortAI, but it should emulate that AI as close as possible.
Schmoozerd commentedon Jun 13, 2014
well, there exists the possibility to toggle the wait-timer of waypoint-movement.
Anyhow - either we postphone this quest until we support real waypoint-movement with sd2,
or we make it by moving everything (including normal movement) into sd2,
or we make it by "hacking" sd2 and db together in ways to ie use MovementInform - waypoint-id within SD2.
the last will basicly resort to simply storing the player-guid, and giving quest-credit when a player-guid is set when a defined waypoint is reached.
everything else can basicly be handled with DB-scripting.
Also an idea might be to infact allow storing escort-like information in a place db-scripting can be accessed and as a condition
(like escorting playerGuid, escorting quest-id somewhere, a new condition "IsEscorting" and a new action "GiveQuestCreditToEscortedPlayer" )
Edit: The last part might be doable with expanding the buddy-concept to create a flag "BuddyIsEscortedPlayer"
cala commentedon Dec 22, 2014
Gentlemen,
I'd like to draw your attention on a nice PR recently made on Classic DB repository by @Zingzah that addresses those two quests.
I did not test it, but from what I read of the code, I don't think the timing issue discussed here is fixed by that PR. But I think that a good deal of the DB code of those quests is done in that PR.
So it might be a good idea to have a look at it when doing the SD2 part. And of course, if you need any contribution, I'm your man (and Zingzah will probably help to I dare say).
xfurry commentedon Dec 22, 2014
I suppose that I can only take a look at https://github.com/Zingzah/database/commit/e4e1d720a5518f75473bcab6253b549c43cfb9e6 right?
Also, I need to check if we actually have the same guids between classic db and udb, in order for me to be able to check this.
Lumber-Jack-2 commentedon Jan 8, 2015
the script for the first escort, its trinitystuff, but it can be ported maybe
cala commentedon Dec 20, 2015
Thanks @Rushor for the data.
I've started working on those two quests. As I understand/remember it:
Based on this and all the comments above, I think most of the waypoint movement and quests availability could be handled by
creature_movementtable and DBScripts. However, the two escort quests required SD2 in order to handle the various scripted stages of the escort and more importantly to correctly reset the whole thing in case of quest failure.This raises a question that I hope @Schmoozerd of @xfurry can answer:
creature_movementorcreature_movement_templatecan be used in aswitch (waypoint)the same way waypoints fromscript_waypointare?Lumber-Jack-2 commentedon Dec 21, 2015
just a side-node: i saw that you already got datas for the waypoints for both creatures. i don't know if these datas are from current retail, but if you want to sniff it on the current wod-version it will be really hard to find them. 4 months ago i spended like 3 hours to find these creatures in desolace, but they never appeared xD
cala commentedon Dec 21, 2015
The caravan was removed at MoP release unfortunately.
xfurry commentedon Dec 22, 2015
@cala the answer is yes.
Here is some example of create_template_movement points used in scripts:
https://github.com/cmangos/mangos-wotlk/blob/master/src/scriptdev2/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_skadi.cpp#L380
You just have to use WAYPOINT_MOTION_TYPE as a way to switch between the waypoints defined in DB.
Lumber-Jack-2 commentedon Dec 23, 2015
yo @cala
i have done some research on this:
https://www.youtube.com/watch?v=svH6_r1Nymw&hd=1
https://www.youtube.com/watch?v=9ytzhlah53s&hd=1
german infos: https://github.com/ClassicWoW/Nefarian_1.12.1_Bugtracker/issues/1246#issuecomment-160980366
https://vanilla-twinhead.twinstar.cz/?issue=3546 english report
these are he best reports i could found
cala commentedon Jan 3, 2016
DB background is done in classicdb/database@936a9f2
I've started working on the SD2 part for the two escort quests.
cala commentedon Apr 18, 2016
Partially fixed in: cmangos/mangos-wotlk@f4c562e
The quest failure is not properly handled.