Como poner Disable Remote Vehicle Collisions en mi sistema de carreras
#1

Me dijieron que hay que usar el code Disable Remote Vehicle Collisions para que los autos traspasen, lo que no se, es como ponerlo, lo puse y lo defini, y de igual forma los autos no traspasan al iniciar carrera.

aqui los codes de mi sistema de carreras.

Код:
SendClientMessage(playerid,0xFF0000FF,"|===================================================================|");
SendClientMessage(playerid,0x00FFFF7B,"* Estas congelado, cuando termine la cuenta regresiva podrбs comenzar");
SendClientMessage(playerid,0x00FFFF7B,"* Turbo Desactivado y Saltos Desactivado");
SendClientMessage(playerid,0x00FFFF7B,"* Para enderesar tu vehнculo precina Y, para voltear usa /fp");
SendClientMessage(playerid,0xFF0000FF,"|===================================================================|");
Camera(playerid, RaceVehCoords[1][0], RaceVehCoords[1][1], RaceVehCoords[1][2], RaceVehCoords[1][3], 20);
PlayersCount[1] = 1;
		    }
   		}
	}
#if defined RACE_IN_OTHER_WORLD
SetPlayerVirtualWorld(playerid, 10);
SetVehicleVirtualWorld(RaceVehicle, 10);
#endif
JoinCount++;
return 1;
}
function Camera(playerid, Float:X, Float:Y, Float:Z, Float:A, Mul)
{
	SetPlayerCameraLookAt(playerid, X, Y, Z);
	SetPlayerCameraPos(playerid, X + (Mul * floatsin(-A, degrees)), Y + (Mul * floatcos(-A, degrees)), Z+6);
}
stock Teletransportar(playerid, Float:x,Float:y,Float:z)
{
new cartype = GetPlayerVehicleID(playerid); new State = GetPlayerState(playerid); new Float:Angulo; Angulo = GetVehicleZAngle(cartype, Angulo);
if(State!=PLAYER_STATE_DRIVER)
{
LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
SetPlayerPos(playerid,x,y,z); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
SetVehicleZAngle(cartype, Angulo+1);
}
else if(IsPlayerInVehicle(playerid, cartype) == 1)
{
LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
SetVehiclePos(cartype,x,y,z); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
SetVehicleZAngle(cartype, Angulo+1);
} else {
LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
SetPlayerPos(playerid,x,y,z); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
}
return 1;
}
function CountTillRace()
{
	switch(CountAmount)
	{
 		case 0:
	    {
			ForEach(i, MAX_PLAYERS)
			{
			    if(Joined[i] == false)
			    {
			    //TextDrawHideForAll(CarreraBox);
			    //TextDrawHideForAll(CarreraMensaje);
				}
			}
			StartRace();
	    }

	    case 1..5:
	    {
	    new string[15];
	    ForEach(i, MAX_PLAYERS)
        {
        if(Joined[i] == true)
	    {
	    SetCameraBehindPlayer(i);
	    format(string, sizeof(string), "~G~~h~~h~%d!", CountAmount);
	    }

        if(Joined[i] == true)
        {
        GameTextForPlayer(i, string, 999, 5);
		PlayerPlaySound(i, 1039, 0.0, 0.0, 0.0);
        }
	    }
	    }
	    case 6..39:
	    {
	        new string[15];
			format(string, sizeof(string), "~n~~y~%d!", CountAmount);
			ForEach(i, MAX_PLAYERS)
			{
			    if(Joined[i] == true)
			    {
			    	GameTextForPlayer(i, string, 999, 5);
			    	PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
			    }
			}
	    }
	    case 40:
	    {
	        new string[128];
			format(string, sizeof(string), "** La Carrera {FFFFFF}%s {FFFF00}esta por empezar! Escribe {FFFFFF}/Join {FFFF00}para unirte a la carrera!", RaceName);
			SendClientMessageToAll(COLOR_YELLOW, string);
			ForEach(i, MAX_PLAYERS)
			{
			//TextDrawShowForPlayer(i, CarreraBox);
			//TextDrawShowForPlayer(i, CarreraMensaje);
	        }

	    }
	}
	return CountAmount--;
}
este es el sistema de /exit para salir de race

Код:
if (strcmp("/exit", cmdtext, true, 10) == 0)
	{
    if(Joined[playerid] == true)
    {
	JoinCount--;
	Joined[playerid] = false;
	DestroyVehicle(CreatedRaceVeh[playerid]);
    DisablePlayerRaceCheckpoint(playerid);
	CPProgess[playerid] = 0;
	KillTimer(InfoTimer[playerid]);
	TogglePlayerControllable(playerid, true);
	SpawnPlayer(playerid);
	GameTextForPlayer(playerid, "~g~~h~~h~has salido de la carrera!", 3000, 3);
	SetCameraBehindPlayer(playerid);
	#if defined RACE_IN_OTHER_WORLD
	SetPlayerVirtualWorld(playerid, 0);
	#endif
	UserEnRace[playerid] = 0;
    Informacion[playerid][SuperVelocidad] =1;
	Informacion[playerid][SuperSaltos] =1;
	} else return SendClientMessage(playerid, COLOR_RED, "* Usted no estб en la carrera.");
	return 1;
	}
    if(UserEnRace[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"* No puedes usar cmds en una Carrera, Usa /exit para Salir!");
    GameTextForPlayer(playerid,"~r~~h~Error estas en Carrera!~n~~y~~h~utiliza~n~~p~/Exit!",4000,3);
    return 1;
	}
    if(strcmp(cmdtext, "/salir", true, 8 ) == 0 || strcmp("/leave",cmdtext,true)== 0)
    {
    if(UserEnJuego[playerid] == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"* Error: No estas en un juego o en un Duelo!");
    }
    if(UserEnJuego[playerid] == 1)
    {
    TogglePlayerControllable(playerid, true);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    GameTextForPlayer(playerid,"~r~~h~~h~has salido!",3000,3);
	TogglePlayerControllable(playerid, true);
	EnDuelo[playerid] = 0;
    }
    return 1;
    }
ahi estan el sistema de desactivo de saltos, y de turbo
Reply
#2

Mбs bien ponlo al momento que el usuario entre a la carrera y en el callBack StartRace

pawn Код:
DisableRemoteVehicleCollisions(playerid,1);
y al momento de que ponga el comando /exit o /salir que se desactive

pawn Код:
DisableRemoteVehicleCollisions(playerid,0);
obvio que tambiйn lo pondrбs en el callback StopRace xD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)