CMD:ban(playerid, params[]){
if(APlayerData[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Vocк nгo tem permissгo para utilizar este comando.");
new pID, tMotivo[64], dBan, mBan, aBan, hBan, miBan, sBan, gIP[16];
if(sscanf(params, "us[128]", pID, tMotivo)) return SendClientMessage(playerid, COLOR_LIGHTGRAY, "USE: /ban [ID] [Motivo]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_LIGHTGRAY, "Este ID nгo estб conectado.");
gettime(hBan, miBan, sBan);
GetPlayerIp(pID, gIP, 16);
format(ABanData[pID][Nome], 24, "%s", GetNome(pID));
format(ABanData[pID][AdminBaniu], 24, "%s", GetNome(playerid));
format(ABanData[pID][MotivoBan], 64, "%s", tMotivo);
format(ABanData[pID][DataBan], 50, "%s", getdate(aBan, mBan, dBan));
format(ABanData[pID][IP], 16, "%s", gIP);
orm_insert(ABanData[pID][OrmID], "", "");
format(tString, sizeof(tString), " Vocк baniu o jogador %s ID:[%d].", GetNome(pID), pID);
SendClientMessage(playerid, COLOR_LIGHTBLUE, tString);
format(tString, sizeof(tString), "| AdminCmd | O jogador %s ID: [%d] foi banido pelo Administrador %s ID:[%d].", GetNome(pID), pID, GetNome(playerid), playerid);
SendClientMessageToAll(COLOR_LIGHTRED, tString);
Kick(pID);
return 1;
}
stock GetNome(playerid){
new pNome[MAX_PLAYER_NAME];
GetPlayerName(playerid, pNome, sizeof(pNome));
return pNome;
}
CMD:ban(playerid, params[])
{
if(APlayerData[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Vocк nгo tem permissгo para utilizar este comando.");
new pID, tMotivo[64], dBan, mBan, aBan, hBan, miBan, sBan, gIP[16], aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
if(sscanf(params, "us[128]", pID, tMotivo)) return SendClientMessage(playerid, COLOR_LIGHTGRAY, "USE: /ban [ID] [Motivo]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_LIGHTGRAY, "Este ID nгo estб conectado.");
gettime(hBan, miBan, sBan);
GetPlayerName(pID, aname, sizeof(aname));
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerIp(pID, gIP, 16);
format(ABanData[pID][Nome], 24, "%s", aname);
format(ABanData[pID][AdminBaniu], 24, "%s", pname);
format(ABanData[pID][MotivoBan], 64, "%s", tMotivo);
format(ABanData[pID][DataBan], 50, "%s", getdate(aBan, mBan, dBan));
format(ABanData[pID][IP], 16, "%s", gIP);
orm_insert(ABanData[pID][OrmID], "", "");
format(tString, sizeof(tString), " Vocк baniu o jogador %s ID:[%d].", aname, pID);
SendClientMessage(playerid, COLOR_LIGHTBLUE, tString);
format(tString, sizeof(tString), "| AdminCmd | O jogador %s ID: [%d] foi banido pelo Administrador %s ID:[%d].", aname, pID, pname, playerid);
SendClientMessageToAll(COLOR_LIGHTRED, tString);
Kick(pID);
return 1;
}
Pra falar a verdade estб tudo corretamente com as Enums, e ele seta no banco de dados o nome do administrador que baniu, sу nгo mostra o nome do banido e o motivo do ban.
|
enum bInfo{
Nome[24],
AdminBaniu[24],
MotivoBan[24],
DataBan[50],
IP[16],
ID,
ORM:OrmID
};
new ABanData[MAX_PLAYERS][bInfo];
enum bInfo{
Nome[30],
AdminBaniu[30],
MotivoBan[70],
DataBan[70],
IP[16],
ID,
ORM:OrmID
};
new ABanData[MAX_PLAYERS][bInfo];
public OnPlayerConnect(playerid)
{
/* ORM Banimento */
GetPlayerName(playerid, ABanData[playerid][Nome], 30);
new ORM:ormid = ABanData[playerid][OrmID] = orm_create("banidos", MySQL);
orm_addvar_string(ormid, ABanData[playerid][Nome], 30, "Nome");
orm_addvar_string(ormid, ABanData[playerid][AdminBaniu], 30, "AdminBaniu");
orm_addvar_string(ormid, ABanData[playerid][MotivoBan], 30, "MotivoBan");
orm_addvar_string(ormid, ABanData[playerid][IP], 16, "IP");
orm_addvar_int(ormid, ABanData[playerid][ID], "ID");
orm_setkey(ormid, "Nome");
orm_select(ormid, "OnPlayerVerificar", "d", playerid);
return 1;
}
public OnPlayerVerificar(playerid) {
if(orm_errno(ABanData[playerid][OrmID]) == ERROR_OK){
SendClientMessage(playerid, -1, "Vocк estб banido.");
Kick(playerid);
} else {
// Tirei pois й o ORM dos dados de cadastro.
}
return 1;
}
orm_insert(ABanData[playerid][OrmID]);