OnPlayerEnterVehicle Problem..

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 Leute,


    Ich hab ein Problem mit meim OnPlayerEnterVehicle public.. Also wenn ich in ein irgendein Auto einsteige kommt immer der Error das ich meine Mission nicht gestartet habe, obwohl das eigentlich nur bei den autos kommen soll, wo eine Mission gestartet werden kann.. ich glaube irgendwo fehlt da ein return, aber ich kriegs einfach net raus. Erros hab ich keine.. Hier ist der Code:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(BMXMission == 1)
    {
    if(PlayerInfo[playerid][Mission] == 1)
    {
    if(GetPlayerVehicleID(playerid) == AnfangsBikes[1] || AnfangsBikes [2] || AnfangsBikes [0])
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Fahre nun die Checkpoints ab!");
    SetPlayerCheckpoint(playerid,1908.2137,-1372.4836,13.0799,2);
    BMXPoint = 1;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Diese Mission hast du bereits geschafft!");
    return 1;
    }
    }
    else
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(playerid,x,y,z);
    SendClientMessage(playerid,COLOR_RED,"Du hast die Mission nicht aktiviert!");
    return 1;
    }
    if(FahrschulMission == 1)
    {
    if(PlayerInfo[playerid][Mission] == 2)
    {
    if(GetPlayerVehicleID(playerid) == FahrschulAutos[0] || FahrschulAutos[1] || FahrschulAutos[2] || FahrschulAutos[3] || FahrschulAutos[4])
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Fahre nun die Checkpoints ab!");
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Der Schaden deines Autos darf nicht unter 400 liegen!");
    SetPlayerCheckpoint(playerid,1377.0875,-1646.6802,13.1235,5);
    FahrschulCheckpoints = 1;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Diese Mission hast du bereits geschafft!");
    return 1;
    }
    }
    else
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(playerid,x,y,z);
    SendClientMessage(playerid,COLOR_RED,"Du hast die Mission nicht aktiviert!");
    return 1;
    }
    return 0;
    }
    Ich bedanke mich schonma im vorraus und hoffe, dass ihr mir helfen könnt. Die sufu hab ich schon benutzt, aber nichts gefunden.


    PS: Ich bin nochn Neuling im scripten, seit net so hart zu mir, pls :D

  • Kannst du mir mal kurz verraten wie oft die Meldung "Du hast die Mission nicht aktiviert" kommt ?
    Das Problem ist, dass du abfrägst ob die globale Variable BMXMission eins ist. Wenn sie eines ist kommst du sofort in die Abfrage rein und bekommst dann im else teil die Nachricht das die Mission nicht aktiviert wurde. Genauso im zweiten Teil mit der Fahrschul-Mission.


    Meine Frage jetzt an dich: Ist es überhaupt nötig, dass du abfrägst ob die BMXMission, oder die FahrschulMission überhaupt eins ist ?
    Denn so wie ich das sehe kannst du diese Abfrage eigentlich auch getrost entfernen.

  • ya, also ich möchte das so machen, dass man die mission annehmen muss, um in die autos einzusteigen.. das nicht jeder damit fahren kann, nur die, die die mission angenommen haben
    die meldung kommt 1mal glaub ich ^^

  • Gamer, kannst du mir dann erklären, wie ich das [playerid] dahinter hänge, ohne das es errors gibt?^^ weil ic hhab das mitm playerid dahinter net gemacht weil ich da immer so 4 errors oder so bekomme :O

  • Soll BMXMission für Spieler eine Variable sein oder unabhängig von Spielern sein ?


    Var[playerid] = 1; // Setz für den Spieler mit den Namen "Var" eine Variable die auf 1 gesetzt ist.
    Var = 1; // Setz (in meinen Augen) den Server eine Variable mit den Namen "Var" auf 1.

  • also für den spieler soll das sein.


    Aber wenn ich das jezz so mache:
    if(BMXMission[playerid] == 1)


    Dann kommen diese Errors:
    C:\Users\Stefan\Desktop\WoBR\gamemodes\NeuesSelfmade.pwn(295) : error 028: invalid subscript (not an array or too many subscripts): "BMXMission"
    C:\Users\Stefan\Desktop\WoBR\gamemodes\NeuesSelfmade.pwn(295) : warning 215: expression has no effect
    C:\Users\Stefan\Desktop\WoBR\gamemodes\NeuesSelfmade.pwn(295) : error 001: expected token: ";", but found "]"
    C:\Users\Stefan\Desktop\WoBR\gamemodes\NeuesSelfmade.pwn(295) : error 029: invalid expression, assumed zero
    C:\Users\Stefan\Desktop\WoBR\gamemodes\NeuesSelfmade.pwn(295) : fatal error 107: too many error messages on one line

  • Ich hatte das so:


    new BMXMission = 0;
    oben stehn
    wenn ich das jezz so mache:
    new BMXMission[MAY_PLAYERS] = 0;
    dann kommen dort diese Errors:
    array must be indexed (variable "BMXMission")


    das musst doch auf 0 gesetzt werden am anfang oder?


    //edit: ah, das problem is jezz weg, danke :)
    jezz is nurnoch das problem mit dem einsteigen :D