Problema con Vehiculos
#1

Buenas, pues me estoy rompiendo un poco la cabeza con un problema que estoy teniendo y lo logro ver por donde viene.

El problema es que tengo un sistema de Puertas que al presionar el boton Y entre a un interior, y luego salga con el mismo metodo.

Entonces cuando hay vehiculos cerca de una de estas dos posiciones y se utiliza esta puerta por varios usuarios, pues alguno de los coches cambia su posicion, en ocasiones se cambian las posiciones de todos los vehiculos cercanos.

No utilizo ninguna base de GM, es un GM propio.

Salu2

Ranslsad
Reply
#2

Codigo amigo, sin codigo no se hace nada.
Reply
#3

Es un sistema dinamico de puertas.
Creo que el error puede estar ahi.

pawn Код:
//**********************************************************************
        for(new i = 0; i <MAX_PUERTAS; i++) //Puertas Dinamicas
        {
            if(IsPlayerInRangeOfPoint(playerid,2.0,Puerta[i][PEnterX],Puerta[i][PEnterY],Puerta[i][PEnterZ]))
            {
                if(IsPlayerInAnyVehicle(playerid)) return 0;
                if(Puerta[i][PCerrado] == 1) return SendClientMessage(playerid, COLOR_RED, "La puerta esta cerrada.");
                SetPlayerVirtualWorld(playerid, Puerta[i][PExitVW]);
                SetPlayerPos(playerid, Puerta[i][PExitX], Puerta[i][PExitY], Puerta[i][PExitZ]);
                SetPlayerInterior(playerid, Puerta[i][PExitInt]);
                return 1;
            }
            if(IsPlayerInRangeOfPoint(playerid,2.0,Puerta[i][PExitX],Puerta[i][PExitY],Puerta[i][PExitZ]))
            {
                if(IsPlayerInAnyVehicle(playerid)) return 0;
                if(Puerta[i][PCerrado] == 1) return SendClientMessage(playerid, COLOR_RED, "La puerta esta cerrada.");
                SetPlayerVirtualWorld(playerid, Puerta[i][PEnterVW]);
                SetPlayerPos(playerid, Puerta[i][PEnterX], Puerta[i][PEnterY], Puerta[i][PEnterZ]);
                SetPlayerInterior(playerid, Puerta[i][PEnterInt]);
                return 1;
            }
        }
Greetings

Ranslsad
Reply
#4

Quote:
Originally Posted by ranslsad
Посмотреть сообщение
Es un sistema dinamico de puertas.
Creo que el error puede estar ahi.

pawn Код:
//**********************************************************************
        for(new i = 0; i <MAX_PUERTAS; i++) //Puertas Dinamicas
        {
            if(IsPlayerInRangeOfPoint(playerid,2.0,Puerta[i][PEnterX],Puerta[i][PEnterY],Puerta[i][PEnterZ]))
            {
                if(IsPlayerInAnyVehicle(playerid)) return 0;
                if(Puerta[i][PCerrado] == 1) return SendClientMessage(playerid, COLOR_RED, "La puerta esta cerrada.");
                SetPlayerVirtualWorld(playerid, Puerta[i][PExitVW]);
                SetPlayerPos(playerid, Puerta[i][PExitX], Puerta[i][PExitY], Puerta[i][PExitZ]);
                SetPlayerInterior(playerid, Puerta[i][PExitInt]);
                return 1;
            }
            if(IsPlayerInRangeOfPoint(playerid,2.0,Puerta[i][PExitX],Puerta[i][PExitY],Puerta[i][PExitZ]))
            {
                if(IsPlayerInAnyVehicle(playerid)) return 0;
                if(Puerta[i][PCerrado] == 1) return SendClientMessage(playerid, COLOR_RED, "La puerta esta cerrada.");
                SetPlayerVirtualWorld(playerid, Puerta[i][PEnterVW]);
                SetPlayerPos(playerid, Puerta[i][PEnterX], Puerta[i][PEnterY], Puerta[i][PEnterZ]);
                SetPlayerInterior(playerid, Puerta[i][PEnterInt]);
                return 1;
            }
        }
Greetings

Ranslsad
pawn Код:
if(IsPlayerInRangeOfPoint(playerid,2.0,Puerta[i][PEnterX],Puerta[i][PEnterY],Puerta[i][PEnterZ]))
            {
                new playerState = GetPlayerState(playerid);
                if(playerState == PLAYER_STATE_ONFOOT)
                {
                    if(IsPlayerInAnyVehicle(playerid)) return 0;
                    if(Puerta[i][PCerrado] == 1) return SendClientMessage(playerid, COLOR_RED, "La puerta esta cerrada.");
                    SetPlayerVirtualWorld(playerid, Puerta[i][PExitVW]);
                    SetPlayerPos(playerid, Puerta[i][PExitX], Puerta[i][PExitY], Puerta[i][PExitZ]);
                    SetPlayerInterior(playerid, Puerta[i][PExitInt]);
                    return 1;
                }else SendClientMessage(playerid, COLOR_RED, "Esta puerta es solo para personas a pie");
            }
Reply
#5

Disculpa, pero has puesto que verifique si la persona va a pie no?

Eso resolvera que al transportarte a pie los vehiculos cercanos no se muevan?

Salu2

Ranslsad
Reply
#6

Quote:
Originally Posted by ranslsad
Посмотреть сообщение
Disculpa, pero has puesto que verifique si la persona va a pie no?

Eso resolvera que al transportarte a pie los vehiculos cercanos no se muevan?

Salu2

Ranslsad
Exacto, y si aun asн se van los carros al otro lado entonces es un bug de algun otro codigo por alli que tienes.
Reply
#7

Lo probare, igualmente no termino de entender porque se me genera el problema.

Edit:
Sigue pasando, en ocasiones los vehiculos se mueven un poco, otras veces el vehiculo parece como que se respawnea, otras pegan como saltos, otras se desfiguran enteros.

Esto pasa al teleportar un usuario de un interior a otro y al volver.

Salu2

Ranslsad
Reply
#8

El problema persiste y no quiero comenzar un nuevo post.

Tengo el modo de crear los vehiculos en CreateVehicle sin tiempo de respawn (-1).
Quizas sea una tonteria pero no doy con el problema y me esta causando muchos contratiempos.

Desde ya, gracias.

Salu2

Ranslsad
Reply
#9

Muestra todo el cуdigo de presionar la tecla de entrar y salir.
Reply
#10

El codigo es el mismo que he puesto arriba, lee puertas dinamicas.

Salu2

Ranslsad
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)