[duvida] Jeito simples de colocar tempo em comando. -
Xpectro - 13.07.2011
Coisa simples aqui, alguem sabe um jeito bem simples de colocar um tempo em um comando
Tipo, voce usa o comando "/lalala" ai sу depois de 5 minutos por exemplo, tu pode usar ele denovo, ai aparece SendClientMessageToAll dizendo o comando pode ser usado novamente bla bla bla ..
Re: [duvida] Jeito simples de colocar tempo em comando. -
Ricop522 - 13.07.2011
Clique aqui e seje muito feliz !
Re: [duvida] Jeito simples de colocar tempo em comando. -
Rodox_Mortein - 13.07.2011
tambйm preciso de algo do tipo .. procurei no seach e nгo achei nadinha ...
se nгo vai ajudar pra que que posta ¬¬
Re: [duvida] Jeito simples de colocar tempo em comando. -
Gabriel Duarte - 13.07.2011
Gente demorei mais fiz uma pra vcs. Tomarem que gostem, caso goste lembre da estrelinha.
@Edit
Mano nao vi que vc queria 5 min, mas ai so trocar o SetTimer para SetTimer("exemplo", 300000, 0);
pawn Код:
new pexemplo;// coloca no topo do gm
forward exemplo;//coloca no topo do GM
if(strcmp(cmd, "/exemplo", true) == 0) // seu cmd (ONPLAYERCOMMAND...)
{
if(IsPlayerConnected(playerid))
{
if(pexemplo == 1)//aqui й que o comando ja foi utilizado e tem q esperar
{
SendClientMessage(playerid,0xFFFFFFFF,"Espere 60 para usa denovo!");
return 1;
}
else
{
SendClientMessageToAll(0xFFFFFFFF, "Teste CMD");//aqui sera o que o comando ira fazer
pexemplo = 1; // Vc colocarб o que definiu no TOPO do GM
SetTimer("exemplo", 60000, 0);//6000 й o tempo para anunciar no caso 60 seg e colocamos o nome q esta no forward
return 1;
}
}
return 1;
}
public exemplo() // cria essa public com o nome da forward e do settime
{
SendClientMessageToAll(0x33FF00FF, "COMANDO EXEMPLO LIBERADO");
pexemplo = 0;
}
Re: [duvida] Jeito simples de colocar tempo em comando. -
SuYaNw - 13.07.2011
pawn Код:
new a_STR;
public OnPlayerCommandText(playerid, cmdtext[])
{
a_STR = GetTickCount();
if(a_STR - GetTickcount() < TEMPO_AQUI)
{
return SendClientMessage(playerid, -1,"Tempo para usar comados exedido, espere acabar.");
}
return 0;
}
Re: [duvida] Jeito simples de colocar tempo em comando. -
arakuta - 13.07.2011
Quote:
Originally Posted by Xpectro
Coisa simples aqui, alguem sabe um jeito bem simples de colocar um tempo em um comando
Tipo, voce usa o comando "/lalala" ai sу depois de 5 minutos por exemplo, tu pode usar ele denovo, ai aparece SendClientMessageToAll dizendo o comando pode ser usado novamente bla bla bla ..
|
Leia o negrito, Swyam. Assim server para todos os cmds
Re: [duvida] Jeito simples de colocar tempo em comando. -
Ricop522 - 13.07.2011
Nao use GetTickCount.
pawn Код:
if(!strcmp(cmd, "/comando", true))
{
if(GetPVarInt(playerid, "UsouCMD") == 1) return SendClientMessage(playerid, -1, "Voce ja usou o cmd ");
SetTimerEx("usarcmd",TEMPO,false,"i",playerid);
SetPVarInt(playerid, "UsouCMD" , 1);
return 1;
forward usarcmd(playerid); public usarcmd(playerid) return SetPVarInt(playerid, "UsouCMD", 0);
Aqui esta.
Reputation? valeu
Re: [duvida] Jeito simples de colocar tempo em comando. -
Shadoww5 - 13.07.2011
Em certos casos, PVar tambйm nгo sao muito aconselhaveis por serem um tanto lentas.
Desta forma, acho eu, seria melhor:
PHP код:
new UsouComando[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/comando", true) == 0)
{
if(UsouComando[playerid] > gettime()) return SendClientMessage(playerid, -1, "Vocк usou este comando recentemente. Aguarde algum tempo para usб-lo novamente.");
// FUNCOES
UsouComando[playerid] = gettime() + 5;
// Troque 5 pelo numero de segundos necessarios para o jogador usar o comando de novo
return 1;
}
return 0;
}
Re: [duvida] Jeito simples de colocar tempo em comando. -
SuYaNw - 13.07.2011
Quote:
Originally Posted by Ricop522
Nao use GetTickCount.
pawn Код:
if(!strcmp(cmd, "/comando", true)) { if(GetPVarInt(playerid, "UsouCMD") == 1) return SendClientMessage(playerid, -1, "Voce ja usou o cmd "); SetTimerEx("usarcmd",TEMPO,false,"i",playerid); SetPVarInt(playerid, "UsouCMD" , 1); return 1;
forward usarcmd(playerid); public usarcmd(playerid) return SetPVarInt(playerid, "UsouCMD", 0);
Aqui esta.
Reputation? valeu
|
tб. vou parar de usar GetTickCount para usar seu cуdigo lento que gasta arrays igual a um condenado.
Quote:
Originally Posted by Shadoww5
Em certos casos, PVar tambйm nгo sao muito aconselhaveis por serem um tanto lentas.
Desta forma, acho eu, seria melhor:
PHP код:
new UsouComando[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/comando", true) == 0)
{
if(UsouComando[playerid] < gettime()) return SendClientMessage(playerid, -1, "Vocк usou este comando recentemente. Aguarde algum tempo para usб-lo novamente.");
// FUNCOES
UsouComando[playerid] = gettime() + 5;
// Troque 5 pelo numero de segundos necessarios para usar o jogador usar o comando de novo
return 1;
}
return 0;
}
|
seu cуdigo em sн й melhor que o meu e do ricop522 juntos, gostei de vc!!
Re: [duvida] Jeito simples de colocar tempo em comando. -
Ricop522 - 13.07.2011
Quote:
Originally Posted by SuYaNw
tб. vou parar de usar GetTickCount para usar seu cуdigo lento que gasta arrays igual a um condenado.
seu cуdigo em sн й melhor que o meu e do ricop522 juntos, gostei de vc!!
|
Ola, sou
GetTickCount prazer em te conhecer, pode me ler um pouco ?
Primeiro que o seu codigo nao faz o que ele pede.
pawn Код:
new a_STR;
public OnPlayerCommandText(playerid, cmdtext[])
{
a_STR = GetTickCount();
if(a_STR - GetTickcount() < TEMPO_AQUI)
{
return SendClientMessage(playerid, -1,"Tempo para usar comados exedido, espere acabar.");
}
return 0;
}
Segundo que GetTickCount e 1000x pior que SetPVar.
@Shadow
As vezes nao e aconselhavel, porem e mais pratico e nao e TAO lento assim.