[Pedido] sem mensagem do kick
#1

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;
}
Reply
#2

PHP код:
CMD:kick(playeridparams[])
{
    new 
id;
    if(
sscanf(params"d"id)) return SendClientMessage(playerid, -1"AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]");
       
SetTimerEx("KickTimer"300false"i"playerid);
    return 
1;
}
forward KickTimer(playerid);
public 
KickTimer(playerid)
{
        
SendClientMessage(id, -1"Vocк foi kickado");
    
Kick(playerid);
        return 
1;

Reply
#3

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(playeridparams[])
{
    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(playeridparams[]) 

    new 
id
    if(
sscanf(params"d"id)) return SendClientMessage(playerid, -1"AE PAU NO CU, DIGITA A PORRA CERTA Й - /KICK [ID]"); 
    
SetTimerEx("KickTimer"300false"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)
Reply
#4

porra mano cycle
funfo aqui valeu
Reply
#5

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.)
Reply
#6

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.
Reply
#7

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).
Reply
#8

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)