Problem mit Fahrzeugsystem

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
  • Morgäähnn..
    ich habe gerade mein Fahrzeugsystem angefangen und ein Autohaus erstellt. Bisher funktioniert eig. soweit alles.
    Jetzt aber, möchte ich den /lock Befehl machen, damit soll man das Auto auch von außen abschließen können, dazu bräuchte ich jedoch die ID.
    Diese könnt ich beim Autokauf zwar in die Fahrzeugdatei speichern, aber die ID ändert sich doch nach dem Restart oder nicht?


    Deshalb meine Frage: Wie finde ich die ID von meinem Fahrzeug heraus ( Wenn ich nicht drinsitze oder unbedingt danebenstehe! )


    LG,
    Key

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Als erstes musst du jedem Fahzeug das am erstellt wird eine neue ID geben, denn sonst ist es so wie du sagst, du hast kein Plan welches Fahrzeug welche Id hat.


    Ich würde das so machen:

    enum
    {
    //deine Auto daten
    fID
    }
    new bsp[MAX][enum];


    public OnGameModeInit()
    {
    for(new i;i<MAX_VEHICLES;i++)
    {
    bsp[i][fID]=CreateVehicle(...)
    return 1;
    }
    }


    dann hat jedes Fahrzeug seine eigene ID.
    Natürlich musst du vorher noch die Daten des Fahrzeugs laden ;)

  • Ja schon.. aber das Fahrzeug wird ja nicht bei OnGameModeInit erstellt, sondern beim Kaufen im Autohaus.


    Unter OnGameModeInit hab ich:

    LoadFahrzeug();


    stock LoadFahrzeug(playerid)
    {
    new Float:x,Float:y,Float:z,Float:angle, id;
    new Fahrzeugdatei[64];
    format(Fahrzeugdatei,sizeof(Fahrzeugdatei),"/Fahrzeuge/%s",SpielerName(playerid));
    id = dini_Int(Fahrzeugdatei,"ID");
    x = dini_Float(Fahrzeugdatei,"PositionX");
    y = dini_Float(Fahrzeugdatei,"PositionY");
    z = dini_Float(Fahrzeugdatei,"PositionZ");
    angle = dini_Int(Fahrzeugdatei,"PositionAngle");
    CreateVehicle(id,x,y,z,angle,0,0,-1000);
    return 1;
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Benutzt du kein Enum ? Weil das wäre viel einfacher bei Vielen Fahrzeugen...



    Zitat

    angle = dini_Int(Fahrzeugdatei,"PositionAngle");
    CreateVehicle(id,x,y,z,angle,0,0,-1000);
    return 1;

    hier solltest du dem Fahrzeug noch eine Globale Variable geben, egal ob Enum oder nicht.
    genauso wie beim KAuf eines Autos:


    ohne Enum:
    ganz oben eine Variable zb new carID[MAX_VEHICLES]



    carID[id]=CreateVehicle(id,x,y,z,angle,0,0,-1000);



    dabei ist das [id] von deiner Variable ;)

  • Doch, doch ich benutz ein Enum.


    meinst du so?:

    stock LoadFahrzeug(playerid,vehicleid)
    {
    new Float:x,Float:y,Float:z,Float:angle, id;
    new Fahrzeugdatei[64];
    format(Fahrzeugdatei,sizeof(Fahrzeugdatei),"/Fahrzeuge/%s",SpielerName(playerid));
    id = dini_Int(Fahrzeugdatei,"ID");
    x = dini_Float(Fahrzeugdatei,"PositionX");
    y = dini_Float(Fahrzeugdatei,"PositionY");
    z = dini_Float(Fahrzeugdatei,"PositionZ");
    angle = dini_Int(Fahrzeugdatei,"PositionAngle");
    AutoInfo[vehicleid][fID]=CreateVehicle(id,x,y,z,angle,0,0,-1000);
    return 1;
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • ja fast :D


    das Problem wird sein, das du vehicleid nicht herraus bekommen wirst.
    mach es am besten unter onGameModeInit so:



    public OnGameModeInit()
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    for(new f;f<MAX_VEHICLES;f++)
    {
    LoadFahrzeug(i,f);
    }
    }
    return 1;
    }


    ich hoffe das stimmt so denn, dass da noch der Spielername mit drin ist bringt mich um die Uhrzeit ausm Konzept :D

  • Wenn ich das drin hab, startet mein Server nicht mehr :D.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.