mysql_query("SELECT * FROM `accounts` WHERE Name = 'xFreeze' LIMIT 1",1,playerid,handle);
public OnMysqlQuery(resultid, spareid, MySQL:handle)
{
switch (resultid){
case 1:{
mysql_store_result(handle);
strdel(Load_Query,0,100);
mysql_fetch_row(Load_Query,"|",handle);
sscanf(Load_Query,"p<|>e<s[10]dlfff>",PlayerInfo[spareid]);
mysql_free_result(handle);
}
}
return 1;
}
mit
mysql_fetch_row(Load_Query,"|",handle);
wird die ganze abgerufene reihe herrausgenommen und in den string Load gepackt das kann so aussehen
10|Günter|12.00|1124|Ja
mit sscanf ist es möglich nur den specifer das sind die abfolge von zeichen hier nun zur erklärung p<|> was so viel bedeutet das er den string erst splittet wenn das zeichen |
vorhanden ist in die darauf folgenden formate. d = steht für integer s[10] = string mit 10 zeichen f = float das besondere ist das das ganze auch gleich konvertiert wird.
nun gut sollte die abfolge falsch sein und es wird zumbeispiel versucht ein string in ein integer zu packen so kann es dazu kommen das der server abkratzt.
und dieses sscanf specifer abfolge musst du korrigieren anhand von dem dir in der mysql ausgegebenen string und natürlich den dazugehörigen 2d arrays.
weil dort kann auch was vertauscht sein.