classicdb / database

Classic DB is a content database for CMaNGOS Classic: world, NPCs, objects, quests and so on.
https://github.com/cmangos/mangos-classic
Other
87 stars 59 forks source link

quest 648 "Rescue OOX-17/TN!" #821

Closed RichardGe closed 4 years ago

RichardGe commented 8 years ago

Hi,

When I start the quest 648 "Rescue OOX-17/TN!", the robot doesn't move. However, the quest seems implemented inside mangos/src/scriptdev2/scripts/kalimdor/tanaris.cpp So I don't know what is happening.

item that starts the quest : 8623 position of the robot: .go zonexy 60.2 64.6 440

cala commented 8 years ago

Typical dev answer: "It works for me".

I tested right now and the NPC starts the escort quest. Could you check that SD2 is working, please?

Rushor commented 8 years ago

maybe some player started the quest, then run away from the grid of the chicken it could be the case that this behaviour create bugs for the ecortAI

killerwife commented 8 years ago

Possible problem is that the chicken is supposed to be set as active object when the escort starts. Problem is current cmangos doesnt correctly support active creatures as im told. On retail the chicken would move/die even if the player left the chicken.

cala commented 8 years ago

What you are referring to is a different issue, related to how the escort quests are handled in core. @RichardGe was saying that the quest escort does not even start and I can't reproduce that issue, hence my suggestion to check that SD2 is loaded/working.

RichardGe commented 8 years ago

I'm currently investigating if SD2 is correctly installed. maybe it's not because SD2Error.log is saying "Configuration file version doesn't match expected version. Some config variables may be wrong or missing."

RichardGe commented 8 years ago

ok, I have executed the line : mysql -uroot -p mangos < mangos/sql/scriptdev2/scriptdev2.sql and now the chicken seems to work :)

However, note that I still have the message "Configuration file version doesn't match expected version. Some config variables may be wrong or missing." in SD2Error.log Is this expected ?

RichardGe commented 8 years ago

The chicken is now moving. But quest has some issue on my server : 1) after the first 3 scorpions attack, the chicken will continue to move with the died animation (even if he has 100% of life, see my screenshot). This is just rendering.. so this doesn't prevent to finish the quest 2) The chicken doesn't aggro the random mobs directly. he only attacks them if the player has aggro them. I think this was not like that in the original wow ? 3) biggest issue preventing the finish of the quest, is that, sometimes, after attacking random mobs, the chicken will run fast backward for a while and disappear.

when I say "random mobs", I'm talking of the Tanaris mobs that the player&chicken will meet during the escort. Not the mobs spawned by the escort script.

asup_wowchi

cala commented 8 years ago

However, note that I still have the message "Configuration file version doesn't match expected version. Some config variables may be wrong or missing." in SD2Error.log Is this expected ?

It means that your configuration file for SD2 does not have the same version that the one expected by the core. I have the same issue since the integration of SD2 into core (which is expected for I did not update my SD2 conf file since). I don't know (yet) if the SD2 config file is still needed now. Whatever, this message is unrelated to your issue and can be ignored for now.

after the first 3 scorpions attack, the chicken will continue to move with the died animation (even if he has 100% of life, see my screenshot). This is just rendering.. so this doesn't prevent to finish the quest

I'm surprised by this one. Can you explain how the chicken got the "dead" animation, please?

The chicken doesn't aggro the random mobs directly. he only attacks them if the player has aggro them. I think this was not like that in the original wow ?

This is related to SD2 behaviour: when starting an escort quest, NPCs are assigned a temporary escort faction, by default this faction does not aggro random NPCs. There are other possibilies of escort factions, some aggroing nearby NPCs, like what I did in : https://github.com/scriptdev2/scriptdev2-classic/commit/a2257fbcee76c17d3cb8b175f50236a99f3d39ea

biggest issue preventing the finish of the quest, is that, sometimes, after attacking random mobs, the chicken will run fast backward for a while and disappear.

When leaving combat, the escort NPC will move back to its previously reached waypoint which can be far behind if the path is very linear (or the developer lazy). When this happens, if the player does not catchup quick enough, the NPC can be removed from grid. Unless some systems are rewritten in core, I can only advice to:

RichardGe commented 8 years ago

Here is a video: https://youtu.be/7hwbF2ZpgO4 01:10 - after the first attack, the chicken has the 'died' animation. 04:10 - chicken runs too far behind, and disappears (Maybe more waypoints should be added) ( Note that I kill NPCs with the .die command )

cala commented 8 years ago

Thank you for this video. I'm really puzzled by the 'dead chicken' animation. There's something weird here.

I don't know if the waypoints in the SD2 script come from sniffs or were manually added, so it 's hard to tell if we should add more. However, it looks like the chicken is running far too quickly because the player can't even catch with it. I have to check the speed in DB.

killerwife commented 8 years ago

Doesnt the chicken reset to creature_template entry when it "just returned home" ?

RichardGe commented 8 years ago

The die animation is not specific to the chicken. It's also present in the escort quest 3367 : "Suntara Stones" started by Dorius Stonetender. : asup_escort (in this screenshot, Dorius is alive and "walking")

killerwife commented 8 years ago

Does he have dynflag DEAD set? Afaik its 32 UNIT_DYNFLAG_DEAD

killerwife commented 8 years ago

select * from creature_template_addon where entry=8284; bytes1 is set to 7, which means he is lying on the floor dead

m_creature->SetByteValue(UNIT_FIELD_BYTES_1, 3, 0); needs to be done in code at start of escort afaik

EDIT: need to check when load addon is called, if its not at leaving combat or something similar

cala commented 7 years ago

Poke @xfurry

Long time without seeing you, I hope you are doing well and that everything is fine.

I can managed to get in touch with you on IRC. Please, can you explain here what you had in mind in this comment so we can close this long due issue. Thanks !

killerwife commented 7 years ago

As much as I dont want to butt in, creature_addon cant be used for this. Need to remove it from DB, and only set it at spawn in JustRespawned() of the AI.

xfurry commented 7 years ago

@cala I am doing fine, thank you. I hope you are doing fine as well. Sorry, for the low activity lately. I'm still struggling to setup my new desktop machine. Unfortunately I got some serious delays because of the graphic card shortage.

cala commented 6 years ago

Part of this is fixed in https://github.com/cmangos/classic-db/commit/a863a9c5575cbc14ee1ff33ea0315574e63a75fa There are still some issues with the quests that I intend to fix SD2-side later. Same treatment for the "Suntara Stones" will occur.

cala commented 4 years ago

Now fixed and working nicely.