Következõ kérdésem lenne.
Van egy függvényem
forward GetClosetVehicleID(playerid);
public GetClosetVehicleID(playerid)
{
new Float:Distance;
for(new c; c<MAX_VEHS; c++)
{
Distance = GetDistanceToVehicle(playerid, c);
if(Distance < 3.0)
{
return c;
}
}
return -1;
}
pontosabban kettõ
forward Float:GetDistanceToVehicle(playerid, k);
public Float:GetDistanceToVehicle(playerid, k)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
GetPlayerPos(playerid,x1,y1,z1);
x2 = CarInfo[k][cX];
y2 = CarInfo[k][cY];
z2 = CarInfo[k][cZ];
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Meg egy parancsom.
CMD:fest(playerid,params[])
{
new veh = GetClosetVehicleID(playerid);
new szin1,szin2,string[128];
if(sscanf(params,\"ii\",szin1,szin2)) SCM(playerid,GSARGA,\"Használat: /fest [szín1] [szín2]\");
else if(szin1 > 255 || szin2 > 255 || szin1 < 0 || szin2 < 0) return Error(playerid,\"Jármû színek: 0-255-ig\");
else {
ChangeVehicleColor(veh,szin1,szin2);
format(string,128,\"Jármû színe megváltozott. Elsõ szín: %d. Második szín: %d\",szin1,szin2);
SCM(playerid,RBLUE,string);
}
return 1;
}
Probléma a következõ:
Ha beírom, akkor nem változik meg a színe, csak ha resizem, és újralehozza a jármûvet.
Oké, de ha kitörlöm, aztán létrehozom újra a jármûvet, akkor nem érzékeli a másikat, amit lehoztam, ha újraakarom festeni.
Szóval valami ilyesmi elven kéne megcsinálni, de mégsem tudom hogy hogyan o.O
ötletek?