Sziasztok.
Nem nagy dolog, de írtam egy mysql adat beolvasást mezõ név szerint.
Használjátok egészséggel, akinek így könnyebb.
E: Az Egyezik függvény
stock Egyezik(str1_[], str2_[]) return !strcmp(str1_, str2_);
1-1 példa a használathoz:
pInfo[playerid][pMoney] = PlayerGetInt(\"penz\");
pInfo[playerid][pPosX] = PlayerGetFloat(\"posx\");
format(str,sizeof(str),\"%s\",PlayerGetString(\"name\"));(
stock PlayerGetInt(mit[])
{
new fname[16],vissza;
for(new i = 0;i< cache_get_field_count();i++) {
cache_get_field_name(i,fname);
if(Egyezik(fname,mit)) { vissza = cache_get_row_int(0,i); break; }
}
return vissza;
}
stock Float:PlayerGetFloat(mit[])
{
new fname[16],Float:vissza;
for(new i = 0;i< cache_get_field_count();i++) {
cache_get_field_name(i,fname);
if(Egyezik(fname,mit)) { vissza = cache_get_row_float(0,i); break; }
}
return vissza;
}
stock PlayerGetString(mit[])
{
new fname[16],vissza[512];
for(new i = 0;i< cache_get_field_count();i++) {
cache_get_field_name(i,fname);
if(Egyezik(fname,mit)) { cache_get_row(0,i,vissza); break; }
}
return vissza;
}
Ömmm:
native cache_get_field_content(row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination));
native cache_get_field_content_int(row, const field_name[], connectionHandle = 1);
native Float:cache_get_field_content_float(row, const field_name[], connectionHandle = 1);
?
(sikerült megcsinálnod azt, ami alapból benne van funkcióként :D)
Egész jó, viszont van benne egy-két hiba(legalábbis ránézésre):
A \"vissza\" nevű változó pl. felesleges(kivéve a string lekérdezést), mert egy sima return-el meg lehet oldani, bár végülis így is jó...
A fordító tag mismatch-re fog figyelmeztetni ennél return-kor:
stock PlayerGetFloat(...)
//Add meg a visszatérési érték típusát is...:
stock Float:PlayerGetFloat(...)
Itt pedig szerintem rájössz magad is a hibára:
vissza = cache_get_row(0,i,vissza);