Fahrzeugsystem für alle Typen(Spieler, Admin, Frak etc.)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fahrzeugsystem für alle Typen(Spieler, Admin, Frak etc.)

    Huhu,
    ich stehe aktuell vor dem Problem, dass ich für meinen Server ein Fahrzeugsystem scripten möchte.
    An sich wäre das kein Problem für mich, jedoch würde ich gerne ein System für alle Fahrzeugtypen scripten, sodass ich nicht für folgende Fahrzeug auf dem Server je ein eigenes System oder
    zumindest einzelne Funktionen scripten muss:
    -Spielerfahrzeuge
    -Adminfahrzeuge
    -Crewfahrzeuge
    -Fraktionsfahrzeuge
    -ggf. Jobfahrzeuge

    standardmäßig würde man ja soweit ich weiß
    bei Fraktionsfahrzeugen...
    FCarInfo[MAX_FRAKS][MAX_FRAK_CARKEYS][Enum],

    bei Spielerfahrzeugen...
    PCarInfo[MAX_PLAYERS][MAX_PLAYER_CARKEYS][Enum]


    und und und machen.

    Gibt es eine Möglichkeit, dass ganze irgendwie zusammenzufassen, sodass man nicht in MAX_PLAYERS, MAX_FRAKS etc. bei der Variable unterscheiden muss.
    Ansonsten müsste man doch auch die ganzen Enums separat scripten.

    auf MAX_VEHICLES würde ich ungerne zurückgreifen, da man damit ja sicherlich nur schwer Carkeys zuweisen kann :D


    Ich danke allen die mir hiermit irgendwie zu helfen versuchen schonmal im Voraus.
    ;)
    MfG. Adrian
  • JacLos schrieb:

    Mach doch einfach ein allgemeines Fahrzeugenum und nimm als Variable noch "FahrzeugArt" dazu halt ob es Spieler,Admin,Crewfahrzeug usw ist.
    Und wie prüfe ich dann wem das Fahrzeug gehört bzw. obs einer Crew, einem Spieler oder einer Frak gehört, wenn die FrakIDs, CrewIDs und SpielerIDs bis zu einem bestimmten Wert gleich sein können? Ich hatte diesen Gedanken ja auch schon. Man könnte auch jeder Crew, Frak und Spieler eine OwningID zuweisen, die sich nicht mit den anderen überlappt.
    MfG. Adrian
  • Die Frage ist eher, warum du nicht mehrere Enums haben willst?
    Sonst besteht eben das Problem, dass du für alle Typen 1 zu 1 genau das gleiche Enum verwenden musst, wo dann wahrscheinlich immer nur ein Teil der Variablen benutzt wird.
    Benutz doch einfach mehrere Enums, das hat keine Nachteile m.M.n, sondern nur Vorteile.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.

    Konversation: Konversation starten
    Discord: LeonMrBonnie#2251

  • SkeeZy schrieb:

    Und wie prüfe ich dann wem das Fahrzeug gehört bzw. obs einer Crew, einem Spieler oder einer Frak gehört, wenn die FrakIDs, CrewIDs und SpielerIDs bis zu einem bestimmten Wert gleich sein können? Ich hatte diesen Gedanken ja auch schon. Man könnte auch jeder Crew, Frak und Spieler eine OwningID zuweisen, die sich nicht mit den anderen überlappt.
    Ist doch mit der Variable "FahrzeugArt" easy möglich.

    Wenn die Fahrzeugart = Spielerfahrzeug ist, fragst du nach dem Spielernamen, wenn die Fahrzeugart Crew ist fragst du ab ob der Crewname in dem sich der Spieler befindet mit dem, der eingetragen ist übereinstimmt.

    Du kannst ja alles mögliche in ein Enum reinschreiben und es erst abfragen wenn es gebraucht wird und es durch die FahrzeugArt trennen.
    Programmieren: 1% Programmieren, 99% Bugs Fixen
  • Joa, darüber habe ich auch schon nachgedacht nur wie regle ich dass dann, dass man etwas für einen bestimmten Carkeyslot einer bestimmten fahrzeugart setze.

    cInfo[MAX_FAHRZEUGART][MAX_CARKEYS][EnumInfo]

    Problem hierbei: wie ordne ich die Art einer Frak zu?
    Oder geht das auch mit noch einem Array:

    cInfo[MAX_FAHRZEUGART][OWNER][MAX_CARKEYS][EnumInfo]
    MfG. Adrian
  • Habe es jetzt wie folgt vor.
    Darf man in zwei Variablen auf die Enums zugreifen, wie hier?
    So würde ich mir das doppelte schreiben der Enums sparen und kann einfach den unterschied anhand der variablen setzen:

    C-Quellcode

    1. enum CarInfo
    2. {
    3. cID,
    4. cDB,
    5. cCartype,
    6. cOwner,
    7. cAllowed,
    8. cModel,
    9. Float:c_x,
    10. Float:c_y,
    11. Float:c_z,
    12. Float:c_r,
    13. cPlate[32],
    14. cFuel,
    15. cFuelmax,
    16. cKilometer,
    17. cTurbo,
    18. cColor1,
    19. cColor2,
    20. cWheels,
    21. cNitro,
    22. cPaintjob,
    23. cSpoiler,
    24. cExhaust,
    25. cSideskirt,
    26. cRooftop,
    27. cEnginetop,
    28. cStereo,
    29. cHydraulics,
    30. cRearbump,
    31. cFrontbump
    32. }
    33. new pcInfo[MAX_PLAYERS][MAX_CARKEYS][CarInfo];
    34. new ccInfo[MAX_PLAYERS][MAX_CREW_CARKEYS][CarInfo];
    Alles anzeigen


    MfG. Adrian