Ich dachte es klappt aber naja... ich kann den Befehl eingeben, doch anstatt das er das Autoabschließt, setzt er einen Pfeil oben drüber Dies find ich merkwürdig da ich nicht mal getPlayerPos oder so verwendet habe und auch nichts mit nem Makrer. Naja seht euch den Befehl mal bitte an und sagt mir was Falsch ist.
Hier der Befehlocmd:carlock(playerid,params[])
{
for(new y = 0; y < 3; y++)
{
new string[128],string1[128];
format(string, sizeof(string), "Du hast dein Auto abgeschlossen.");
format(string, sizeof(string), "Du hast dein Auto aufgeschlossen.");
if(SetVehicleParamsForPlayer(Spielercar[playerid][y],playerid,false,false))
{
SetVehicleParamsForPlayer(Spielercar[playerid][y],playerid,true,true);
SendClientMessage(playerid, Grün, string1);
}
if(SetVehicleParamsForPlayer(Spielercar[playerid][y],playerid,true,true))
{
SetVehicleParamsForPlayer(Spielercar[playerid][y],playerid,false,false);
SendClientMessage(playerid, Grün, string);
}
}
return 1;
}
Ich habe ein Problem bei meinem /carlock.
- Acrio
- Geschlossen
- Erledigt
-
-
Ich glaube du kennst die SetVehicleParamsEx Methode nicht richtig, du hast sie völlig falsch genutzt. keine Ahnung wo du das her hast.
Ich helf dir mal.
SetVehicleParamsForPlayer(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective)
vehicleid ist wohl selbsterklärend
engine ob der motor gestartet ist oder nicht
lights ob lichter an sind oder nicht
alarm ob das alarmlicht leuchten soll oder nicht
doors ob sie abgesperrt sind oder nicht
bonnet ob die Motorhaube offen ist oder nicht
boot ob der Kofferraum offen ist oder nicht
objective ob ein Pfeil über dem Auto sein soll oder nicht so wie es bei dir warDas bedeutet wenn du dein Fahrzeug absperren möchtest musst du es so nutzen.
ocmd:carlock(playerid,params[]) {
new string[128], engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
if(doors == 1) {
SetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, 0, bonnet, boot, objective);
format(string, sizeof(string), "Du hast dein Auto aufgeschlossen.");
SendClientMessage(playerid, GRUEN, string);
} else {
SetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, 1, bonnet, boot, objective);
format(string, sizeof(string), "Du hast dein Auto abgeschlossen.");
SendClientMessage(playerid, GRUEN, string);
}
return 1;
}Weiters ist mir aufgefallen das du dann jedes einzelne Fahrzeug welches der Spieler hat aufsperrst bzw. absperrst. Das ist extrem schwachsinnig. Ich habs jetzt so gemacht. Du musst nun nur noch das mit der vehicleid umändern. Du solltest es vielleicht so machen das er noch den Fahrzeugschlüssel mit angeben soll, das bedeutet er muss dann eingeben
/carlock 1 somit öffnet der Spieler Fahrzeug 1 das ihm gehört usw
Hab dir jetzt hoffentlich weitergeholfen.
-
Ich hab das aus meinem Kopf das erste mal das ich überhaupt was davon gehört hatte. Als ich es dann ausprobieren wollte, dachte:" Naja, so schwer wirds nicht sein." Falsch gedacht -.-
edit:// Doch wie kommt es zu dem Mekrwürdigen Pfeil, der sich andauernd über dem auto befindet? Wenn ich das Auto wegfahre, bleibt der Pfeil trozdem über dem Auto(Er bewegt sich mit.)
-
Schau dir mal ganz genau im Wikipedia die Methode SetVehicleParamsEx oder GetVehicleParamsEx an.
Da siehst du beim letzten Wert denn du benutzt dieser heißt objective. Wie ich im oberen Beitrag schon erwähnt habe, hast du bei deinem Befehl den Pfeil über ein Fahrzeug aktiviert. Dieser wird dann für immer angezeigt außer du deaktivierst ihn.
-
Ich mach es dir mal
Also:
if(strcmp(cmdtext,"/lock",true) == 0)
{
new veh=GetPlayerVehicleID(playerid); //Findet die Vehicleid vom Spielerveh herraus
new Float:vx, Float:vy, Float:vz; //Das Brauchen wir gleich ^^
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //Fragt ab ob der Spieler der Fahrer ist
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective); //Findet die Parameter des Vehs herraus
if(doors == 1) //Wenn die Türe verschlossen ist.....
{
SetVehicleParamsEx(veh,engine,lights,alarm,0,bonnet,boot,objective); //Macht er sie einfach auf ^^
GameTextForPlayer(playerid,"~w~Fahrzeug ~g~aufgeschlossen",1000,6);
}
else //Ist sie aber geöffnet.....
{
SetVehicleParamsEx(veh,engine,lights,alarm,1,bonnet,boot,objective); //Dann macht er sie einfach zu :D
GameTextForPlayer(playerid,"~w~Fahrzeug ~r~abgeschlossen",1000,6);
}
}
else //Ist er in keinem Fahrzeug
{
for(new i=0; i < MAX_VEHICLES; i++) //Fragen wir etwas für jedes Fahrzeug ab...
{
GetVehiclePos(i,vx,vy,vz); //Die Position des Fahrzeuges
if(IsPlayerInRangeOfPoint(playerid,4,vx,vy,vz)) //Ist der Spieler in der nähe von irgendeinem Fahrzeug... Macht er das gleiche wie oben
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective); //Siehe Oben
if(doors == 1) //Siehe Oben
{
SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective); //Siehe Oben
GameTextForPlayer(playerid,"~w~Fahrzeug ~g~aufgeschlossen",1000,6);
}
else //Siehe Oben
{
SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective); //Siehe Oben
GameTextForPlayer(playerid,"~w~Fahrzeug ~r~abgeschlossen",1000,6);
}
}
}
}
}
Das war es
Nur eines musst du wissen:
Das kann jetzt jeder...
Also jeder kann ein Fahrzeug auf & abschließen... -
breadfish.de
Hat das Thema geschlossen.