Spieler unbeweglich nach Mobkill

Hallo,

im neuesten Core kann es vorkommen, dass man sich nicht mehr bewegen kann, wenn man einen Mob gelegt hat.

Genau gesagt passiert es immer dann, wenn der Mob die Flucht ergreift.

Ich konnte das soweit eingrenzen, dass es vor allem Smart Scripte betrifft, die als Chain angehängt sind ([COLOR=rgb(51,51,51)]SMART_EVENT_LINK)

und das command Mob flee haben ([COLOR=rgb(51,51,51)]SMART_ACTION_FLEE_FOR_ASSIST).

Um überhaupt wieder spielen zu können, habe ich die betroffenen Smart Scripte deaktiviert indem ich beim voran gegangen Smart Script den Link auf 0 gesetzt habe.

Das schien für mich die einzige Möglichkeit zu sein, ohne etwas löschen zu müssen. Zuvor hatte ich versucht einen Flag auf Debug only zu setzten, was jedoch Fehlermeldungen beim Serverstart ergab.

Dieser Query setzt den Link der voran gegangenen Smart Scripte auf 0. Bei der aktuellen Datenbank sollten das 114 sein:

disable linked “mob flee in fear” smart script which causes player movement stuck

will edit ~114 smart scripts

set link=0 if next script(t2) is linked chain from previous script(t1)

and next script(t2).action_type = 25

update smart_scripts t1
left join smart_scripts t2
ON t1.entryorguid = t2.entryorguid
and t2.id = t1.id + 1
and t1.link = t2.id
set
t1.link = 0
where
t2.entryorguid is not null
and t2.action_type = 25

Zum finden oder wieder finden der betroffenen Smart Scripte der Select, wenn ein Patch den Fehler behoben hat.

select
t1.entryorguid as t1_guid,
t2.entryorguid as t2_guid,
name,
t1.id as id_before,
t1.link as next_id,
t1.action_type as action_before,
t2.id as id_after,
t2.action_type as action_after
from
smart_scripts t1
left join
smart_scripts t2 ON t1.entryorguid = t2.entryorguid
and t2.id = t1.id + 1

left join
creature_template cr ON cr.entry = t1.entryorguid
where
t2.entryorguid is not null
and t2.action_type = 25
order by name

Core:

TrinityCore rev. 99680242e89f 2013-05-28 15:19:37 +0200 (master branch) (Win32, Release)