12.07.2017, 00:02
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.
este es el sistema de /exit para salir de race
ahi estan el sistema de desactivo de saltos, y de turbo
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--; }
Код:
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; }