Это примерно так:
if valuable then
local value=3000
if not corpse then value=objValue(obj)
end
if value<=0 then value=0
end
local max_dist=5+math_sqrt(value)
local busy=string_find(act_sec,"^walker") or string_find(act_sec,"^combat") or string_find(act_sec,"^danger")
if busy then max_dist=max_dist/5
end
local dist=level.vertex_position(obj:level_ver
local corrected_dist=dist
if dist>5 then
corrected_dist=5+(dist-5)/math_sqrt(valu
end
if dist<max_dist and corrected_dist<min_dist and dist<dist_limit then
min_dist=corrected_dist
claimGObject(npc,self.st,obj)
res=true
end
end
Да, вы правильно поняли:
если за чем-то, имеющим определенную цену, осмысленно ходить не далее, чем на определенное расстояние, то за безценным - оправданно отправиться на расстояние 5 метров + бесконечность.
Впрочем, там далее по тексту все равно ни кто ни куда не идет.