Como poner Disable Remote Vehicle Collisions en mi sistema de carreras -
ikersamp - 12.07.2017
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
Respuesta: Como poner Disable Remote Vehicle Collisions en mi sistema de carreras -
!R1Ch@rD! - 12.07.2017
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