VehicleID erkennen.

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,


    ich möchte wen ein Spieler die "Enter/F" Taste zum betreten eines Fahrzegus drückt die Fahrzeug ID herrausfinden
    und dann das hier machen.
    SetVehicleParamsForPlayer(SJobCar, playerid, 0, 1);
    da ich aber immer diesen Error erhalte
    C:\Users\Test\Desktop\0.3e\gamemodes\Backup\Untitled.pwn(4541) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.
    Frag ich mich was ich anstatt "SJobCar" schreiben soll? (schließlich ist der Spieler noch keinem Fahrzeug)


    MFG

  • Hmm, ich habs jetzt so getestet und der Spieler steigt ins Auto ein (ich möchte aber nicht das der Spieler ins Auto einsteigt ^^)
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(!PlayerJob(playerid,5)){
    for(new pv=0; pv <sizeof(SJobCar); pv++){
    SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
    if(newcar==SJobCar[pv]){
    //SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    }
    }
    }
    return 1;
    }


    MFG


  • public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new pv = 0; pv < sizeof(SJobCar); pv++)
    {
    if(vehicleid == SJobCar[pv] && !PlayerJob(playerid,5))
    {
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    }
    }
    return 1;
    }

  • Danke :)
    also es funktioniert jedoch wen ich in ein Auto steigen will kann ich manschmal rein (werde aber dann wieder ejectet) aber manschmal halt nicht xD? liegts vlt am HomePC (meiner ist nicht gerade gut xd)


    #edit
    hatte noch den alten code bei "OnPlayerStateChange" drinne D: also werde dochnicht ausm Fahrzeug ejected sondern kann den Motor starten und fahren.

  • Bist du dir da sicher? Denn OnPlayerEnterVehicle wird schon beim drücken der ENTER Taste aufgerufen, da ist der spieler aber noch in keinem Auto, also kann RemovePlayerFromVehicle nicht funktionieren.


    Zeig mal was du bisher an Code hast und die Funktion von PlayerJob

  • Der Public Code:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new pv = 0; pv < sizeof(SJobCar); pv++){
    if(vehicleid == SJobCar[pv] && !PlayerJob(playerid,5)){
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    TogglePlayerControllable(playerid,true);
    }
    }
    for(new pv=0; pv<sizeof(JobCar2); pv++){
    if(vehicleid==JobCar2[pv]&& !PlayerJob(playerid,6)){
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    }
    }
    for(new pv=0; pv<sizeof(JobCar); pv++){
    if(vehicleid==JobCar[pv]&& !PlayerJob(playerid,3)){
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    }
    }
    return 1;
    }


    Der "PlayerJob" stock
    stock PlayerJob(playerid,jobid)
    {
    if(SpielerInfo[playerid][pJob] == jobid)
    return 1;
    return 0;
    }


    MFG

  • Nein, den ich möchte ja das niemand das Fahrzeug fahren kann (ausser wen man Job 6 hat xD) und JobCar2
    new JobCar2[3];
    JobCar2[0]=AddStaticVehicleEx(455,835.1490,868.7791,13.4615,200.0071,-1,-1,250);//FLATBAD
    JobCar2[1]=AddStaticVehicleEx(455,842.6182,870.9421,13.7948,189.6400,-1,-1,250);//FLATBAD
    JobCar2[2]=AddStaticVehicleEx(455,849.6279,873.9910,13.7871,184.1631,-1,-1,250);//FLATBAD

  • Hab nun
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new pv = 0; pv < sizeof(SJobCar); pv++){
    //if(vehicleid == SJobCar[pv] && !PlayerJob(playerid,5)){
    if(vehicleid == SJobCar[pv]){
    SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    SendClientMessage(playerid,WEIß,"Du darfst dieses Fahrzeug nicht fahren");
    TogglePlayerControllable(playerid,true);
    }
    }[...]
    Und es wird einmal die "Message" an den User gesendet und der User kann nicht rein :)
    nun eine Frage: hat das auswirkungen auf andere Fahrzeug aufn Server?


    #edit
    *FACEPALM???*
    hab ich ja nicht drinne ich tu nur so :sleeping: