[Ajuda] Checar se existe o player MYSQL
#1

Ajuda nesse comando aqui nгo quero que de problemas, pra ver se o player offline existe na DB

Code:
// creditos comando: @garotin forumsamp
CMD:givedp(playerid, params[])
{
	new player, quantidade, string[128];
	if(sscanf(params,"si", player, quantidade)) return SendClientMessage(playerid, -1, "Use: /givedp [player-name] [ammount]");

	new idplayer;
	idplayer = GetPlayerIdFromName(player);
	if(idplayer >= 0) {
		new idplayer;
		idplayer = GetPlayerIdFromName(player);
		DP[idplayer] += quantidade;
		format(string, sizeof(string), "O admin %s adicionou %i DONATE POINTS para %s (ONLINE)", PlayerName(playerid), quantidade, PlayerName(idplayer) );
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		SendClientMessage(idplayer, COLOR_LIGHTBLUE, string);
	}
	else {
		// COMO CHECAR AQUI SE O PLAYER EXISTE OU NГO PRA N DAR MERDA NA HORA DE DAR A CONSULTA
		
		new query[200], dpatual;
		format(query, sizeof(query), "SELECT * FROM accounts WHERE Username='%s'", player);
		mysql_query(ConnectMYSQL,query);
		mysql_store_result();
		while(mysql_fetch_row_format(query,"|"))
		{
			dpatual = cache_get_field_content_int(0, "DP");
		}
		mysql_free_result();
		format(query, sizeof(query), "UPDATE accounts SET DP=%d WHERE Username='%s'",
		dpatual + quantidade,
		player);
		mysql_query(ConnectMYSQL,query);
		format(string, sizeof(string), "O admin %s adicionou %i DONATE POINTS para %s (OFFLINE)", PlayerName(playerid), quantidade, player );
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		SendClientMessage(idplayer, COLOR_LIGHTBLUE, string);
	}
}
Reply
#2

Olha, pra eu checar se existe algum player no banco de dados eu faзo assim:


Code:
CMD:verplayer(playerid, params[])
{
	if (isnull(params) || strlen(params) > 24)
		return SendClientMessage(playerid, -1, "/verplayer [nome do personagem]");

	static
	    query[128];

	format(query, sizeof(query), "SELECT `Character` FROM `characters` WHERE `Character` = '%s'", SQL_ReturnEscaped(params));
	mysql_function_query(g_iHandle, query, true, "OnResolvePlayer", "ds", playerid, params);

	return 1;
}

forward OnResolvePlayer(extraid, character[]);
public OnResolvePlayer(extraid, character[])
{
    new
		rows,
		fields,
		name[24];

	cache_get_data(rows, fields, g_iHandle);

	if (!rows)
 		return SendClientMessage(extraid, -1, "Nгo hб nenhum player com esse nome.");

	cache_get_row(0, 0, name, g_iHandle);
	SendClientMessage(extraid, -1, "Existe um jogador com esse nome.");

	return 1;
}
Reply
#3

Vlw pela base +rep, tentei, tentei e tentei, fiz esse codigo que sу me restaram 3 erros, me ajuda a corrigir? Os erros estгo comentados

Code:
CMD:givedp(playerid, params[]) {
	new player[MAX_PLAYER_NAME], quantidade, string[128];
	if(sscanf(params,"si", player, quantidade)) return SendClientMessage(playerid, -1, "Use: /givedp [player-name] [ammount]");

	new idplayer;
	idplayer = GetPlayerIdFromName(player);
	if(idplayer >= 0) {
		idplayer = GetPlayerIdFromName(player);
		DP[idplayer] += quantidade;
		format(string, sizeof(string), "O admin %s adicionou %i DONATE POINTS para %s (ONLINE)", PlayerName(playerid), quantidade, PlayerName(idplayer) );
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		SendClientMessage(idplayer, COLOR_LIGHTBLUE, string);
	}
	else {
		new rows, fields;
		cache_get_data(rows, fields);
		if (!rows) return SendClientMessage(playerid, -1, "Nгo hб nenhum player com esse nome.");
		
		new query[200], dpatual;
		format(query, sizeof(query), "SELECT * FROM accounts WHERE Username='%s'", player);
		mysql_query(ConnectMYSQL,query);
		mysql_store_result(); // error 017: undefined symbol "mysql_store_result"
		while(mysql_fetch_row_format(query,"|")) // error 017: undefined symbol "mysql_fetch_row_format"
		{
			dpatual = cache_get_field_content_int(0, "DP");
		}
		mysql_free_result(); // error 017: undefined symbol "mysql_store_result"
		format(query, sizeof(query), "UPDATE accounts SET DP=%d WHERE Username='%s'",
		dpatual + quantidade,
		player);
		mysql_query(ConnectMYSQL,query);
		format(string, sizeof(string), "O admin %s adicionou %i DONATE POINTS para %s (OFFLINE)", PlayerName(playerid), quantidade, player );
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		SendClientMessage(idplayer, COLOR_LIGHTBLUE, string);
	}
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)