08/05/2024 08:21
(Esta mensagem foi modificada pela última vez a: 08/05/2024 08:22 por pushline.)
testa isso:
Código PHP:
GetPlayerID(sqlid){
for(new i = 0; i <= MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(pDados[i][IDFIXO] == sqlid) {
return i; //retorna o ID do player logado
}
}
}
return 0; //retorna 'id invalido'
}
CMD:prender(playerid, params[])
{
if(!IsPlayerAdmin(playerid) && pDados[playerid][Admin] < 1)
return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}Você não tem autorização.");
new IDFIXO, minutos, motivo[50 + 1];
if(sscanf(params, "dds[50]", IDFIXO, minutos, motivo))
return SendClientMessage(playerid, -1, "{FA5858}[ERRO]: {FFFFFF}Use /prender [ID] [Minutos] [Motivo]. {DC143C}NÃO COLOQUE O TEMPO ACIMA DA TABELA, OU TOMARÁ PUNIÇÃO.");
new query[512];
// username é ficticio
mysql_format(MYSQL_DEFAULT_HANDLE, query, sizeof(query), "SELECT * FROM tabela_de_contas WHERE id = %d", IDFIXO);
mysql_query(MYSQL_DEFAULT_HANDLE, query, "PrenderPlayer", "iiis", playerid, IDFIXO, minutos, motivo);
return 1;
}
forward PrenderPlayer(playerid, IDFIXO, minutos, motivo[]);
public PrenderPlayer(playerid, IDFIXO, minutos, motivo[])
{
if(!cache_num_rows())
return printf("Jogador inexistente via ID procurado.")
new tabID = GetPlayerID(IDFIXO);
if(!tabID) return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}ID inválido ou jogador não conectado.");
// Verifica se o jogador já está preso
if(pDados[tabID][PresoAdmin] == 1)
return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}Este jogador já está preso.");
// Marca o jogador como preso
pDados[tabID][PresoAdmin] = 1;
// Calcular horas, minutos e segundos
new horas, segundos;
horas = minutos / 60;
segundos = minutos % 60;
minutos %= 60;
pDados[tabID][HorasAdmin] = horas;
pDados[tabID][MinutosAdmin] = minutos;
pDados[tabID][SegundosAdmin] = segundos;
// Diretório para salvar informações da prisão
new pasta[50];
format(pasta, sizeof(pasta), "Cadeias/%s.ini", pName(tabID));
DOF2_CreateFile(pasta);
DOF2_SetInt(pasta, "Horas", horas);
DOF2_SetInt(pasta, "Minutos", minutos);
DOF2_SetInt(pasta, "Segundos", segundos);
DOF2_SetString(pasta, "Motivo", motivo);
DOF2_SetString(pasta, "Admin", pName(playerid));
// Formatando a string de tempo
new str[50];
format(str, sizeof(str), "%02d:%02d:%02d", horas, minutos, segundos);
PlayerTextDrawSetString(playerid, Text_Timer[tabID][0], str);
PlayerTextDrawShow(tabID, Text_Timer[tabID][0]);
TimerCadeia[tabID] = SetTimerEx("SairCadeia", 1000, true, "d", id);
// Posição da prisão
SetPlayerPos(tabID, 1412.14, -2.28, 1000.92);
SetPlayerInterior(tabID, 1);
// Obter data atual
new Ano, Mes, Dia;
getdate(Ano, Mes, Dia);
format(str, sizeof(str), "%02d/%02d/%d", Dia, Mes, Ano);
DOF2_SetString(pasta, "Data", str);
// Mensagem para todos os jogadores sobre a prisão
new msgcadeia[140];
format(msgcadeia, sizeof(msgcadeia), "{FF6347}[CADEIA]: O Admin %s prendeu o Player %s no Quadradao. Por [%d] Minutos. Motivo: %s", pName(playerid), pName(tabID), minutos + horas * 60, motivo);
SendClientMessageToAll(-1, msgcadeia);
return 1;
}
HostName: BLOOD DEATHMATCH
Address: ip.blood.ovh
Players: 10 / 50
Ping: 153
Mode: BDM
Language: RUS/ENG
Vídeo de demonstração: https://www.youtube.com/watch?v=Nj-b-lo4l4o
Address: ip.blood.ovh
Players: 10 / 50
Ping: 153
Mode: BDM
Language: RUS/ENG
Vídeo de demonstração: https://www.youtube.com/watch?v=Nj-b-lo4l4o