Moin,
ich bin mal wieder an einem Punkt angelangt, wo ich auch nach stundenlangem Probieren nicht selbst auf die Lösung komme. Es geht um einen /carlock Befehl. Den Befehl an sich habe ich mir dabei so gedacht:
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]==0)continue;
new Float:x,Float:y,Float:z;
GetVehiclePos(cInfo[i][id_x],x,y,z);
if(!IsPlayerInRangeOfPoint(playerid,2,x,y,z))return SendClientMessage(playerid,GRAU,"Du bist nicht an deinem Fahrzeug.");
if(cInfo[i][besitzer]!=sInfo[playerid][db_id])return SendClientMessage(playerid,GRAU,"Du bist nicht der Besitzer dieses Fahrzeugs!");
new tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
{
GetVehicleParamsEx(cInfo[i][id_x], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
if(tmp_doors==1)
{
tmp_doors = 0;
SendClientMessage(playerid,GRUEN,"Fahrzeug aufgeschlossen.");
}
else
{
tmp_doors = 1;
SendClientMessage(playerid,GRUEN,"Fahrzeug abgeschlossen.");
}
SetVehicleParamsEx(cInfo[i][id_x], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
PlayerPlaySound(playerid,1145,0,0,0);
}
return 1;
}
return 1;
}
Dies funktioniert auch einigermaßen. Allerdings ist es für jeden Spieler in meinem Testscript derzeit noch möglich, unbegrenzt viele Fahrzeuge zu haben. Der Befehl funktioniert dann nur beim 1. Auto des Spielers in der Fahrzeugdatenbank, alle weiteren Fahrzeuge werden nicht berücksichtigt. Hier ein Screen von der Struktur meiner Datenbank:
In meinem Fall funktioniert der Befehl also nur bei "ID 6", dem Infernus mit der model id 411. Bei allen weiteren Fahrzeugen erscheint dann die von mir erstellte message, dass ich nicht an meinem Fahrzeug bin.
Und hier nochmal mein CarEnum, falls zum Verständnis benötigt:
id_x,
model,
carcol1,
carcol2,
c_paintjob,
c_spoiler,
c_hood,
c_roof,
c_side,
c_lamps,
c_nitro,
c_exhaust,
c_wheels,
c_stereo,
c_hydraulics,
c_fbump,
c_rbump,
c_ventleft,
c_ventright,
c_tank,
c_health,
c_lock,
besitzer,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_id
}
Wie prüfe ich also alle Fahrzeuge eines Spielers ab, sodass der Befehl auch entsprechend bei allen Fahrzeugen eines Spielers funktioniert? Wie immer bitte ich zu berücksichtigen, dass ich mich erst seit ca. 1 Woche mit dem Scripting beschäftige. Sollte es offensichtlich Quatsch sein, was ich da programmiert habe, seht es mir nach.
Danke!
// Keiner einen Tipp parat?