Comando em teclas - Niko_BellicSA - 12/01/2023
Olá, bom dia!! eu sou iniciante, estou procurando aprender, gostaria que alguém me orientasse como fazer um comando em teclas, por exemplo.. eu quero entrar no interior usando a tecla "F" sem precisar utilizar /ENTRAR e quando fosse sair ter que usar /SAIR, a mesma tecla para ambas funções.
RE: Comando em teclas - ziiQz - 12/01/2023
Vamos lá, provavelmente tu ta bem perdido.. então vou te dar um exemplo.
A lógica é simples, if e else kkkkkkk, faça de uma forma que fique simples ao seu entendimento.
Vamos criar uma pickup para sinalizar onde vai entrar, em seguida, a função de teclas.
Citar:CREATEPICKUP - EXPLICAÇÃO
CreatePickup(modelo, tipo, Float:X, Float:Y, Float:Z, virtualworld)
MODELO
TIPO
FLOAT:X
Coordenada X
FLOAT:Y
Coordenada Y
FLOAT:Z
Coordenada Z
VIRTUALWORLD
ID do virtualworld que a pickup vai aparecer, use -1 para aparecer em todos os mundos.
CRIANDO UMA PICKUP
Código: new EntrarSair[2]; // Lembrando que é necessário criar uma variável para armazenar o ID da pickup, evitando conflitos futuros.
EntrarSair[0] = CreatePickupEx(1318,1,1642.1760,-2335.4980,13.5469,-1); // Pickup de entrada
EntrarSair[1] = CreatePickupEx(1318,1,1643.6178,-2319.0422,1020.3306,-1); // Pickup de saida
Agora que criamos a pickup, vamos a função de entrar ao apertar o 'F' ou outra tecla ao seu gosto. Iremos utilizar a função OnPlayerKeyStateChange.
Citar:FUNÇÕES UTILIZADAS
OnPlayerKeyStateChange - Verifica as teclas pressionadas, onde, pode verificar a tecla que está sendo pressionada, a que já foi pressionada, ou combinações de teclas também, vai de sua criatividade!
IsPlayerInRangeOfPoint - Verifica se o player está na posição, sempre mantenha nas mesmas coordenadas em que a pickup foi criada.
CRIANDO A FUNÇÃO PARA APERTAR O F E SER TELEPORTADO
Código: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16) // key 16 é a letra F, se não me engano!
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1642.1760,-2335.4980,13.5469)) // Entrar
{
//Função.
}
else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1643.6178,-2319.0422,1020.3306)) // Saida
{
//Função.
}
}
}
Bom, escrevi na correria e acredito que é isso, espero ter ajudado, quaisquer dúvidas estou a disposição
RE: Comando em teclas - Niko_BellicSA - 13/01/2023
(12/01/2023 13:09)ziiQz Escreveu: Vamos lá, provavelmente tu ta bem perdido.. então vou te dar um exemplo.
A lógica é simples, if e else kkkkkkk, faça de uma forma que fique simples ao seu entendimento.
Vamos criar uma pickup para sinalizar onde vai entrar, em seguida, a função de teclas.
Citar:CREATEPICKUP - EXPLICAÇÃO
CreatePickup(modelo, tipo, Float:X, Float:Y, Float:Z, virtualworld)
MODELO
TIPO
FLOAT:X
Coordenada X
FLOAT:Y
Coordenada Y
FLOAT:Z
Coordenada Z
VIRTUALWORLD
ID do virtualworld que a pickup vai aparecer, use -1 para aparecer em todos os mundos.
CRIANDO UMA PICKUP
Código: new EntrarSair[2]; // Lembrando que é necessário criar uma variável para armazenar o ID da pickup, evitando conflitos futuros.
EntrarSair[0] = CreatePickupEx(1318,1,1642.1760,-2335.4980,13.5469,-1); // Pickup de entrada
EntrarSair[1] = CreatePickupEx(1318,1,1643.6178,-2319.0422,1020.3306,-1); // Pickup de saida
Agora que criamos a pickup, vamos a função de entrar ao apertar o 'F' ou outra tecla ao seu gosto. Iremos utilizar a função OnPlayerKeyStateChange.
Citar:FUNÇÕES UTILIZADAS
OnPlayerKeyStateChange - Verifica as teclas pressionadas, onde, pode verificar a tecla que está sendo pressionada, a que já foi pressionada, ou combinações de teclas também, vai de sua criatividade!
IsPlayerInRangeOfPoint - Verifica se o player está na posição, sempre mantenha nas mesmas coordenadas em que a pickup foi criada.
CRIANDO A FUNÇÃO PARA APERTAR O F E SER TELEPORTADO
Código: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16) // key 16 é a letra F, se não me engano!
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1642.1760,-2335.4980,13.5469)) // Entrar
{
//Função.
}
else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1643.6178,-2319.0422,1020.3306)) // Saida
{
//Função.
}
}
}
Bom, escrevi na correria e acredito que é isso, espero ter ajudado, quaisquer dúvidas estou a disposição
KKKKKKKK eu tava bem perdido mesmo irmão, muito obrigado pela sua resposta, me ajudou demais! <3
|