sem mensagem do kick -
br0nks - 11.10.2017
galera fiz um comando de kick aqui, e nгo estб mostrando a mensagem do kick
COMANDO;;;;;;;;;
Код:
CMD:kick(playerid, params[])
{
new id;
if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]");
SendClientMessage(id, -1, "Vocк foi kickado");
Kick(id);
return 1;
}
Re: sem mensagem do kick -
DelK - 11.10.2017
PHP код:
CMD:kick(playerid, params[])
{
new id;
if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]");
SetTimerEx("KickTimer", 300, false, "i", playerid);
return 1;
}
forward KickTimer(playerid);
public KickTimer(playerid)
{
SendClientMessage(id, -1, "Vocк foi kickado");
Kick(playerid);
return 1;
}
Re: sem mensagem do kick -
Cycle - 11.10.2017
Amigo, isso nгo seria um pedido e sim uma ajuda, prуxima vez, analise as tag's que vocк utiliza.
@Topic
-----------------------------------------------------------------------------
O Comando nгo pode retornar com a mensagem ao player que foi kickado pois existe um bug, que impede dessa funзгo ser realizada.
Fui corrigido um dia desses sobre isso, e me acho na obrigaзгo de corrigir vocк tambйm.
Troque:
PHP код:
if(sscanf(params, "d", id)) // NAO UTILIZE D PARA SETAR UM PLAYER, SENDO QUE A REGRA DA SYNTAX DO SSCANF, PARA SETAR PLAYERS, Й "u"
Por:
PHP код:
if(sscanf(params, "u", id)) // AGORA ESTБ CORRETO!
Existe um timer que faz com que a funзгo que vocк quer, se realize.
Primeiro, vamos adicionar uma definiзгo juntamente com um macro do SetTimerEx.
PHP код:
#define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
Agora, vamos criar a callback de resposta apуs se cumprir o tempo de 100 milisegundos. De preferкncia, adicione-a nas linhas finais.
PHP код:
forward Kicka(p); public Kicka(p)
{
#undef Kick
Kick(p);
#define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0)
return 1;
}
Agora, compile normalmente, mas troque o seu comando por este:
PHP код:
CMD:kick(playerid, params[])
{
new id;
if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]");
SendClientMessage(id, -1, "Vocк foi kickado");
Kick(id);
return 1;
}
-----------------------------------------------------------------------
Quote:
Originally Posted by DelK
PHP код:
CMD:kick(playerid, params[])
{
new id;
if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]");
SetTimerEx("KickTimer", 300, false, "i", playerid);
return 1;
}
forward KickTimer(playerid);
public KickTimer(playerid)
{
SendClientMessage(id, -1, "Vocк foi kickado");
Kick(playerid);
return 1;
}
|
Amigo, observe a chamada do timer no comando. Ele quer que um id especнfico seja kickado, e nгo o player que digitou o comando. (Denominado como playerid)
Re: sem mensagem do kick -
br0nks - 11.10.2017
porra mano cycle
funfo aqui valeu
Re: sem mensagem do kick -
F1N4L - 11.10.2017
Quote:
Originally Posted by Cycle
[B]@Topic
Troque:
PHP код:
if(sscanf(params, "d", id)) // NAO UTILIZE D PARA SETAR UM PLAYER, SENDO QUE A REGRA DA SYNTAX DO SSCANF, PARA SETAR PLAYERS, Й "u"
Por:
PHP код:
if(sscanf(params, "u", id)) // AGORA ESTБ CORRETO!
|
Nгo existe "regra" para isso.
d = ID do jogador
u = ID ou Nick do jogador
De qualquer forma ambas servem e no caso dele й somente ID.
(Nгo vejo vantagem em digitar o nick.)
Re: sem mensagem do kick -
Cycle - 11.10.2017
Quote:
Originally Posted by F1N4L
Nгo existe "regra" para isso.
d = ID do jogador
u = ID ou Nick do jogador
De qualquer forma ambas servem e no caso dele й somente ID.
(Nгo vejo vantagem em digitar o nick.)
|
Quote:
Originally Posted by Emmet_
Код:
Specifier(s) Name Example values
i, d Integer 1, 42, -10
c Character a, o, *
l Logical true, false
b Binary 01001, 0b1100
h, x Hex 1A, 0x23
o Octal 045 12
n Number 42, 0b010, 0xAC, 045
f Float 0.7, -99.5
g IEEE Float 0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E
u User name/id (bots and players) ******, 0
q Bot name/id ShopBot, 27
r Player name/id ******, 42
|
Nгo dizendo que nгo й funcional, mas sigo a regrinha da tabela das especificaзхes bбsicas do sscanf.
Acredito que nгo esteja incorreto, pois um amigo me corrigiu dessa forma.
Re: sem mensagem do kick -
F1N4L - 11.10.2017
Quote:
Originally Posted by Cycle
Nгo dizendo que nгo й funcional, mas sigo a regrinha da tabela das especificaзхes bбsicas do sscanf.
Acredito que nгo esteja incorreto, pois um amigo me corrigiu dessa forma.
|
Nenhuma das formas estгo incorretas/infuncionais, pelo contrбrio!
Quero dizer que й bom aplicar os recursos que serгo utilizados, pois digitar o nick (ao meu ver) nгo й vantagem (se й que hб alguma vantagem).
Re: sem mensagem do kick - Kamper - 11.10.2017
Eu vejo uma vantagem em utilizar
u invйs de
d.
Como desenvolvedor profissional eu tenho 2 prioridades: fazer meu cуdigo funcionar e me preocupar que o mesmo seja o mбximo legнvel possнvel para humanos.
Na metodologia, don't make me think (nгo me faзa pensar) onde procuro fazer meu cуdigo de um modo que qualquer desenvolvedor possa olha-lo e, sem precisar pensar muito, entender do que se trata. Imagine uma situaзгo em que vocк estб vendo o cуdigo
sem saber o que o comando faz:
Ao bater o olho em
"%u" vocк jб pode ter a certeza que o parвmetro se refere a um ID de jogador ou um nick.
Quando vocк bate o olho em
"%d" vocк sabe que й um integer porйm pode nгo se tratar de um ID de jogador, pode ser qualquer outro integer. (talvez atй por isso que exista esse %u). Й fбcil concluir que para entender o contexto do
"%d vocк precisarб olhar um pouco mais em volta e pensar um pouco mais.
Isso me faz concluir que, para uma qualidade de entendimento melhor por humanos o
"%u" й a melhor opзгo para esse caso e casos similares.