SA-MP Forums Archive
duda con este codigo - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: duda con este codigo (/showthread.php?tid=603413)



duda con este codigo - Thewin - 23.03.2016

buenas, cuando te subes a una walton de granjero teniendo el job se pone esto

CocheGranjero[playerid] = GetPlayerVehicleID(playerid);

que es para que almacene que ese vehнculo es del que se subiу, entonces cuando vas al checkpoint que te marca dice que no es tu vehнculo, si se supone que ahн lo aplica bien їcomo se arregla esto? este es el codigo completo..

Код:
new CocheGranjero[MAX_PLAYERS];

el reset de la variable.. CocheGranjero[playerid] = -1;

public OnPlayerEnterCheckpoint(playerid)
{
	if(GetPVarInt(playerid,"Granjeando") == 1)
	{
		if(!EsGranjeroCar(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎTienes que estar en un vehнculo de granjeros!");
		if(GetPlayerVehicleID(playerid) != CocheGranjero[playerid]) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
        TogglePlayerControllable(playerid, 0);
        SetTimerEx("CargarObjetos", 10000, false,"i", playerid);
        GameTextForPlayer(playerid,"~w~cargando ~p~objetos...",8000,3);
		return 1;
	}
	if(GetPVarInt(playerid,"Granjeando") == 2)
	{
		if(!EsGranjeroCar(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎTienes que estar en un vehнculo de granjeros!");
		if(GetPlayerVehicleID(playerid) != CocheGranjero[playerid]) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
		TogglePlayerControllable(playerid, 0);
        SetTimerEx("DescargarObjetos", 10000, false,"i", playerid);
        GameTextForPlayer(playerid, "~w~descargando ~p~objetos...", 8000, 3);
		return 1;
	}
	if(GetPVarInt(playerid,"Granjeando") == 3)
	{
        static const _pay[] = {950,1250,1400,1600,1750,1950};
		new string[128], _money = _pay[Informacion[playerid][pSkillGranjero] -1];
		if(!EsGranjeroCar(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎTienes que estar en un vehнculo de granjeros!");
		if(GetPlayerVehicleID(playerid) != CocheGranjero[playerid]) return SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
		DeletePVar(playerid,"Granjeando");
		CocheGranjero[playerid] = -1; DisablePlayerCheckpoint(playerid); RemovePlayerFromVehicle(playerid);
		GivePlayerMoney(playerid, _money);
		format(string, sizeof(string), "* Felicidades, se te pagу $%d por tu entrega Ўbuen trabajo!", _money);
		SendClientMessage(playerid, COLOR_AMARILLO, string);
		SetVehicleToRespawn(GetPlayerVehicleID(playerid));
		return 1;
	}
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	if(EsGranjeroCar(vehicleid))
	{
		if(Informacion[playerid][pTrabajo] == 3)
		{
		    if(Informacion[playerid][pTrabajo] == 3)
		    {
		        SetPVarInt(playerid, "Granjeando", 1);
			    CocheGranjero[playerid] = GetPlayerVehicleID(playerid);
		        SetPlayerCheckpoint(playerid, -1425.3577, -1480.3108, 101.7292, 6.0);
                SendClientMessage(playerid, COLOR_GRIS, "Info: Se te marcу la ubicaciуn donde cargarбs los productos.");
			    return 1;
	        }
		}
		else
		{
			new Float:slx, Float:sly, Float:slz;
			GetPlayerPos(playerid, slx, sly, slz);
			SetPlayerPos(playerid, slx, sly, slz);
			RemovePlayerFromVehicle(playerid);
			SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo tienes el trabajo de Granjero!");
			return 1;
		}
	}
	else if(EsGranjeroCar(vehicleid))
	{
		if(GetPVarInt(playerid, "Granjeando") == 1 || GetPVarInt(playerid, "Granjeando") == 2 || GetPVarInt(playerid, "Granjeando") == 3)
		{
			if(vehicleid != CocheGranjero[playerid])
			{
				new Float:slx, Float:sly, Float:slz;
				GetPlayerPos(playerid, slx, sly, slz);
				SetPlayerPos(playerid, slx, sly, slz);
				RemovePlayerFromVehicle(playerid);
				SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
				return 1;
			}
		}
    }
	return 1;
}



Re: duda con este codigo - FelipeBlanco - 25.03.2016

Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	if(EsGranjeroCar(vehicleid))
	{
		if(Informacion[playerid][pTrabajo] == 3)
		{
		    if(Informacion[playerid][pTrabajo] == 3)
		    {
		        SetPVarInt(playerid, "Granjeando", 1);
			    CocheGranjero[playerid] = vehicleid;
		        SetPlayerCheckpoint(playerid, -1425.3577, -1480.3108, 101.7292, 6.0);
                SendClientMessage(playerid, COLOR_GRIS, "Info: Se te marcу la ubicaciуn donde cargarбs los productos.");
			    return 1;
	        }
		}
		else
		{
			new Float:slx, Float:sly, Float:slz;
			GetPlayerPos(playerid, slx, sly, slz);
			SetPlayerPos(playerid, slx, sly, slz);
			RemovePlayerFromVehicle(playerid);
			SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo tienes el trabajo de Granjero!");
			return 1;
		}
	}
	else if(EsGranjeroCar(vehicleid))
	{
		if(GetPVarInt(playerid, "Granjeando") == 1 || GetPVarInt(playerid, "Granjeando") == 2 || GetPVarInt(playerid, "Granjeando") == 3)
		{
			if(vehicleid != CocheGranjero[playerid])
			{
				new Float:slx, Float:sly, Float:slz;
				GetPlayerPos(playerid, slx, sly, slz);
				SetPlayerPos(playerid, slx, sly, slz);
				RemovePlayerFromVehicle(playerid);
				SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
				return 1;
			}
		}
    }
	return 1;
}
Proba asн, el cуdigo CocheGranjero[playerid] = GetPlayerVehicleID(playerid); estб mal, ya que OnPlayerEnterVehicle llama cuando un jugador apreta enter para subir a un vehнculo, osea, estб entrando, por lo cual, todavнa no estб dentro del vehiculo, y GetPlayerVehicleID todavнa no tiene vehнculo definido, por que se define en OnPlayerStateChange


Re: duda con este codigo - FelipeBlanco - 25.03.2016

Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	if(EsGranjeroCar(vehicleid))
	{
		if(Informacion[playerid][pTrabajo] == 3)
		{
		    if(Informacion[playerid][pTrabajo] == 3)
		    {
		        SetPVarInt(playerid, "Granjeando", 1);
			    CocheGranjero[playerid] = vehicleid;
		        SetPlayerCheckpoint(playerid, -1425.3577, -1480.3108, 101.7292, 6.0);
                SendClientMessage(playerid, COLOR_GRIS, "Info: Se te marcу la ubicaciуn donde cargarбs los productos.");
			    return 1;
	        }
		}
		else
		{
			new Float:slx, Float:sly, Float:slz;
			GetPlayerPos(playerid, slx, sly, slz);
			SetPlayerPos(playerid, slx, sly, slz);
			RemovePlayerFromVehicle(playerid);
			SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo tienes el trabajo de Granjero!");
			return 1;
		}
	}
	else if(EsGranjeroCar(vehicleid))
	{
		if(GetPVarInt(playerid, "Granjeando") == 1 || GetPVarInt(playerid, "Granjeando") == 2 || GetPVarInt(playerid, "Granjeando") == 3)
		{
			if(vehicleid != CocheGranjero[playerid])
			{
				new Float:slx, Float:sly, Float:slz;
				GetPlayerPos(playerid, slx, sly, slz);
				SetPlayerPos(playerid, slx, sly, slz);
				RemovePlayerFromVehicle(playerid);
				SendClientMessage(playerid, COLOR_GRIS, "Info: "#CROSA"[!]"#CGRIS2" ЎNo es tu vehнculo en el cual comenzaste el trabajo!");
				return 1;
			}
		}
    }
	return 1;
}
Proba asн, el cуdigo CocheGranjero[playerid] = GetPlayerVehicleID(playerid); estб mal, ya que OnPlayerEnterVehicle llama cuando un jugador apreta enter para subir a un vehнculo, osea, estб entrando, por lo cual, todavнa no estб dentro del vehiculo, y GetPlayerVehicleID todavнa no tiene vehнculo definido, por que se define en OnPlayerStateChange