Findpath error
Posted: Thu Sep 11, 2008 6:26 am
Why i get "Out of memory." error ? and what kind of memory i lack?
Code: Select all
function znajdzdroge(droga := 0,proba := 0,traj := 0)
var szukacz := findpath(self().x,self().y,self().z,opponent.x,opponent.y,opponent.z,self().realm,0,20);
if(szukacz && !szukacz.errortext && (szukacz.size() > 1))
foreach cord in szukacz
var licznik := 0;
var dystans;
while((self().x != cord.x) and (self().y != cord.y))
var opx := opponent.x;
var opy := opponent.y;
dystans := coordist(me.x, me.y, cord.x, cord.y);
RunTowardLocation(cord.x, cord.y);
sleepms(100);
if(coordist(me.x, me.y, cord.x, cord.y) >= dystans)
licznik := licznik + 1;
endif
if(licznik > 4)
if(proba >= 3)
return 5;
endif
proba := proba +1;
licznik := 0;
return 5;
//znajdzdroge(droga,proba);
endif
if((opponent.x != opx) or (opponent.y != opy))
return 5;
//closedistance(opponent);
// break;
endif
endwhile
//endif
endforeach
else
if(szukacz.errortext == "Out of memory.")
//say(""+szukacz.errortext);
traj := traj+1;
//say("try PIRERWSZY "+traj);
if(traj > 2)
if(droga == 0)
var r := 1;
while(r < 20)
runawayfrom(opponent);
sleepms(50);
if(r == 19)
opponent := 0;
setopponent(opponent);
endif
r := r+1;
endwhile
else
//say("powinno byc tutaj");
lepszeuciekanie(droga);
endif
else
//say("traj DRUGI "+traj);
znajdzdroge(droga,proba,traj);
endif
endif
endif
endfunction