Fraktionscars Laden nicht.

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
  • Guten Tag,


    ich nutze das Plugin MySQL R39-2, und irgentwie laden die Fraktionscars nicht.
    Hier meine Codes:
    public LoadFrakCars2()
    {
    mysql_function_query(dbhandle, "SELECT * FROM frakcars", true,"LoadFrakCars", "");
    return 1;
    }


    public LoadFrakCars()
    {
    for(new i=0; i<sizeof(fCar); i++)
    {
    fCar[i][fdb_id] = cache_get_field_content_int(0, "id");
    fCar[i][fModel] = cache_get_field_content_int(0, "Model");
    fCar[i][fx] = cache_get_field_content_float(0, "X");
    fCar[i][fy] = cache_get_field_content_float(0, "Y");
    fCar[i][fz] = cache_get_field_content_float(0, "Z");
    fCar[i][fr] = cache_get_field_content_float(0, "R");
    fCar[i][fc1] = cache_get_field_content_int(0, "Farbe1");
    fCar[i][fc2] = cache_get_field_content_int(0, "Farbe2");
    fCar[i][f_ID] = cache_get_field_content_int(0, "fID");
    fCar[i][fvID] = CreateVehicle(fCar[i][fModel], fCar[i][fx], fCar[i][fy], fCar[i][fz], fCar[i][fr], fCar[i][fc1], fCar[i][fc2], 0);
    }
    return 1;
    }


    public FrakCarCreated()
    {
    for(new i=0; i<sizeof(fCar); i++)
    {
    fCar[i][fdb_id] = cache_insert_id(dbhandle);

    }
    return 1;
    }


    OnGameModeInit:
    LoadFrakCars2();
    Mein Befehl:
    ocmd:createfcar(playerid, params[])
    {
    new fID, vehID, c1, c2, query[512];
    new Float:Pos[4];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetPlayerFacingAngle(playerid, Pos[3]);
    if(sscanf(params,"iiii",fID, vehID, c1, c2))return scm(playerid, COLOR_WHITE, "Nutzung: /createfcar [Fraktions-ID] [Fahrzeug-ID] [Farbe1] [Farbe2]");
    format(query, sizeof(query), "INSERT INTO frakcars(Model,X,Y,Z,R,Farbe1,Farbe2,fID) VALUES ('%i','%f','%f','%f','%f','%i','%i','%i')", vehID, Pos[0], Pos[1], Pos[2], Pos[3], c1, c2, fID);
    mysql_function_query(dbhandle, query, true, "FrakCarCreated", "");
    new car = CreateVehicle(vehID, Pos[0], Pos[1], Pos[2], Pos[3], c1, c2, 0);
    PutPlayerInVehicle(playerid, car, 0);
    return 1;
    }


    Sorry für so wenig Text bin seit 03:00 UHR wach.


    Lg,
    Skoam

  • mysql_function_query(dbhandle, "SELECT * FROM frakcars", true,"LoadFrakCars", ""); //OnGameModeInit


    public LoadFrakCars()
    {
    for(new i=0; i<sizeof(fCar); i++)
    {
    if(fCar[i][fvID] > 0)continue;
    fCar[i][fdb_id] = cache_get_field_content_int(0, "id");
    fCar[i][fModel] = cache_get_field_content_int(0, "Model");
    fCar[i][fx] = cache_get_field_content_float(0, "X");
    fCar[i][fy] = cache_get_field_content_float(0, "Y");
    fCar[i][fz] = cache_get_field_content_float(0, "Z");
    fCar[i][fr] = cache_get_field_content_float(0, "R");
    fCar[i][fc1] = cache_get_field_content_int(0, "Farbe1");
    fCar[i][fc2] = cache_get_field_content_int(0, "Farbe2");
    fCar[i][f_ID] = cache_get_field_content_int(0, "fID");
    fCar[i][fvID] = CreateVehicle(fCar[i][fModel], fCar[i][fx], fCar[i][fy], fCar[i][fz], fCar[i][fr], fCar[i][fc1], fCar[i][fc2], 0);
    }
    return 1;
    }


    ocmd:createfcar(playerid, params[])
    {
    new fID, vehID, c1, c2, query[512];
    new Float:Pos[4];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetPlayerFacingAngle(playerid, Pos[3]);
    if(sscanf(params,"iiii",fID, vehID, c1, c2))return scm(playerid, COLOR_WHITE, "Nutzung: /createfcar [Fraktions-ID] [Fahrzeug-ID] [Farbe1] [Farbe2]");
    format(query, sizeof(query), "INSERT INTO frakcars(Model,X,Y,Z,R,Farbe1,Farbe2,fID) VALUES ('%i','%f','%f','%f','%f','%i','%i','%i')", vehID, Pos[0], Pos[1], Pos[2], Pos[3], c1, c2, fID);
    mysql_function_query(dbhandle, query, true, "FrakCarCreated", "");
    for(new i;i<sizeof fCar;i++)
    {
    if(fCar[i][fvID] > 0)continue;
    fCar[i][fvID] = CreateVehicle(vehID,Pos[0],Pos[1],Pos[2],Pos[3],c1,c2,-1);
    PutPlayerInVehicle(playerid, fCar[i][fvID], 0);
    return 1;
    }
    return 1;
    }
    Erst einmal schreibst du den Code bitte so.


    Wenn das immer noch nicht klappen sollte, dann schalte bitte die MySQL-Log an.
    Tipps: Scripting-Probleme richtig erklären => 1.4

  • Beitrag von Skoam ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Wenn das immer noch nicht klappen sollte, dann schalte bitte die MySQL-Log an.

    ES geht immer noch nicht. Ein Teil der Mysql-Log (Linux von Putty kopiert)



    Hoffe ihr könnt mir helfen.


    Lg,
    Skoam

  • public LoadFrakCars()
    {
    new data[2];
    cache_get_data(data[0],data[1],dbhandle);
    if(!data[0])return 1;
    for(new i=0; i<sizeof(fCar); i++)
    {
    if(fCar[i][fvID] > 0)continue;
    fCar[i][fdb_id] = cache_get_field_content_int(0, "id");
    fCar[i][fModel] = cache_get_field_content_int(0, "Model");
    fCar[i][fx] = cache_get_field_content_float(0, "X");
    fCar[i][fy] = cache_get_field_content_float(0, "Y");
    fCar[i][fz] = cache_get_field_content_float(0, "Z");
    fCar[i][fr] = cache_get_field_content_float(0, "R");
    fCar[i][fc1] = cache_get_field_content_int(0, "Farbe1");
    fCar[i][fc2] = cache_get_field_content_int(0, "Farbe2");
    fCar[i][f_ID] = cache_get_field_content_int(0, "fID");
    fCar[i][fvID] = CreateVehicle(fCar[i][fModel], fCar[i][fx], fCar[i][fy], fCar[i][fz], fCar[i][fr], fCar[i][fc1], fCar[i][fc2], 0);
    }
    return 1;
    }
    Und so?

  • Wird auch nicht funktionieren.
    Bei cache_get_field_content_int und cache_get_field_content_float ist jeweils die falsche Zeile angegeben (immer 0).


    Zitat

    for(new i=0; i<sizeof(fCar); i++)


    Das würde ich so nicht machen. Mit data[0] hast du in dem fall doch die Anzahl an Zeilen und gehst die durch. Natürlich muss darauf geachtet werden, dass dann der Laufindex (i) niemals größer als sizeof(fCar) wird.

  • Ah stimmt, aber so sollte es eigentlich funktionieren, oder? Goldkiller:
    public LoadFrakCars()
    {
    new data[2],id;
    cache_get_data(data[0],data[1],dbhandle);
    if(!data[0])return 1;
    for(new i=0; i<data[0]; i++)
    {
    id = getFreeFrakID();
    if(id == -1)return 1;
    fCar[id][fdb_id] = cache_get_field_content_int(i, "id");
    fCar[id][fModel] = cache_get_field_content_int(i, "Model");
    fCar[id][fx] = cache_get_field_content_float(i, "X");
    fCar[id][fy] = cache_get_field_content_float(i, "Y");
    fCar[id][fz] = cache_get_field_content_float(i, "Z");
    fCar[id][fr] = cache_get_field_content_float(i, "R");
    fCar[id][fc1] = cache_get_field_content_int(i, "Farbe1");
    fCar[id][fc2] = cache_get_field_content_int(i, "Farbe2");
    fCar[id][f_ID] = cache_get_field_content_int(i, "fID");
    fCar[id][fvID] = CreateVehicle(fCar[id][fModel], fCar[id][fx], fCar[id][fy], fCar[id][fz], fCar[id][fr], fCar[id][fc1], fCar[id][fc2], 0);
    }
    return 1;
    }


    getFreeFrakID()
    {
    for(new i;i<sizeof fCar;i++)
    {
    if(fCar[i][fvID] == 0)return i;
    }
    return -1;
    }

    Einmal editiert, zuletzt von AirM4X ()

  • Habe es jetzt so eingefügt, trotzdem ladet es nicht. Noch eine Lösung wie man es machen könnte.


    Liebe Grüße,
    Skoam

  • Zumindest ist bei getFreeFrakID noch ein Fehler:


    Habe ich gemacht trotzdem ladet kein einziges Auto.
    Hoffe es gibt eine Lösung die auch funktioniert :(


    Lg,
    Skoam

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Skoam
    Debugge mal das Komplette Teil, dann teile uns mit was in der Server.log steht!


    mfg :thumbup:

    Ich habe es mit printf gemacht nur in der Konsole server_log.txt steht nix.
    Nur das der Server erfolgreich geladen wurde mehr nicht.
    Hier:


    Mein Code derzeit:
    public LoadFrakCars()
    {
    new data[2],id;
    cache_get_data(data[0],data[1],dbhandle);
    if(!data[0])return 1;
    for(new i=0; i<data[0]; i++)
    {
    id = getFreeFrakID();
    if(id == -1)return 1;
    fCar[id][fdb_id] = cache_get_field_content_int(i, "id");
    fCar[id][fModel] = cache_get_field_content_int(i, "Model");
    fCar[id][fx] = cache_get_field_content_float(i, "X");
    fCar[id][fy] = cache_get_field_content_float(i, "Y");
    fCar[id][fz] = cache_get_field_content_float(i, "Z");
    fCar[id][fr] = cache_get_field_content_float(i, "R");
    fCar[id][fc1] = cache_get_field_content_int(i, "Farbe1");
    fCar[id][fc2] = cache_get_field_content_int(i, "Farbe2");
    fCar[id][f_ID] = cache_get_field_content_int(i, "fID");
    fCar[id][fvID] = CreateVehicle(fCar[id][fModel], fCar[id][fx], fCar[id][fy], fCar[id][fz], fCar[id][fr], fCar[id][fc1], fCar[id][fc2], 0);
    printf("%i FCAR: %i, %f, %f, %f, %f, %i, %i", fCar[id][fdb_id], fCar[id][fModel], fCar[id][fx], fCar[id][fy], fCar[id][fz], fCar[id][fr], fCar[id][fc1], fCar[id][fc2]);
    }
    return 1;
    }


    getFreeFrakID()
    {
    for(new i;i<sizeof(fCar);i++)
    {
    if(fCar[i][fvID] == 0)return i;
    }
    return -1;
    }


    Hoffe ihr könnt mir Lösungen geben.
    Liebe Grüße,
    Skoam

  • Das reicht aber nicht wie du siehst.


    public LoadFrakCars()
    {
    //hier debuggen
    new data[2],id;
    cache_get_data(data[0],data[1],dbhandle);
    //hier debuggen mit data Werten
    if(!data[0])return 1;
    for(new i=0; i<data[0]; i++)
    {
    //hier debuggen mit i
    id = getFreeFrakID();
    //hier debuggen mit id
    if(id == -1)return 1;
    //hier debuggen
    fCar[id][fdb_id] = cache_get_field_content_int(i, "id");
    fCar[id][fModel] = cache_get_field_content_int(i, "Model");
    fCar[id][fx] = cache_get_field_content_float(i, "X");
    fCar[id][fy] = cache_get_field_content_float(i, "Y");
    fCar[id][fz] = cache_get_field_content_float(i, "Z");
    fCar[id][fr] = cache_get_field_content_float(i, "R");
    fCar[id][fc1] = cache_get_field_content_int(i, "Farbe1");
    fCar[id][fc2] = cache_get_field_content_int(i, "Farbe2");
    fCar[id][f_ID] = cache_get_field_content_int(i, "fID");
    fCar[id][fvID] = CreateVehicle(fCar[id][fModel], fCar[id][fx], fCar[id][fy], fCar[id][fz], fCar[id][fr], fCar[id][fc1], fCar[id][fc2], 0);
    printf("%i FCAR: %i, %f, %f, %f, %f, %i, %i", fCar[id][fdb_id], fCar[id][fModel], fCar[id][fx], fCar[id][fy], fCar[id][fz], fCar[id][fr], fCar[id][fc1], fCar[id][fc2]);
    }
    return 1;
    }
    Bei getFreeFrakID könnte man auch so debuggen.

  • Beitrag von Skoam ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • An alle Danke, habe nun die Lösung selber herausgefunden.
    undswar war es so:

    Spoiler anzeigen

    public OnGameModeInit()
    {
    LoadFCars();
    SetGameModeText("German");
    AddPlayerClass(0, 1956.7477,-2183.6536,13.5469, 269.1425, 0, 0, 0, 0, 0, 0);
    dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
    }

    Und nun habe ich dieses LoadFCars(); an die Letzte Zeile vom OnGameModeInit gemacht und nun funktionierte es.


    Mit freundlichen Grüßen,
    Skoam

  • Ich finde es wirklich gut, dass du die Lösung selbst gefunden hast. Besser ist sogar noch, dass du die Lösung mitgeteilt hast und somit eventuell anderen Usern hilfst. Zwar könntest du das Thema noch als Erledigt markieren, ist aber nur nebensache.
    Das du deine Lösung mitgeteilt hast ist in jedem Fall sehr gut. So sollten es viel mehr User tun :).