Auto-translated
I realized that I don't understand something about how IsObjectExists works.
```
function P0_check()
while 1 do
if IsObjectExists('T1')==false then
if IsObjectExists('T2')==false then
if IsObjectExists('T3')==false then
if IsObjectExists('T4')==false then
sleep(5)
if (not GetObjectiveState('P0')==OBJECTIVE_COMPLETED) then
startThread( P0_change_state );
break;
end;
end;
end;
end;
end;
sleep(1);
end;
end;
```
All four towns (T1, T2, T3, T4) are present on the map.
The thread happily goes through all the if statements and starts a new function, even though it shouldn't. How is this possible?