Ok, this source patch should work to fix dual wield but I have no way of testing it.
Currently the source for the DW check is this:
mobai.cpp:1271
Code:
//can only dual weild without a weapon if your a monk
if((GetEquipment(MATERIAL_SECONDARY) != 0 && GetLevel() > 39) || myclass == MONK || myclass == MONKGM) {
That means, only if your pet's actual level is over 39 will it dual wield. Well we have to add a special exception for lower level pets.
The situation we aim to achieve is that:
Pets summoned with 29-39th spells will dual-wield if given weapons (if offhand is not empty). Pets with 44th and 49th spells should dual wield without weapons.
Changing the check to this should achieve that goal:
Code:
if((GetEquipment(MATERIAL_SECONDARY) != 0 && GetLevel() > 39) || (GetOwner() != NULL && GetEquipment(MATERIAL_SECONDARY) != 0 && GetLevel() > 24) || (GetOwner() != NULL && GetLevel() > 37) || myclass == MONK || myclass == MONKGM)
Added two new conditions based on the return of GetOwner() (if returns non-null, I'm a pet), and GetLevel() (self-explanatory).
Only one question: What are the lowest level 29 and 44 pets? I THINK they're 25 and 38 respectively but I could be wrong.