[Ajuda] Mover objeto de uma forma "diferente"
#1

Bom galera , tava de bobeira e decidi fazer um GM de Futebol !

Criei tudo certinho , o objeto da bola e tals , fiz a KeyState de animaзгo de um chute quando o player apertar o botao esquerdo do mouse e tals.

Mas a minha duvida й o seguinte , o objeto da bola se move muito lentamente , gostaria de saber se tem como fazer a bola se mover mais quando o player chuta - la , й possivel ?

Se precisar , aqui estб o code da KeyState :

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_FIRE)
ApplyAnimation(playerid,"FIGHT_D","FightD_1",4.1,0,1,1,0,0);

return 1;
}
Reply
#2

Olб EviL_Knight.

Depende do modo que vocк estб usando para mover o objeto. Poste o cуdigo do MoveObject ou a funзгo que faz ela se mover.

Atenciosamente,
Falcon.
Reply
#3

Falcon , eu nгo fiz nenhuma funзгo pra ela se mover , ela se move normalmente no GTA San Andreas , maas ela se move muito pouco , gostaria de saber se tem como fazer ela se mover mais .
Reply
#4

Olб EviL_Knight.

Teoricamente existem dois modos de se fazer isto:

1є: Vocк irб pegar a posiзгo do jogador, criar o objetos utilizando estas coordenadas que foi pega, e entгo poderia usar um timer ou OnPlayerUpdate para destroir o objeto e criar novamente nas novas posiзхes que o player estiver !!

pawn Код:
new Bola;


if(!strcmp(cmdtext, "/jogarbola", true))
{
    new Float:_pPos[3];
    GetPlayerPos(playerid, _pPos[0], _pPos[1], _pPos[2]);
    Bola = CreateObject(ID_DA_BOLA, _pPos[0], _pPos[1], _pPos[2], 0.0, 0.0, 0.0);
    SetTimerEx("FuncBola", 800, true, "i", playerid);
    return 0x1;
}

forward FuncBola(playerid);
public FuncBola(playerid)
{
    new Float:_pPos[3];
    GetPlayerPos(playerid, _pPos[0], _pPos[1], _pPos[2]);
    DestroyObject(Bola);
    Bola = CreateObject(ID_DA_BOLA, _pPos[0], _pPos[1], _pPos[2], 0.0, 0.0, 0.0);
    return 0x1;
}
2є: Inicialmente vocк irб fazer o mesmo modo de cima, mбs em vez de destruir o objeto vocк irб apenas move-lo para as coordenadas do objeto !!

pawn Код:
new Bola;
new bool:JogandoBola[MAX_PLAYERS];

if(!strcmp(cmdtext, "/jogarbola", true))
{
    new Float:_pPos[3];
    GetPlayerPos(playerid, _pPos[0], _pPos[1], _pPos[2]);
    Bola = CreateObject(444, _pPos[0], _pPos[1], _pPos[2], 0.0, 0.0, 0.0);
    JogandoBola[playerid] = true;
    return 0x1;
}

public OnPlayerUpdate(playerid)
{
    if(JogandoBola[playerid] == true)
    {
        new Float:_pPos[3];
    GetPlayerPos(playerid, _pPos[0], _pPos[1], _pPos[2]);
    MoveObject(Bola,_pPos[0], _pPos[1], _pPos[2], VELOCIDADE);
    return 0x1;
    }
    return 1;
}
Seria Basicamente isto, duas maneiras diferentes de se fazer, й claro que tem vбrias outras maneiras podendo ser mais fбcil ou mais difнcil, ai depende de vocк.


Atenciosamente,
Falcon.
Reply
#5

Valeu Falcon ! (:
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)