22.09.2012, 17:29
Bom, to fazendo meu sistema de corrida proprio, meu problema e que ao jogadore digitar /Participar ele e automaticamente colocado no veiculo, so que caso mais jogadores digite /Participar ele nao й colocado no 2 veiculo criado .. tem como fazeer para que verifique quantos veiculos para o evento foi criado e cada vez que um jogador digitar /Participar ele ser colocado no proximo veiculo ?
Obrigado ..
pawn Код:
// Comandos
CMD:veiculoevento(playerid, params[])
{
new veiculoid, msg[148];
if(CriandoEvento == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Voce prescisar estar em modo de construзгo");
if(SetouUltimoCp == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Vocк prescisa setar o ultimo Checkpoint do evento");
if(sscanf(params, "d",veiculoid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Uso: /VeiculoEvento [ id ]");
if(veiculoid < 400 || veiculoid > 611) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] ID Invбlido. Use /VeiculoEvento [ id ]");
for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
{
if(!VehEvento[eventocar])
{
GetPlayerPos(playerid,VehEventoX[eventocar],VehEventoY[eventocar],VehEventoZ[eventocar]);
GetPlayerFacingAngle(playerid,Angle[eventocar]);
VehEvento[eventocar] = CreateVehicle(veiculoid,VehEventoX[eventocar],VehEventoY[eventocar],VehEventoZ[eventocar],Angle[eventocar], -1, -1,1200000);
format(msg, sizeof(msg), "[ » ] Veiculo %d criado", eventocar);
SendClientMessage(playerid, AZUL, msg);
CriouVehEvento = 1;
return 1;
}
}
return 1;
}
CMD:participar(playerid)
{
new vid = GetPlayerVehicleID(playerid);
if(EventoCriado == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Nгo existe nenhum evento criado para voce participar.");
if(EventoDesbloqueado == 0) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] O Evento nгo terminado ou esgotado");
if(TaNoEvento[playerid] == 1) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Vocк jб estб participando desse evento");
if(IsPlayerInVehicle(playerid, vid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Vocк prescisar deixar seu veiculo para participar do Evento");
PlayersNoEvento ++;
for(new eventocar = 0; eventocar < MAX_VEHEVENTO; eventocar++)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayersNoEvento == eventocar) return SendClientMessage(playerid, VERMELHO_ESCURO, "[x] Jб excedeu o limite de jogadores no evento");
if(!IsPlayerInVehicle(i, VehEvento[eventocar]))
{
PutPlayerInVehicle(playerid, VehEvento[eventocar], 0);
TogglePlayerControllable(playerid,0);
TaNoEvento[playerid] = 1;
QueCP[playerid] = 0;
SendClientMessage(playerid, 0x8080FFAA, "[ EVENTO ] Agora voce estб participando do Evento. Boa Sorte");
TimerText = SetTimerEx("AtualizarTextEvento", 1000, true, "i", playerid);
TextDrawShowForPlayer(playerid, Evento0[playerid]);
TextDrawShowForPlayer(playerid, Evento1[playerid]);
TextDrawShowForPlayer(playerid, Evento2[playerid]);
TextDrawShowForPlayer(playerid, Evento3[playerid]);
TextDrawShowForPlayer(playerid, Evento4[playerid]);
TextDrawShowForPlayer(playerid, Evento5[playerid]);
TextDrawShowForPlayer(playerid, Evento6[playerid]);
TextDrawShowForPlayer(playerid, Evento7[playerid]);
SetPlayerRaceCheckpoint(playerid, 0, CheckpointCoord[0][1], CheckpointCoord[1][1], CheckpointCoord[2][1], CheckpointCoord[0][2], CheckpointCoord[1][2], CheckpointCoord[2][2], TAMANHO_CP);
GetPlayerPos(playerid,VehEventoX[eventocar],VehEventoY[eventocar],VehEventoZ[eventocar]);
GetPlayerFacingAngle(playerid,Angle[eventocar]);
Camera(playerid, VehEventoX[eventocar],VehEventoY[eventocar],VehEventoZ[eventocar],Angle[eventocar], 20);
return 1;
}
}
}
return 1;
}