Tunning GTA e Mais algumas Funções
Olà pessoal da Fуrum SA-MP.
Vendo alguns tуpicos antigos daqui da board PT/BR e da prуpria board gringa, em que consiste no Tunning Bugado.
Você não sabe o que é o tunning bugado ? É isso:
Certamente isso já aconteceu com você.
Com este tutorial, você saberá acabar com este problema chato!
Objetivos
. Saber um pouco mais sobre as variáveis.
. Desbugar o Tunning do GTA.
. Aprender a usar novos públicos.
início
Adicione este código no topo do gamemode:
peão Код:
Criamos esta nova para podermos proceder com nosso script.
Sem ela, não teríamos o resultado final.
Para mais explicações sobre o que criamos, clique aqui .
Utilização das Publicas
Usaremos três públicos:
Quando o jogador se desconectar
Quando pressionou alguma tecla
Quando entrar ou sair do sintonizador
Códigos + Explicação
peão Код:
No cуdigo acima, seguido pelo público cuja responsabilidade é desconectar do jogador.
Com isso, para evitar bugґs possíveis, definiremos o EmTunning а 0, ou seja, falso, ou seja, ele não está no Tunning.
Lembrando que devemos retornar а true, para que as alterações façam efeito.
Uma boa dica e lembrança, é que 1 é verdadeiro e 0 é falso , nas linguagens de programação.
peão Код:
Com o público acima, confirmamos ações quando o jogador pressionou uma tecla, no caso, a tecla KEY_SECONDARY_ATTACK, mais conhecida como Enter ou F.
Para saber mais sobre as teclas, clique aqui .
Voltando ao assunto, a public nos permite a conversão de tais ações, como citadas acima.
Você também pode criar exeções, como:
peão Код:
Lembrando que o ! antes da função, significa negação, ou seja: Nao (função).
Um exemplo disso é:
peão Код:
e
peão Код:
Com o código acima, faremos a seguinte operação:
peão Код:
Vale lembrar que é sempre bom tomar cuidado com a identificação e com os retornos em excesso.
Um código desta maneira:
peão Код:
Nao é nescessário, além de ser mal organizado, dará warnings no compilador.
Para saber mais sobre os retornos, clique aqui .
peão Код:
Com este código final, usaremos um GameText com o estilo 3, que no caso é:
Para saber mais sobre os GameTextґs, clique aqui para ver os estilos de gametext e clique aqui para saber usar os mesmos.
Explicando o cуdigo, teremos o mesmo assim:
peão Код:
Também, como o esperado, definiremos que o jogador está ou não está no Tunning.
O enterexit define a tal função.
Para vocês entenderem melhor, peguem de exemplo este código, com uma nova variável.
peão Код:
Isto é para casos mais específicos, onde o dono do servidor quer bloquear o sintonizador.
Você também pode criar dois comandos, desbloqueando ou bloqueando o mesmo.
Exemplo:
peão Код:
Caso você use ZCMD, adicione no final do gamemode:
peão Код:
Finalizando
Para finalizar, aqui está o código completo:
peão Код:
Obrigado a todos que leram este tutorial.
Se você realmente aprendeu algo com isso, repute caso queira.
Se não quiser, fique à vontade para dar o - reputação.
O importante é que você avalie o mesmo
BY BIEL_COP
Olà pessoal da Fуrum SA-MP.
Vendo alguns tуpicos antigos daqui da board PT/BR e da prуpria board gringa, em que consiste no Tunning Bugado.
Você não sabe o que é o tunning bugado ? É isso:
Certamente isso já aconteceu com você.
Com este tutorial, você saberá acabar com este problema chato!
Objetivos
. Saber um pouco mais sobre as variáveis.
. Desbugar o Tunning do GTA.
. Aprender a usar novos públicos.
início
Adicione este código no topo do gamemode:
peão Код:
- Código:
#include <a_samp>
novo EmTunning [ MAX_PLAYERS ] ; // Topo do Gamemode, depois de Includes ou Defines.
Criamos esta nova para podermos proceder com nosso script.
Sem ela, não teríamos o resultado final.
Para mais explicações sobre o que criamos, clique aqui .
Utilização das Publicas
Usaremos três públicos:
Quando o jogador se desconectar
Quando pressionou alguma tecla
Quando entrar ou sair do sintonizador
Códigos + Explicação
peão Код:
- Código:
public OnPlayerDisconnect ( playerid,reason )
{
EmTunning [ playerid ] = 0 ;
retornar 1 ;
}
No cуdigo acima, seguido pelo público cuja responsabilidade é desconectar do jogador.
Com isso, para evitar bugґs possíveis, definiremos o EmTunning а 0, ou seja, falso, ou seja, ele não está no Tunning.
Lembrando que devemos retornar а true, para que as alterações façam efeito.
Uma boa dica e lembrança, é que 1 é verdadeiro e 0 é falso , nas linguagens de programação.
peão Код:
- Código:
public OnPlayerKeyStateChange ( playerid,newkeys,oldkeys )
{
if ( newkeys == KEY_SECONDARY_ATTACK )
{
if ( IsPlayerInAnyVehicle ( playerid ) )
{
if ( EmTunning [ playerid ] == 1 )
{
PutPlayerInVehicle ( playerid,GetPlayerVehicleID ( playerid ) ,PLAYER_STATE_DRIVER ) ;
retornar 1 ;
} }
}
retornar 1 ;
}
Com o público acima, confirmamos ações quando o jogador pressionou uma tecla, no caso, a tecla KEY_SECONDARY_ATTACK, mais conhecida como Enter ou F.
Para saber mais sobre as teclas, clique aqui .
Voltando ao assunto, a public nos permite a conversão de tais ações, como citadas acima.
Você também pode criar exeções, como:
peão Код:
- Código:
if ( IsPlayerInAnyVehicle ( playerid ) ) // Caso ele esteja em um veículo
Ou definir algo mais complexo e também mais arriscado, como:
peão Код:
if ( ! IsPlayerInAnyVehicle ( playerid ) ) Ban ( playerid ) ; // Caso ele não esteja em um veículo, ele será banido
Lembrando que o ! antes da função, significa negação, ou seja: Nao (função).
Um exemplo disso é:
peão Код:
- Código:
if ( IsPlayerConnected ( playerid ) ) // Caso esteja conectado
e
peão Код:
- Código:
if ( ! IsPlayerConnected ( playerid ) ) // Caso não esteja conectado
Com o código acima, faremos a seguinte operação:
peão Код:
- Código:
public OnPlayerKeyStateChange ( playerid,newkeys,oldkeys )
{
if ( newkeys == KEY_SECONDARY_ATTACK ) // Caso a tecla pressionada for Enter ou F.
{
if ( IsPlayerInAnyVehicle ( playerid ) ) // Caso ele esteja em um veículo
{
if ( EmTunning [ playerid ] == 1 ) // Caso ele esteja sem ajuste
{
PutPlayerInVehicle ( playerid,GetPlayerVehicleID ( playerid ),GetPlayerState ( playerid ) ) ; // Colocará novamente o jogador no veículo, impedindo que o mesmo saia.
retornar 1 ;
}
}
}
return 1 ;
}
Vale lembrar que é sempre bom tomar cuidado com a identificação e com os retornos em excesso.
Um código desta maneira:
peão Код:
- Código:
public OnPlayerKeyStateChange ( playerid,newkeys,oldkeys )
{
if ( newkeys == KEY_SECONDARY_ATTACK ) // Caso a tecla pressionada for Enter ou F.
{
if ( IsPlayerInAnyVehicle ( playerid ) ) // Caso ele esteja em um veículo
{
if ( EmTunning [ playerid ] == 1 ) // Caso ele esteja sem ajuste
{
PutPlayerInVehicle ( playerid,GetPlayerVehicleID ( playerid ),PLAYER_STATE_DRIVER ) ; // Colocará novamente o jogador no veículo
return 1 ;
}
retorna 1 ;
}
retorna 1 ;
}
retorna 1 ;
}
Nao é nescessário, além de ser mal organizado, dará warnings no compilador.
Para saber mais sobre os retornos, clique aqui .
peão Код:
- Código:
public OnEnterExitModShop ( playerid,enterexit,interiorid )
{
if ( enterexit == 0 )
{
GameTextForPlayer ( playerid, "~r~Seja bem vindo ao Tunning!" , 5000 , 3 ) ;
EmTunning [ playerid ] = 1 ;
}
else
{
GameTextForPlayer ( playerid, "~r~Volte sempre ao Tunning!" , 5000 , 3 ) ;
EmTunning[ ID do jogador ] = 0 ;
}
retorna 1 ;
}
Com este código final, usaremos um GameText com o estilo 3, que no caso é:
Para saber mais sobre os GameTextґs, clique aqui para ver os estilos de gametext e clique aqui para saber usar os mesmos.
Explicando o cуdigo, teremos o mesmo assim:
peão Код:
- Código:
public OnEnterExitModShop ( playerid,enterexit,interiorid )
{
if ( enterexit == 0 ) // Caso ele já esteja fora do tunning
{
GameTextForPlayer ( playerid, "~r~Seja bem vindo ao Tunning!" , 5000 , 3 ) ; // Manda o gametext
EmTunning [ playerid ] = 1 ; // Seta que o jogador está sem afinação
}
else // Outro, geralmente usado para obter outro valor significado а um citado
{
GameTextForPlayer ( playerid, "~r~Volte sempre ao Tunning!" , 5000 , 3 ) ; // Manda o gametext
EmTunning [ playerid ] = 0 ; // Seta que o jogador não está no tunning
}
return 1 ;
}
Também, como o esperado, definiremos que o jogador está ou não está no Tunning.
O enterexit define a tal função.
Para vocês entenderem melhor, peguem de exemplo este código, com uma nova variável.
peão Код:
- Código:
new TunningBloqueado = 0 ; // Cria e define que o tunning não está bloqueado
public OnEnterExitModShop ( playerid,enterexit,interiorid )
{
if ( enterexit == 0 ) // Caso ele esteja entrando no tunning
{
if ( TunningBloqueado == 1 ) // Caso esteja bloqueado
{
SendClientMessage ( playerid,0xBFBFBFAA, "O tunning está bloqueado!" ) ; // Manda a tal mensagem
Kick ( playerid) ; // Dá um chute no jogador
return 1 ;
}
}
retorna 1 ;
}
Isto é para casos mais específicos, onde o dono do servidor quer bloquear o sintonizador.
Você também pode criar dois comandos, desbloqueando ou bloqueando o mesmo.
Exemplo:
peão Код:
- Código:
if ( strcmp ( cmdtext, "/bloqueartunning" ,true ) == 0 )
{
if ( IsPlayerAdmin ( playerid ) ) // Verifica se é admin logado na RCON
{
if ( TunningBloqueado == 0 ) // Se o tunning está desbloqueado
{
SendClientMessageToAll ( 0xBFBFBFAA, "Tunning bloqueado!" ) ; // Manda a mensagem a todos
TunningBloqueado = 1 ; // Bloqueia o Tunning
retornar 1 ;
}
}
retorna 1 ;
}
if ( strcmp ( cmdtext, "/desbloqueartunning" ,true ) == 0 )
{
if ( IsPlayerAdmin ( playerid ) ) // Verifica se é admin logado na RCON
{
if ( TunningBloqueado == 1 ) // Se o tunning está bloqueado
{
SendClientMessageToAll ( 0xBFBFBFAA, "Tunning desbloqueado!" ) ;// Manda a mensagem a todos
TunningBloqueado = 0 ; // Desbloqueia o tunning
return 1 ;
}
}
retorna 1 ;
}
Caso você use ZCMD, adicione no final do gamemode:
peão Код:
- Código:
; _ _ _ _ _
_
_ _ _ _ _ _ _ _
_
_ _ _ _ _ _ _
_
_ _ _ _ _ _ // Manda a mensagem a todos
TunningBloqueado = 1 ; // Bloqueia o tunning
return 1 ;
}
}
retornar 1 ;
}
CMD : desbloqueartunning ( playerid )
{
if ( IsPlayerAdmin ( playerid ) ) // Verifica se é admin logado na RCON
{
if ( TunningBloqueado == 1 ) // Se o tunning estiver bloqueado
{
SendClientMessageToAll ( 0xBFBFBFAA, "Tunning desbloqueado!" ) ; // Manda a mensagem a todos
TunningBloqueado = 0 ; // Desbloqueia o tunning
return 1 ;
}
}
retorna 1 ;
}
Finalizando
Para finalizar, aqui está o código completo:
peão Код:
- Código:
#include <a_Samp>
novo EmTunning [ MAX_PLAYERS ] ;
public OnPlayerDisconnect ( playerid,reason )
{
EmTunning [ playerid ] = 0 ;
retornar 1 ;
}
public OnPlayerKeyStateChange ( playerid,newkeys,oldkeys )
{
if ( newkeys == KEY_SECONDARY_ATTACK )
{
if ( IsPlayerInAnyVehicle ( playerid ) )
{
if( EmTunning [ playerid ] == 1 )
{
PutPlayerInVehicle ( playerid,GetPlayerVehicleID ( playerid ) ,GetPlayerState ( playerid ) ) ;
retornar 1 ;
}
}
}
return 1 ;
}
public OnEnterExitModShop ( playerid,enterexit,interiorid )
{
if ( enterexit == 0 )
{
GameTextForPlayer (playerid, "~r~Seja bem vindo ao Tunning!" , 5000 , 3 ) ;
EmTunning [ playerid ] = 1 ;
}
else
{
GameTextForPlayer ( playerid, "~r~Volte sempre ao Tunning!" , 5000 , 3 ) ;
EmTunning [ playerid ] = 0 ;
}
retorna 1 ;
}
Obrigado a todos que leram este tutorial.
Se você realmente aprendeu algo com isso, repute caso queira.
Se não quiser, fique à vontade para dar o - reputação.
O importante é que você avalie o mesmo
BY BIEL_COP