Criando Portoes Automaticos, Por Tecla e Por Comd -
Panico622 - 18.07.2012
Bom, Sei que existem muitos tutoriais desse mas, vi Algumas Pessoas Pedindo Ajuda Com Portхes, entгo decidi fazer esse Tutorial:
1є Baixe as includes atualizadas em: http://www.sa-mp.com/download.php
-Baixe o Samp Serve e copie a pasta pawno
2є No Topo do GM/FS:
pawn Код:
new portaoex;//Criamos a Variavel para definir o nosso objeto
new portaoaberto;//Crimos Outra Variavel para definir se o portao esta aberto ou fechado
3є Criamos o Objeto/Portao
pawn Код:
//Coloque em: OnFilterScriptInit ou OnGameModeInit
portaoex = CreateObject(980,786.50000000,-1152.40002441,25.39999962,0.00000000,0.00000000,94.00000000);//Portao Fechado
//Portao de Exemplo, use um editor de mapas(MTA, MapEditor) e crie o seu
4є Agora Vamos Fazer o Comando Para Abrilo e Fechalo:
pawn Код:
//Stcmp:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/abrirportao", cmdtext, true) == 0)
{
if(portaoaberto == 0)//Se o Portao Extiver Fechado Vai Executar:
{
MoveObject(portaoex, 786.50000000,-1152.40002441,32.39999962,3.0,0.00000000,0.00000000,94.00000000);//Cordenadas do Portгo Aberto
SendClientMessage(playerid, 0xF60000AA, "Abrindo O Portao !");//Isso Manda a Mensagem Parra o Player
portaoaberto = 1;//Seta que o portao foi aberto
SetTimer("fportao", 10000, false);//Depois de 10 Seg Chama a public "fportao" para fechalo
SetTimer("longeportao" ,15000, false);//Depois de 15 Seg chama a public "longeportao" para definilo novamente como fechado
}
}
return 0;
}
//ZCMD:
CMD:abrirportao(playerid, params[])
{
if(portaoaberto == 0)//Se o Portao Extiver Fechado Vai Executar:
{
MoveObject(portaoex, 786.50000000,-1152.40002441,32.39999962,3.0,0.00000000,0.00000000,94.00000000);//Cordenadas do Portгo Aberto
SendClientMessage(playerid, 0xF60000AA, "Abrindo O Portao !");//Isso Manda a Mensagem Parra o Player
portaoaberto = 1;//Seta que o portao foi aberto
SetTimer("fportao", 10000, false);//Depois de 10 Seg Chama a public "fportao" para fechalo
SetTimer("longeportao" ,15000, false);//Depois de 15 Seg chama a public "longeportao" para definilo novamente como fechado
}
}
forward fportao(playerid);
public fportao(playerid)//Public que e Chamada Para Fechar o Portao, apos 10 Seg depois de Digitar o Comando
{
MoveObject(portaoex, 786.50000000,-1152.40002441,25.39999962,3.0,0.00000000,0.00000000,94.00000000);//Cordenadas do Portгo Fechado
SendClientMessage(playerid, 0xF60000AA, "Fechando O Portao !");//Manda A Mensagen ao Player
return 1;
}
forward longeportao();
public longeportao()//Apos a Public Ser Chamada Vai:
{
portaoaberto = 0;//Definir que o Portao esta fechado
}
5є Agora Depois de Criarmos os Comandos Para Abrir e Fechalo Vamos Fazer Com Que Eles Se Movam Ao Apertar uma Tecla:
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)//Essa Public e Chamada Cada Vez que Apertamos uma Tecla no Teclado
{
if(newkeys==KEY_CROUCH)//Se a tecla Apertada for: H
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 786.50000000,-1152.40002441,25.39999962))//E Estiver Nas Possicoes proximas ao Portao:
{
if (IsPlayerInAnyVehicle(playerid))//E Estiver dentro de um veiculo:
{
OnPlayerCommandText(playerid,"/abrirportao");//Vai digitar o comando Automaticamente
}
}
}
if(newkeys==KEY_SECONDARY_ATTACK) //Ao Apertar F / Enter:
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 786.50000000,-1152.40002441,25.39999962))//E Estiver Nas Possicoes proximas ao Portao:
{
if (!IsPlayerInAnyVehicle(playerid))//E Esriver Fora de um veiculo:
{
OnPlayerCommandText(playerid,"/abrirportao");//Vai digitar o comando
}
}
}
return 1;
}
6є Tambem hб a Opзao de Fazelo abrir assim que chegar proximo ao portao, sem aperar tecla ou digitar comando:
pawn Код:
public OnPlayerUpdate(playerid)//Essa Public й Chamada a Cada atualizaзao do player/movimento(EU IMAGINO)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 786.50000000,-1152.40002441,25.39999962))//Se Estiver Nas Possicoes proximas ao Portao:
{
if(portaoaberto == 0)//Se e o Portao nao extiver aberto
{
OnPlayerCommandText(playerid,"/abrirportao");//Vai digitar o comando
}
}
return 1;
}
Explicando alguma Funзхes:
-MoveObject: Essa Funзгo Faiz Com Que Um Objeto se Movimente
Код:
*portaoex: ID do Objeto a Ser Movimentado(aquele que definimos no topo do GM/FS e na OnFilterScriptInit ou OnGameModeInit)
*786.50000000,-1152.40002441,32.39999962: Essas Sao as Cordenadas X,Y,Z que o objeto sera movimentado
*3.0:Isso Define a Velocidade com que o objeto vai se movimentar
*0.00000000,0.00000000,94.00000000: Sao As Rotaзoes X,Y,Z
*OBS: Para Veja quem na hora de abrir e fechar o portao as cordenadas sao diferentes:
-MoveObject(portaoex, 786.50000000,-1152.40002441,32.39999962,3.0,0.00000000,0.00000000,94.00000000);//Cordenadas do Portгo Aberto
-MoveObject(portaoex, 786.50000000,-1152.40002441,25.39999962,3.0,0.00000000,0.00000000,94.00000000);//Cordenadas do Portгo Fechado
-SendClientMessage: Essa Funзao Manda uma Mensagem ao Player:
Код:
*playerid: id do player que esta digitando o comando
*0xF60000AA: Cor
*Oque esta Entre Aspas("Aki"), й a mensagem ao ser mandada ao player
-SetTimer: Essa Funзao Depois de Um Certo Tempo, chama outra public, repetidamente, ou nao
Код:
*"fportao":Primeiro Tem que Ser Definido a Public a ser chamada(neste caso: "fportao")
*10000: Definimos os tempo(1000 = 1 seg)
*False: Para nao ficar repetindo de 10 em 10 Seg(se fosse true, a public "fportao" seria chamada repetidamente)
-OnPlayerCommandText: Faz com que o player execute um comando
Cretidos:
*Panico-Tutorial
*Ades-Enche o SACO pra coloca mais coisa -qq
Respuesta: Criando Portoes Automaticos -
Truck - 18.07.2012
O conteъdo esta explicativo, mas falta mais explicaзгo, assim como Ades citou. E acho que poderia ter colocado mais conteъdo. Existe vбrios desses tutoriais aqui no fуrum.
Mas valeu a intenзгo.
Re: Criando Portoes Automaticos -
Ades - 18.07.2012
Tem que explicar mas pra chama de tutorial -q
Tem gente que nгo sabe oque significa "SendClientMessage" -qq
Arthenry
Se й automбtico nгo tem o Comando fecharportao , pois nгo seria automбtico , e tambйm seria bom vocк colocar quando aperta-se a tecla "H" .
Quando vocк fizer os requezitos acima avalio seu tutorial
400 POST CHUPAAAAAAAAAA -qq
Re: Criando Portoes Automaticos -
Jason` - 18.07.2012
Longe de ser um tutorial. Faltou explicar os parвmetros das funзхes entre outras coisas...
Re: Criando Portoes Automaticos -
[BCV]Dr.House_. - 18.07.2012
Para min isso num й bem um tutorial, seilб, isso ai quase todo mundo sabe fazer.., agora ensinar os parвmetros das funзхes e tal.. ai se vocк coloca-se em seu tуpico ensinando sobre isso, ficaria Excelente seu tutorial, mais mesmo assim Parabйns
5/10
Re: Criando Portoes Automaticos -
sanalex - 18.07.2012
Bom, um tutorial й... mas... valeu a intenзгo!
6/10.
Re: Criando Portoes Automaticos -
Panico622 - 18.07.2012
oukeii oukei vi que meu primeiro tuto nao ficou muito dos bons kk,
pera, mais tarde eu vou atualizar:
-Colocar Tecla h no carro, tecla f a pй
-Fazer Automбtico, sem comando e tecla, sу de chegar perto
-Explicar TODAS as funcoes
Re: Criando Portoes Automaticos -
Ades - 18.07.2012
/\
Quero crйditos '-'
Re: Criando Portoes Automaticos -
WaGnerLiima - 18.07.2012
Quote:
Originally Posted by Ades
/\
Quero crйditos '-'
|
da
Tim,
vivo,
claro ou
oi ? zoa' kkk
Atualiza aк manolo
Re: Criando Portoes Automaticos -
Ades - 18.07.2012
Quote:
Originally Posted by WaGnerLiima
da Tim,vivo,claro ou oi ? zoa' kkk
|
Claro