Fahrzeug Öl-System erstellen ÖlArt und MaxÖl anzeigen

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,


    Habe soweit ein Öl System für Fahrzeuge erstellt. eine bestimmte Menge Öl wird abgezogen alles klappt super auch wenn der Spieler nicht im Fahrzeug ist aber das Fahrzeug an ist.


    Womit ich gerade Probleme habe ist:


    Ich will die Maximale Öl Kapazität vom Fahrzeug speichern und die Ölart.
    Am schlausten ist es wenn ich es so mache, habe ja schon was mit dem Maxtank und Tankartz:



    Dazu kriege ich ein Error wenn ich es so mache



    Code
    (143) : warning 201: redefinition of constant/macro (symbol "FT_0W01")
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Zu deinen Warning, nenn mal FT_0W01 um evt. bin mir gerade nicht sicher, sind Zahlen in Definitionen als variablen name verboten?
    Nenn es einfach mal um ohne Zahlen und schau ob der warning noch da ist, also auch die anderen definitionen um ändern FT_0W02 sowie FT_0W03


    Zu deiner Frage

    /*Wie mache ich das hier mit dem Öl damit ich den auch anzeigen kann (?) Weil woher weiß er das FT_Diesel Diesel ist (?) */


    Willst du eigene Öl Namen haben oder nur Benzin und Diesel und co.
    Falls du nur die fuelnamen nutzen willst, musst du bei definition FT_0W01 eine 0 anstatteine 4 hin machen.
    Weil in dem

    new fuelName[][16] = {
    "Diesel",//0
    "Benzin",//1
    "Kerosin",//2
    "Ethanol"//3
    };

    Zählt es von 0 an bedeutet, FT_DIESEl was als 0 definiert ist, ist in dieser list dann Dieseln (Siehe Kommentar), somit weist er das FT_DIESEL = Diesel in fuelName sein muss, würde FT_DIESEL als 1 definiert werden würde FT_DIESEL Benzin beim fuelName anzeigen.

  • Ich will eigene Öl-Namen haben also so etwas wie fuelName, nur ich kann ja nicht immer alles mit 0 -> definieren oder?
    ( damit meine ich Zeile 4-6 und unten im new oilNames muss ja das erste wieder 0 sein (?) )


    würde das so funktionieren?



    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Dann muss doch bei OilNames anstatt 16 die 6 stehen weil du nur 6 OilNames hast Oder nicht

  • Ne 16 ist die String-Länge.


    Kannst beide Array Klammern einfach leer lassen :)


    Und ja kannst auch mehrere defines machen mit anderem Namen, die den Wert 0 haben.


    Sollte also klappen.


    #Handy

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Sollte eigentlich so nicht klappen es muss ja mit 0 anfangen oder?
    Das verstehe ich ja nicht, wie sollen die beiden herausfinden welches define mit 0 zu denen gehört?

    Code
    #define FT_DIESEL  0
    #define FT_BENZIN  1
    #define FT_KEROSIN 2
    #define FT_ETHANOL 3
    #define FT_OBENZIN 0
    #define FT_ODIESEL 1
    #define FT_OETHANOL 2


    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Das passt so, das findest du ja im Code über den enum Wert heraus, ob du die Sprit Art oder die Öl Art haben willst.
    Beide müssen jeweils mit 0 beginnen, das ist richtig.


    Dann wäre der Zugriff so:
    printf("Sprit: %s / Öl: %s", fuelName[vehDefaultData[model-400][e_fuelType]], oilName[vehDefaultData[model-400][e_oilType]]);

  • Mit dem Zugriff kriege ich das hin.


    Nur:

    Code
    new vehDefaultData[][vehDefaultDataEnum] = {
    	{FT_DIESEL, 60, FT_ODIESEL, 5}/*400*/,{FT_BENZIN, 45, FT_OBENZIN 4},{FT_BENZIN, 80, FT_OBENZIN 6}/*2*/,{FT_DIESEL, 190, FT_ODIESEL 14}/*3*/,{FT_BENZIN, 55,FT_OBENZIN, 4},{FT_BENZIN, 65, FT_OBENZIN, 4},{FT_DIESEL, 340, FT_ODIESEL, 25},{FT_DIESEL, 150, FT_ODIESEL, 12}
    };

    209. ist 184.


    Code
    (183) : error 001: expected token: "}", but found "-integer value-"
    (209) : error 010: invalid function or declaration
    (4743) : warning 203: symbol is never used: "oilName"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Danke!
    System ist bugfrei und fertig, danke dir!
    Hat mich über 4 Stunden gedauert es zu machen da ich alles noch einmal machen musste egal :)

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.