Morgen,
ich befasse mich seit einigen Tagen mit Pawn und mit dem mysql Plugin: http://forum.sa-mp.com/index.php?topic=79352.0
Nun funktioniert alles so weit ohne Probleme, bis auf der Familien Chat. Ich lese aus der Datenbank aus, wer gerade von dem Team online ist, und schicke die Nachricht an die entsprechenden IDs. Hier mal der Code:
new newtext[64];
strmid(newtext, text, 3, strlen(text), sizeof(newtext));
MY_MYSQL_Connect();
new query[256];
new row[128];
new anzahl;
new Daten[1][1];
format(query, sizeof(query), "SELECT tab_online.online_playerid FROM tab_online INNER JOIN tab_user ON tab_user.user_id = tab_online.online_user_id_fs WHERE (tab_user.user_teamid = '%i') ;", PlayerInfo[id][teamid]);
mysql_query(query);
mysql_store_result();
anzahl = mysql_num_rows();
mysql_free_result();
for (new i = 0; i < anzahl; i++){
format(query, sizeof(query), "SELECT tab_online.online_playerid FROM tab_online INNER JOIN tab_user ON tab_user.user_id = tab_online.online_user_id_fs WHERE (tab_user.user_teamid = '%i') LIMIT %i,1 ;", PlayerInfo[id][teamid], i);
mysql_query(query);
mysql_store_result(),
mysql_fetch_row_format(row, "|");
mysql_free_result();
split(row, Daten, '|');
SendClientMessage(strval(Daten[0]), FAMILY, newtext);
}
MY_MYSQL_Close();
Hier wird der Befehl aufgerufen: In der Funktion OnPlayerCommandText:
// Family Chat
if (strcmp("/f", cmdtext, true, 2) == 0)
{
// Überprüfen ob man in einer Familie ist!!
if (PlayerInfo[playerid][teamid] == 0){
SendClientMessage(playerid, RED, "Du bist in keiner Familie");
} else {
Chat_SendFamily(playerid, cmdtext);
}
return 1;
}
Nun besteht das Problem darin, wenn mehrere Nachrichten nacheinander schreibe stürtzt mir der Server ab.
Woran kann das liegen? Ich könnte mir vllt. denken wo, aber bevor ich das sage, würde ich gerne von euch Meinungen einholen.
Mit diesem Quelltext geht es, ist allerdings ohne die DB nutzung:
for (new i = 0; i < MAX_PLAYERS; i++){
if (PlayerInfo[i][teamid] == PlayerInfo[id][teamid]){
SendClientMessage(i, FAMILY, newtext);
}
}
[/i][i]Ich hoffe ihr könnt mir einen kleinen Tipp geben
mfg Phill