Jump to content

Vehicles (Dev)


Guest AuntieMangos

Recommended Posts

Something strange since the aura related changes.

I'm getting this crash when I try to summon a vehicule with a item (for exemple, item 37859).

[size=2]Program received signal SIGABRT, Aborted.
[switching to Thread 0x42ed4950 (LWP 27181)]
0x00007f00d5c12ed5 in raise () from /lib/libc.so.6
11 Thread 0x456d9950 (LWP 27186) 0x00007f00d5cb0b68 in epoll_wait ()
from /lib/libc.so.6
10 Thread 0x44ed8950 (LWP 27185) 0x00007f00d5cb0b68 in epoll_wait ()
from /lib/libc.so.6
9 Thread 0x446d7950 (LWP 27184) 0x00007f00d66e80e1 in nanosleep ()
from /lib/libpthread.so.0
8 Thread 0x43ed6950 (LWP 27183) 0x00007f00d5cb0b68 in epoll_wait ()
from /lib/libc.so.6
7 Thread 0x436d5950 (LWP 27182) 0x00007f00d5c7eff1 in nanosleep ()
from /lib/libc.so.6
* 6 Thread 0x42ed4950 (LWP 27181) 0x00007f00d5c12ed5 in raise ()
from /lib/libc.so.6
4 Thread 0x417d7950 (LWP 27179) 0x00007f00d66e80e1 in nanosleep ()
from /lib/libpthread.so.0
3 Thread 0x426d3950 (LWP 27178) 0x00007f00d66e80e1 in nanosleep ()
from /lib/libpthread.so.0
2 Thread 0x40db1950 (LWP 27177) 0x00007f00d66e80e1 in nanosleep ()
from /lib/libpthread.so.0
1 Thread 0x7f00d85156f0 (LWP 27174) 0x00007f00d66e1715 in pthread_join ()
from /lib/libpthread.so.0
#0 0x00007f00d5c12ed5 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00007f00d5c143f3 in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00007f00d5c0bdc9 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x000000000072ac24 in SpellAuraHolder (this=0x7f00bac8fa60, 
spellproto=0x7f00ce4671fc, target=0x7f00ba9fc100, caster=0x7f00ba9fc100, 
castItem=<value optimized out>) at ../../../src/game/SpellAuras.cpp:7567
No locals.
#4 0x000000000072b03a in CreateSpellAuraHolder (spellproto=0x7f00ce4671fc, 
target=0x7f00ba9fc100, caster=0x7f00ba9fc100, castItem=0x0)
at ../../../src/game/SpellAuras.cpp:564
No locals.
#5 0x000000000055d3d8 in Creature::LoadCreaturesAddon (this=0x7f00ba9fc100, 
reload=false) at ../../../src/game/Creature.cpp:1851
AdditionalSpellInfo = (const SpellEntry *) 0x7f00ce4671fc
holder = (SpellAuraHolder *) 0x0
AdditionalAura = (class Aura *) 0x4f10000
cAura = (const CreatureDataAddonAura *) 0x7f00c998ee90
cainfo = <value optimized out>
#6 0x00000000007be5c4 in Vehicle::Create (this=0x7f00ba9fc100, guidlow=1, 
map=0x4f10000, phaseMask=1, Entry=<value optimized out>, vehicleId=39, 
team=67, data=0x0) at ../../../src/game/Vehicle.cpp:142
cinfo = <value optimized out>
#7 0x0000000000659242 in WorldObject::SummonVehicle (this=0x4d48000, 
id=27692, x=974.095032, y=1010.03375, z=359.967377, ang=4.78209877, 
vehicleId=0) at ../../../src/game/Object.cpp:1690
v = <value optimized out>
map = (class Map *) 0x4f10000
team = 67
#8 0x0000000000758957 in Spell::EffectSummonVehicle (this=0x7f00baa5fc00, 
eff_idx=<value optimized out>) at ../../../src/game/SpellEffects.cpp:8074
creature_entry = 27692
px = 974.095032
py = 1010.03375
pz = 359.967377
v = <value optimized out>
duration = <value optimized out>
#9 0x000000000073d3ac in Spell::DoSpellHitOnUnit (this=0x7f00baa5fc00, 
unit=0x4d48000, effectMask=3) at ../../../src/game/Spell.cpp:1244
effectNumber = 0
realCaster = (class Unit *) 0x4d48000
#10 0x000000000073dd0b in Spell::DoAllEffectOnTarget (this=0x7f00baa5fc00, 
target=0x7f00bb1d97c0) at ../../../src/game/Spell.cpp:1003
mask = 6
unit = (class Unit *) 0x4d48000
real_caster = (class Unit *) 0x4d48000
caster = (class Unit *) 0x4d48000
missInfo = SPELL_MISS_NONE
procAttacker = 16384
procVictim = 32768
procEx = <value optimized out>
#11 0x000000000074b33c in Spell::handle_delayed (this=0x7f00baa5fc00, 
t_offset=450) at ../../../src/game/Spell.cpp:3034
next_time = 0
#12 0x000000000074bfde in SpellEvent::Execute (this=0x7f00bab2e890, 
e_time=57408, p_time=<value optimized out>)
at ../../../src/game/Spell.cpp:6521
n_offset = <value optimized out>
#13 0x000000000089486f in EventProcessor::Update (this=0x4d48110, p_time=149)
at ../../../src/framework/Utilities/EventProcessor.cpp:47
Event = (BasicEvent *) 0x7f00bab2e890
#14 0x00000000007a733c in Unit::Update (this=0x4d48000, p_time=149)
at ../../../src/game/Unit.cpp:288
No locals.
#15 0x00000000006fadb3 in Player::Update (this=0x4d48000, p_time=149)
at ../../../src/game/Player.cpp:1201
now = <value optimized out>
pet = <value optimized out>
#16 0x0000000000636a64 in Map::Update (this=0x4f10000, t_diff=@0x42ed402c)
at ../../../src/game/Map.cpp:520
plr = (class Player *) 0x6a26
updater = {i_timeDiff = 1122844624}
grid_object_update = {i_visitor = @0x42ed3f50}
world_object_update = {i_visitor = @0xff22d103}
__FUNCTION__ = "Update"
__PRETTY_FUNCTION__ = "virtual void Map::Update(const uint32&)"
#17 0x0000000000637b69 in InstanceMap::Update (this=0x6a26, t_diff=@0x6a2d)
at ../../../src/game/Map.cpp:1913
No locals.
#18 0x000000000082ffad in MapInstanced::Update (this=0x4ef0000, t=@0x42ed402c)
at ../../../src/game/MapInstanced.cpp:63
i = {<std::tr1::__detail::_Hashtable_iterator_base<std::Pair<const unsigned int, Map*>, false>> = {_M_cur_node = 0x7f00baf55918, 
_M_cur_bucket = 0x7f00bb39c9e0}, <No data fields>}
#19 0x0000000000644c5f in MapManager::Update (this=0x7f00bb9d8aa0, 
diff=<value optimized out>) at ../../../src/game/MapManager.cpp:250
No locals.
#20 0x00000000007ce074 in World::Update (this=0x7f00d5117900, diff=50)
at ../../../src/game/World.cpp:1443
No locals.
#21 0x000000000051340c in WorldRunnable::run (this=<value optimized out>)
at ../../../src/mangosd/WorldRunnable.cpp:60
diff = 50
realCurrTime = 3193620069
realPrevTime = <value optimized out>
prevSleepTime = 50
#22 0x000000000087c05c in ACE_Based::Thread::ThreadTask (param=0x6a26)
at ../../../src/shared/Threading.cpp:187
_task = (class ACE_Based::Runnable *) 0x7f00bb9b3f10
#23 0x00007f00d66e0fc7 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#24 0x00007f00d5cb059d in clone () from /lib/libc.so.6
No symbol table info available.
#25 0x0000000000000000 in ?? ()
No symbol table info available.

Any ideas ? Since the SpellAuraHolder is based on holder, casting spells like 49461 from item 37859 could not find the caster ?

Link to comment
Share on other sites

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

http://gist.github.com/471587

Insider44(3.3.5)[mangos rev: 10176] + vehicle patch

and

diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 32a60fd..6717860 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -1694,7 +1694,7 @@ Vehicle* WorldObject::SummonVehicle(uint32 id, float x, float y, float z, float
    }

    if (x == 0.0f && y == 0.0f && z == 0.0f)
-        GetClosePoint(x, y, z, v->GetObjectSize());
+        GetClosePoint(x, y, z, v->GetObjectBoundingRadius());

    v->Relocate(x, y, z, ang);

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ec13a6f..42f89bf 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10325,9 +10325,9 @@ void Unit::EnterVehicle(Vehicle *vehicle, int8 seat_id, bool force)
        return;

    m_movementInfo.SetTransportData(v->GetGUID(),
-        (veSeat->m_attachmentOffsetX + v->GetObjectSize()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
-        (veSeat->m_attachmentOffsetY + v->GetObjectSize()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
-        (veSeat->m_attachmentOffsetZ + v->GetObjectSize()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
+        (veSeat->m_attachmentOffsetX + v->GetObjectBoundingRadius()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
+        (veSeat->m_attachmentOffsetY + v->GetObjectBoundingRadius()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
+        (veSeat->m_attachmentOffsetZ + v->GetObjectBoundingRadius()) * GetFloatValue(OBJECT_FIELD_SCALE_X),
        veSeat->m_passengerYaw, v->GetCreationTime(), seat_id, veSeat->m_ID,
        sObjectMgr.GetSeatFlags(veSeat->m_ID), v->GetVehicleFlags());

@@ -10380,7 +10380,7 @@ void Unit::ExitVehicle()
                    vehicle->SetSpawnDuration(1);
                }
            }
-            v_size = vehicle->GetObjectSize();
+            v_size = vehicle->GetObjectBoundingRadius();
            vehicle->RemovePassenger(this);
        }
        SetVehicleGUID(0);

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index eae5df1..925710e 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3594,8 +3594,8 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
            ((Player*)target)->m_movementInfo.SetMovementFlags(MOVEFLAG_NONE);
            target->SetStandState(UNIT_STAND_STATE_STAND);// in 1.5 client
        }
-
-        if(!m_target->hasUnitState(UNIT_STAT_ON_VEHICLE))
+        
+        if(!target->hasUnitState(UNIT_STAT_ON_VEHICLE))
        {
            WorldPacket data(SMSG_FORCE_MOVE_ROOT, 8);
            data << target->GetPackGUID();

Link to comment
Share on other sites

Hmm, an another crash when you use a spell in a vehicle, probably due to the assert.

ASSERT(caster->GetObjectGuid().IsUnit())

[size=2]Program received signal SIGABRT, Aborted.
[switching to Thread 0x42e87950 (LWP 23377)]
0x00007f38ad899ed5 in raise () from /lib/libc.so.6
11 Thread 0x4568c950 (LWP 23382) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
10 Thread 0x44e8b950 (LWP 23381) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
9 Thread 0x4468a950 (LWP 23380) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
8 Thread 0x43e89950 (LWP 23379) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
7 Thread 0x43688950 (LWP 23378) 0x00007f38ad905ff1 in nanosleep ()
from /lib/libc.so.6
* 6 Thread 0x42e87950 (LWP 23377) 0x00007f38ad899ed5 in raise ()
from /lib/libc.so.6
4 Thread 0x41954950 (LWP 22907) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
3 Thread 0x41153950 (LWP 22906) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
2 Thread 0x42686950 (LWP 22905) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
1 Thread 0x7f38b019c6f0 (LWP 22745) 0x00007f38ae368715 in pthread_join ()
from /lib/libpthread.so.0
#0 0x00007f38ad899ed5 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00007f38ad89b3f3 in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00007f38ad892dc9 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x000000000072fb14 in SpellAuraHolder (this=0x7f388d3df880, 
spellproto=0x7f38a62359a4, target=0x7f388c848100, caster=0x7f388c848100, 
castItem=<value optimized out>) at ../../../src/game/SpellAuras.cpp:7842
No locals.
#4 0x000000000072ff2a in CreateSpellAuraHolder (spellproto=0x7f38a62359a4, 
target=0x7f388c848100, caster=0x7f388c848100, castItem=0x0)
at ../../../src/game/SpellAuras.cpp:560
No locals.
#5 0x000000000073f4bf in Spell::DoSpellHitOnUnit (this=0x7f388c715a00, 
unit=0x7f388c848100, effectMask=1) at ../../../src/game/Spell.cpp:1249
realCaster = (class Unit *) 0x7f388c848100
#6 0x000000000073ffbb in Spell::DoAllEffectOnTarget (this=0x7f388c715a00, 
target=0x7f38905f7d10) at ../../../src/game/Spell.cpp:1005
mask = 6
unit = (class Unit *) 0x7f388c848100
real_caster = (class Unit *) 0x7f388c848100
caster = (class Unit *) 0x7f388c848100
missInfo = SPELL_MISS_NONE
procAttacker = 16384
procVictim = 32768
procEx = <value optimized out>
#7 0x000000000074d714 in Spell::handle_immediate (this=0x7f388c715a00)
at ../../../src/game/Spell.cpp:3014
No locals.
#8 0x000000000074c823 in Spell::cast (this=0x7f388c715a00, skipCheck=false)
at ../../../src/game/Spell.cpp:2987
castResult = <value optimized out>
#9 0x000000000074e287 in SpellEvent::Execute (this=0x7f388fc86c00, 
e_time=10651, p_time=6) at ../../../src/game/Spell.cpp:6475
No locals.
#10 0x00000000008980ef in EventProcessor::Update (this=0x7f388c848210, 
p_time=100) at ../../../src/framework/Utilities/EventProcessor.cpp:47
Event = (BasicEvent *) 0x7f388fc86c00
#11 0x00000000007a950c in Unit::Update (this=0x7f388c848100, p_time=100)
at ../../../src/game/Unit.cpp:288
No locals.
#12 0x00000000005623a3 in Creature::Update (this=0x7f388c848100, diff=100)
at ../../../src/game/Creature.cpp:460
No locals.
#13 0x00000000007c01e8 in Vehicle::Update (this=0x58d9, diff=23377)
at ../../../src/game/Vehicle.cpp:76
No locals.
#14 0x000000000063ae16 in VisitorHelper<MaNGOS::ObjectUpdater, Creature> (
v=@0x42e86fd0, c=<value optimized out>)
at ../../../src/game/GridNotifiersImpl.h:44
No locals.
#15 0x0000000000637d8a in Map::Update (this=0x1cd8000, t_diff=@0x42e8702c)
at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:57
cell = {data = {Part = {grid_x = 45, grid_y = 28, cell_x = 2, 
cell_y = 2, nocreate = 1, reserved = 16}, All = 554182445}}
y = 226
x = 362
plr = <value optimized out>
updater = {i_timeDiff = 100}
grid_object_update = {i_visitor = @0x42e86fd0}
world_object_update = {i_visitor = @0x42e86fd0}
__FUNCTION__ = "Update"
__PRETTY_FUNCTION__ = "virtual void Map::Update(const uint32&)"
#16 0x0000000000645adf in MapManager::Update (this=0x7f38934acaa0, 
diff=<value optimized out>) at ../../../src/game/MapManager.cpp:250
No locals.
#17 0x00000000007d0854 in World::Update (this=0x7f38acd9b900, diff=47)
at ../../../src/game/World.cpp:1450
No locals.
#18 0x00000000005137ec in WorldRunnable::run (this=<value optimized out>)
at ../../../src/mangosd/WorldRunnable.cpp:60
diff = 47
realCurrTime = 3323902118
realPrevTime = <value optimized out>
prevSleepTime = 46
#19 0x000000000087f8dc in ACE_Based::Thread::ThreadTask (param=0x58d9)
at ../../../src/shared/Threading.cpp:187
_task = (class ACE_Based::Runnable *) 0x7f38934975b0
#20 0x00007f38ae367fc7 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#21 0x00007f38ad93759d in clone () from /lib/libc.so.6
No symbol table info available.
#22 0x0000000000000000 in ?? ()
No symbol table info available.

Link to comment
Share on other sites

Hmm, an another crash when you use a spell in a vehicle, probably due to the assert.

ASSERT(caster->GetObjectGuid().IsUnit())

[size=2]Program received signal SIGABRT, Aborted.
[switching to Thread 0x42e87950 (LWP 23377)]
0x00007f38ad899ed5 in raise () from /lib/libc.so.6
11 Thread 0x4568c950 (LWP 23382) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
10 Thread 0x44e8b950 (LWP 23381) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
9 Thread 0x4468a950 (LWP 23380) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
8 Thread 0x43e89950 (LWP 23379) 0x00007f38ad937b68 in epoll_wait ()
from /lib/libc.so.6
7 Thread 0x43688950 (LWP 23378) 0x00007f38ad905ff1 in nanosleep ()
from /lib/libc.so.6
* 6 Thread 0x42e87950 (LWP 23377) 0x00007f38ad899ed5 in raise ()
from /lib/libc.so.6
4 Thread 0x41954950 (LWP 22907) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
3 Thread 0x41153950 (LWP 22906) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
2 Thread 0x42686950 (LWP 22905) 0x00007f38ae36f0e1 in nanosleep ()
from /lib/libpthread.so.0
1 Thread 0x7f38b019c6f0 (LWP 22745) 0x00007f38ae368715 in pthread_join ()
from /lib/libpthread.so.0
#0 0x00007f38ad899ed5 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00007f38ad89b3f3 in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00007f38ad892dc9 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x000000000072fb14 in SpellAuraHolder (this=0x7f388d3df880, 
spellproto=0x7f38a62359a4, target=0x7f388c848100, caster=0x7f388c848100, 
castItem=<value optimized out>) at ../../../src/game/SpellAuras.cpp:7842
No locals.
#4 0x000000000072ff2a in CreateSpellAuraHolder (spellproto=0x7f38a62359a4, 
target=0x7f388c848100, caster=0x7f388c848100, castItem=0x0)
at ../../../src/game/SpellAuras.cpp:560
No locals.
#5 0x000000000073f4bf in Spell::DoSpellHitOnUnit (this=0x7f388c715a00, 
unit=0x7f388c848100, effectMask=1) at ../../../src/game/Spell.cpp:1249
realCaster = (class Unit *) 0x7f388c848100
#6 0x000000000073ffbb in Spell::DoAllEffectOnTarget (this=0x7f388c715a00, 
target=0x7f38905f7d10) at ../../../src/game/Spell.cpp:1005
mask = 6
unit = (class Unit *) 0x7f388c848100
real_caster = (class Unit *) 0x7f388c848100
caster = (class Unit *) 0x7f388c848100
missInfo = SPELL_MISS_NONE
procAttacker = 16384
procVictim = 32768
procEx = <value optimized out>
#7 0x000000000074d714 in Spell::handle_immediate (this=0x7f388c715a00)
at ../../../src/game/Spell.cpp:3014
No locals.
#8 0x000000000074c823 in Spell::cast (this=0x7f388c715a00, skipCheck=false)
at ../../../src/game/Spell.cpp:2987
castResult = <value optimized out>
#9 0x000000000074e287 in SpellEvent::Execute (this=0x7f388fc86c00, 
e_time=10651, p_time=6) at ../../../src/game/Spell.cpp:6475
No locals.
#10 0x00000000008980ef in EventProcessor::Update (this=0x7f388c848210, 
p_time=100) at ../../../src/framework/Utilities/EventProcessor.cpp:47
Event = (BasicEvent *) 0x7f388fc86c00
#11 0x00000000007a950c in Unit::Update (this=0x7f388c848100, p_time=100)
at ../../../src/game/Unit.cpp:288
No locals.
#12 0x00000000005623a3 in Creature::Update (this=0x7f388c848100, diff=100)
at ../../../src/game/Creature.cpp:460
No locals.
#13 0x00000000007c01e8 in Vehicle::Update (this=0x58d9, diff=23377)
at ../../../src/game/Vehicle.cpp:76
No locals.
#14 0x000000000063ae16 in VisitorHelper<MaNGOS::ObjectUpdater, Creature> (
v=@0x42e86fd0, c=<value optimized out>)
at ../../../src/game/GridNotifiersImpl.h:44
No locals.
#15 0x0000000000637d8a in Map::Update (this=0x1cd8000, t_diff=@0x42e8702c)
at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:57
cell = {data = {Part = {grid_x = 45, grid_y = 28, cell_x = 2, 
cell_y = 2, nocreate = 1, reserved = 16}, All = 554182445}}
y = 226
x = 362
plr = <value optimized out>
updater = {i_timeDiff = 100}
grid_object_update = {i_visitor = @0x42e86fd0}
world_object_update = {i_visitor = @0x42e86fd0}
__FUNCTION__ = "Update"
__PRETTY_FUNCTION__ = "virtual void Map::Update(const uint32&)"
#16 0x0000000000645adf in MapManager::Update (this=0x7f38934acaa0, 
diff=<value optimized out>) at ../../../src/game/MapManager.cpp:250
No locals.
#17 0x00000000007d0854 in World::Update (this=0x7f38acd9b900, diff=47)
at ../../../src/game/World.cpp:1450
No locals.
#18 0x00000000005137ec in WorldRunnable::run (this=<value optimized out>)
at ../../../src/mangosd/WorldRunnable.cpp:60
diff = 47
realCurrTime = 3323902118
realPrevTime = <value optimized out>
prevSleepTime = 46
#19 0x000000000087f8dc in ACE_Based::Thread::ThreadTask (param=0x58d9)
at ../../../src/shared/Threading.cpp:187
_task = (class ACE_Based::Runnable *) 0x7f38934975b0
#20 0x00007f38ae367fc7 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#21 0x00007f38ad93759d in clone () from /lib/libc.so.6
No symbol table info available.
#22 0x0000000000000000 in ?? ()
No symbol table info available.

Confirmed. For example, use the spells of the Argent Tournament mounts crashes server, with that ASSERT. I don't know how to fix this, so for now, this patch is unstable :/

Link to comment
Share on other sites

Why this lines?

@@ -19476,6 +19534,13 @@ void Player::SendInitialPacketsBeforeAddToMap()

void Player::SendInitialPacketsAfterAddToMap()
{
+    if(getClass() == CLASS_DEATH_KNIGHT)
+        ResyncRunes(MAX_RUNES);
+
+    WorldPacket data0(SMSG_SET_PHASE_SHIFT, 4);
+    data0 << uint32(GetPhaseMask());
+    GetSession()->SendPacket(&data0);
+
    // update zone
    uint32 newzone, newarea;
    GetZoneAndAreaId(newzone,newarea);

and

@@ -20900,7 +20923,8 @@ void Player::ConvertRune(uint8 index, RuneType newType)

void Player::ResyncRunes(uint8 count)
{
-    WorldPacket data(SMSG_RESYNC_RUNES, count * 2);
+    WorldPacket data(SMSG_RESYNC_RUNES, 4 + count * 2);
+    data << uint32(count + 1);
    for(uint32 i = 0; i < count; ++i)
    {
        data << uint8(GetCurrentRune(i));                   // rune type

For me, they bug the DKs. Try to cast a spell when it is on cd, suddenly, it appears like you could cast the spell, but really you can't, because you haven't enought runes.

What is the reason of that change?

Link to comment
Share on other sites

Confirmed. For example, use the spells of the Argent Tournament mounts crashes server, with that ASSERT. I don't know how to fix this, so for now, this patch is unstable :/

see what the author wrote: // remove this assert when not unit casters will be supported

but with the vehicle patch they (not unit casters) already supported (I think so that is),

and just comment in SpellAuras.cpp this line: //ASSERT(caster->GetObjectGuid().IsUnit())

Note:

sorry if this solution is wrong, because not tried it yet.

Link to comment
Share on other sites

see what the author wrote: // remove this assert when not unit casters will be supported

but with the vehicle patch they (not unit casters) already supported (I think so that is),

and just comment in SpellAuras.cpp this line: //ASSERT(caster->GetObjectGuid().IsUnit())

Note:

sorry if this solution is wrong, because not tried it yet.

Remove the ASSERT works, it doesn't crash now ^^

Link to comment
Share on other sites

I sincerely hope people have enough wits to indicate when a fix applies to a custom core or the official, standard core.

I'm not even sure if it's permitted to post fixes for custom cores, since MaNGOS does not support them and has instructed custom core users to take up any issues with the maintainers of those cores.

Assuming you can, state if a fix is only for a custom core. Please do not confuse everyone and make more problems.

Link to comment
Share on other sites

If you mean, "Don't bother unless all features are at least implemented.", then you're right.

Vehicles mostly work, but not necessarily Blizz-like, and there are still several issues to be resolved such as multi-seat mounts, vehicles in battlegrounds, and vehicle bosses. Development is spotty and you have several versions of this patch floating around since there's no unified effort.

That is the state of things to the best of my knowledge. A status update would be greatly appreciated.

Link to comment
Share on other sites

I don't understand, I've got this error when compiling :

..\\..\\src\\game\\Object.cpp(311) : error C2039: 'isInFlight'*: n'est pas membre de 'Player'

c:\\mangos\\mangos\\src\\game\\Player.h(1079)*: voir la déclaration de 'Player'

MaNGOS 10298

ScriptDev2 1750

Link to comment
Share on other sites

I don't understand, I've got this error when compiling :

..\\..\\src\\game\\Object.cpp(311) : error C2039: 'isInFlight'*: n'est pas membre de 'Player'

c:\\mangos\\mangos\\src\\game\\Player.h(1079)*: voir la déclaration de 'Player'

MaNGOS 10298

ScriptDev2 1750

change for : if(player->IsTaxiFlying()) in src\\game\\Object.cpp

Link to comment
Share on other sites

Aside from changing isInFlight to IsTaxiFlying, the function GetObjectSize has changed to GetObjectBoundingRadius as of several revisions past in the MaNGOS core.

That's two changes that need to be made to the Vehicle patch that I've found so far, with help from DaViper and his brother (thanks guys!).

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use