Car Bug

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,


    seit neuem hab ich irgentwie das Problem das paar Dinge verbuggt sind, zum Beispiel die Namen sind nichtmehr weiß sondern werden wieder bunt angezeigt, ob ich SetPlayerColor im Script habe.
    Vorher ging es ja auch.


    Jetzt zB. hab ich das Problem:


    Unter OnPlayerEnterVehicle hab ich die Abfrage:


    if(!ispassenger)
    {
    for(new i=0; i<sizeof(SEKCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==SEKCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 2)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }
    else if(!ispassenger)
    {
    for(new i=0; i<sizeof(OAmtCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==OAmtCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 1)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }
    else if(!ispassenger)
    {
    for(new i=0; i<sizeof(FSCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==FSCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 3)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }


    Ich kann aber nicht in die Fahrschulautos einsteigen auch wenn ich in der Frak bin, sondern nur wenn ich in der Fraktion 2 bin die beim ersten mal abgefragt wird.
    Ebenso bei den Admincars, die diese Abfragen überhaupt nicht betrifft.


    Ich versteht das net.


    Danke schonmal für alle hilfreichen Antworten


    - Tomsen


    //edit: Okay, das mit den Namen und anderen Sachen ist geklärt. Lag daran das ich gestern 2 neue Maps als Filterscripts reingemacht habe.
    Sind 4 FS zu viel? Ich tu so die Maps einbinden, damit ich sie nicht ins Script knallen muss.
    Oder funktioniert mein Streamer nicht richtig das er überlastet wird?



    3 Mal editiert, zuletzt von Tomsen ()

  • Du kannst maximal 16 Filterscripts verwenden. Die Anzahl spielt keine Rolle. Trotzdem würde ich Maps nicht gerade über Filterscripts, sondern über Includes laden.


    Zum Problem: Das was du vorhast, wird in OnPlayerEnterVehicle sehr oft nicht funktionieren, da OnPlayerEnterVehicle() ausgeführt wird, wenn du "Einsteigen" drückst, und nicht wenn du dich im Auto befindest. Dafür müsstest du OnPlayerStateChange() verwenden. Besser wäre es, wenn du die Autos einfach für bestimmte Spieler abschließt und für manche nicht. Dabei musst du dann aber aufpassen, dass du bei einem Fraktionswechsel oder bei einem Neuspawn eines Autos die Werte wieder setzt.

  • Wie muss ich die in ein Include einbauen das es funktioniert?


    Okay danke. Es ging erst mit der dritten Abfrage nicht, wo nur 2 waren gings. ^^


    - Tomsen


    //Edit: Hab gerade gemerkt, ich hab momentan nur ein FS mit nem selbstgemappten Interior drin.
    Wenn ich filterscripts dazu schalte wie zum Beispiel Tacho oder sowas zeigts zB. den Gamemode falsch an und andere Sachen gehen aufn Script nicht 8|


    //Edit2: Ich habs jetzt so:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_ENTER_VEHICLE_DRIVER)
    {
    for(new i=0; i<sizeof(SEKCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==SEKCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 2)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }
    else if(newstate == PLAYER_STATE_ENTER_VEHICLE_DRIVER)
    {
    for(new i=0; i<sizeof(OAmtCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==OAmtCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 1)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }
    else if(newstate == PLAYER_STATE_ENTER_VEHICLE_DRIVER)
    {
    for(new i=0; i<sizeof(FSCar); i++)
    {
    if(GetPlayerVehicleID(playerid)==FSCar[i])
    {
    if(SpielerInfo[playerid][pFraktion] != 3)
    {
    SendClientMessage(playerid,rot,"Du hast keine Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    break;
    }
    }
    }
    }
    return 1;
    }


    Aber jetzt passiert garnichts. Man kann immer einsteigen.



    Einmal editiert, zuletzt von Tomsen ()

  • Also ich hatte es etwas anders gemacht und zwar:


    ganz oben irgendwo
    new fahrschulcar[4]; // währen 4 Autos (0/1/2/3)



    dann vor die einzelnen Autos
    fahrschulcar[0] = Addsta....


    und dann


    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(fahrschulcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==fahrschulcar[i])
    {
    if(GetPVarInt(playerid,"Fraktion")!=2)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist kein Mafia-Mitglied");
    }
    }
    }
    }

  • ja du hast RemovePlayerFromVehicle, deswegen kannst du auch erst abfragen wenn er drin ist, ich will aber bevor er einsteigt wissen ob er das darf, wenn nicht wird er kurz gefreezed und unfreezed.


    Dann kommt er kein Stück in das Auto rein.


    - Tomsen



    Einmal editiert, zuletzt von Tomsen ()