[ERROR]Comando /pinchar
#1

Hola, tengo un problema con este comando.
Era un FS de este mismo foro (no encuentro el TH), lo modique y pase a el GM de mi servidor.
El problema es que al eliminar el pinche desaparece el objeto pero si lo pisas con el auto te pincha las ruedas.

Aca dejo del CODE:

pawn Код:
#define MAX_SPIKESTRIPS 200

public OnPlayerUpdate(playerid)
{
   if(IsPlayerInAnyVehicle(playerid))
   {
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), 0, 0, 0, encode_tires(1, 1, 1, 1));
    Spikes = 0;
    }
    return 1;
    }

encode_tires(tire1, tire2, tire3, tire4) {

   return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
}

new spike;
new Spikes;

if (strcmp(cmd,"/pinchar",true) == 0)
if(Spikes == 0)
{
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid, rz);
spike = CreateObject(2892, x, y, z-0.8, 0, 0, rz+90);
Spikes = 1;
return 1;
}

if (strcmp(cmd,"/eliminarpinche",true) == 0)
{
if(Spikes == 1)
DestroyObject(spike);
DestroyObject(Spikes);
Spikes = 0;
return 1;
}
Reply
#2

Porque vos tendrнas que tener un enum que contenga los datos de cada pinche, y cuando lo eliminбs setear las coordenadas en 0 y todas las variables en 0 o -1, segъn como sea el valor default.

pawn Код:
Pinche[pincheid][X] = 0.000000;
Pinche[pincheid][Y] = 0.000000;
Pinche[pincheid][Z] = 0.000000;
Algo asн, no sуlo tienes que destruir el objeto.
Reply
#3

Deberias usar IsPlayerInRangeOfPoint para detectar si esta en la posiciуn de los pincharuedas.
Reply
#4

Perdon, me confundi en el code, el OnPlayerUpdate es asi:
pawn Код:
public OnPlayerUpdate(playerid)
{
   if(IsPlayerInAnyVehicle(playerid))
   {
   if(IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z))
   {
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), 0, 0, 0, encode_tires(1, 1, 1, 1));
    Spikes = 0;
    }
    return 1;
    }

encode_tires(tire1, tire2, tire3, tire4) {

   return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
}
Tambien pense en agregar el enum como dice Harrinston, pero yo no hice el FS no tengo ni idea de como agregarlo.

Saludos y gracias.
Reply
#5

Te recomiendo usar un FS de eso si no sabйs manejarte bien en pawn todavнa, hay varios por la secciуn en inglйs, saludos.
Reply
#6

Si, voy a buscar otro FS lo que pasa es que ese fue el unico que encontre que te deja poner un pinche a la vez.
Si eso es mas facil de scriptear vuelvo a poner el code del de antes otro limite.

Bueno, no encontre otro con las mismas funciones.
Voy a pasar estos comandos a un FS y hacer un comando que recargue el FS para eliminar todos los pinches.

Saludos y gracias por la ayuda.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)