[/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando -
ScripterInicianteBR - 18.01.2015
Olб Pessoal da fуrum SAMP !
Queria pedir ajuda de vocкs eu quero implementar no meu "/agendarcadeia" pra agendar tanto Cadeia como aviso ... mais eu nгo sei fazer isso por isso quero ajuda de vocкs !
Tipo ficar assim :
/agendarcadeia [Fulano_Ciclano] [0 Minutos] [+999 Avisos] [Motivo]: Teste !
O Administrador Forum_Samp agendou Fulano_Ciclano para 0 minutos de cadeia e +999 avisos , Motivo : Teste !
Ai ele loga :
O Administrador Forum_Samp , agendou vocк para 0 minutos de cadeia e +999 avisos , Motivo : Teste !
Vocк foi banido automaticamente passou do limite de avisos !
--
Espero que intenderam o que eu quero xD
pawn Код:
// Aki estб o /agendarcadeia ! //
//======================================================================//
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 Brasil PlayFaster!");
return true;
}
format(string, sizeof(string), "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;
}
pawn Код:
// Aki estб o /aviso ! //
// ===================================================================== //
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(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;
}
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
ScripterInicianteBR - 18.01.2015
Entгo por favor amigo ensine eu por favor ...
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
WenioGustavo - 18.01.2015
Nгo entendi muito bem mais e isto ?
O Admin %s agendou o nick %s para %d minutos de cadeia, Motivo: %s
dai quando o player loga aparece esta mensagem estou certo ?
O Admin %s agendou cadeia %s para %d minutos de cadeia, Motivo: %s
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
ScripterInicianteBR - 18.01.2015
Nгo esta errado , o /agendarcadeia jб funciona como vc disse o que eu quero й que fique tipo assim olha :
Tipo ficar assim :
/agendarcadeia [Fulano_Ciclano] [0 Minutos] [+999 Avisos] [Motivo]: Teste !
O Administrador Forum_Samp agendou Fulano_Ciclano para
0 minutos de cadeia e +999 avisos , Motivo : Teste !
Ai ele loga :
O Administrador Forum_Samp , agendou vocк para
0 minutos de cadeia e +999 avisos , Motivo : Teste !
Quando ele logar : Vocк foi banido automaticamente passou do limite de avisos !
quando o player tiver Off poderia agendar avisos asim quando ele logar tomaria BAN automatico xD'
aguardando =/
OBS :
O Comando deveria ficar : /agendar [Nome_Sobrenome] [Minutos] [Avisos] [Motivo : ] !
Quando player logar : O Administrador Forum_Samp lhe agendou 0 Minutos de cadeia +999 Avisos , Motivo : Teste !
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
ScripterInicianteBR - 18.01.2015
@Edit ....
Alguйm ?
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
MultiKill - 18.01.2015
https://sampforum.blast.hk/showthread.php?tid=286550
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
ScripterInicianteBR - 19.01.2015
MultiKill , tem nada ver vida com AgendarCadeia " Ban" ou melhor se passou isso pra eu usar como base pra tentar sу digo q с tem nada ver com oq preciso --'
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
MultiKill - 19.01.2015
Se vocк quer melhorar o comando, tem que saber strtok ou que um cafй com leite e um gamemode feito do zero?
Entгo se quiser o comando aprenda a usar strtok ou aprenda a usar sscanf e refaзa o comando!
Re: [/agendar - /aviso ] Preciso da ajuda de vocк implementar Comando [ Please ] -
Artista - 19.01.2015
Recomendo que vocк estude ao invйs de querer tudo pronto...
Recomendo que vocк passe a usar um processador de comandos junto com sscanf, isto vai facilitar muito a sua vida, alйm de ser bem otimizado.
Veja
este processador, sintaxe fбcil e bem rбpido.