/lock wenn der Spieler in der Nähe ist

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
  • Guten Abend, ich habe die Frage, wie der Speler das Auto entweder öffnen oder schließen kann wenn er in der Nähe eines Autos ist.


    new Lock[MAX_VEHICLES];


    ocmd:lock(playerid,params[])
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(Lock[vehicleid] == 0)
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,1,bonnet,boot,objective);
    Lock[vehicleid] = 1;
    SendClientMessage(playerid,rot,"Auto abgeschlossen");
    }
    else
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,0,bonnet,boot,objective);
    Lock[vehicleid] = 0;
    SendClientMessage(playerid,gruen,"Auto aufgeschlossen");
    }
    }
    else
    {
    SendClientMessage(playerid,rot2,"Du bist in keinem Fahrzeug!");
    }
    return 1;
    }


    MfG


    me

    Back to the roots!

  • geht nicht, da er nicht die vehiceleid erkennt


    bissl was geändert:


    ocmd:lock(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    new vehicleid = GetPlayerVehicleID(playerid);
    GetVehiclePos(vehicleid,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,2,x,y,z) || IsPlayerInAnyVehicle(playerid))
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(Schloss[vehicleid] == 0)
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,1,bonnet,boot,objective);
    Schloss[vehicleid] = 1;
    SendClientMessage(playerid,dchat,"[Auto abgeschlossen!]");
    }
    else
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,0,bonnet,boot,objective);
    Schloss[vehicleid] = 0;
    SendClientMessage(playerid,gruen3,"[Auto aufgeschlossen!]");
    }
    }
    else
    {
    SendClientMessage(playerid,hörst,"Du bist in keinem Fahrzeug!");
    }
    return 1;
    }

    Back to the roots!

    Einmal editiert, zuletzt von >> Andre << () aus folgendem Grund: .

  • stock isPlayerAtAnyCar(playerid,Float:radius)
    {
    new Float:vx,Float:vy,Float:vz;
    for(new v = 0; v <= MAX_VEHICLES; v++)
    {
    GetVehiclePos(v,vx,vy,vz);
    if(IsPlayerInRangeOfPoint(playerid,radius,vx,vy,vz)) return 1;
    }
    return 0;
    }


    Sollte helfen.

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

  • Habe so ein Lock Befehl


    meiner geht auch nicht !


    if (strcmp(cmdtext, "/lock", true) == 0) //
    {
    State=GetPlayerState(playerid);
    if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
    {
    new vid = GetPlayerVehicleID(playerid);
    if(lock[vid] == false)
    {
    new Float:X;
    new Float:Y;
    new Float:Z;
    SendClientMessage(playerid, COLOR_WHITE, "Fahrzeug abgeschlossen");
    GetPlayerPos(playerid,X,Y,Z);
    PlayerPlaySound(playerid,1056,X,Y,Z);
    new i;
    for(i=0;i<MAX_PLAYERS;i++)
    {
    if(i != playerid)
    {
    SetVehicleParamsForAll(vid, 0, 1);
    SetVehicleParamsForPlayer(vid,i, 0, 1);
    lock[vid] = true;
    }
    }
    }
    else if(lock[vid] == true)
    {
    new Float:X;
    new Float:Y;
    new Float:Z;
    SendClientMessage(playerid, COLOR_WHITE, "Fahrzeug aufgeschlossen");
    GetPlayerPos(playerid,X,Y,Z);
    PlayerPlaySound(playerid,1057,X,Y,Z);
    new i;
    for(i=0;i<MAX_PLAYERS;i++)
    {
    SetVehicleParamsForPlayer(vid,i, 0, 0);
    lock[vid] = false;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug oder nicht der Fahrer des Fahrzeuges!");
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Klappt:


    ocmd:lock(playerid,params[])
    {
    new vehicleid = isPlayerAtAnyCar(playerid,1);
    if(isPlayerAtAnyCar(playerid,1))
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(Schloss[vehicleid] == 0)
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,1,bonnet,boot,objective);
    Schloss[vehicleid] = 1;
    SendClientMessage(playerid,dchat,"[Auto abgeschlossen!]");
    }
    else
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,0,bonnet,boot,objective);
    Schloss[vehicleid] = 0;
    SendClientMessage(playerid,gruen3,"[Auto aufgeschlossen!]");
    }
    }
    else
    {
    SendClientMessage(playerid,hörst,"Du bist in keinem Fahrzeug!");
    }
    return 1;
    }

    Back to the roots!

  • prüft lediglich ob der Spieler im Auto sitzt, und ob er der Fahrer ist


    ich bin ja der fahrer steige mit F ein gebe dann Lock ein trozdem kann jeder einsteigen !

  • ich bin ja der fahrer steige mit F ein gebe dann Lock ein trozdem kann jeder einsteigen !

    dein Command ist ja auch sehr komisch und unlogisch...


    new i;
    for(i=0;i<MAX_PLAYERS;i++) //Bei Durchlauf 1 ID:0 | Durchlauf 2: ID:1 | etc.
    {
    if(i != playerid) //Wenn die jew. ID nicht die eigene ist
    {
    SetVehicleParamsForAll(vid, 0, 1); //Für ALLE Spieler zusperren
    SetVehicleParamsForPlayer(vid,i, 0, 1); //Für die jew. ID zusperren
    lock[vid] = true;
    }
    }Erkennst was daran z.B. unlogisch ist?

  • Und Was wäre jetzt hier der Fehler==??


    ocmd:lock(playerid,params[])
    {
    new vehicleid = isPlayerAtAnyCar(playerid,2.5);
    if(isPlayerAtAnyCar(playerid,2.5) || PLAYER_STATE_DRIVER)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(Schloss[vehicleid] == 0)
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,1,bonnet,boot,objective);
    Schloss[vehicleid] = 1;
    SendClientMessage(playerid,dchat,"[Auto abgeschlossen]");
    }
    else
    {
    SetVehicleParamsEx(vehicleid,engine,lights,alarm,0,bonnet,boot,objective);
    Schloss[vehicleid] = 0;
    SendClientMessage(playerid,gruen3,"[Auto aufgeschlossen]");
    }
    }
    return 1;
    }

    Back to the roots!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen