[Ayuda] Trabajo cartero
#1

Hola!

Quiero hacer un trabajo de cartero, pero tengo un problema con los vehнculos, quiero que cuando el player obtenga el trabajo entonces pueda usar los vehнculos de dicho trabajo, de lo contrario no.

Ya he intentado de varias formas pero nada.
Hice una variable
Код:
new cart;
la cual es modificada al tomar el trabajo de cartero

Код:
if (strcmp("/cartero", cmdtext, true, 10) == 0)
         {
           if(IsPlayerInRangeOfPoint(playerid,1.5,1743.01, -1863.90, 13.38) == 1)
		   {
			if(cart == 1)SendClientMessage(playerid,BLANCO,"Ya tienes este trabajo.");
            else SendClientMessage(playerid,BLANCO,"Felicidades!! Haz conseguido el trabajo de cartero.");cart = 1;
           }

		   else SendClientMessage(playerid,BLANCO,"No estбs en el lugar donde se consigue este trabajo.");

	       return 1;
		 }
Si toma el trabajo de cartero la variable cart cambia a 1.

Lo que quiero hacer es que cuando cart sea igual a 1, los vehнculos se puedan usar, de lo contrario no.

entonces entrу una nueva variable
Код:
new VehiCart;
[code]VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100); // prueba para bloquear autos


Y la sentencia para bloquear el vehнculo o desbloquearlo:
Код:
public OnVehicleStreamIn(vehicleid, forplayerid)
{
	if (cart == 0)
	{
      if(vehicleid == VehiCart)
      {
	   SetVehicleParamsForPlayer(VehiCart,forplayerid,0,1);
	  }
	}

	else
	{
     if(vehicleid == VehiCart)
     {
        SetVehicleParamsForPlayer(VehiCart, forplayerid, 0, 0); // marker can be visible only if the vehicle streamed for player
     }
	}

 return 1;
}
}
Pero no me funciona, intentй creando un callback
Pero tampoco funcionу.

No sй que hacer
Espero que me puedan ayudar.
Soy nuevo en esto perdуnen mi ignorancia.


Gracias de antemano.
Reply
#2

nose si funcionarб pero prueba aсadiendo esto
pawn Код:
//------------------------
new VehiCart;
new cart;
//------------------------

//cuando spawnees el vehнculo pon esto:
public OnGameModeInit()
{
VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        if(vehicleid == VehiCart && cart == 0)
        {
        SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
        //aquн haz algo para que saque al usuario del vehнculo
        return 0;
        }
        else
        {
        if(vehicleid == VehiCart && cart == 1)
        {
        //any
        }
        }
        return 1;
}
yo almenos lo harнa asн
Reply
#3

Quote:
Originally Posted by Porta0123
Посмотреть сообщение
nose si funcionarб pero prueba aсadiendo esto
pawn Код:
//------------------------
new VehiCart;
new cart;
//------------------------

//cuando spawnees el vehнculo pon esto:
public OnGameModeInit()
{
VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        if(vehicleid == VehiCart && cart == 0)
        {
        SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
        //aquн haz algo para que saque al usuario del vehнculo
        return 0;
        }
        else
        {
        if(vehicleid == VehiCart && cart == 1)
        {
        //any
        }
        }
        return 1;
}
Gracias por responder!
Lo intentй, y de varias formas, asн como me dijiste, y nada

Usй
Код:
SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
para que no pudiera entrar y
Код:
SetVehicleParamsForPlayer(vehicleid,playerid,0,0);
para que pudiera entrar, sinceramente no sй porque no funciona, si se supone que deberнa funcionar, no sй cual es el error.
T_T
Reply
#4

pawn Код:
new VehiCart;
new cart[MAX_PLAYERS];
public OnGameModeInit()
{
    VehiCart = CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(vehicleid == VehiCart && cart[playerid] != 0)
    {
        return 1;
    }
    else
    {
        SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
    }
    return 1;
}
Reply
#5

pawn Код:
#include <a_samp>

new VehiCart,
bool:cart[MAX_PLAYERS];

public OnGameModeInit(){
    VehiCart = AddStaticVehicleEx(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
    return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate){
    if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER){
        new vehicleid = GetPlayerVehicleID(playerid);
        if(vehicleid == VehiCart && cart[playerid] != false){
        //TU FUNCION
        }else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");}
    }
    return true;
}
https://sampwiki.blast.hk/wiki/OnPlayerEnterVehicle
https://sampwiki.blast.hk/wiki/OnPlayerStateChange
Reply
#6

vehicart[MAX_VEHICLES] 77.

Sorry ando en mi movil
Reply
#7

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
pawn Код:
new VehiCart;
new cart[MAX_PLAYERS];
public OnGameModeInit()
{
    VehiCart = CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(vehicleid == VehiCart && cart[playerid] != 0)
    {
        return 1;
    }
    else
    {
        SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
    }
    return 1;
}
Hey! gracias por respoder!
Probй el cуdigo y me dio estos errores
Код:
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(157) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(158) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(168) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(168) : error 033: array must be indexed (variable "cart")
Es en el comando para tomar el trabajo, probй cambiando cart = 1; por cart[playerid] = 1;
Me quitу los errores pero en el juego, a la hora de montarme a la bici (sin tener el trabajo) me sale un letrero que dice "Stay whitin Boundrie World" algo asн, y me pausa el juego, empiza a ir super lento y el brillo empieza a aclararse a tal punto que todo se ve blanco

Quote:
Originally Posted by OTACON
Посмотреть сообщение
pawn Код:
#include <a_samp>

new VehiCart,
bool:cart[MAX_PLAYERS];

public OnGameModeInit(){
    VehiCart = AddStaticVehicleEx(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
    return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate){
    if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER){
        new vehicleid = GetPlayerVehicleID(playerid);
        if(vehicleid == VehiCart && cart[playerid] != false){
        //TU FUNCION
        }else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");}
    }
    return true;
}
https://sampwiki.blast.hk/wiki/OnPlayerEnterVehicle
https://sampwiki.blast.hk/wiki/OnPlayerStateChange
Gracias por responder!!
Tambiйn me sale el error las lнneas del comando /cartero
Lo cambiй tambiйn a cart[playerid] = 1;
Pero a la hora de entrar al juego no me funciona.

dices que aqui va la funciуn para que no pueda subir a la bici?:

pawn Код:
if(vehicleid == VehiCart && cart[playerid] != false){
        //TU FUNCION aqui?
        }else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");//yo pensarнa que es aqui}
Bueno intentй pondiendo SetVehicleParamsForPlayer(vehicleid,playerid,0,1); en donde dijiste, no hizo nada, e intentй como yo pensй que era:

pawn Код:
if(vehicleid == VehiCart && cart[playerid] != false){
        SetVehicleParamsForPlayer(vehicleid,playerid,0,0);
        }else{SetVehicleParamsForPlayer(vehicleid,playerid,0,1); SendClientMessage(playerid, BLANCO, "No tienes el oficio de Cartero");}
Y tampoco funcionу

Si me quieren ayudar mejor, les puedo mandar el archivo .pwn para que lo vean todo.

PD: CrossOv3r no entendн xD
Reply
#8

Disculpa, olvidй que era un float. Intenta poniendo esto en vez del new local en el cуdigo que te pasй.

pawn Код:
new Float:Pos[3];
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)