Ich habe ein Problem bei meinem /carlock.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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 8| :) :( 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 glaube du kennst die SetVehicleParamsEx Methode nicht richtig, du hast sie völlig falsch genutzt. keine Ahnung wo du das her hast. :wacko:


    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 war


    Das 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.

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • 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.

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • 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...