Infernus ColorBug[Parking] [HELP] -
catal4n - 27.10.2016
Alright the problem is when i change the color for the car it changes everything ok, but when i want to /park it, the color turns into white. And i see in transfender Infernus got Paintjob option. PS: this problem is only with Infernus.
[video]https://www.youtube.com/watch?v=T_juthGeblc[/video]
Re: Infernus ColorBug[Parking] [HELP] -
HoangNam - 27.10.2016
You can add a filterscript getvehiclecolor first, then when player types /paint [idcol] you will get something that player types and then when player /park set it again. I'm Bad at English :v
Re: Infernus ColorBug[Parking] [HELP] -
catal4n - 27.10.2016
Can you help me with it please? I tried it once but it gaves me many errors from the GetVehicleColor.inc..
Re: Infernus ColorBug[Parking] [HELP] -
catal4n - 28.10.2016
I searched whole script is no parameter or function for infernus. I can not figure out which might be the problem.
Re: Infernus ColorBug[Parking] [HELP] -
Threshold - 28.10.2016
Do you use
OnVehicleRespray at all? This callback could come in handy.
On the other hand, would you mind showing us your /park command? Looks like it could use a few improvements anyway.
Re: Infernus ColorBug[Parking] [HELP] -
catal4n - 28.10.2016
Here is the command:
pawn Код:
CMD:park(playerid, params[])
{
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle.");
// Family Vehicles
if(IsFamVehicle(GetPlayerVehicleID(playerid)) && Fam[GetPlayerVehicleID(playerid)] == PlayerInfo[playerid][pFam])
{
new idx = PlayerInfo[playerid][pFam], veh = GFVS(GetPlayerVehicleID(playerid));
GetVehiclePos(GetPlayerVehicleID(playerid), FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh]);
GetVehicleZAngle(GetPlayerVehicleID(playerid), FamInfo[idx][fVehRot][veh]);
if(FamInfo[idx][fVehType][veh])
{
DestroyVehicle(FamInfo[idx][fVeh][veh]);
}
FamInfo[idx][fVeh][veh] = CreateVehicle(FamInfo[idx][fVehType][veh], FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh], FamInfo[idx][fVehRot][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh], 12000);
ChangeVehicleColor(FamInfo[idx][fVeh][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have parked your family vehicle, it will always spawn here until you park it somewhere else.");
return 1;
}
// Owned Vehicles
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You're not driving your own vehicle to park it.");
if(GetPlayerVehicleID(playerid) != PlayerInfo[playerid][pVeh] && GetPlayerVehicleID(playerid) != PlayerInfo[playerid][pVVeh] && GetPlayerVehicleID(playerid) != PlayerInfo[playerid][pBVeh]) return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle that you can park it.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "You have parked your vehicle, it will always spawn here until you park it somewhere else.");
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pVeh])
{
for(new i=0; i<14; i++)
{
PlayerInfo[playerid][pVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVeh], i);
}
GetVehiclePos(PlayerInfo[playerid][pVeh],PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVeh],PlayerInfo[playerid][vA]);
DestroyVehicle(PlayerInfo[playerid][pVeh]);
PlayerInfo[playerid][pVeh] = CreateVehicle(PlayerInfo[playerid][vModel], PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ],PlayerInfo[playerid][vA],PlayerInfo[playerid][vC1],PlayerInfo[playerid][vC2],1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vPJ]);
for(new i=0; i<14; i++)
{
AddVehicleComponent(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][pVehMod][i]);
}
}
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pVVeh])
{
for(new i=0; i<14; i++)
{
PlayerInfo[playerid][pVVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVVeh], i);
}
GetVehiclePos(PlayerInfo[playerid][pVVeh],PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVVeh],PlayerInfo[playerid][vVA]);
DestroyVehicle(PlayerInfo[playerid][pVVeh]);
PlayerInfo[playerid][pVVeh] = CreateVehicle(PlayerInfo[playerid][vVModel], PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ],PlayerInfo[playerid][vVA],PlayerInfo[playerid][vVC1],PlayerInfo[playerid][vVC2],1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVPJ]);
for(new i=0; i<14; i++)
{
AddVehicleComponent(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][pVVehMod][i]);
}
}
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pBVeh])
{
for(new i=0; i<14; i++)
{
PlayerInfo[playerid][pBVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pBVeh], i);
}
GetVehiclePos(PlayerInfo[playerid][pBVeh],PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ]);
GetVehicleZAngle(PlayerInfo[playerid][pBVeh],PlayerInfo[playerid][vBA]);
DestroyVehicle(PlayerInfo[playerid][pBVeh]);
PlayerInfo[playerid][pBVeh] = CreateVehicle(PlayerInfo[playerid][vBModel], PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ],PlayerInfo[playerid][vBA],PlayerInfo[playerid][vBC1],PlayerInfo[playerid][vBC2],1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBPJ]);
for(new i=0; i<14; i++)
{
AddVehicleComponent(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][pBVehMod][i]);
}
}
return 1;
}
Re: Infernus ColorBug[Parking] [HELP] -
Threshold - 29.10.2016
Well your command should look a bit more like this:
PHP код:
CMD:park(playerid, params[])
{
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
new vid = GetPlayerVehicleID(playerid);
if(!vid) return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle.");
if(IsFamVehicle(vid) && Fam[vid] == PlayerInfo[playerid][pFam])
{
new idx = PlayerInfo[playerid][pFam], veh = GFVS(vid);
GetVehiclePos(vid, FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh]);
GetVehicleZAngle(vid, FamInfo[idx][fVehRot][veh]);
if(FamInfo[idx][fVehType][veh]) DestroyVehicle(FamInfo[idx][fVeh][veh]);
FamInfo[idx][fVeh][veh] = CreateVehicle(FamInfo[idx][fVehType][veh], FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh], FamInfo[idx][fVehRot][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh], 12000);
ChangeVehicleColor(FamInfo[idx][fVeh][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have parked your family vehicle, it will always spawn here until you park it somewhere else.");
return 1;
}
// Owned Vehicles
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "You must be driving your own vehicle to park it.");
if(vid == PlayerInfo[playerid][pVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVeh], i);
GetVehiclePos(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vA]);
DestroyVehicle(PlayerInfo[playerid][pVeh]);
PlayerInfo[playerid][pVeh] = CreateVehicle(PlayerInfo[playerid][vModel], PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ], PlayerInfo[playerid][vA], PlayerInfo[playerid][vC1], PlayerInfo[playerid][vC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][pVehMod][i]);
}
else if(vid == PlayerInfo[playerid][pVVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pVVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVVeh], i);
GetVehiclePos(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVA]);
DestroyVehicle(PlayerInfo[playerid][pVVeh]);
PlayerInfo[playerid][pVVeh] = CreateVehicle(PlayerInfo[playerid][vVModel], PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ], PlayerInfo[playerid][vVA], PlayerInfo[playerid][vVC1], PlayerInfo[playerid][vVC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][pVVehMod][i]);
}
else if(vid == PlayerInfo[playerid][pBVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pBVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pBVeh], i);
GetVehiclePos(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ]);
GetVehicleZAngle(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBA]);
DestroyVehicle(PlayerInfo[playerid][pBVeh]);
PlayerInfo[playerid][pBVeh] = CreateVehicle(PlayerInfo[playerid][vBModel], PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ], PlayerInfo[playerid][vBA], PlayerInfo[playerid][vBC1], PlayerInfo[playerid][vBC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][pBVehMod][i]);
}
else return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle that you can park.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "You have parked your vehicle, it will always spawn here until you park it somewhere else.");
return 1;
}
Then you would need to update your color variables every time you use the transfender or other mod shops. Note that this does not account for pay 'n' sprays.
PHP код:
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
if(vehicleid == PlayerInfo[playerid][pVeh])
PlayerInfo[playerid][vC1] = color1, PlayerInfo[playerid][vC2] = color2;
else if(vehicleid == PlayerInfo[playerid][pVVeh])
PlayerInfo[playerid][vVC1] = color1, PlayerInfo[playerid][vVC2] = color2;
else if(vehicleid == PlayerInfo[playerid][pBVeh])
PlayerInfo[playerid][vBC1] = color1, PlayerInfo[playerid][vBC2] = color2;
return 1;
}
You should technically subtract 1 from every array that uses vehicle IDs, because if you happen to get vehicle ID 2000, then you can expect an out of bounds error. Vehicle IDs start at 1, not 0. But that's a story for another time
Re: Infernus ColorBug[Parking] [HELP] -
catal4n - 29.10.2016
Thank you very much. But i've compiled with your command and the problem is still persist.
Re: Infernus ColorBug[Parking] [HELP] -
Threshold - 29.10.2016
Are you sure you're using the OnVehicleRespray callback? Either way, can you show us where you're updating the vehicle color variables? 'vC1', 'vVC1', 'vBC1' etc.