Wie mache ich einen Teleport mit Auto

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
  • wie wärs mit erklärung
    if (strcmp("/meincommand", cmdtext, true, 10) == 0)//nach dem / trägst du dein befehl ein
    {
    if(IsPlayerInAnyVehicle(playerid))// hier wird gefragt ob der spieler in einem auto ist
    {
    new carid = GetPlayerVehicleID(playerid);
    SetVehiclePos(carid, 1970.8090,1625.2159,12.8489);//wenn ja wird das auto an diesen ort gebracht
    PutPlayerInVehicle(playerid,carid, 0);//und hier wird der spieler in das auto gesetzt
    }
    else//wenn der spieler in keinem auto ist
    {
    SetPlayerPos(playerid, 1970.8090,1625.2159,12.8489);//wird er hier hin gebracht
    }
    SetPlayerInterior(playerid,0);// hier wird das interior auf 0 gesetzt (die normale welt
    }
    return 1;
    }

  • if(IsPlayerInAnyVehicle(playerid))
    {
    new tpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tpcar , Position X, Position Y, Position Z);
    PutPlayerInVehicle(playerid,tpcar , 1);
    }
    else
    {
    SetPlayerPos(playerid, Position X, Position Y, Position Z);
    }
    }
    return 1;
    }

    Den Code einfach in dein Befehl.


    Um es übersichtlicher zu machen kannste anstatt Position X,Y,Z oben define machen z.B


    #define FlughavenX X
    #define FlughavenY Y
    #define FlughavenZ Z

  • was willschen du jetzt mit defines machs doch in eine float in dem befehl dan kannste die variable immer wieder neu verwenden
    //edit fehler
    //noch n fehler
    if(IsPlayerInAnyVehicle(playerid))
    {
    new tpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tpcar , Position X, Position Y, Position Z);
    PutPlayerInVehicle(playerid,tpcar , 1);
    }
    else
    {
    SetPlayerPos(playerid, Position X, Position Y, Position Z);
    }
    return 1;
    }
    so wärs richtig

  • 1. er hat gefragt wie einer aussieht
    2. deine beschreibung stimmt auch nicht ganz
    if (strcmp("/gotolv", cmdtext, true, 10) == 0)//command
    {
    if(IsPlayerInAnyVehicle(playerid))//Spieler in einem auto?
    {//ja, auto wird mit geportet und spieler ins auto gepackt
    new carid = GetPlayerVehicleID(playerid);
    SetVehiclePos(carid, 1970.8090,1625.2159,12.8489);
    PutPlayerInVehicle(playerid,carid, 0);
    }
    else
    {//nein, nur spieler wird teleportiert
    SetPlayerPos(playerid, 1970.8090,1625.2159,12.8489);
    }
    return 1;
    }


    //edit:@über mir: es war eine klammer zu viel

  • Zitat

    PutPlayerInVehicle(playerid,carid, 0);//und hier wird der spieler in das auto gesetzt

    wird gar nicht gebraucht, hab ich auch net da der spieler im fahrzeug drin ist, wird der spieler sozusagen "deaktiviert" und putplayerinvehicle ist unnütz. ^^


    einfaches beispiel:

    new spieler[MAX_PLAYERS] = 1; // Das bist du, die 1 steht dafür das du normal gehst (also nicht im auto bist)
    new auto[MAX_PLAYERS] = 0; // das ist das auto in das du einsteigen wirst... (also noch deaktiviert)
    //jetzt ein standart callback
    public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
    {
    spieler[playerid] = 0; //der spieler wird deaktiviert das heißt du gehst in den automodus
    auto[playerid] = 1; //du bist nun im auto und der automodus ist aktiviert.
    return 1;
    }
    //jetzt wenn er aussteigt
    public OnPlayerExitVehicle(playerid,vehicleid)
    {
    spieler[playerid] = 1;
    auto[playerid] = 0;
    //wieder normalzustand
    return 1;
    }
    //jetzt der befehl (ich hab ocmd)
    ocmd:gotols(playerid,params[])
    {
    if(GetPVarInt(playerid,"Adminlevel") >= 1)//ich benutz kein enum :P (das ist das gleiche wie PlayerInfo/Spieler/etc.pp.)
    {
    if(IsPlayerInAnyVehicle(playerid))// <-- das ist das gleiche wie if(auto[playerid] == 1)
    SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);//x,y,z sind die koordinaten
    else SetPlayerPos(playerid,x,y,z); // siehe oben ^^
    }
    else return SendClientMessage(playerid,rot,"Du bist nicht befugt diesen befehl zu nutzen!");
    return 1;
    }
    hoffe konnte helfen