[Ajuda]Comando sincronizar -
Scripter_Sk8 - 03.03.2012
Olб pessoal hoje eu venho pedir a ajuda de como criar um sistema de sincronizaзгo entre veiculos, tipo sincroniza dois veiculos o de traz segue o da frente. Isso seria bom em operaзхes para que tipo os veiculos pudessem seguir um a outro. E isso й possivel. Se poderem me ajudar agradeзo.
Re: [Ajuda]Comando sincronizar -
Lуs - 03.03.2012
Se quiser uma coisa precisa e difнcil de se fazer utilize
esse plugin, jб se quer uma coisa simples sem precisгo, й sу obter a posiзгo de um veнculo e setar em outro.
Re: [Ajuda]Comando sincronizar -
Scripter_Sk8 - 03.03.2012
poderia me explicar o codigo, pois sou novato na бrea pawno, tipo й dificil setar um carro ao outro,
Re: [Ajuda]Comando sincronizar -
humildadeforever - 03.03.2012
Nunca fiz isso na minha vida, nгo sei fazer muito bem, fiz um sistema aqui, que pode ser que dк certo:
Topo do GM:
pawn Код:
new playerseguido;
new vID;
new vIDplayer;
new Float: ChrisBrowns2X, Float: ChrisBrowns2Y, Float: ChrisBrowns2Z;
new timerperseguicao;
new bool: emperseguicao[MAX_PLAYERS];
forward AtualizarPerseguicao(playerid);
Em OnPlayerCommandText:
pawn Код:
if(strcmp(cmd, "/seguir", true) == 0)
{
tmp = strtok(cmdtext, idx);
playerseguido = ReturnUser(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid,-1,"Use /seguir [ID]");
if(emperseguicao[playerid] == true) return SendClientMessage(playerid,-1,"Vocк jб esta em uma perseguiзao");
if(!IsPlayerConnected(playerseguido)) return SendClientMessage(playerid,-1,"Esse player nгo estб online.");
if(!IsPlayerInAnyVehicle(playerseguido)) return SendClientMessage(playerid,-1,"Esse player nгo estб em um veiculo.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo estб em um veiculo.");
vID = GetPlayerVehicleID(playerseguido);
vIDplayer = GetPlayerVehicleID(playerid);
GetVehiclePos(vID, Float: ChrisBrowns2X, ChrisBrowns2Y, ChrisBrowns2Z);
SetVehiclePos(vIDplayer, ChrisBrowns2X-5, ChrisBrowns2Y-2, ChrisBrowns2Z);
timerperseguicao = SetTimerEx("AtualizarPerseguicao",1000, true, "i", playerid);
SendClientMessage(playerid,-1,"Perseguiзao iniciada");
emperseguicao[playerid] = true;
return 1;
}
if(strcmp(cmd, "/pararperseguicao", true) == 0)
{
SendClientMessage(playerid,-1,"Perseguiзao finalizada.");
KillTimer(timerperseguicao);
emperseguicao[playerid] = false;
return 1;
}
Poe logo abaixo da public onplayercommandtext:
pawn Код:
public AtualizarPerseguicao(playerid)
{
GetVehiclePos(vID, Float: ChrisBrowns2X, ChrisBrowns2Y, ChrisBrowns2Z);
SetVehiclePos(vIDplayer, ChrisBrowns2X-5, ChrisBrowns2Y-2, ChrisBrowns2Z);
return 1;
}
/seguir inicia a perseguiзao
/pararperseguicao finaliza a perseguiзao
@EDIT: ATUALIZADO, agora verifica se jб tб em perseguiзao ao digitar /seguir
Ajudei ? Dб um rep pf?
Re: [Ajuda]Comando sincronizar -
Scripter_Sk8 - 03.03.2012
vlw +rep para vocк.
Re: [Ajuda]Comando sincronizar -
Chavez - 03.03.2012
Cara eu a concelho diminuir o tempo do Timer para ficar uma coisa mais Suave

e Colocar para Setar o Angulo de acordo com o Carro seguido
Pegando o exemplo do Humilde:
Topo do GM:
pawn Код:
new playerseguido;
new vID;
new vIDplayer;
new Float: ChrisBrowns2X, Float: ChrisBrowns2Y, Float: ChrisBrowns2Z;
new timerperseguicao;
new bool: emperseguicao[MAX_PLAYERS];
forward AtualizarPerseguicao(playerid);
Em OnPlayerCommandText:
pawn Код:
if(strcmp(cmd, "/seguir", true) == 0)
{
tmp = strtok(cmdtext, idx);
playerseguido = ReturnUser(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid,-1,"Use /seguir [ID]");
if(emperseguicao[playerid] == true) return SendClientMessage(playerid,-1,"Vocк jб esta em uma perseguiзao");
if(!IsPlayerConnected(playerseguido)) return SendClientMessage(playerid,-1,"Esse player nгo estб online.");
if(!IsPlayerInAnyVehicle(playerseguido)) return SendClientMessage(playerid,-1,"Esse player nгo estб em um veiculo.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo estб em um veiculo.");
vID = GetPlayerVehicleID(playerseguido);
vIDplayer = GetPlayerVehicleID(playerid);
GetVehiclePos(vID, Float: ChrisBrowns2X, ChrisBrowns2Y, ChrisBrowns2Z);
SetVehiclePos(vIDplayer, ChrisBrowns2X-5, ChrisBrowns2Y-2, ChrisBrowns2Z);
timerperseguicao = SetTimerEx("AtualizarPerseguicao",250, true, "i", playerid);
SendClientMessage(playerid,-1,"Perseguiзao iniciada");
emperseguicao[playerid] = true;
return 1;
}
if(strcmp(cmd, "/pararperseguicao", true) == 0)
{
SendClientMessage(playerid,-1,"Perseguiзao finalizada.");
KillTimer(timerperseguicao);
emperseguicao[playerid] = false;
return 1;
}
Poe logo abaixo da public onplayercommandtext:
pawn Код:
public AtualizarPerseguicao(playerid)
{
new Float:c_rot;
GetVehicleZAngle(vID, c_rot);
SetVehicleZAngle(vIDplayer, c_rot);
GetVehiclePos(vID, Float: ChrisBrowns2X, ChrisBrowns2Y, ChrisBrowns2Z);
SetVehiclePos(vIDplayer, ChrisBrowns2X-5, ChrisBrowns2Y-2, ChrisBrowns2Z);
return 1;
}