[DUDA]Detectar dos jugadores en un coche
#1

Tengo una duda estoy intentando hacer un sistema de carreras que si o si tengan que tener un pasajero (osea que tengan que ser dos en el coche ) y si alguno se baja termine el recorrido y desaparezca el checkpoint..Nose si me explico logre algo asi.


pawn Код:
YCMD:empezarrecorrido(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "Puedes comprar en la barra."); // Esto no sale si se usa el comando
else
{
if(!IsPlayerInAnyVehicle(playerid)) return Message(playerid, COLOR_GRAD2, "No estбs en un vehнculo!");
SetPlayerCheckpoint(playerid, pos, pos, pos, 15.0);
return 1;
}
return 1;
}
Pero en la parte que tengo que detectar si estan los dos en el coche estoy muerto :S
Reply
#2

pawn Код:
stock HayDos(vehicleid)
{
    new count = 0;
    for(new i = 0; i < GetMaxPlayers(); i++)
        if(IsPlayerInVehicle(i, vehicleid))
            count++;
    if(count > 2) return 1;
    else return 0;
}
No ha sido probado pero deberнa funcionar.
Reply
#3

Quote:
Originally Posted by Bu11Sh0t
Посмотреть сообщение
pawn Код:
stock HayDos(vehicleid)
{
    new count = 0;
    for(new i = 0; i < GetMaxPlayers(); i++)
        if(IsPlayerInVehicle(i, vehicleid))
            count++;
    if(count > 2) return 1;
    else return 0;
}
No ha sido probado pero deberнa funcionar.
Lo probe solo y no me deja usar el comando,me falta probarlo con otra persona(cuando encuentre con quien testearlo aviso)

Muchas gracias.
Reply
#4

Perdon el doble post pero no funciono.

De esta manera si estoy solo el coche enciende igual

pawn Код:
YCMD:empezarrecorrido(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "Puedes comprar en la barra."); // Esto no sale si se usa el comando
else
{
new vehicleid = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid)) return Message(playerid, COLOR_GRAD2, "No estбs en un vehнculo!");
if(HayDos(vehicleid)) return Message(playerid, COLOR_GRAD2, "Tienen que ser dos para el recorrido!.");
//SetPlayerCheckpoint(playerid, pos, pos, pos, 15.0);
new enginem, lights, alarm, doors, bonnet, boot, objective;//define las cosas del auto
GetVehicleParamsEx(GetPlayerVehicleID(playerid),enginem, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_WHITE, "Son dos en el coche.");
return 1;
}
return 1;
}
Y asi

pawn Код:
YCMD:empezarrecorrido(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "Puedes comprar en la barra."); // Esto no sale si se usa el comando
else
{
new vehicleid = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid)) return Message(playerid, COLOR_GRAD2, "No estбs en un vehнculo!");
if(!HayDos(vehicleid)) return Message(playerid, COLOR_GRAD2, "Tienen que ser dos para el recorrido!.");
//SetPlayerCheckpoint(playerid, pos, pos, pos, 15.0);
new enginem, lights, alarm, doors, bonnet, boot, objective;//define las cosas del auto
GetVehicleParamsEx(GetPlayerVehicleID(playerid),enginem, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_WHITE, "Son dos en el coche.");
return 1;
}
return 1;
}
el coche aunque seamos dos en el coche no enciende :S

Help
Reply
#5

pawn Код:
stock HayDos(vehicleid)
{
    new count = 0;
    for(new i = 0; i < GetMaxPlayers(); i++)
        if(IsPlayerInVehicle(i, vehicleid))
            count++;
    if(count > 1) return 1;//Aqui puse dos envez de uno.
    else return 0;
}
Error corregido. Trata de nuevo
Reply
#6

pawn Код:
stock HayDos(vehicleid, playerid)
{
    for(new i = 0; i < GetMaxPlayers(); i++)
    if(IsPlayerInVehicle(i, vehicleid))
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetPlayerState(i) == PLAYER_STATE_PASSENGER) return 1;
    else return 0;
}
Reply
#7

Muchas gracias ya funciono :P
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)