Naprawa błędu powodującego awarię serwera przez brak pustej linii w pliku index map
Cześć,
Kolejny problem dość istotny natknąłem się na niego podczas dodawania map z oficjalnego klienta.
Opis problemu
W folderze map na serwerze istnieje plik index, który przypisuje index konkretnemu folderowi map. Jeśli podczas dodawania nowej mapy nie pozostawisz pustego wiersza na samym końcu kanał gry na którym jest ostatni index może już podczas startowania się nie uruchomić, a reszta kanałów dostanie awarii podczas próby zalogowania. W moim przypadku kanał specjalny na którym była mapa ślubna nawet nie wystartował.
Istnieje jeszcze jeden problem na który też się natknąłem podczas dodawania mapy. Dodałem mapkę jak gdyby nigdy nic to była mapa m1 wchodzę do gry i widzę podwójnie respione NPC i miałem lekkie zdziwienie o co chodzi okazuje się że gdy w pliku index na końcu zrobisz przypadkiem 2 puste wiersze (2 entery) ostatnia mapa może się załadować podwójnie.
Prezentacja
2026-10-18 12-16-33.mp4Rozwiązanie
📁game -> sectree_manager.cpp
🔍Szukaj funkcji
int SECTREE_MANAGER::Build(const char * c_pszListFileName, const char* c_pszMapBasePath)
{🔍Szukaj
char szMapName[256];♻️Zamień
std::string strMapName;🔍Szukaj
*strrchr(buf, '\n') = '\0';♻️Zamień
buf[strcspn(buf, "\r\n")] = '\0';🔍Szukaj
sscanf(buf, " %d %s ", &iIndex, szMapName);♻️Zamień
std::istringstream line(buf);
if (!(line >> iIndex >> strMapName))
continue;
const char * szMapName = strMapName.c_str();Prezentacja po poprawce
2026-10-18 12-32-06.mp4Świetny poradnik, teraz wiem jak naprawić błąd powodujący awarię serwera przez brak pustej linii w pliku index map map_index.html