public info(id)
{
new readdata[128],txtlen
new parsedsteamid[32]
new suma=0
new licznik=0
new srednia=0
new fsize = file_size(filename,1)
for (new line=0;line<fsize;line++)
{
read_file(filename,line,readdata,127,txtlen)
parse(readdata,parsedsteamid,31,parsedrate,2)
suma=suma+parsedrate[0];
licznik=line-1
client_print(id,print_chat,"suma(s,f,d): %s %f %d, parsedrate(s,f,d): %s %f %d",suma,suma,suma,parsedrate,parsedrate,parsedrate)
}
srednia=suma/licznik;
client_print(id,print_chat,"Blablabla: %s",srednia)
}
Po wywołaniu funkcji otrzymuje:
suma(s,f,d): 4STEAM_0:0:13420017 0.000000 52, parsedrate(s,f,d): 4 0.000000 52
suma(s,f,d): jSTEAM_0:0:13420018 0.000000 106, parsedrate(s,f,d): 6 0.000000 54
suma(s,f,d): STEAM_0:0:13420018 0.000000 160, parsedrate(s,f,d): 6 0.000000
Jak widać parsedrate wyświetla prawidłowo w postaci stringu, ale coś dziwnego dzieje się z
sumą. Wartości z pliku są poprawnie przypisane do dwóch zmiennych. Parsedrate z pliku jest stringiem, więc może przy obliczaniu się coś chrzani z powodu różnych typów zmiennych? Próbowałem zmieniać za pomocą funkcji typu str_to_float, ale jakiś błąd wyskakuje tag mismatch.


Dodatki SourceMod



Temat jest zamknięty








