В таком случае выгодней будет использовать GetObjectArmySlotCreature, чтобы по нескольку сотен раз не пробегать массив.
function CalcPower(object)
if IsObjectExists(object) == nil then
return 0
end
local power = 0
for i=0,6 do
local t, n = GetObjectArmySlotCreature(object, i)
power = power + (%powers[t] or 10) * n
end
return power
end