[Ajuda] MoveObject com velocidade que muda
#1

Bom, pra quem estuda fнsica, sabe que aceleraзгo й diferente de velocidade, entгo saiba sobre o que vocк estб falando antes de falar merda ....

1)

Estou criando um sistema de balsa, jб criei ele no editor, jб tenho as coordenadas dele pronto !
Mas tenho uma dъvida, como posso fazer com que ele saia com uma velocidade bem baixa, e aos poucos vб acelerando, por exemplo:
a balsa tem velocidade inicial 5 Km/h, pra nгo ser muito rбpido na saнda !
Como posso fazer pra que ele saia a essa velocidade e aos poucos vб aumentando, e quando chegar perto do final comece a diminuir ?

Quero fazer assim, pois a distвncia й muito grande entre a saнda e a chegada, mas nгo quero deixar ele com uma velocidade constante de 5Km/h durante 3 quilфmetros.

Eu sei que posso fazer ele ir atй uma parte do caminho com velocidade 5 Km/h usando um MoveObject de velocidade 5 que vб atй 1/4 do caminho, quando chegar ao 1/4 criar outro MoveObject com velocidade maior atй 3/4 do caminho, e dos 3/4 ao final criar outro MoveObject que vб atй o final com velocidade 5 de novo, mas acho que isso ainda teria umas mudanзas muito bruscas ....
Queria fazer algo que saнsse na velocidade 5 Km/h (exemplo) e tivesse uma aceleraзгo constante atй o meio do caminho !

Deve ter sido difнcil de entender ... qualquer coisa responda o tуpico

2) Balsas servem para transportar veнculos que tenham pessoas, entгo, jб vi uma balsa em outro servidor, ela funcionava perfeitamente.
Mas nгo tenho certeza sobre isso, quando um objeto se mover, o veнculo que estб em cima desse objeto se move igualmente tambйm ? Ou alguma macumba faz com que ele fique parado, enquanto o objeto se move ... ?
Reply
#2

Ele move juntamente com o objeto. Mas se vocк der ESC, vocк cairб da plataforma.
Reply
#3

Utilize um SetTimer

OU

Faзa um NPC .
Reply
#4

poderiam dar um exemplo ? do settimer ?
Reply
#5

ajuda aqui ? malz pelo double
Reply
#6

Tenta algo do gкnero:
pawn Код:
new BalsaState, Float:ObSpeed, BalsaUpdater;
// Iniciar balsa
BalsaUpdater = SetTimer("OnBalsaUpdate", 1000, true);


forward OnBalsaUpdate();
public OnBalsaUpdate(){
    BalsaState ++;
    if(ObSpeed > 8) return KillTimer(BalsaUpdater);
    ObSpeed = BalsaState / 8 * ObSpeed;
    MoveObject(balsaid, fX, fY, fZ, ObSpeed);
    return 1;
}
# Sei tanto de fнsica como Bill Gates sabe de samambaia, nгo testei isso, mas acho que vai funcionar.

@edit Troque balsaid, fX, fY, fZ pelo id da balsa e pelas coordenadas.
@editІ Coloquei um limite para a balsa nгo chegar a velocidade da luz u_U
Reply
#7

Estou tentando assim
mas me explique pra que essa linha:
pawn Код:
ObSpeed = BalsaState / 8 * ObSpeed;
EDIT: estou usando assim, mas ele nao se mexe :/
pawn Код:
COMMAND:balsa(playerid, params[]) //soh para ativar
{
    /*
    MoveObject(balsaporto1, 2580.71289062,-5662.62695312,12.63046551, 10);
    MoveObject(balsaporto2, 2580.72265625,-5610.70410156,8.97574997, 10);
    MoveObject(balsaporto3, 2572.64648438,-5718.31054688,6.94193745, 10);
    MoveObject(balsaporto4, 2572.64257812,-5717.98242188,6.93561077, 10);
    MoveObject(balsaporto5, 2580.74707031,-5771.04687500,18.65682793, 10);
    */

    BalsaUpdater = SetTimer("OnBalsaUpdate", 1000, true);
    return 1;
}

forward OnBalsaUpdate();
public OnBalsaUpdate()
{
    new Msg[128];
    BalsaState ++;//me explica essas 3 linhas adiante aqui pf
    ObSpeed = BalsaState / 8 * ObSpeed;
    if(ObSpeed > 200) return KillTimer(BalsaUpdater);
    MoveObject(balsaporto1, 2580.71289062,-5662.62695312,12.63046551, ObSpeed);//objetos:
    MoveObject(balsaporto2, 2580.72265625,-5610.70410156,8.97574997, ObSpeed);
    MoveObject(balsaporto3, 2572.64648438,-5718.31054688,6.94193745, ObSpeed);
    MoveObject(balsaporto4, 2572.64257812,-5717.98242188,6.93561077, ObSpeed);
    MoveObject(balsaporto5, 2580.74707031,-5771.04687500,18.65682793, ObSpeed);
    format(Msg, 128, "Velo:%i", ObSpeed);//pra saber a velocidade que ele estб na hora
    GameTextForAll(Msg, 1000, 5);
    return 1;
}
Reply
#8

Se for para mover vбrios objetos juntos, usa AttachObjectToObject, laga bem menos.
Para fazer isso, basta pegar um objeto base disso aн e jogar no MTA na posiзгo 0,0,0 e entгo vocк vai modelando a balsa na posiзгo 0,0,0.

Que eu saiba, o SA-MP nгo move mais que 4 objetos de uma vez.
Reply
#9

cara, eu ja tinha feito antes com uma velocidade fixa, com os 5 objetos, todos tinha funfado perfeitamente ...
estou jogando bf3, daqui a pouco tento com o attach, entra no skype dai, que la eh melhor
Reply
#10

Ah, tenta por tudo como Float, pode ser que ao estar dividindo, ele nгo divida um nъmero inteiro em um decimal...
new Float:BalsaState, Float:ObSpeedr;
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)