Tutorial WakeZ Baixando e Criando Conta

0 comentários

Bom galera blz? nesse vídeo ensinaremos como baixar e começar a jogar o nosso novo game, WakeZ.
Site: http://wake-z.tk/

Solução do Fake Kill

0 comentários
Olá pessoal! 
Eu pretendo postar a solução de vários erros aqui, soluções para problemas comuns, etc.
Para começar, postarei a solução do Fake Kill, que consiste em várias "mortes falsas".
Ele é usado no S0BEIT, várias soluções já Foram postadas, porém poucos conhecem as mesmas.

Então está aí:


Data provided by Pastebin.com - Download Raw - See Original
  1. new FakeKill[MAX_PLAYERS char];
  2.  
  3. public OnPlayerDeath(playerid,killerid,reason)
  4. {
  5.      FakeKill{playerid}++;
  6.      SetTimerEx("SairFakeKill",1000,0,"i",playerid);
  7.  
  8.  
  9.      if(FakeKill{playerid} > 2)
  10.      {
  11.           Ban(playerid);
  12.      }
  13.      return 1;
  14. }
  15. public OnPlayerConnect(playerid)
  16. {
  17.      FakeKill{playerid} = 0;
  18.      return 1;
  19. }
  20. SairFakeKill(playerid);
  21.  
  22. public SairFakeKill(playerid)
  23. {
  24.      FakeKill{playerid} = 0;
  25. }

Créditos: Biel_COP

Solução para o Hack de Car Spam

0 comentários
Bom, como a maioria de vocês sabem, eu sou dono de um Servidor e entendo a dificuldade que vocês, Admins de um passam.

Um problema não muito recente é o Car Spam, que muitos donos de Servidores Fecham os mesmos pelo problema com os Hack´s.

Eu também Já passei por isto e quero que cada vez isto diminua, portanto vamos lá!

O nosso amigo Kuddy Fez inicialmente um código que pode ser usado como um Anti Car Spam.


Data provided by Pastebin.com - Download Raw - See Original
  1. new CarSpam[MAX_PLAYERS char];
  2.  
  3. public OnPlayerDisconnect(playerid,reason)
  4. {
  5.         CarSpam{playerid} = 0;
  6.         return 1;
  7. }
  8. public OnPlayerStateChange(playerid,newstate,oldstate)
  9. {
  10.         CarSpam{playerid}++;
  11.         SetTimerEx("SairCarSpam",1000,0,"i",playerid);
  12.        
  13.         if(CarSpam{playerid} > 3)
  14.         {
  15.             Ban(playerid);
  16.         }
  17.         return 1;
  18. }
  19. SairCarSpam(playerid);
  20.  
  21. public SairCarSpam(playerid)
  22. {
  23.         CarSpam{playerid} = 0;
  24. }


Adaptação: Biel_COP
Lógica do Código: Kuddy

Trocar de arma no veículo com Y

0 comentários
Este sistema é bem excasso no SA-MP, eu jogo a 4 anos e só vi este sistema em dois servidores, porém com uma demora para a execução do mesmo.

Após testes de velocidade feitos por mim, eu fiz o sistema mais rápido até então já feito.

Obs: Caso você seja dono de um servidor RPG e esteja com o pé atrás para colocar, relaxe, pois eu uso este sistema no meu servidor (que é RPG) e o povo realmente Gosta.

Sem mais delongas, vamos lá!



Data provided by Pastebin.com - Download Raw - See Original
  1. public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
  2. {
  3.         if(newkeys == KEY_YES && IsPlayerInAnyVehicle(playerid))
  4.         {
  5.             new TrocarArma[7][2];
  6.  
  7.                 for(new i=2; i<7; i++)
  8.                 {
  9.                         GetPlayerWeaponData(playerid,i,TrocarArma[i][0],TrocarArma[i][1]);
  10.                 }
  11.                 new ProcederTroca = 2 + random(5);
  12.  
  13.                 SetPlayerArmedWeapon(playerid,TrocarArma[ProcederTroca][0]);
  14.         }
  15.         return 1;
  16. }

 Créditos: Biel_COP 

Solução para o Hack de Crash

0 comentários
Fala aí negada!

Estes dias atrás eu estive no meu servidor recebendo algumas dicas de jogadores até que um jogador aleatório comentou comigo se eu tinha ou não a solução para o Hack de Crash.

Consiste em crashar jogadores próximos com um veículo modificado, você não será crashado mas o povo ao seu redor sim.

Isto é a causa de muitos servidores serem fechados todos os dias, e como eu vejo que muitos donos de servidores querem só ver o seu pessoal se divertindo, como eu, a solução será postada!



Data provided by Pastebin.com - Download Raw - See Original
  1. public OnVehicleMod(playerid,vehicleid,componentid)
  2. {
  3.         if(IsPlayerConnected(playerid) && GetPlayerInterior(playerid) != 0)
  4.         {
  5.                 if(componentid != 1010)
  6.                 {
  7.                 Ban(playerid);
  8.                 }
  9.         }
  10.         return 1;
  11. }

Créditos: Biel_COP 

[TUTORIAL]Colocando imagem ao Conectar

0 comentários

Colocando imagem ao Conectar
Galera, venho trazer esse tutorial simples, porém bem útil, pois alguns membros sempre perguntam como faz para colocar uma imagem no fundo do Login Box.
Então vamos logo para o tutorial,

Introdução
# Primeiramente, devo avisar que é uma coisa simples de se fazer, então, por favor não crie comentários fúteis.
# Se você já sabe, bom, muito bom, mais eu fiz esse tutorial com a finalidade de ajudar a quem não sabe, e deseja saber como colocar.
# A imagem é uma especie de TEXTDRAW.

Iniciando...

Vamos definir nossa TEXTDRAW que iremos usar na imagem.
Topo do GameMode/FilterScript

CÓDIGO: SELECIONAR TODOS
new Text:ImagemEntrada; 





Explicação
Essa variável é usada para armazenar o ID da TextDraw, para que possamos usa-lá. 

Agora vá até a public OnGameModeInit() , e adicione isso
Por favor, não modifique os códigos á seguir, pois poderá dar error.

CÓDIGO: SELECIONAR TODOS
    ImagemEntrada = TextDrawCreate(1.000000, -1.000000, "loadsc2:loadsc2"); 
    TextDrawBackgroundColor(ImagemEntrada, 255); 
    TextDrawFont(ImagemEntrada, 4); 
    TextDrawLetterSize(ImagemEntrada, 0.500000, 1.000000); 
    TextDrawColor(ImagemEntrada, -1); 
    TextDrawSetOutline(ImagemEntrada, 0); 
    TextDrawSetProportional(ImagemEntrada, 1); 
    TextDrawSetShadow(ImagemEntrada, 1); 
    TextDrawUseBox(ImagemEntrada, 1); 
    TextDrawBoxColor(ImagemEntrada, 255); 
    TextDrawTextSize(ImagemEntrada, 645.000000, 450.000000);



Explicação
ImagemEntrada - Usada para utilizar a nossa imagem.
TextDrawCreate - Função utilizada para criar um TextDraw.
1.000000, -1.000000 - Isso é a coordenada da localização da TextDraw.
loadsuk:loadsc6 - Usado para carregar as imagens do diretório do seu Grand Theft Auto San Andreas(GTA SA).
TextDrawBackgroundColor - Função utilizada para dar cor a TextDraw.
TextDrawFont - Função utilizada para definir a fonte da TextDraw.
TextDrawLetterSize - Função utilizada para definir o tamanho do texto da TextDraw.
TextDrawColor - Função para dar cor ao texto da TextDraw.
TextDrawSetOutline - Usada para dar Esbouço ao texto.
TextDrawSetProportional - Função utilizada para dar Proportional ao texto.
TextDrawSetShadow - Função utilizada para dar sombra ao texto.
TextDrawUseBox - Caixa da TextDraw.
TextDrawBoxColor - Cor da caixa.
TextDrawTextSize - Função usada para definir o tamanho do nosso texto.

Agora para que possamos colocar para criar a TextDraw ao player se conectar, devemos colocar isso na public OnPlayerConnect(playerid)

CÓDIGO: SELECIONAR TODOS
TextDrawShowForPlayer(playerid, ImagemEntrada); 




Explicação
TextDrawShowForPlayer - Função utilizada para carregar ou criar a TextDraw ao player.
ImagemEntrada - Para abrir somente a nossa TextDraw(imagem).


Agora vá até a public OnPlayerRequestClass(playerid) e adicione isto

CÓDIGO: SELECIONAR TODOS
TextDrawShowForPlayer(playerid, ImagemEntrada);





Explicação
TextDrawShowForPlayer - Função utilizada para carregar ou criar a TextDraw ao player.
ImagemEntrada - Usada para abrir/executar somente aquela TextDraw(nossa imagem).


Agora temos que destruir nossa TextDraw ao player spawnar. Então vamos até a public OnPlayerSpawn(playerid)

CÓDIGO: SELECIONAR TODOS
TextDrawHideForPlayer(playerid, ImagemEntrada);


Explicação
TextDrawHideForPlayer - Função utilizada para destruir/excluir a nossa TextDraw.
ImagemEntrada - Utilizado para destruir somente a nossa TextDraw.

Projeto Final
Agora vamos ao mais esperado, pelo esforço, o resultado do nosso código
Imagem

Obs: É Possível mudar a imagem, mais primeiro você deve saber o "ID" da sprite(imagem do diretório) que você deseja utilizar.


Créditos:
Đeagle - Criador
Lorenc - Criador

Criador de portão InGame

0 comentários


Pra fazer um novo portão basta usar o comando /criarportao
irá aparecer um dialog com 8 tipo de portões (foi oq eu achei no MTA)
após escolher o portão basta move-lo pra onde você quizer usando as teclas:


Teclas direcionais (cima, baixo, direita e esquerda) 
Move o portão

Numero 6 e Numero 4 
Edita a rotação do portão

Letra Y 
Sobe o portão

Letra N 
Desce o portão

OBS: Para poder mover o portão é preciso apertar a letra C ela aplicará um anim que deixará o jogador parado  mais podendo mover a camera. para sair do anim e checar a posição do portão basta apertar C novamente.

Comandos

/criarportao = "Cria um portão" 
/sairportao = "Cancela a edição do portão" 
/tipo = "Escolhe um novo modelo para o portão" 
/testar = "Testa o portão" 
/comandos = "Ver os comandos e ajuda" 
/salvarportao = "abre o dialog de salvamento do portão"  


ao usar o comando /salvarportao, abrirá um dialog para você digitar o nome que dará ao portão apos escolher o nome, abrirá outro dialog para voce digitar o nome do comando que abrirá o portão após isso você escolhe se o portão irá abrir para cima ou para baixo, e por ultimo você escolhe o tipo de comando que você usa (zcmd ou strcmp) ao salvar o portão, será criado um arquivo na pasta scriptfiles.
Exemplo: NomePortao.pwn, nele terá um code igual a este:

//no Topo do GM 
new NomePortao; 


//OnGameModeInit 
NomePortao = CreateObject(980, 1249.2891,-1709.9647,13.3828,0.0000,0.0000,0.0000); 


//comando 
if(strcmp(#/NomeComando, cmdtext, true) == 0) 
    MoveObject(NomePortao, 1249.2891,-1709.9647,3.3828,3,0.0000,0.0000,0.0000); 
    SetTimer(#MoveNomePortao, 5000, 0); 
    SendClientMessage(playerid, 0x2641FEFF, #Portao aberto); 
    return true; 

//No fim do GM 
forward MoveNomePortao(); 
public MoveNomePortao() 
    MoveObject(NomePortao,1249.2891, -1709.9647, 13.3828,3,0.0000, 0.0000, 0.0000); 
    return true; 
}  

você pode notar que nessas linhas:

SendClientMessage(playerid, 0x2641FEFF, #Portao aberto); 
if(strcmp(#/NomeComando, cmdtext, true) == 0) 
SetTimer(#MoveNomePortao, 5000, 0);  

não está sendo usado( " " ) pois ( # ) substitui elas
irá compilar normalmente e não dará nenhum erro!!
(aprendi com Garfield *-*)