Brauche Hilfe bei Räumen betreten mit Fahrzeugen mit /Befehlen

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
  • Hallo so da ich neu bin hoffe ich das ich hier im richtigen Abteil bin fange ich mal an.Also mein Problem besteht dadrin das ich schon fertig gescriptet haben wenn ich /Einfahrt eingebe in na Garage geportet werde wo ich auch hin will aber das Problem ist das ich von überall da rein kann jz wöllte ich gerne wissen wie ich mich nur von einer bestimmten Stelle rein porten kann.


    So sieht der Befehl script bis jetzt aus:




    Ich brauch jetzt nur einen der mir sagen kann wie das funktioniert also von einer bestimmten stelle rein porten und mir den gescripteten befehl hier rein posten kann oder per pm schicken kann würde mich sehr freuen.


    PS. Sorry das es ein screen ist und nicht der code hatte da porbleme.

  • Machs ganz einfach so:


    Du gehst zu der stelle von wo der Befehl gehen soll und holst dir von da die x,y und z coordiaten(/save)


    Dann Fügst du eine if abfrage ein:


    if(IsPlayerInRangeOfPoint(playerid, x,y,z,Entfernung) bei x y z fügst du einfach die koordinaten ein die du dir gespeichert hast, fertig:D

  • if(strcmp(cmdtext,"/Einfahrt",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehid = GetPlayerVehicleID(playerid);
    SetVehiclePos(vehid,1235.5044,-1303.3871,-99.5134);
    SetVehicleZAngle(playerid,181.3850);
    LinkVehicleToInterior(playerid,0);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00FF00FF,"");
    }
    else
    {
    SetPlayerPos(playerid,1235.5044,-1303.3871,-99.5134);
    SetPlayerFacingAngle(playerid,181.3850);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00ff00ff,"");
    }
    return 1;
    }

  • if(strcmp(cmdtext,"/Einfahrt",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid, x, y, z, 5.0)//Anstatt x,y,z musst du hier die Coordinaten von dem Punkt angeben, an dem man den befehl benutzen darf.
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehid = GetPlayerVehicleID(playerid);
    SetVehiclePos(vehid,1235.5044,-1303.3871,-99.5134);
    SetVehicleZAngle(playerid,181.3850);
    LinkVehicleToInterior(playerid,0);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00FF00FF,"");
    }
    else
    {
    SetPlayerPos(playerid,1235.5044,-1303.3871,-99.5134);
    SetPlayerFacingAngle(playerid,181.3850);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00ff00ff,"");
    }
    }
    else
    {
    SendClientMessage(playerid,0x00FF00FF,"Du bist nicht am richtigen ort!");
    }
    return 1;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • OneShoot, look http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint,
    da kannste dir genau durch lesen wenn du was nicht verstehst.


    maddin, die Abfrage mit else kann man einfach direkt in eine Zeile packen,


    entweder so
    if(strcmp(cmdtext,"/Einfahrt",true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,Radius,X,Y,Z))
    {
    SendClientMessage(playerid,Farbe,"Du bist nicht am bestimmten Platz!");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehid = GetPlayerVehicleID(playerid);
    SetVehiclePos(vehid,1235.5044,-1303.3871,-99.5134);
    SetVehicleZAngle(playerid,181.3850);
    LinkVehicleToInterior(playerid,0);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00FF00FF,"");
    }
    else
    {
    SetPlayerPos(playerid,1235.5044,-1303.3871,-99.5134);
    SetPlayerFacingAngle(playerid,181.3850);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00ff00ff,"");
    }
    return 1;
    }


    oder einfacher


    if(strcmp(cmdtext,"/Einfahrt",true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,Radius,X,Y,Z)) return SendClientMessage(playerid,Farbe,"Du bist nicht am bestimmten Platz!");
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehid = GetPlayerVehicleID(playerid);
    SetVehiclePos(vehid,1235.5044,-1303.3871,-99.5134);
    SetVehicleZAngle(playerid,181.3850);
    LinkVehicleToInterior(playerid,0);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00FF00FF,"");
    }
    else
    {
    SetPlayerPos(playerid,1235.5044,-1303.3871,-99.5134);
    SetPlayerFacingAngle(playerid,181.3850);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00ff00ff,"");
    }
    return 1;
    }
    Mfg