Goliaph, видимо обработка флота занимает довольно-таки большое время и до того, как будут модифицированы входные данные, вебсервер может отбросить эту задачу и перейти на следующую. А в списке следующих может опять оказаться обработка этого же флота. Данную проблему решали путем размещения в начале критичного скрипта запроса к БД с обновлением поля в таблице флотов, что данный флот уже возвращается (fleet_mess=1) - это сводит к минимуму вероятность того, что успеют создаться новые задачи с обработкой этого же флота (они создадутся, но не пройдут по условию в FlyingFleetHandler либо MissionCase* и быстро завершаться по другой ветке, ничего не сделав). Но не исключает все-равно проблем - переключение на другую задачу может произойти до этого действия. Хотя вероятность того, что это (дюп флота) произойдет есть и она возрастает при увеличении нагрузки на сервере.
Если бы речь шла о потоках, то можно было бы говорить о создании критической секции, но это php...
Так что идеального решения без больших изменений в самой логике обработки флотов - нет. По умолчанию, во многих сборках обработку флотов может инициировать любой обратившийся к любому игровому скрипту. В том же Rage стоит один фикс, который позволяет обрабатывать лишь "свои" флота, что сильно снижает нагрузку и вероятность дюпа. Но тем не менее, тоже зажатие F5 в момент прибытия флота к цели на помирающем от нагрузки сервере позволяет предприимчивым намножить флот/число боев.
В числе, привиденном вам для лимита флота я вижу максимальное значение 32 битного integer. Что можно сделать? Помимо вполне очевидных, можно построить велосипед, чтобы работать, к примеру, с 64-битным integer - гугль поможет.