06/05/2024 23:09
(Esta mensagem foi modificada pela última vez a: 06/05/2024 23:10 por BitSain.)
Código devidamente atualizado:
Código PHP:
stock IsPlayerConnectedSQLID(sqlid) {
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {
if(IsPlayerConnected(i)) {
if(pDados[i][IDFIXO] == sqlid) {
return 1;
}
}
}
return 0;
}
stock GetPlayerID(sqlid){
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {
if(IsPlayerConnected(i)) {
if(pDados[i][IDFIXO] == sqlid) {
return i; //retorna o ID do player
}
}
}
return -1; //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.");
if(!IsPlayerConnectedSQLID(IDFIXO))
return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}Este jogador não está online ou não possui o ID correspondente.");
new id = GetPlayerID(IDFIXO);
// if(id == -1) return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}ID inválido. (-1)");
// Verifica se o jogador já está preso
if(pDados[id][PresoAdmin] == 1)
return SendClientMessage(playerid, -1, "{FA5858}Erro: {FFFFFF}Este jogador já está preso.");
// Restante do código...
// Marca o jogador como preso
pDados[id][PresoAdmin] = 1;
// Calcular horas, minutos e segundos
new horas, segundos;
horas = minutos / 60;
segundos = minutos % 60;
minutos %= 60;
pDados[id][HorasAdmin] = horas;
pDados[id][MinutosAdmin] = minutos;
pDados[id][SegundosAdmin] = segundos;
// Diretório para salvar informações da prisão
new pasta[50];
format(pasta, sizeof(pasta), "Cadeias/%s.ini", pName(id));
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[id][0], str);
PlayerTextDrawShow(id, Text_Timer[id][0]);
TimerCadeia[id] = SetTimerEx("SairCadeia", 1000, true, "d", id);
// Posição da prisão
SetPlayerPos(id, 1412.14, -2.28, 1000.92);
SetPlayerInterior(id, 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(id), minutos + horas * 60, motivo);
SendClientMessageToAll(-1, msgcadeia);
return true;
}