[FilterScript] rEvento
#1

Olб pessoal , estou aqui para a postagen do meu mas novo filterscript de eventos, bom sei que jб existe uma grande quantia de filterscripts no qual alguns estгo bugados ou atй mesmo com links off, sei que foi lanзado semana passada um filterscript de evento mas gosto sempre de deixar essa board atualizada, esse filterscript foi testado com 5 jogadores no qual nгo achamos nenhum tipo de bug. Caso queiram dar suas sugestхes fique livre, aceito criticas construtivas .

Download
PHP Code:
#include    <   a_samp  >
#include    <   zcmd    >
#include    <   sscanf2 >
#if defined MAX_PLAYERS_EVENTO
#undef MAX_PLAYERS_EVENTO
#endif
#define MAX_PLAYERS_EVENTO    (60) //Mude para o maximo de players em seu servidor.
new FloatPos         ] ;
new 
str             128 ] ;
new 
Evento ;
new 
EventoEt;
new 
Nome             MAX_PLAYER_NAME ] ;
new 
Kills             MAX_PLAYERS_EVENTO ] ;
new 
EventoV         MAX_PLAYERS_EVENTO ] ;
new 
boolAtivo     MAX_PLAYERS_EVENTO ] ;
new 
boolentrarE     MAX_PLAYERS_EVENTO ] ;
public 
OnPlayerDisconnect playerid reason )
{
    if ( 
entrarE playerid ] == true )
    {
        
GetPlayerName playerid Nome sizeof Nome ) ) ;
        
format str sizeof str ) , "[EVENTO]: %s saiu do evento." Nome ) ;
        
SendClientMessageToAll 0xFF0000AA str ) ;
        
DestroyVehicle EventoV playerid ] ) ;
        
EventoEt-- ;
        
entrarE playerid ] = false ;
        
Kills playerid ] = ;
     }
    return 
1;
}
CMD :aevento playerid params [ ] )
{
    new 
eventnome 31 ] ;
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Jб tem um evento em andamento." ) ;
    if ( 
sscanf params "s[30]" eventnome ) ) return SendClientMessage playerid 0xFF0000AA "/aevento [nome]" ) ;
    
format(strsizeof(str), "Evento ''%s'' aberto. use: /irevento" eventnome ) ;
    
SendClientMessageToAll 0xFF0000AA str ) ;
    
GetPlayerPos playerid Pos ] , Pos ] , Pos ] ) ;
    
Evento ;
    return 
;
}
CMD :irevento playerid params [ ] )
{
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == true ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк jб estб no evento." ) ;
    if ( 
Ativo playerid ] == true ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Evento jб comeзou." ) ;
       
GetPlayerName playerid Nome sizeof Nome ) ) ;
       
format(strsizeof(str), "[EVENTO]: %s entrou no evento." Nome ) ;
       
SendClientMessageToAll 0xFF0000AA str ) ;
       
SetPlayerPos playerid Pos ] , Pos ] , Pos ] ) ;
       
entrarE playerid ] = true ;
       
EventoEt++ ;
       
SendClientMessage playerid 0xFF0000AA "[EVENTO]: Aguarde o administrador comeзar o evento." ) ;
       
TogglePlayerControllable playerid ) ;
    return 
;
}
CMD :starevento playerid params [ ] )
{
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    if ( 
Ativo playerid ] == true ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Evento jб comeзou." ) ;
    
format str sizeof str ) , "[EVENTO]: Evento comeзou com %d players." EventoEt ) ;
    
SendClientMessageToAll 0xFF0000AA str ) ;
    for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
     {
        
Ativo ] = true ;
        
TogglePlayerControllable ) ;
    }
    
SendClientMessageToAll 0xFF0000AA "[EVENTO]: Administrador comeзou o evento." ) ;
    for ( new 
MAX_PLAYERS != ; ++Ativo ] = true ;
    return 
;
}
CMD :fecevento playerid params [ ] )
{
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
     {
        
DestroyVehicle EventoV ] ) ;
        
entrarE ] = false ;
        
Ativo ] = false ;
        
Kills ] = ;
        
SpawnPlayer ) ;
    }
     for ( new 
MAX_PLAYERS != ; ++entrarE ] = false Evento ;
    
SendClientMessageToAll 0xFF0000AA "[EVENTO]: Administrador fechou o evento." ) ;
    return 
;
}
CMD :sevento playerid params [ ] )
{
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    
SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк saiu do evento." ) ;
    
GetPlayerName playerid Nome sizeof Nome ) ) ;
    
format str sizeof str ) , "[EVENTO]: %s saiu do evento." Nome ) ;
    
SendClientMessageToAll 0xFF0000AA str ) ;
    
SpawnPlayer playerid ) ;
    
DestroyVehicle EventoV playerid ] ) ;
    
EventoEt-- ;
    
entrarE playerid ] = false ;
    
Kills playerid ] = ;
     return 
;
}
CMD :arevento playerid params [ ] )
{
    new 
armaidmun;
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    if ( 
sscanf params "ii" armaid mun ) ) return SendClientMessage playerid 0xFF0000AA "/arevento [armarid] [muniзгo]" ) ;
    if ( 
armaid || armaid == 19 || armaid == 20 || armaid == 21) return SendClientMessage playerid 0xFF0000AA "id invalido." ) ;
       for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
    {
        
//ResetPlayerWeapons ( x ) ;
        
GivePlayerWeapon armaid mun ) ;
    }
    
format(strsizeof(str), "[EVENTO]: Administrador deu para todos no evento: armaid: %d muniзгo: %d" armaid mun ) ;
    
SendEventMessage 0xFF0000AA str ) ;
    return 
;
}
CMD :rsevento playerid params [ ] )
{
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
     {
        
ResetPlayerWeapons ) ;
    }
    
SendEventMessage 0xFF0000AA "[EVENTO]: Administrador resetou a arma de todos no evento." ) ;
    return 
;
}
CMD :vievento playerid params [ ] )
{
    new 
vidaid;
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    if ( 
sscanf params "i" vidaid ) ) return SendClientMessage playerid 0xFF0000AA "/vievento [quantia]" ) ;
    if ( 
vidaid || vidaid 100) return SendClientMessage playerid 0xFF0000AA "quantia invalida." ) ;
       for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
    {
        
SetPlayerHealth vidaid ) ;
    }
    
format(strsizeof(str), "[EVENTO]: Administrador deu para todos no evento vida: %d" vidaid ) ;
    
SendEventMessage 0xFF0000AA str ) ;
    return 
;
}
CMD :coevento playerid params [ ] )
{
    new 
coleteid;
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    if ( 
sscanf params "i" coleteid ) ) return SendClientMessage playerid 0xFF0000AA "/coevento [quantia]" ) ;
    if ( 
coleteid || coleteid 100) return SendClientMessage playerid 0xFF0000AA "quantia invalida." ) ;
       for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
    {
        
SetPlayerArmour coleteid );
    }
    
format(strsizeof(str), "[EVENTO]: Administrador deu para todos no evento colete: %d" coleteid ) ;
    
SendEventMessage 0xFF0000AA str ) ;
    return 
;
}
CMD :veevento playerid params [ ] )
{
    new 
veiculo cor1 cor2 ;
    new 
Float:ppos ] ;
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    if ( 
sscanf params "iii" veiculo cor1 cor2 ) ) return SendClientMessage playerid 0xFF0000AA "[ERRO]: /veevento [vehicleid] [cor1] [cor2]." ) ;
    if ( 
veiculo 400 || veiculo 611) return SendClientMessage playerid , -"[ERRO]: id invalido.");
       for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
    {
          
GetPlayerPos ppos ] , ppos ] , ppos ] ) ;
        
DestroyVehicle EventoV ] ) ;
        
EventoV ] = CreateVehicle veiculo ppos ] , ppos ] , ppos ] , 360cor1 cor2 , -) ;
        
PutPlayerInVehicle EventoV ] , ) ;
    }
    
SendEventMessage 0xFF0000AA "[EVENTO]: Administrador deu para todos no evento veiculo." ) ;
    return 
;
}
CMD :delevento playerid params [ ] )
{
    if ( !
IsPlayerAdmin playerid ) ) return SendClientMessage playerid 0xFF0000AA "Vocк nгo tem permissгo." ) ;
    if ( 
Evento == ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Nenhum evento ativo." ) ;
    if ( 
entrarE playerid ] == false ) return SendClientMessage playerid 0xFF0000AA "[EVENTO]: Vocк nгo estб em um evento." ) ;
    for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
     {
        
DestroyVehicle EventoV ] ) ;
    }
    
SendEventMessage 0xFF0000AA "[EVENTO]: Administrador deletou todos os veiculos do evento." ) ;
    return 
;
}
public 
OnPlayerSpawn playerid ) if ( entrarE playerid ] == true SetPlayerPos playerid Pos ] , Pos ] , Pos ] ) ;
public 
OnPlayerDeath playerid killerid )
{
    if ( 
killerid == INVALID_PLAYER_ID ) if ( entrarE playerid ] == true )
    {
         
GetPlayerName playerid Nome sizeof Nome ) ) ;
        
format(strsizeof(str), "[EVENTO]: '%s' se matou no evento." Nome ) ;
        
SendEventMessage 0xFF0000AA str ) ;
    }
    else {
        if ( 
entrarE killerid ] == true && entrarE playerid ] == true )
        {
            new 
nOme MAX_PLAYER_NAME ] ;
            
GetPlayerName killerid Nome sizeof Nome ) ) ;
            
GetPlayerName playerid nOme sizeof nOme ) ) ;
               
format(strsizeof(str), "[EVENTO]: '%s' matou '%s' no evento." Nome nOme ) ;
            
SendEventMessage 0xFF0000AA str ) ;
            
Kills killerid ] ++ ;
        }
     }
    if ( 
Kills killerid ] == 20 && entrarE killerid ] == true )
    {
         for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
        {
            
format(strsizeof(str), "[EVENTO]: '%s' ganhou o evento com 20 kills." Nome ) ;
            
SendClientMessageToAll 0xFF0000AA str ) ;
             
Ativo ] = false ;
            
Evento ;
            
entrarE ] = false ;
        }
    }
    return 
;
}
stock SendEventMessage color string [ ] )
{
    for ( new 
MAX_PLAYERS_EVENTO != ; ++) if ( IsPlayerConnected ) && entrarE ] == true)
        return 
SendClientMessage color string ) ;
    return 
1;

includes
zcmd
sscanf

Comandos
Code:
Comandos para administradores:
/aevento [nome] - Criaзгo do evento.
/starevento - Comeзar o evento.
/fecevento - Fechar evento.
/arevento [weaponid] [ammo] - Dar armas para todos no evento.
/rsevento - Resetar armas do evento.
/vievento [health] - Health para todos no evento.
/coevento [armor] - Armor para todos no evento. 
/veevento [vehicleid] [cor1] [cor2] - Veiculo para todos no evento.
/delevento - Deletar veiculos de todos no evento.
Comandos para players:
/irevento - Entrar no evento.
/sevento - Sair do evento.


Obs: Novas atualizaзхes virгo por ai .

Updates
[23-04-2012] - Algumas optimizaзхes, novos comandos administrativos ( /veevento, /delevento ).
[25-04-2012] - Alguns bugs foram corrigidos, acrecentado algumas optimizaзхes.
[28-04-2012] - Macros foram retirados, alguns checks desnecessarios foram retirados.
[/FONT]
Reply
#2

Imagens? '-'
Reply
#3

Quote:
Originally Posted by [LF]PlaYer
View Post
Imagens? '-'
Mas breve possivel colocarei imagens to sem tempo. (Trampando aqui).
Reply
#4

Quote:
Originally Posted by RoacH`
View Post
Mas breve possivel colocarei imagens to sem tempo. (Trampando aqui).
Ah Ok .

Pelo codigo parece estar bom , bom trabalho
Reply
#5

Parece Bom
Reply
#6

Legal !
Reply
#7

Ficou bom, Uma sugestгo que muitas pessoas pedem, Sistema de veiculo para evento, ex: /criarveiculoe ( Cria o veiculo para o evento ) e depois para deletar os veiculos do evento /deletarveiculoe , um comando util para nгo ficar deletando os veiculos 1 por 1 .
Reply
#8

Quote:
Originally Posted by [LF]PlaYer
View Post
Ah Ok .

Pelo codigo parece estar bom , bom trabalho
Quote:
Originally Posted by Deanx
View Post
Parece Bom
Quote:
Originally Posted by leosivi
View Post
Legal !
Obrigado .

Quote:
Originally Posted by [NVC]iTrevaS
View Post
Ficou bom, Uma sugestгo que muitas pessoas pedem, Sistema de veiculo para evento, ex: /criarveiculoe ( Cria o veiculo para o evento ) e depois para deletar os veiculos do evento /deletarveiculoe , um comando util para nгo ficar deletando os veiculos 1 por 1 .
Colocado ^^
Reply
#9

Quote:
Originally Posted by [NVC]iTrevaS
View Post
Ficou bom, Uma sugestгo que muitas pessoas pedem, Sistema de veiculo para evento, ex: /criarveiculoe ( Cria o veiculo para o evento ) e depois para deletar os veiculos do evento /deletarveiculoe , um comando util para nгo ficar deletando os veiculos 1 por 1 .
Boa ideia. Tipo vou dar um ideia melhor em cima dessa, tipo cria-se o carro antes de comeзa o evento e na hora que o player digita-se /IrEvento jб ia direto para o veнculo.
-
FilterScript 10/10
Gostei muito.
Reply
#10

Legal Gostei
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)