Projekt

Allgemein

Profil

Aktionen

Fehler #12253

geschlossen

[Mechanik] Pet zählt nicht als Quest Kill Trigger

Von Storm_ vor fast 10 Jahren hinzugefügt. Vor mehr als 8 Jahren aktualisiert.

Status:
Live
Priorität:
Normal
Zugewiesen an:
-
Kategorie:
Quests
Zielversion:
Beginn:
30.11.2015
Update Text Deutsch:

Alle Begleiter (übernommene Kreaturen, Wächter oder Pets) leiten Questteilerfolge nun an ihre Besitzer weiter.


Beschreibung

Hallo, bin neu bei WoW konnte aber zu diesem Fehler(?) nichts finden.

Bestimmte Quest kills werden nicht als solche getiggert wenn mein Jägerpet diese ausführt und nicht mein Chrakter (nur lasthit)

Beispielt ist: [Von der Geißel eingenommen] in der Boreanische Tundra.
setzt mein Pet den Lasthit kommt nichts aus dem Netz.
macht der Charakter den Lasthit kommt unabhängig ob mein Pet schaden gemacht hat oder nicht ein Peon oder anderer NSC aus dem Netz.

Betrifft auch diverse andere NSC Kill Quest. Tritt immer dann auf wenn man vorher einen bebuff (Item) auf den NSC anwenden muss.
Betrift keinen reinen Killquests!

bei Sammelquest (von getöteten Mobs) bin ich nicht sicher.


Untergeordnete Tickets

Aktionen #1

Von Rushor vor fast 10 Jahren aktualisiert

das liegt aber individuell an den scripts.

bei dem ding in der tundra wurde vergessen den petowner mit einzubauen:

void JustDied(Unit* killer) OVERRIDE
        {
            Player* player = killer->ToPlayer();

            if (!player)
                return;

            if (player->GetQuestStatus(QUEST_TAKEN_BY_THE_SCOURGE) == QUEST_STATUS_INCOMPLETE)
            {
                uint8 rand = urand(0, 3);
                if (rand == 3)
                {
                    player->CastSpell(me, SPELL_FREED_WARSONG_PEON, true);
                    player->KilledMonsterCredit(NPC_WARSONG_PEON, 0);
                }
                else if (rand < 3)
                    player->CastSpell(me, nerubarVictims[rand], true);
            }
        }

ein allgmeiner fehler sollte es nicht sein.

fallen dir spontan die anderen quests auch ein?

Aktionen #2

Von Storm_ vor fast 10 Jahren aktualisiert

leider nicht mit namen, aber vielleicht kennst du sie:

heulende Fjorde, befreie XX aus Kokongs.

Drachenöde - Neu Herdweiler - Die quest wo 4-5 NSC zum verleumnen gebracht werden müssen.

sry mehr kann ich gerade nicht sicher sagen.

Aktionen #4

Von Rushor vor mehr als 9 Jahren aktualisiert

https://db.rising-gods.de/?quest=12939

vermutlich der identische Fehler wie in #13664

Aktionen #6

Von Rushor vor mehr als 9 Jahren aktualisiert

Ich bin mir nicht ganz sicher, aber entweder wenn mein Pet am ende die aggro hatte, oder wenn er den last hit hatte, erhalte ich als besitzer des Pets keinen killcredit. Vermutlicher jedoch beim last hit, da so ich das programmiert hätte. Ich denke der fehler ist, dass der der dmg dealer vom last hit den credit bekommt, und nicht auf pet gecheckt wird.

Wenn man aber auf lasthit und so achtet, geht die quest, bzw ohne pet problemlos.

Aktionen #8

Von erimioa vor mehr als 9 Jahren aktualisiert

vielleicht kann man da aber wirklich einen "allgemeinen" fix einbauen, indem man bei KilledMonsterCredit und bei SpellEffect für quest credits und blub, das mit den Pet einbaut. Dies würde dann auch für Zukunft die quests bei Cata genauso betreffen. Sonst müsste man wirklich FÜR JEDE quest wo das der fall ist, die von hand eintragen.

Aktionen #10

Von Rushor vor mehr als 9 Jahren aktualisiert

[Quest][Drachenöde] Die Verleumdung

Die Quest funktioniert zumindest beim Hunter nicht. Mob bekommt zwar Debuff, aber nach dem kill passiert nichts weiter.
Vermutlich gleicher Bug wie bei #3142 .

Video vom 15.05.2015: http://youtu.be/HijUoRFFhcE

Aktionen #11

Von gundalf vor mehr als 9 Jahren aktualisiert

  • Thema wurde von Jäger Pet zählt nicht als Quest Kill Trigger zu [Jäger] Pet zählt nicht als Quest Kill Trigger geändert
Aktionen #13

Von gundalf vor mehr als 9 Jahren aktualisiert

  • Zielversion wurde auf Welt gesetzt
Aktionen #14

Von Rushor vor fast 9 Jahren aktualisiert

Beschreibung

Quest: "Ehrenhafte Herausforderung" ( https://db.rising-gods.de/?quest=12939 ), besiege 4 namenhafte NPC und 6 Mjordinkrieger

Problem: Wenn man sie als Jäger absolvieren möchte, bekommt man weder bei den namenhaften NPCs noch bei den
6 zu besiegenden Mjordingkriegern ( https://db.rising-gods.de/?npc=30037 ) wenn das Pet den finalen Schlag macht,
damit der NPC wieder auf neutral bzw der Mjordinkrieger besiegt wird.

Workaround: Nur wenn man zB das Pet auf defensiv stellt und selbst den letzten Schuss abgibt, bekommt man den Kill/Sieg
zugeschrieben.

Erwartetes Verhalten: Auch wenn das Pet den finalen Schlag macht, muss dem Spieler in der Quest der Fortschritt
vermerkt werden

Aktionen #17

Von Rushor vor fast 9 Jahren aktualisiert

http://pastebin.com/yLN9gnGp

diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 8084914..2f4b6f6 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -448,10 +448,20 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
             {
                 // Special handling for vehicles
                 if (IsUnit(*itr))
+                {
                     if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
+                    {
                         for (SeatMap::iterator it = vehicle->Seats.begin(); it != vehicle->Seats.end(); ++it)
                             if (Player* player = ObjectAccessor::FindPlayer(it->second.Passenger.Guid))
                                 player->AreaExploredOrEventHappens(e.action.quest.quest);
+                    }
+                    else if (Player* player = (*itr)->ToUnit()->GetCharmerOrOwnerPlayerOrPlayerItself())
+                    {
+                        player->AreaExploredOrEventHappens(e.action.quest.quest);
+                        TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS: Player guidLow %u credited quest %u",
+                            (*itr)->GetGUID().GetCounter(), e.action.quest.quest);
+                    }
+                }
Aktionen #18

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Thema wurde von [Jäger] Pet zählt nicht als Quest Kill Trigger zu [Mechanik] Pet zählt nicht als Quest Kill Trigger geändert
  • Status wurde von Neu zu Bestätigt geändert
Aktionen #19

Von Rushor vor mehr als 8 Jahren aktualisiert

muss hier:

case SMART_ACTION_CALL_KILLEDMONSTER:
        {
            if (e.target.type == SMART_TARGET_NONE || e.target.type == SMART_TARGET_SELF) // Loot recipient and his group members
            {
                if (!me)
                    break;

                if (Player* player = me->GetLootRecipient())
                {
                    player->RewardPlayerAndGroupAtEvent(e.action.killedMonster.creature, player);
                    TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u",
                        player->GetGUIDLow(), e.action.killedMonster.creature);
                }
            }
            else // Specific target type
            {
                ObjectList* targets = GetTargets(e, unit);
                if (!targets)
                    break;

                for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
                {
                    if (IsPlayer(*itr))
                    {
                        (*itr)->ToPlayer()->KilledMonsterCredit(e.action.killedMonster.creature);
                        TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u",
                            (*itr)->GetGUIDLow(), e.action.killedMonster.creature);
                    }
                    else if (IsUnit(*itr)) // Special handling for vehicles
                        if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit())
                            for (SeatMap::iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end(); ++itr)
                                if (Player* player = ObjectAccessor::FindPlayer(itr->second.Passenger.Guid))
                                    player->KilledMonsterCredit(e.action.killedMonster.creature);
                }

                delete targets;
            }
            break;
        }

auch noch überarbeitet werden

Aktionen #20

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Status wurde von Bestätigt zu Ready geändert
  • Update Text Deutsch aktualisiert (Vergleich)

hinzugefügt für:
SMART_ACTION_CALL_AREAEXPLOREDOREVENTHAPPENS
SMART_ACTION_CALL_GROUPEVENTHAPPENS
SMART_ACTION_CALL_KILLEDMONSTER

Aktionen #21

Von Daejiv vor mehr als 8 Jahren aktualisiert

  • Status wurde von Ready zu Live geändert
Aktionen #22

Von Rushor vor mehr als 8 Jahren aktualisiert

Bedeutung Live:

Der Bug wurde erfolgreich behoben und befindet sich auf dem Spielserver. Sollte der Fehler weiterhin bestehen sollte ein neues Ticket ( https://redmine.rising-gods.de/projects/live/issues/new ) erstellt werden. Anmerkungen in dem alten abgewiesenen oder live genommenen Ticket werden ignoriert und gelöscht.

Aktionen

Auch abrufbar als: Atom PDF