Como Criar PORTХES Automбticos - 2 Metados, Com Buzina e Ao Chegar Perto -
GustavoBonomo - 13.12.2011
Olб Galerinha do SA-MP
Hoje irei Postar meu primeiro TUT ! Aprenda Como fazer um PORTГO Automбtico! Sei que jб Existem, mas irei Lhes ensinar de forma diferente!
MЙTODO 1
Portгo com Comando ( /seucomando ) e Automatizado com Teclas do Teclado !
Bem, comeзamos Definindo algumas coisas, criando new's ETC, adicionem isto no TOPO de seu GM/FS:
pawn Код:
new Gate; // Lembrando que o nome que Colocar aqui serб Usado em TODO PROCESSO !
forward CloseGate(gateid); // Deixe QUETO ( Isso que farб com que o Portгo Feche )
#define COLOR_YELLOW 0xFFFF00AA
// Definindo COR - Amarelo !
Agora Jб Podemos seguir em Frente
OK, apуs feito Isso, vamos Adicionar nosso Portгo, que esta definido como "Gate". Procure pelo public "OnGameModeInit" e Adicione seu PORTГO com as Coordenadas dele Fechado, VEJA:
pawn Код:
Gate
= CreateObject
(MODEL,X,Y,Z,ROTX,ROTY,ROTZ
);
// Coloque as Info do Portгo FECHADO Aqui =D (MODEL,X,Y,Z,ROTX,ROTY,ROTZ) Site para Conversгo: http://www.convertffs.com/
Por que o "Gate"? Pois foi esse nome que foi Definido no "new" do topo do GM/FS =D
Isso, agora o Portгo jб Esta criado, agora temos que Move-lу. Irei mostrar uma forma Bem diferente e legal =D Primeiro crie o Comando, procure pela public "OnPlayerCommandText" e Coloque isso:
pawn Код:
if (strcmp("/seucomando", cmdtext, true,
10) == 0) // Coloque o Comando que irб Abrir o Portгo ( Serб usado depois Tambйm ) { if(IsPlayerInRangeOfPoint
(playerid,
7.0, X,Y,Z
)) // Troque X,Y,Z Pelas Coordenadas do Portгo Fechado ! Troque 7.0 Pela Distancia que o Comando poderб ser Usado a Partir das Cood que vocк Colocou ! { MoveObject
(Gate,X,Y,Z,
3.0);
// Troque X,Y,Z Pelas Coordenadas do Portгo Aberto ! 3.0 = Velocidade para ele se Mecher ! SetTimerEx
("CloseGate",
10000, false,
"i", Gate
);
// Troque 10000 pelo que Tempo que vai Levar para o Portгo Fechar ( Lembrando que o TEMPO й em MS, ou seja, 10000 = 10 Segundos )! SendClientMessage
(playerid, COLOR_YELLOW,
"ACESSE: http://forum.sa-mp.com");
// Coloque aqui a Mensagem que quer que Mande para o Player, EX: O Gate vai Facgar em 10 Segundos ! return 1;
} }
Vocкs devem Estar se Perguntando: "Por que comando se й Automбtico?" Calma, irei Explicar:
Eu resolvi desta forma pois Fica mais facil para Adaptaзгo de mais de um Portхes e quando o Player estiver fora do Veнculo ou seja lб Como, ele tambйm teria a Opзгo de digitar o Comando Jбjб irei Mostrar com Automatizar o Portгo com Teclas do Teclado !
Feito Isso, temos que fazer com que o Portгo Feche nй? Adicione o COD a seguir no Final do seu GM/FS:
pawn Код:
public CloseGate(gateid)
{
if(gateid == Gate)
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portгo FECHADO !
}
return 1;
}
Esta public farб com que o Portгo Feche Como ela jб foi Criada/Definida no inicio do GM/FS, nгo terб Problemas
Agora o Mais esperado " Abrir o Portгo com Teclas do Teclado ", procure pela public "OnPlayerKeyStateChange", caso nгo Tenha, crie-a.
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pelo COD que Quiser, neste caso KEY_JUMP = Tecla SHIFT ( A pй ) / Espaзo ( Em Veiculo ) - ( Pular/Freiar )
{
OnPlayerCommandText(playerid,"/seucomando"); // O Comando que Estiver aqui deve Ser o Memso que vocк Colocou Anteriormente !
// Adicione Outros Comandos para serem Executados com a Tecla SHIFT ( A pй ) / Espaзo ( Em Veiculo ) - ( Pular/Freiar ) Aqui !
}
return 0;
}
Pronto - KEY_CROUCH = Buzina do Carro - Outras Teclas que podem ser Trocadas pelo "KEY_JUMP":
~~Key~~
Clique Aqui para ver as KEYs !
MЙTODO 2
Portгo Abre Automaticamente ao Chegar Perto !
Bem, comeзamos Definindo algumas coisas, criando new's ETC, adicionem isto no TOPO de seu GM/FS:
pawn Код:
new Gate; // Lembrando que o nome que Colocar aqui serб Usado em TODO PROCESSO !
forward CloseGate(gateid); // Deixe QUETO ( Isso que farб com que o Portгo Feche )
forward IsPlayerAtToll(); // Deixe QUETO
#define COLOR_YELLOW 0xFFFF00AA
// Definindo COR - Amarelo !
Agora Jб Podemos seguir em Frente
OK, apуs feito Isso, vamos Adicionar nosso Portгo, que esta definido como "Gate". Procure pelo public "OnGameModeInit" e Adicione seu PORTГO com as Coordenadas dele Fechado, VEJA:
pawn Код:
Gate
= CreateObject
(MODEL,X,Y,Z,ROTX,ROTY,ROTZ
);
// Coloque as Info do Portгo FECHADO Aqui =D (MODEL,X,Y,Z,ROTX,ROTY,ROTZ) Site para Conversгo: http://www.convertffs.com/SetTimer
("IsPlayerAtToll",
1000, true
);
// 1000 = Tempo em MS que Verifica a Aзгo ( 1000 = 1 Segundo )
Por que o "Gate = CreateObject"? Pois foi esse nome que foi Definido no "new" do topo do GM/FS =D
O "SetTimer" Serve para Verificar ( de 1 em 1 Segundo ) SE a Alguйm proximo ao Portгo !
Feito Isso devemos Mover o OBJETO Certo? Entгo vamos lб! Criei a public "IsPlayerAtToll()" e coloque o Seguinte COD nela:
pawn Код:
{ for(new playerid
=0; playerid
<MAX_PLAYERS; playerid
++) { if(IsPlayerInRangeOfPoint
(playerid,
7.0,Y,Y,Z
)) // Troque X,Y,Z Pelas Coordenadas do Portгo Fechado ! Troque 7.0 Pela Distancia que o Comando poderб ser Usado a Partir das Cood que vocк Colocou ! { MoveObject
(Gate,X,Y,Z,
3.0);
// Troque X,Y,Z Pelas Coordenadas do Portгo Aberto ! 3.0 = Velocidade para ele se Mecher ! SendClientMessage
(playerid, COLOR_YELLOW,
"ACESSE: http://forum.sa-mp.com");
// Coloque aqui a Mensagem que quer que Mande para o Player, EX: O Gate vai Facgar em 10 Segundos ! SetTimerEx
("CloseGate",
10000, false,
"i", Gate
);
// Troque o 10000 pelo que Tempo que vai Levar para o Portгo Fechar ( Lembrando que o TEMPO й em MS, ou seja, 10000 = 10 Segundos )! } } return 1;
}
Sim, o Portгo serб Aberto Automaticamente quando algum Player chegar perto Das Coords que vocк Colocou a Cima ( if(IsPlayerInRangeOfPoint ) !
Esta public farб com que o Portгo Abra Como ela jб foi Criada/Definida no inicio do GM/FS, nгo terб Problemas
Ok, Agora temos que fazer com que o Portгo Feche nй? Adicione o COD a seguir no Final do seu GM/FS:
pawn Код:
public CloseGate(gateid)
{
if(gateid == Gate)
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portгo FECHADO !
}
return 1;
}
Esta public farб com que o Portгo Feche Como ela jб foi Criada/Definida no inicio do GM/FS, nгo terб Problemas Pronto!
CRЙDITOS: 100% by Gustavo_Bonomo
LEMBRANDO QUE ESSE Й MEU PRIMEIRO TUTORIAL! ERROS ME CONTATE NOS COMENTБRIOS, LOGO LOGO IREI POSTAR COMO ADICIONAR MAIS DE 1 PORTГO DESTA FORMA!
Re: Como Criar PORTХES Automбticos! -
Lуs - 13.12.2011
pawn Код:
new Gate; // Lembrando que o nome que Colocar aqui serб Usado em TODO PROCESSO !
forward CloseGate(gateid) // Deixe QUETO ( Isso que farб com que o Portгo Feche )
#define COLOR_YELLOW 0xFFFF00AA
// Definindo COR - Amarelo !
Faltou um ponto e vнrgula ae.
pawn Код:
Gate = CreateObject(MODEL,X,Y,Z,ROTX,ROTY,ROTZ) // Coloque as Info do Portгo FECHADO Aqui =D
Ai tambйm.
pawn Код:
{
if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pela o COD que Quiser, neste casso KEY_JUMP = Tecla ESPAЗO
{
OnPlayerCommandText(playerid,"/seucomando"); // O Comando que Estiver aqui deve Ser o Memso que vocк Colocou Anteriormente !
// Adicione Outros Comandos para serem Executados com a Tecla ESPAЗO Aqui !
}
return 0;
}
E se o cara usar ZCMD?
Isso pra mim й mais cуdigo util, mais como vc se esforзou e por ser seu primeiro release. Bom tutorial.
Re: Como Criar PORTХES Automбticos! -
GustavoBonomo - 13.12.2011
Quote:
Originally Posted by Los
pawn Код:
new Gate; // Lembrando que o nome que Colocar aqui serб Usado em TODO PROCESSO ! forward CloseGate(gateid) // Deixe QUETO ( Isso que farб com que o Portгo Feche ) #define COLOR_YELLOW 0xFFFF00AA // Definindo COR - Amarelo !
Faltou um ponto e vнrgula ae.
pawn Код:
Gate = CreateObject(MODEL,X,Y,Z,ROTX,ROTY,ROTZ) // Coloque as Info do Portгo FECHADO Aqui =D
Ai tambйm.
pawn Код:
{ if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pela o COD que Quiser, neste casso KEY_JUMP = Tecla ESPAЗO { OnPlayerCommandText(playerid,"/seucomando"); // O Comando que Estiver aqui deve Ser o Memso que vocк Colocou Anteriormente ! // Adicione Outros Comandos para serem Executados com a Tecla ESPAЗO Aqui ! } return 0; }
E se o cara usar ZCMD?
Isso pra mim й mais cуdigo util, mais como vc se esforзou e por ser seu primeiro release. Bom tutorial.
|
Mano vlwe, mas apenas a do CreateObject falta Ponto e Virgula o resto ta OK, e se й um TUT pra Iniciantes, eu nunca vi Iniciantes usando ZCMD mas tudo bem...
Obrigado por Ter Lido, atй mas.
Re: Como Criar PORTХES Automбticos! -
GustavoBonomo - 13.12.2011
ATUALIZADO 13/12/2011 - 15:27
Re: Como Criar PORTХES Automбticos! -
euclaro - 13.12.2011
Deixa pra falar atualizado no propio post, da sу um @edit po,
e esse tuto vai ajuda muita gente sim, ^^
Re: Como Criar PORTХES Automбticos! -
Victor Cesaroni - 13.12.2011
Quote:
if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pela o COD que Quiser, neste casso KEY_JUMP = Tecla ESPAЗO
|
KEY_JUMP = Tecla para 'pular'
KEY_SPRINT = Tecla 'correr' ( padrгo do GTA 'espaзo' )
-
Ficou bom, irб ajudar bastante os novatos. A ъnica coisa й que jб existem vбrios tutoriais desse tipo.
Re: Como Criar PORTХES Automбticos! -
Lуs - 13.12.2011
Quote:
Originally Posted by GustavoBonomo
Mano vlwe, mas apenas a do CreateObject falta Ponto e Virgula o resto ta OK, e se й um TUT pra Iniciantes, eu nunca vi Iniciantes usando ZCMD mas tudo bem...
Obrigado por Ter Lido, atй mas.
|
Quem disse?
Forward tambйm necessita, pois vocк estб declarando ela.
pawn Код:
forward CloseGate(gateid);
ZCMD foi uma include feita para iniciantes, strcmp й muito mais dificil para iniciantes, pois como eles nгo decoram eles ficam fazendo CTRL + C e + V nos comandos, e assim que se ensina a copiar e colar.
pawn Код:
CMD:abrirportao(playerid)
Isso nгo precisa CTRL C para decorar.
Re: Como Criar PORTХES Automбticos! - [S]trong - 13.12.2011
Quote:
Originally Posted by Los
pawn Код:
new Gate; // Lembrando que o nome que Colocar aqui serб Usado em TODO PROCESSO ! forward CloseGate(gateid) // Deixe QUETO ( Isso que farб com que o Portгo Feche ) #define COLOR_YELLOW 0xFFFF00AA // Definindo COR - Amarelo !
Faltou um ponto e vнrgula ae.
pawn Код:
Gate = CreateObject(MODEL,X,Y,Z,ROTX,ROTY,ROTZ) // Coloque as Info do Portгo FECHADO Aqui =D
Ai tambйm.
pawn Код:
{ if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pela o COD que Quiser, neste casso KEY_JUMP = Tecla ESPAЗO { OnPlayerCommandText(playerid,"/seucomando"); // O Comando que Estiver aqui deve Ser o Memso que vocк Colocou Anteriormente ! // Adicione Outros Comandos para serem Executados com a Tecla ESPAЗO Aqui ! } return 0; }
E se o cara usar ZCMD?
Isso pra mim й mais cуdigo util, mais como vc se esforзou e por ser seu primeiro release. Bom tutorial.
|
e agora zcmd nгo usa OnPlayerCommandText? Vai ser processado da mesma forma cara...
Usando assim й atй melhor pois vai ser como se o player tivesse digitado o comando.
Re: Como Criar PORTХES Automбticos! -
Lуs - 13.12.2011
Quote:
Originally Posted by [S]trong
e agora zcmd nгo usa OnPlayerCommandText? Vai ser processado da mesma forma cara...
Usando assim й atй melhor pois vai ser como se o player tivesse digitado o comando.
|
pawn Код:
cmd_seucomando(playerid,"");
Re: Como Criar PORTХES Automбticos! - [S]trong - 13.12.2011
Quote:
Originally Posted by Los
pawn Код:
cmd_seucomando(playerid,"");
|
Se o cara usa YCMD, ZCMD, SCMD ou whatever nгo faz a menor diferenзa.