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