Vorhandenes Fahrzeugsystem mit Carkeys + Garagen verbinden

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
  • Huhu,
    ich habe gestern ein Fahrzeugsystem erstellt. Die Werte(Tuning, VehicleID etc.) der Fahrzeuge werden in einem enum(carsInfo) gespeichert, aufrufen kann man sie über ( new cInfo[MAX_VEHICLES][carsInfo]; ).
    Aktuell werden alle Fahrzeuge, die der einzelne Spieler erstellt hat einfach beim Login für ihn erstellt, können getuned und dann so beim Disconnect wieder gespeichert werden.
    Jobfahrzeuge werden beim Serverstart gespawnt, Crew-/Fraktionsfahrzeuge nur, sobald sich das erste Mitglied einer solchen Crew/Fraktion einloggt.



    Ich möchte dazu jetzt noch Carkeysystem erstellen, das sowohl für Fraktionen als auch für Crews und für den Spieler selbst funktionieren soll.
    Hierbei soll man jedem Spieler, jeder Crew und jeder Fraktion im nachhinein einzeln eine maximale Anzahl an Carkeys zuweisen können.
    Auf jedem Carkey, den ein Spieler/Frak/Crew besitzt, wird eine Unique-ID(in der ganzen Fahrzeugtabelle in MySQL gibt es diese nur 1x) des Fahrzeugs gespeichert, wodurch man dann die dazugehörigen Fahrzeuginfos ermitteln kann.
    Hat der Spieler 6max. Carkeys, können 6 seiner Fahrzeuge gleichzeitig im Spiel als Vehicle existieren. Der rest soll in einer virtuellen Garage gespeichert sein.


    Jetzt weiß ich nur nicht so ganz, wie ich das am besten mache, dass ich eine unlimitierte Anzahl an Carkeys habe, die ich dann auch noch einem Spieler(o. Frak/Crew) zuweise(da es seine/ihre Carkeys sind) und dann auf jedem Slot die richtige UniqueID speichere. Das ganze soll später auch in MySQL gesaved und beim connect wie eben genannt neu geladen werden, sobald der spieler sich einloggt.



    Ich habe jetzt schon relativ viel dazu gegooglet aber nichts davon hat mir wirklich weitergeholfen.
    Wär cool, wenn sich jemand die Zeit nimmt mir damit zu helfen oder mir einen sinnvollen Ansatz, Start gibt.
    Wenn mir sogar jemand direkt per Teamspeak o.ä. damit helfen möchte, bin ich gern dazu bereit, obwohl das etwas viel verlangt ist. ^^


    Falls weitere Fragen zum bereits vorhandenen / geplanten bestehen, beantworte ich diese. Ich hoffe jedoch, das man einigermaßen versteht, was ich vorhabe.
    :)

    MfG. Adrian

  • Ja mit der Tabelle hatte ich das so vor type = (1-3 bzw. spieler,frak,crew) | owner = uniqueid des Spielers/Frak/Crew | KeySlot(da man ja mehrere Slots hat) | UniqueID des Fahrzeugs



    Mein Problem ist eher das Array, wie kriege ich das hin, dass ich das alles nach Typ + Owner und dann noch nach Carkey abfragen kann ?


    Habe mittlerweile herausgefunden, dass 4D Arrays nicht funktionieren. Wie könnte ich das ganze anders lösen ?



    //e: Ich benötige hierbei immernoch Hilfe. Um das ganze mal sehr kurz zu beschreiben:


    Zitat von -

    Ich habe bereits ein Fahrzeugsystem, dass Fahrzeuge speichert, lädt und wieder löschen kann

    Zitat von -

    Dann habe ich versucht ein Carkeysystem zu erstellen, bei dem jeder Key(Schlüssel) ein Fahrzeug im Besitz managet

    Mein Problem ist, dass ich für die Carkeys ein Array habe, genauso wie für bereits erstellte Fahrzeuge. Jetzt habe ich jedoch gemerkt, dass ich am besten die Tuningwerte etc. im Carkeyarray speichere und nicht in dem vom Fahrzeug, da man über das Carkeysystem Fahrzeug speichern und laden können soll(Garagensystem) .


    Ich würde das ganze nochmal von vorne scripten, damit mich der alte kram nicht so verwirrt. Hat jemand eine Idee, wie ich die Arrays + Enum(mit den zu speichernden Daten) am besten gestalte oder welche Funktionen ich am besten nicht vergessen sollte ?

    MfG. Adrian

    Einmal editiert, zuletzt von SkeeZy ()

  • Vielleicht verstehe ich dein Anliegen nicht, aber ein 4D Array ist zu viel des Guten. Ich würde an deiner Stelle keine Assoziation zu einer spielerid o.ä. als Index verwenden, sofern dir einfach über ein Slot System Gedanken machen - so habe ich es zu mindestens sonst immer gelöst. Die Array-Größe kann dann entweder MAX_VEHICLES oder größer sein, sofern du Fahrzeuge in der Garage zerstörst.


    Unterstützend wäre dabei y_iterate von y_less. Du kannst dann per Itter_Free() dir einen freien Slot ( / Index) holen und diesen belegen. keyType kann dann z.B. KEYTYPE_SPIELER, KEYTYPE_FRAK oder KEYTYPE_CREW sein. KeyOwner kann dann, falls keytype gleich KEYTYPE_SPIELER ist die Spieler-SQLID sein, bei KEYTYPE_FRAK die FraktionsID und bei KEYTYPE_CREW die eindeutige crewid.


    Hoffe das ist verständlich und hilft dir weiter.