[jTuT] Fraktions-Fahrzeug-System mit MySQL R41-4

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
  • Ich habe das Tutorial für die MySQL Plugin Version R39-5 verifiziert und den Text des Tutorials entsprechend angepasst.
    Es sind keine Änderungen am Code, der dem Tutorial entnommen wurde, notwendig, wenn von R39-2 auf R39-5 aktualisiert wird.

  • Das die animation nicht gecleart wird sondern die türen richtig zu sind und er daran zieht

    Versuche es so:
    Entferne den Code von OnPlayerEnterVehicle und schreibe stattdessen bei OnVehicleStreamIn:
    //Eine Schleife durch alle Fraktions-Fahrzeuge
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    //Wenn die vehicleid die gleiche ist, wie die des Fraktions-Fahrzeugs
    if(fracVehicle[i][e_vID] == vehicleid)
    {
    //Jetzt brauchen wir die Variable, mit der Dein vorher bereits existierendes Fraktions-System arbeitet.
    //Ich nehme jetzt einfach eine Beispiel-Variable, diese musst Du selbst mit der ersetzen,
    //die Dein System verwendet.
    //Es geht um diese Variable: PlayerInfo[playerid][pFraction]
    if(PlayerInfo[playerid][pFraction] != fracVehicle[i][e_fracID])
    {
    //Wenn der Spieler nicht in der Fraktion ist, die das Fahrzeug verwenden darf,
    //dann darf er es nicht betreten.
    SetVehicleParamsForPlayer(vehicleid, playerid, 0, 1);
    }
    break; //Es gibt ja keine zwei gleichen Fahrzeuge
    }
    }

  • aslo so ?


    musste denn code mit playerinfo abändern mit != ging das nicht :D



    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fracVehicle[i][e_vID] == vehicleid)
    {
    if(SpielerInfo[playerid][pMember] == fracVehicle[i][e_fracID] || SpielerInfo[playerid][pLeader] == fracVehicle[i][e_fracID])
    {
    }
    else
    {
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    //SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Fraktion, die dieses Fahrzeug verwenden darf.");// muss mann nicht umbedingt ausgeben ;) er merkt es auch so dann ;D
    }
    break;
    }
    }
    return 1;
    }

  • Jetzt hast du ja die TogglePlayerControllable erst wieder im Code?


    So, mit deiner Abfrage:
    //Eine Schleife durch alle Fraktions-Fahrzeuge
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    //Wenn die vehicleid die gleiche ist, wie die des Fraktions-Fahrzeugs
    if(fracVehicle[i][e_vID] == vehicleid)
    {
    if(SpielerInfo[forplayerid][pMember] != fracVehicle[i][e_fracID] && SpielerInfo[forplayerid][pLeader] != fracVehicle[i][e_fracID])
    {
    //Wenn der Spieler nicht in der Fraktion ist, die das Fahrzeug verwenden darf,
    //dann darf er es nicht betreten.
    SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
    }
    break; //Es gibt ja keine zwei gleichen Fahrzeuge
    }
    }

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry () aus folgendem Grund: playerid zu forplayerid

  • ok jetzt kann man immer einsteigen also egal was man ist

    Wird der Code aufgerufen? Setze da mal einen Print hin, oder zwei.
    Alternativ kannst du die Schleife auch in einen Sekundentimer packen, um zu schauen ob es da geht.
    Ich bin kein Freund von diesen Abschließ-Funktionen, da die ziemlich schlecht funktionieren, daher weiß ich nicht, unter welchen Umständen das nicht immer klappt.



    Jeffry: was man noch machen könnte, wäre die Seat Position abfragen(Zwecks Beifahrer). Da wäre denn "OnPlayerEnterVehicle" besser.

    Die Seat Position bekommst du bei OnPlayerEnterVehicle nicht raus, du kannst nur mit "ispassenger" prüfen, ob Fahrer oder nicht.
    Könnte man natürlich machen, wenn gewünscht. Das Tutorial schließt das ja nicht aus.

  • Wird der Code aufgerufen? Setze da mal einen Print hin, oder zwei.Alternativ kannst du die Schleife auch in einen Sekundentimer packen, um zu schauen ob es da geht.
    Ich bin kein Freund von diesen Abschließ-Funktionen, da die ziemlich schlecht funktionieren, daher weiß ich nicht, unter welchen Umständen das nicht immer klappt.



    Die Seat Position bekommst du bei OnPlayerEnterVehicle nicht raus, du kannst nur mit "ispassenger" prüfen, ob Fahrer oder nicht.Könnte man natürlich machen, wenn gewünscht. Das Tutorial schließt das ja nicht aus.

    ja gut dann lasse ich es so wie voher dachte es währe kein aufwand :)


    supersystem denoch weiter so ;) bester man <3

  • Was du natürlich machen kannst ist ein direkter /lock befehl mit "SetVehicleParamsEx".


    #Edit: hab dir mal den Befehl zusammen gebaut, jedoch nicht getestet.


    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

    Einmal editiert, zuletzt von whitetiiger ()

  • supersystem denoch weiter so bester man

    Danke.
    Ich werde es am Wochenende mal bei mir ausprobieren, ob es irgendwie zum lafen zu bekommen ist.



    #Edit: hab dir mal den Befehl zusammen gebaut, jedoch nicht getestet.

    if(SpielerInfo[forplayerid][pMember] == fracVehicle[i][e_fracID] && SpielerInfo[forplayerid][pLeader] == fracVehicle[i][e_fracID])
    zu
    if(SpielerInfo[playerid][pMember] == fracVehicle[i][e_fracID] || SpielerInfo[playerid][pLeader] == fracVehicle[i][e_fracID])

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()