Shin Noir
10-16-2009, 05:29 AM
Ok, unless I'm corrected. When you trade an item to a pet/npc, it runs this check:
loottables.cpp line 484:
else if (item2->Slots & (1 << SLOT_SECONDARY) && (equipment[MATERIAL_SECONDARY]==0)
&& (GetOwner() != NULL || (GetLevel() >= 13 && MakeRandomInt(0,99) < NPC_DW_CHANCE) || (item2->Damage==0)) &&
(item2->ItemType == ItemType1HS || item2->ItemType == ItemType1HB || item2->ItemType == ItemTypeShield ||
item2->ItemType == ItemTypePierce))
{
if (item2->Proc.Effect!=0)
CastToMob()->AddProcToWeapon(item2->Proc.Effect, true);
eslot = MATERIAL_SECONDARY;
}
Which essentially says, if Get Level >= 13 (dual wield level?) and by random chance NPC_DW_CHANCE and a hand full of other situations stated, it's possible to make mobs dual wield visually at level 13. Right?
However, mobai.cpp which is where it figures out dual wield chance etc line 1271:
//can only dual weild without a weapon if your a monk
if((GetEquipment(MATERIAL_SECONDARY) != 0 && GetLevel() > 39) || myclass == MONK || myclass == MONKGM) {
Shows that you have to be > 39 or monk.
My question is, why display the graphic of the offhand if the mob/pet isn't going to do so?
Unless I misunderstood this code, that's what currently is happening.
loottables.cpp line 484:
else if (item2->Slots & (1 << SLOT_SECONDARY) && (equipment[MATERIAL_SECONDARY]==0)
&& (GetOwner() != NULL || (GetLevel() >= 13 && MakeRandomInt(0,99) < NPC_DW_CHANCE) || (item2->Damage==0)) &&
(item2->ItemType == ItemType1HS || item2->ItemType == ItemType1HB || item2->ItemType == ItemTypeShield ||
item2->ItemType == ItemTypePierce))
{
if (item2->Proc.Effect!=0)
CastToMob()->AddProcToWeapon(item2->Proc.Effect, true);
eslot = MATERIAL_SECONDARY;
}
Which essentially says, if Get Level >= 13 (dual wield level?) and by random chance NPC_DW_CHANCE and a hand full of other situations stated, it's possible to make mobs dual wield visually at level 13. Right?
However, mobai.cpp which is where it figures out dual wield chance etc line 1271:
//can only dual weild without a weapon if your a monk
if((GetEquipment(MATERIAL_SECONDARY) != 0 && GetLevel() > 39) || myclass == MONK || myclass == MONKGM) {
Shows that you have to be > 39 or monk.
My question is, why display the graphic of the offhand if the mob/pet isn't going to do so?
Unless I misunderstood this code, that's what currently is happening.