Erstmal solltest du für den Fall der Fälle immer überprüfen ob der QueryResult denn gültig ist.
QueryResult query = LoginDatabase.PQuery("SELECT `username` FROM `account` WHERE `id`='%u'", AccID);
if (!query) //Error Query ungültig oder NULL
return true;
Und das selbe auch beim 2. QueryResult also “result”.
Ich wette du hast einen Fehler im Query für die vote_points Tabelle, wodurch der QueryResult uninitalisiert bleibt. Und da du nachher mit dem QueryResult einfach weiterrechnest kommt denke ich mal der Crash.
Hättest du Michas Post gelesen wärst du evtl. auch drauf gekommen.
Probier mal so:
result = LoginDatabase.PQuery("SELECT `votepoints` FROM `vote_points` WHERE `username`='%s'", username.c_str());
Denn sonst suchst du in einer Spalte wie “username” wo es wahrscheinlich nur Text gibt, nach einer Zahl. Die logischerweise nicht existiert und die Query ungültig/leer/NULL ist.
Und wie gesagt, hättest du die Checks für die QueryResults drin würde es selbst bei einem Fehler in der Query, oder einer Leeren Query die nichts zurückgibt (evtl. weil es den username durch irgendeinen Grund nicht in vote_points geben sollte), nicht Crashen.