Autoanzahl auslesen

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
  • Hab mir gerade das hier angeschaut: http://wiki.sa-mp.com/wiki/IsValidVehicle


    Ich will so ein Abfrage machen:

    new count;
    for(new i; i < F1Car[i]; i++)
    {
    if(IsValidVehicle(i)) count++;
    }
    printf("Firma 1: %i",count); //Hier soll die Anzahl der Firmenautos angegeben werden


    printf("Alle Firmenfahrzeuge: %i); //Wie mach ich das?


    Kann mir jemand meinen Fehler sagen?

  • So:

    new count;
    for(new i; i < sizeof(F1Car); i++)
    {
    if(IsValidVehicle(i)) count++;
    }
    printf("Firma 1: %i",count); //Hier soll die Anzahl der Firmenautos angegeben werden


    Was willst du denn mit dem wo "//wie mach ich das?" steht bezwecken?

  • Ich denke mal er möchte jede Firma einzeln ausgeben lassen mit ihren Fahrzeugen und einmal insgesamt.
    Also:
    Firma 1: 50 Fahrzeuge
    Firma 2: 25 Fahrzeuge
    Firma 3: 100 Fahrzeuge
    Firma 4: 10 Fahrzeuge


    Alle Firmenfahrzeuge: 185 Fahrzeuge


    Vielleicht irre ich mich auch, aber ich denke so meint er das.

  • @razkii Genau so mein ich das

    2 Mal editiert, zuletzt von Nicolas9897 ()

  • Dann so:



    new count[4];
    for(new i; i < sizeof(F1Car); i++) if(IsValidVehicle(i)) count[0]++;
    for(new i; i < sizeof(F2Car); i++) if(IsValidVehicle(i)) count[1]++;
    for(new i; i < sizeof(F3Car); i++) if(IsValidVehicle(i)) count[2]++;
    for(new i; i < sizeof(F4Car); i++) if(IsValidVehicle(i)) count[3]++;
    printf("Firma 1: %i, Firma 2: %i, Firma 3: %i, Firma 4: %i",count[0],count[1],count[2],count[3]); //Hier soll die Anzahl der Firmenautos angegeben werden
    printf("Alle Firmenfahrzeuge: %i",count[0]+count[1]+count[2]+count[3]);



    Musste natürlich ggf. noch auf deine Anzahl von Firmen anpassen.

    Einmal editiert, zuletzt von Frosty ()

  • Er macht aber den Fehler das er überall die Anzahl aller Autos anzeigt.


    Hier mal mein Autoload:

    if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }


  • if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }




    printf("---------------------");
    printf("---Firmenfahrzeuge---");
    new count[17];
    for(new i; i < sizeof(F1Car); i++) if(IsValidVehicle(i)) count[1]++;
    for(new i; i < sizeof(F2Car); i++) if(IsValidVehicle(i)) count[2]++;
    printf("Firma 1: %i\nFirma 2: %i",count[1],count[2]);
    printf("Alle Firmenfahrzeuge: %i",count[1]+count[2]]);
    printf("---------------------");

  • Das ist sehr mysteriös, bei mir funktioniert das.



    printf("---Firmenfahrzeuge---");
    new count[2];
    for(new i; i < sizeof(F1Car); i++) if(IsValidVehicle(i)) count[0]++;
    for(new i; i < sizeof(F2Car); i++) if(IsValidVehicle(i)) count[1]++;
    printf("Firma 1: %i\nFirma 2: %i",count[0],count[1]);
    printf("Alle Firmenfahrzeuge: %i",count[0]+count[1]);
    printf("---------------------");


    Schreib das mal so, das dürfte aber eigentlich nicht viel verändern.
    Zeig mal, was in der CMD steht und wie du F1Car etc. definierst.


  • new F1Car[100];
    new F2Car[100];


    Serverlog:
    [02:11:52] ---Firmenfahrzeuge---
    [02:11:52] Firma 1: 3
    Firma 2: 3
    [02:11:52] Alle Firmenfahrzeuge: 6

  • Ich habe nur 3 Fahrzeuge in der DB, 2x Firma 1 und 1x Firma 2


    Firma 1 hat 2 Fahrzeuge
    Firma 1 hat 1 Fahrzeug


  • for(new i; i < sizeof(F1Car); i++) if(IsValidVehicle(F1Car[i])) count[0]++;
    for(new i; i < sizeof(F2Car); i++) if(IsValidVehicle(F2Car[i])) count[1]++;

    versuchs mal so, wenn du den Index als FahrzeugID nimmst, hast du immer Werte zwischen 0 und sizeof(F1Car) bzw sizeof(F2Car). Das heißt Fahrzeug 1 wird z.b. in beiden Schleifen gefunden.

  • Bringt nichts
    Er ließt alle Fahrzeuge aus und sagt Firma 1 hätte 3 und Firma 2 hätte 3 obwohl es nicht so ist


  • if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    zeig mal mehr von dieser Stelle. Denke mal da stimmt was mit dem Index von F1Car bzw F2Car nicht.

  • new F1Car[100];new F2Car[100];Hab das mit dem i zum Test mal in Zahlen geändert, bringt auch nichts

  • Ohne Code kann ich dir schlecht helfen. Zeig doch mal die Funktion, in der das hier ausgeführt wird:

    ]if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }

  • public FirmenCars()
    {
    new Car,rows,fields;
    cache_get_data(rows,fields);
    if(rows)
    {
    for(new i=0; i<rows; i++)
    {
    cInfo[i][Model] = cache_get_field_content_int(i,"model",dbhandle);
    cInfo[i][gFirma] = cache_get_field_content_int(i,"firma",dbhandle);
    cInfo[i][c_x] =cache_get_field_content_float(i,"x",dbhandle);
    cInfo[i][c_y] =cache_get_field_content_float(i,"y",dbhandle);
    cInfo[i][c_z] =cache_get_field_content_float(i,"z",dbhandle);
    cInfo[i][c_r] =cache_get_field_content_float(i,"r",dbhandle);
    cInfo[i][c_1] = cache_get_field_content_int(i,"c1",dbhandle);
    cInfo[i][c_2] = cache_get_field_content_int(i,"c2",dbhandle);
    cInfo[i][kennzeichen] = cache_get_field_content_int(i,"kennzeichen",dbhandle);


    if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    new string[128];
    format(string,sizeof(string),"F1-%i",cInfo[i][kennzeichen]);
    SetVehicleNumberPlate(F1Car[i],string);
    }
    Car++;
    }
    }
    return true;
    }