/goto mit Auto als Fahrer und Beifahrer

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
  • Hey ich weiß nicht wie ich das anstellen soll, dass man als Beifahrer auch das Fahrzeug mitportet. Zurzeit wird man ja auf den Fahrersitz gesetzt.


    ocmd:goto(playerid,params[])
    {
    new pID,Float:X,Float:Y,Float:Z,n1[128],n2[128];
    new vID = GetPlayerVehicleID(playerid);
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, "Dein Adminlevel reicht für den Befehl nicht aus!");
    if(sscanf(params, "i", pID)) return SendClientMessage(playerid, GRAU, "Verwende: /goto {FF9E00}<Spieler-ID>");
    GetPlayerPos(pID,X,Y,Z);
    SetVehiclePos(vID,X + 2.0,Y,Z);
    SetPlayerPos(playerid,X + 2.0,Y,Z);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
    PutPlayerInVehicle(playerid,vID,0);
    format(n1,sizeof(n1), "Du hast dich zu %s teleportiert.", SpielerName(pID));
    SendClientMessage(playerid, DGRUEN, n1);
    format(n2,sizeof(n2), "%s hat sich zu dir teleportiert.", SpielerName(playerid));
    SendClientMessage(pID, DGRUEN, n2);
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Du musst abfragen, ob der Spieler als Beifahrer in einem Auto sitzt und gegebenenfalls das Auto mitporten und den Spieler wieder auf den Beifahrer sitz packen.


    //EDIT:

    ocmd:goto(playerid,params[])
    {
    if(sInfo[playerid][eingeloggt]==0) return SendClientMessage(playerid,FARBE_WEISS,"Du musst eingeloggt sein.");
    if(!isAdmin(playerid,4)) return 1;
    new pID,string[128],Float:x,Float:y,Float:z,int,world;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_ROT,"BEFEHL: /goto [ID]");
    if(!IsPlayerConnected(pID))return 1;
    GetPlayerPos(pID,x,y,z);
    world = GetPlayerVirtualWorld(pID);
    int = GetPlayerInterior(pID);
    SetPlayerVirtualWorld(playerid,world);
    SetPlayerInterior(playerid,int);
    SetPlayerPos(playerid,x,y,z);
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
    {
    new VID = GetPlayerVehicleID(playerid);
    SetVehiclePos(VID,x,y,z);
    PutPlayerInVehicle(playerid,VID,0);
    ]
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
    {
    new sitz = GetPlayerState(playerid);
    new VID = GetPlayerVehicleID(playerid);
    SetVehiclePos(VID,x,y,z);
    PutPlayerInVehicle(playerid,VID,sitz);
    ]
    }
    format(string,sizeof(string),"Du hast dich zu %s geportet.",getPlayerName(pID));
    SendClientMessage(playerid,FARBE_TUERKIS,string);
    format(string,sizeof(string),"Admin %s hat sich zu dir geportet.",getPlayerName(playerid));
    SendClientMessage(pID,FARBE_TUERKIS,string);
    return 1;
    }

    Mit freundlichen Grüßen!
    MoritzF


    2 Mal editiert, zuletzt von MoritzF ()

  • Ja das weiß ich ja ABER ich habs nicht hinbekommen. Ich habs schon probiert mit:


    pState = GetPlayerState(playerid)


    oder muss ich das SO machen und ggf. else if machen?


    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)



    //EDIT:
    Funktioniert aber nicht der stellt den Spieler dann auf das Dach.

    Mit freundlichen Grüßen,
    Derakar

    Einmal editiert, zuletzt von Derakar ()

  • Nein das war nicht der Fehler. Hier auf für die Nachwelt: :rolleyes:


    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER){
    new sitz = GetPlayerVehicleSeat(playerid); // Hier war der "Fehler" nicht GetPlayerState() sondern das!
    SetVehiclePos(vID,X + 2.0,Y,Z);
    PutPlayerInVehicle(playerid,vID,sitz);
    }

    Mit freundlichen Grüßen,
    Derakar

  • if(IsPlayerInAnyVehicle(playerid))
    {
    new seatid = GetPlayerVehicleSeat(playerid);
    SetPlayerPosEx(playerid,x,y + 4,z);
    SetVehiclePosEx(GetPlayerVehicleID(playerid),x,y + 4,z);
    PutPlayerInVehicleEx(playerid,GetPlayerVehicleID(playerid),seatid);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
    LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(pID));
    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(pID));
    format(string,sizeof(string),"%s hat sich zu dir geportet.",SpielerName(playerid));
    SendClientMessage(pID,GELB,string);
    format(string,sizeof(string),"Du hast dich zu %s geportet.",SpielerName(pID));
    SendClientMessage(playerid,GELB,string);
    }
    else
    {
    SetPlayerPosEx(playerid,x,y + 1,z);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
    format(string,sizeof(string),"%s hat sich zu dir geportet.",SpielerName(playerid));
    SendClientMessage(pID,GELB,string);
    format(string,sizeof(string),"Du hast dich zu %s geportet.",SpielerName(pID));
    SendClientMessage(playerid,GELB,string);
    }