here is my newest code: doesnt crash zone, but trade wont initiate between players with same expansion number:
Quote:
Mob* tradee = entity_list.GetMob(msg->to_mob_id);
if (tradee && tradee->IsClient()) {
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
char errbuf[MYSQL_ERRMSG_SIZE];
int myExpansion = -1;
int tradeeExpansion = -2;
int myID = CharacterID();
int tID = tradee->CastToClient()->CharacterID();
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT expansion FROM character_vars WHERE character_vars.character_id=myID"), errbuf, &result)) {
safe_delete_array(query);
row = mysql_fetch_row(result);
mysql_free_result(result);
myExpansion = (atoi(row[0]));
}
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT expansion FROM character_vars WHERE character_vars.character_id=tID"), errbuf, &result)) {
safe_delete_array(query);
row = mysql_fetch_row(result);
mysql_free_result(result);
tradeeExpansion = (atoi(row[0]));
}
if (myExpansion != tradeeExpansion)
{
return;
}
tradee->CastToClient()->QueuePacket(app);
}
|