Tram nicht begehbar

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
  • Abend,
    hab mir ne Tram gespawnt. Nur kann ich da nicht einsteigen. Dann hab ich ein Taxi auf den Tramschienen gespawnt und per Script in den Zug ersetzt. Auch da kann ich nicht einsteigen. Kann jemand helfen?

  • Definiere das Fahrzeug & frag ab in welcher Distanz er zum Fahrzeug steht dann fragst du ab welche Sitze dort Frei sind & setzte ihn dementsprechend ins Fahrzeug,
    du kannst es auch mal OnPlayerEnterVehicle versuchen & ihn dann rein setzen, so ersparst du dir die Schleife

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • if(GetVehicleModel(vehicleid) == 449 && GetFreeSeatID(vehicleid)<4)PutPlayerInVehicle(playerid,vehicleid,GetFreeSeatID(vehicleid));



    stock GetFreeSeatID(vehicleid)
    {
    new seat[4];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerNPC(i) || !IsPlayerConnected(i) || GetPlayerVehicleID(i)!=vehicleid)continue;
    seat[GetPlayerVehicleSeat(i)] = 1;
    }
    return (!seat[0]) ? (0) : (!seat[1]) ? (1) : (!seat[2]) ? (2) : (!seat[3]) ? (3) : (4);
    }


    So in etwa wäre es wenn man OnPlayerEnterVehicle benutzt ansonsten könnt ihr die Distanz zum Speziellen Fahrzeug abfragen & dann handeln

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Also wenn die Trams auf den Zugschienen gespawnt werden kann ich einsteigen nur halt net auf den Tramschienen. Sollte dein Code dann auch gehen? Wenn ich nicht folgende Errors hab?:


    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(495) : error 017: undefined symbol "GetFreeSeatID"
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(495) : error 017: undefined symbol "GetFreeSeatID"
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(498 ) : error 029: invalid expression, assumed zero
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(498 ) : error 017: undefined symbol "GetFreeSeatID"
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(501) : warning 217: loose indentation
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(508 ) : warning 225: unreachable code
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(508 ) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • Dann eben so:


    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(494) : error 017: undefined symbol "GetFreeSeatID"
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(495) : error 017: undefined symbol "GetFreeSeatID"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.
    ____________________________________________________________________________


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(GetVehicleModel(vehicleid) == 449 && GetFreeSeatID(vehicleid)<4)
    PutPlayerInVehicle(playerid,vehicleid,GetFreeSeatID(vehicleid));
    return 1;
    }

  • Ich empfehle Brillen bei Vielmann xD


    stock GetFreeSeatID(vehicleid)
    {
    new seat[4];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerNPC(i) || !IsPlayerConnected(i) || GetPlayerVehicleID(i)!=vehicleid)continue;
    seat[GetPlayerVehicleSeat(i)] = 1;
    }
    return (!seat[0]) ? (0) : (!seat[1]) ? (1) : (!seat[2]) ? (2) : (!seat[3]) ? (3) : (4);
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • new Float:hpos[3];
    if(newkeys & KEY_ACTION)
    {
    for(new v = 0;v<MAX_VEHICLES;v++)
    {
    GetVehiclePos(v,hpos[0],hpos[1],hpos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,3.5,hpos[0],hpos[1],hpos[2]))continue;
    if(GetVehicleModel(v) == 449)PutPlayerInVehicle(playerid,v,0);
    }
    }


    Kannst du in OnPlayerKeyStateChange verwenden bzw. so wie du möchtest, ist jetzt nurn Beispiel

    Mfg. BlackFoX_UD_ alias [BFX]Explosion



  • OnPlayerKeyStateChange()
    {
    new Float:hpos[3];
    if(newkeys & KEY_ACTION)
    {
    for(new v = 0;v<MAX_VEHICLES;v++)
    {
    GetVehiclePos(v,hpos[0],hpos[1],hpos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,3.5,hpos[0],hpos[1],hpos[2]))continue;
    if(GetVehicleModel(v) == 449)PutPlayerInVehicle(playerid,v,0);
    }
    }
    }


    Code
    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\Grand Theft Auto San Andreas\GTA San Andreas\gamemodes\JLSv.2.pwn(757) : warning 203: symbol is never used: "OnPlayerKeyStateChange"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.

  • public OnPlayerEnterVehicle()
    {
    new vehicleid;
    new playerid;


    if(GetVehicleModel(vehicleid) == 538 && GetFreeSeatID(vehicleid)<4)PutPlayerInVehicle(playerid, vehicleid, GetFreeSeatID(vehicleid));
    return 1;
    }



    stock GetFreeSeatID(vehicleid)
    {
    new seat[4];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerNPC(i) || !IsPlayerConnected(i) || GetPlayerVehicleID(i)!=vehicleid)continue;
    seat[GetPlayerVehicleSeat(i)] = 1;
    }
    return (!seat[0]) ? (0) : (!seat[1]) ? (1) : (!seat[2]) ? (2) : (!seat[3]) ? (3) : (4);
    }
    //---------------------------------------------------------
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new Float:hpos[3];
    if(newkeys & KEY_ACTION)
    {
    for(new v = 0;v<MAX_VEHICLES;v++)
    {
    GetVehiclePos(v,hpos[0],hpos[1],hpos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,3.5,hpos[0],hpos[1],hpos[2]))continue;
    if(GetVehicleModel(v) == 538)PutPlayerInVehicle(playerid,v,0);
    }
    }
    }


    Geht immer noch nicht :(
    Könnte irgendwo was im Script sein, was blockiert, dass man in Fahrzeuge auf den Tramschienen einsteigen kann?

    Einmal editiert, zuletzt von Jens ()

  • Beitrag von luiluiboy014 ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.