[FilterScript] PB-Kick
#1

PB-Kick
Olб galera eu tava sem nada pra fazer e sem ideia ai veio esta ideia de fazer um sistema igual do PB
de uma votaзгo para kickar o player indicado , e simples mas acho que vai ser util em servidor de DM.

Commandґs:
PHP код:
indicarkick Inicia e endica o player 
terminarvotacao 
Termina a votaзгo 
cancelarin 
cancela a votaзгo
sim 
vota sim
nao 
vota nao 
Code :
pawn Код:
#include         a_samp
#include         zcmd
#include         sscanf

#define          Manual        false
#define          Automatico    true

#define          Tempo         ( 2000 * 60 )

new     PlayersOn ,
            JaVotou [ MAX_PLAYERS ] ,
                    _IDKick ,
                        Votacao_aberta = 0,
                                   _Sim,
                                        _Nao ,
                                              _VotacaoTipo@ = Manual ,
                                                                      LigadoAutomatic_ = 0;

public OnPlayerConnect(playerid)
{
    PlayersOn ++ ;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    PlayersOn -- ;
    return 1;
}

command(indicarkick , playerid , params[] )
{
     new _Id ,
               _string [ 150 ],
                               _Motivo [ 100 ];
     if ( PlayersOn < 5 ) return SendClientMessage ( playerid , -1 , "Menos de 5 players nгo pode ser iniciado a votacao" ) ;
     if ( !Votacao_aberta ) return SendClientMessage ( playerid , -1 , "Votaзгo jб esta aberta " ) ;
     if ( sscanf ( params , "us" , _Id , _Motivo ) ) return SendClientMessage ( playerid , -1 , "°CMD° /indicarkick [ ID ] [ Motivo ]" ) ;
     format ( _string , sizeof ( _string ) , "Indicarгo o %s para ser kickado [ /sim /nao ] Motivo : %s", PlayerNome (playerid ), _Motivo ) ;
     SendClientMessageToAll ( -1 , _string ) ;
     _IDKick = _Id ;
     if ( _VotacaoTipo@ == Automatico )
     {
          LigadoAutomatic_ = 1 ;
          SetTimer("Contagem", Tempo, true);
     }
     return 1;
}

command(terminarvotacao , playerid , params[] )
{
     new _string [ 75 ] ;
     if ( Votacao_aberta == 1 ) return SendClientMessage ( playerid , -1 , "A Votaзгo nгo foi iniciado " ) ;
     if ( LigadoAutomatic_ == 1 ) return SendClientMessage ( playerid , -1 , "A Votaзгo esta automatica " ) ;
     SendClientMessageToAll ( -1 , "A Votaзгo foi encerrado" ) ;
     if ( _Sim > _Nao )
     {
         format ( _string ,sizeof ( _string ) , " O Player %s foi kickado . [ Pela Votaзгo ] " , PlayerNome ( _IDKick ) ) ;
         SendClientMessageToAll ( -1 , _string ) ;
         Kick ( _IDKick ) ;
     }
     if ( _Nao > _Sim )
     {
         SendClientMessageToAll ( -1 , " Ninguem foi kickado pela votacao" ) ;
     }
     for(new i=0; i<MAX_PLAYERS; i++)
     {
         JaVotou [ i ] = 0 ;
     }
     _IDKick = -1 ;
     _Nao = 0 ;
     _Sim = 0 ;
     Votacao_aberta = 0 ;
     return 1 ;
}

command(cancelarin , playerid , params [] )
{
     if ( !Votacao_aberta ) return SendClientMessage ( playerid , -1 , "A Votaзгo nгo foi iniciado " ) ;
     if ( LigadoAutomatic_ == 1 ) return SendClientMessage ( playerid , -1 , "A Votaзгo esta automatica " ) ;
     _IDKick = -1 ;
     _Nao = 0 ;
     _Sim = 0 ;
     Votacao_aberta = 0 ;
     for(new i=0; i<MAX_PLAYERS; i++)
     {
         JaVotou [ i ] = 0 ;
     }
     SendClientMessageToAll ( -1 , "Votaзгo cancelada " ) ;
     return 1 ;
}

command(sim , playerid , params[] )
{
    if ( !Votacao_aberta ) return SendClientMessage ( playerid , -1 , "A Votaзгo nгo foi iniciado " ) ;
    if ( JaVotou [ playerid ] == 1 ) return SendClientMessage (playerid , -1 , "vocк ja voto" ) ;
    _Sim ++ ;
    JaVotou [ playerid ] = 1 ;
    SendClientMessage ( playerid , -1 , "Seu voto foi computado" ) ;
    return 1 ;
}

command(nao , playerid , params[] )
{
    if ( !Votacao_aberta ) return SendClientMessage ( playerid , -1 , "A Votaзгo nгo foi iniciado " ) ;
    if ( JaVotou [ playerid ] == 1 ) return SendClientMessage (playerid , -1 , "vocк ja voto" ) ;
    _Nao ++ ;
    JaVotou [ playerid ] = 1 ;
    SendClientMessage ( playerid , -1 , "Seu voto foi computado" ) ;
    return 1 ;
}

stock PlayerNome ( playerid )
{
     new nome [ MAX_PLAYER_NAME ] ;
     GetPlayerName ( playerid , nome , sizeof ( nome ) );
     return nome ;
}
forward Contagem();
public Contagem()
{
     new _string [ 100 ] ;
     if ( _Sim > _Nao )
     {
         format ( _string ,sizeof ( _string ) , " O Player %s foi kickado . [ Pela Votaзгo ] " , PlayerNome ( _IDKick ) ) ;
         SendClientMessageToAll ( -1 , _string ) ;
         Kick ( _IDKick ) ;
     }
     if ( _Nao > _Sim )
     {
         SendClientMessageToAll ( -1 , " Ninguem foi kickado pela votacao" ) ;
     }
     for(new i=0; i<MAX_PLAYERS; i++)
     {
         JaVotou [ i ] = 0 ;
     }
     _IDKick = -1 ;
     _Nao = 0 ;
     _Sim = 0 ;
     Votacao_aberta = 0 ;
     return 1 ;
}
Creditos :
PHP код:
Maurнcio Moraes (mau.tito
PS: Se quiser bota so para admin .
Reply
#2

acho que seria melhor se a votaзгo se cancelaзe sozinha com tempo -q
nгo olhei o codigo mбs parece ser funcional
Reply
#3

Como o Sky disse, deveria ter um determinado tempo para a votaзгo ser cancelada, ou tambйm uma certa quantidade de votos... Mais estб bacana
Reply
#4

Gostei da ideia brother, vai ajudar na luta contra cheaters no servidor.
Reply
#5

Quote:
Originally Posted by n0minal
Посмотреть сообщение
Gostei da ideia brother, vai ajudar na luta contra cheaters no servidor.
As filha da putagem vai Ownar tambem.
Reply
#6

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение


As filha da putagem vai Ownar tambem.
oxi esqueceu de tomar o calmante foi?


@topico

eu acho que deveria set decidido o resultado por tempo como foi dito acima
dps do um rep pq agr n posso kk
Reply
#7

No PB o jogador sу e kickado se mais da metade da sala aprovar a votaзгo, sem falar que cada jogador sу pode abrir a votaзгo de 1 em 1 minuto, e a votaзгo tem um tempo de 20 segundos!

pawn Код:
SendClientMessage (playerid , -1 , "vocк ja volto" ) ;
Dica: Era bom a pessoa que abriu o votekick indicar o motivo.

pawn Код:
command(cancelarin , playerid , params [] )
Nгo esta usando params~.

Nгo e necessбrio usar sscanf quando se tem apenas um parвmetro no comando!
Reply
#8

Quote:
Originally Posted by LusioN
Посмотреть сообщение
oxi esqueceu de tomar o calmante foi?


@topico

eu acho que deveria set decidido o resultado por tempo como foi dito acima
dps do um rep pq agr n posso kk
Tomei sim relaxa
Reply
#9

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение



Tomei sim relaxa
ehuehue kkk

nunca joguei pb mбs acho que o comando ficaria melhor sendo

/votekick motivo
Reply
#10

Serб bem ъtil!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)