Polecam takim sposobem wczytywać. Jeszcze nigdy się na tym nie zawiodłem:
public LoadItems()
{
new FileName[128]
get_localinfo("amxx_configsdir", FileName, charsmax(FileName))
add(FileName, charsmax(FileName), "/zadania.ini")
if(!file_exists(FileName))
{
new szError[512];
formatex(szError, charsmax(szError), "[Zadania] Nie mozna znależć pliku zadania.ini w lokalizacji %s", plik)
set_fail_state(szError);
return
}
new File = fopen( FileName, "rt")
if(!File)
{
set_fail_state("[Zadania] Jakiś inny proces używa pliku zadania.ini");
return
}
new Data[128], dane[4][32];
while(!feof(File))//Przelatuje po pliku aby wiedzieć ile komórek będę musiał wykorzystać do ulokowania danych
{
fgets(File, Data, 2)
if( !Data[0] || Data[0] == '^n'|| Data[0] == ';'|| Data[0] == '/' && Data[1] == '/' ) continue
i++
}
if(!i)
{
set_fail_state("[Zadania] Brak zadan w pliku zadania.ini")
return
}
gAktualne = ArrayCreate(1,i)
gIleRazy = ArrayCreate(1,i)
gTyp = ArrayCreate(1,i)
gNagroda = ArrayCreate(1,i)
if(gAktualne == Invalid_Array || gIleRazy == Invalid_Array || gTyp == Invalid_Array || gNagroda == Invalid_Array)
{
set_fail_state("[Zadania] Nie mozna ulokowac dynamicznej pamięci")
return
}
fseek(File, 0, 0)
while(!feof(File))
{
fgets(File, Data, sizeof Data)
if( !Data[0] || Data[0] == '^n'|| Data[0] == ';'|| Data[0] == '/' && Data[1] == '/' ) continue
trim(Data)
parse(Data, dane[0], 31, dane[1], 31, dane[2], 31, dane[3], 31);
ArrayPushCell(gAktualne, str_to_num(dane[0]));
ArrayPushCell(gIleRazy, str_to_num(dane[1]));
ArrayPushCell(gTyp, str_to_num(dane[2]));
ArrayPushCell(gNagroda, str_to_num(dane[3]));
}
fclose(File)
}
I to nie raczej tu się popełnia błędy lecz przy wczytywaniu / zapisywaniu danych. Pokaż kod w którym używasz:
new typ = ArrayGetCell(gTyp, zadanie[attacker])
if(typ==10) postep[attacker]+= damage
Chcesz napisać do mnie na
PW to:
Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!
Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują