SA-MP Forums Archive
[Ajuda] Como fazer 'movable objects'? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Como fazer 'movable objects'? (/showthread.php?tid=253879)



[Ajuda] Como fazer 'movable objects'? - PeterCastro - 08.05.2011

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б.


Re: [Ajuda] Como fazer 'movable objects'? - Shadoww5 - 08.05.2011

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.


Re: [Ajuda] Como fazer 'movable objects'? - Carl_Thuse - 08.05.2011

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...


Re: [Ajuda] Como fazer 'movable objects'? - PeterCastro - 08.05.2011

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