This is why I like indenting if statements - it lets you see how they flow.
This is what you have:
Code:
if (hero.tagcount[Hero.EquipWep] = 2) then
if (tagis[Hero.EquipMain] <> 0) then
if (tagis[Hero.EquipOff] <> 0) then
field[BonEnhance].value = 5
endif
endif
endif
Is that the set of tests you want to use? See how it flows - making the next test only if the previous one is passed?