Всё дело в том, что ты используешь запрос, который будет обрабатываться MySQL в отдельном потоке и из-за этого вот этот код:
PHP код:
new probtxt[144];
format(probtxt, sizeof(probtxt), "n %d ", idB);
SendClientMessage(i, COLOR_WHITE, probtxt);
Обработается раньше, нежели MySQL вернёт данные о созданной строке => ID строки ещё не запишется в переменную.
Нужно использовать однопоточный запрос в этом случае:
PHP код:
new idB;
format(query, sizeof(query), "INSERT INTO `Battle` (type) VALUES ('1')");
mysql_query(connects, query);
idB = cache_insert_id();
new probtxt[144];
format(probtxt, sizeof(probtxt), "n %d ", idB);
SendClientMessage(i, COLOR_WHITE, probtxt);