[Ajuda] Como fazer 'movable objects'?
#1

Eu comecei a (tentar) aprender pawn hб cerca de 3 semanas atrбs e agora eu queria saber como й que posso fazer com que um objecto esteja constantemente, tipo de 2 em 2 segundos, a subir e descer por exemplo.

Os tutoriais que eu vi, tкm todos um comando, ou sу quando o player se aproxima desse objecto (como й o caso das portas) й que o objecto se move. No meu caso, como jб disse, queria que ele estivesse em constante movimento.

Eu acho que sei que preciso do utilizar a funзгo 'MovePlayerObject' e obviamente preciso das coordenadas do objecto na posiзгo inicial e na posiзгo final. (Eu tenho alguma experiкncia com o MTA, e jб fiz mapas para o SA:MP portanto a parte de converter e isso aparentemente nгo tenho problemas.) Acho que vou precisar tambйm de um 'timer' para saber quando й que o objecto vai e vem...mas ainda estou um pouco perdido e nгo sei exactamente como fazer tudo isso.

Se alguйm podesse fazer um exemplo para eu perceber seria muito bom, obrigado desde jб.
Reply
#2

pawn Код:
forward AbrirPortao();
forward FecharPortao();
new portao;

public OnGameModeInit()
{
    portao = CreateObject(2587, XXX1, YYY1, ZZZ1, RXXX, RYYY, RZZZ);
    SetTimer("AbrirPortao",2000,false);
    return 1;
}
public AbrirPortao()
{
    MoveObject(portao, XXX2, YYY2, ZZZ2, VELOCIDADE);
    SetTimer("FecharPortao",2000,false);
    return 1;
}
public FecharPortao()
{
    MoveObject(portao, XXX3, YYY2, ZZZ2, VELOCIDADE);
    SetTimer("AbrirPortao",2000,false);
    return 1;
}

/*
Troque XXX1, YYY1, ZZZ1 e RXXX, RYYY, RZZZ (alguns de rotaocao) pelas coordenadas que o portao deverб ser criado.

Troque XXX2, YYY2 e ZZZ2 pelas coordenadas que o portao deverб ser aberto.

Troque XXX3, YYY3 e ZZZ3 pelas coordenadas que o portao deverб ser fechado.

E, por fim, troque VELOCIDADE pela velocidade que o portao deverб ser aberto e fechado (As velocidades de abertura e fechamento podem ser diferentes). */
Desta forma um portao serб criado e a cada 2 segundos ele irб abrir e fechar.
Reply
#3

Nada de MovePlayerObject.
Faзa um settimer no OnGameModeInit
e uma variavel
Exempplo:
pawn Код:
new Variavel;

public OnGameModeInit()
{
SetTimer("AbrirFecharPorta",2000,true); // abrir e fechar porta repetindo de 2 em 2 segundos
...
}

forward AbrirFecharPorta();
public AbrirFecharPorta()
{
if(Variavel == 0)
{
MoveObject(meuobjeto,/* aberto*/)
Variavel = 1;
}
if(Variavel == 1)
{
MoveObject(meuobjeto,/*fechado*/)
Variavel = 0;
}// Shadow creio que este й mais simples...
Agora vira um siclo vicioso abrindo e fechando...
Reply
#4

Muito obrigado pela rбpida resposta, vou testar assim que puder, depois digo alguma coisa.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)