10.12.2018, 14:55
Galera como faзo pra implantar avisos junto do /agendarcadeia??
Por exemplo Atual:
Como eu queria que ficasse:
Segue o cуdigo do /agendarcadeia:
Segue o cуdigo do /aviso:
Por exemplo Atual:
pawn Код:
//[LISTA DE PUNIЗГO]: O Admin [%s] agendou o nick [%s] para [%d] minutos de cadeia, Motivo: %s
pawn Код:
//[LISTA DE PUNIЗГO]: O Admin [%s] agendou o nick [%s] para [%d] minutos de cadeia e [%d] avisos, Motivo: %s
pawn Код:
if(strcmp(cmd, "/agendarcadeia",true) == 0 || strcmp(cmd, "/agendar",true) == 0)
{
if(IsPlayerConnected(playerid))
{
new tmpo[20];
if(PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo esta autorizado para usar este comando!");
return true;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]");
return true;
}
tmpo = strtok(cmdtext, idx);
if(!strlen(tmpo))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]");
return true;
}
new tempo2 = strval(tmpo);
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /agendarcadeia [NOME_CORRETO] [Tempo] [Motivo]");
return true;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new arquivo[128];
format(arquivo, sizeof(arquivo), "Contas/%s.ini",tmp);
if(!dini_Exists(arquivo))
{
SendClientMessage(playerid, COLOR_WHITE, "[ERRO] Este nick nгo estб registrado no server!");
return true;
}
format(string, sizeof(string), "[LISTA DE PUNIЗГO]: O Admin [%s] agendou o nick [%s] para [%d] minutos de cadeia, Motivo: %s",PlayerName(playerid), tmp, tempo2, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
AgendarLog(string);
dini_IntSet(arquivo,"Jailed",9);
dini_IntSet(arquivo,"JailTime",tempo2 * 60);
strmid(AgendouInfo[playerid][cAdminAgendou], sendername, 0, strlen(sendername), MAX_PLAYER_NAME);
dini_Set(arquivo,"AdminAgendou",sendername);
strmid(AgendouInfo[playerid][cMotivoAgendou], result, 0, strlen(result), MAX_PLAYER_NAME);
dini_Set(arquivo,"MotivoAgendou",result);
dini_IntSet(arquivo,"Agendado",1);
dini_IntSet(arquivo,"TempoAgendado",tempo2);
}
return true;
}
Segue o cуdigo do /aviso:
pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
return true;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)//if(IsPlayerConnected(giveplayerid)
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
if(strcmp(giveplayer,"Math_Guns",true)==0)
{
SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo pode avisar o criador do server '-' !!!");
format(string, sizeof(string), "[Aviso] %s [ID: %d] tentou usar o comando /aviso em vocк!",PlayerName(playerid), playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
return true;
}
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
return true;
}
PlayerInfo[giveplayerid][pWarns] += 1;
if(PlayerInfo[giveplayerid][pWarns] >= 3)
{
format(string, sizeof(string), "AdmCmd: %s foi automaticamente banido temporariamente (3 dias), Motivo: Passou de 3 avisos (%d-%d-%d)", giveplayer);
BanLog(string);
format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
format(string, sizeof(string), "AdmCmd: %s foi banido temporariamente por 3 dias (Passou de 3 avisos)", giveplayer);
SendClientMessageToAll(COLOR_LIGHTRED, string);
getdate(Ano, Mes, Dia);
PlayerInfo[giveplayerid][pDiaBanTemp] = Dia+3;
PlayerInfo[giveplayerid][pMesBanTemp] = Mes;
PlayerInfo[giveplayerid][pAnoBanTemp] = Ano;
if(PlayerInfo[giveplayerid][pMesBanTemp] == 1 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 2 && PlayerInfo[giveplayerid][pDiaBanTemp] > 28)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 28;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 3 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 4 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 30;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 5 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 6 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 30;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 7 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 8 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 9 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 30;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 10 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 11 && PlayerInfo[giveplayerid][pDiaBanTemp] > 30)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 30;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] == 12 && PlayerInfo[giveplayerid][pDiaBanTemp] > 31)
{
PlayerInfo[giveplayerid][pDiaBanTemp] -= 31;
PlayerInfo[giveplayerid][pMesBanTemp]++;
}
if(PlayerInfo[giveplayerid][pMesBanTemp] > 12)
{
PlayerInfo[giveplayerid][pMesBanTemp] -= 12;
PlayerInfo[giveplayerid][pAnoBanTemp]++;
}
OnPlayerSave(giveplayerid);
BanTemp(giveplayerid, "Terceiro aviso", PlayerName(playerid));
return true;
}
format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
return true;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Esse nгo й um jogador ativo.");
}
}
return true;
}