Fahrzeuge in MySQL Speichern

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
  • Hallo und schon wieder ich, mit paar neuen Fragen :)


    mir wurde in letzter Zeit viel geholfen, da ich momentan versuche ein ADAC(Ordnungsamt) System zu erstellen.
    Kurze Info damit jeder weiß um was es geht.
    ADAC Mitglieder haben eine Zone, in der sie alle Fahrzeuge fahren können(um sie zu Parken).
    Nun dachte ich mir, dass abgeschleppte Autos in dieser Zone auch freigekauft werden sollen.
    Da hab ich mir überlegt das so zu machen:
    Wenn ein ADAC Mitglied nun ein CopCar abschleppt und es in die Zone bringt, kann er mit /oParken [Summe][Grund] ein Fahrzeug dort parken.
    Dieses Fahrzeug soll dann nicht mehr Respawnen und auch nach einen Server restart wieder dort spawnen.(Solange man es nicht freigekauft hat)
    Steigt man in ein Fahrzeug ein um es "Freizukaufen" soll ein kleines Dialog erscheinen, mit dem Preis zum freikaufen und der Grund des abschleppens(Das kann ich noch selbst).
    So jetzt wird es kompliziert, ich habe eigentlich meine Fahrzeuge im Script fest definiert(unter OnGamemodeInit) das würde ja dann nicht mehr gehen.
    Ich will das jetzt über MySQL machen und zwar so irgendwie.
    Eine neue Tabelle mit dem Namen Fahrzeuge erstellen, darin wird gespeichert
    Fraktion(zb auf 1 für Cops)
    ModellID(560 bsp. Sultan)
    Float: PosX
    Float: PosY // Das sollen die Koord. sein wo es üblicherweiße Spawnt bsp SFPD
    Float: PosZ
    Abgeschleppt//Falls auf 1 darf es nicht mehr bei dem üblichen Spawn spawnen!
    inADAC//Das es in der ADAC Zone ist und die ADAC'ler vollsten Zugriff auf das Fahrzeug haben
    Preis
    Grund
    Float: NewX
    Float: NewY//Stattdessen soll es hier Spawnen(Da wo der ADAC /oPark gemacht hat)
    Float: NewZ


    Und wenn es freigekauft wurde, wird abgeschleppt wieder auf 0 gestellt und das Auto hat seinen üblichen Spawn.


    Jetzt meine Frage, ist das sehr aufwändig? Wenn überhaupt sogar möglich?
    Geht die Abfrage dann noch, dass nur Cops das Auto fahren dürfen?(ja oder)
    Und wie müsste ich die Fahrzeuge denn Speichern lassen? Oder gibt es Tutorials mit denen ich was anfangen könnte?


    Wäre sehr froh darüber, wenn ihr mir Tipps und Hilfe anbieten könntet :)


    Mit freundlichen Grüßen


    TV :thumbup:



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Prinzipiell machbar: Ja, natürlich! ;)


    Wie musst du vorgehen?
    Ich schreibe dir jetzt ein paar Stichpunkte auf, an denen du dich entlang hangeln kannst, das ist nicht alles was du gefragt hast, aber ich denke wenn du das erst mal gemacht hast, dann bist du ziemlich weit gekommen und weißt dann vielleicht auch schon selbst, wie du den Rest machst, bzw. kannst es von alleine gleich machen, ohne nachzudenken. Wenn nicht, dann gehen wir darauf danach ein, aber das Folgende ist sicherlich erst mal genug Arbeit. Wenn zwischendurch oder zum Ende hin Fragen auftreten, einfach nachfragen.


    1) Erstelle eine Tabelle "autos" in der du deine aufgezählten Daten als Spalten anlegst.
    2) Erstelle in deinem Code ein enum mit diesen Daten und die Variable, bzw. das enum, dazu.
    3) Erstelle eine Lade- und Speicherfunktion wie bei deinen Kassen, das Prinzip ist im Endeffekt das gleiche. Daten auslesen und Daten einlesen. Musst eben die Variablen und die Namen anpassen.
    4) Beim Laden erstellst du die Fahrzeuge dann (CreateVehicle).
    5) Bei OnPlayerEnterVehicle kannst du dann abfragen, in welches Fahrzeug der Spieler einsteigt, indem du eine Schleife durch deine Fahrzeuge machst, zum Beispiel so:
    for(new i=0; i<MAX_FRAKCARS; i++)
    {
    if(vehicleid == frakCar[i][vehID])
    {
    //Spieler versucht in das Fraktionsfahrzeug mit der Index ID "i" einzusteigen.
    if(frakCar[i][allowedFrak] == SpielerInfo[playerid][Fraktion])
    {
    //Darf rein
    }
    else
    {
    //Darf nicht rein.
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    }
    break;
    }
    }


    Das wichtigste um herauszufinden in welchem Index du arbeitest ist eben die Schleife. Auch wenn du das Fahrzeug abschleppen willst, oder so. Wenn du wissen willst, welches Fraktionsfahrzeug es ist, dann immer diese Schleife verwenden:
    for(new i=0; i<MAX_FRAKCARS; i++)
    {
    if(vehicleid == frakCar[i][vehID])
    {
    //Fahrzeug ist das frakCar "i".
    break; //Den break setzen wir, weil es ja nicht noch ein Fahrzeug mit derselben ID geben kann, daher muss die Schleife nicht weiterlaufen.
    }
    }


    Ansonsten kannst du eigentlich wie bei deinen Kassen vorgehen.


    Du musst dir nur überlegen wie du die Fahrzeuge in die Datenbank eintragen lassen willst. Da gibt es zwei Möglichkeiten:
    - Entweder du trägst es manuell ein, über dein NaviCat,
    - oder du erstellst dir einen Code wie bei dem Laden der Kassen, mit dem du prüfst ob das Fahrzeug schon in der Datenbank steht (gleiches Prinzip) und wenn nicht (ebenfalls gleiches Prinzip) dann erstellst du das Fahrzeug über den switch (wie bei den Kassen) und gibst dort die Werte an. Danach rufst du (wie bei den Kassen) das SaveFrakCars auf, falls ein neues Fahrzeug dazu kam.


    Wie du siehst, kannst du dich prinzipiell an den Kassen orientieren, da vieles gleich bzw. ähnlich ist. Natülich musst du etwas Zeit für dieses System einplanen, da es nicht in 5 Minuten geschrieben ist, aber ich denke, dessen bist du dir bewusst.

  • Danke erstmal für eine Informative und Hilfreiche Antwort! :)


    Habe jetzt mal Schritt für Schritt alles so gemacht wie du gesagt hast :)(natürlich hoffentlich richtig :thumbup: )


    Bin nun bei Schritt 3 (Save/Load)


    Den Save Stock hab ich folgt gemacht :


    stock SaveVehicles()
    {
    new string[34];
    for(new i=1; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    mysql_SetInt("Autos", "ModellID", VehInfo[i][ModellID], "ID", string);
    mysql_SetInt("Autos", "Fraktion", VehInfo[i][Fraktion], "ID", string);
    mysql_SetFloat("Autos", "PosX", VehInfo[i][PosX], "ID", string);
    mysql_SetFloat("Autos", "PosY", VehInfo[i][PosY], "ID", string);
    mysql_SetFloat("Autos", "PosZ", VehInfo[i][PosZ], "ID", string);
    mysql_SetInt("Autos", "Abgeschleppt", VehInfo[i][Abgeschleppt], "ID", string);
    mysql_SetInt("Autos", "inADAC", VehInfo[i][inADAC], "ID", string);
    mysql_SetInt("Autos", "Preis", VehInfo[i][Preis], "ID", string);
    mysql_SetString("Autos", "Grund", VehInfo[i][Grund], "ID", string);
    mysql_SetFloat("Autos", "NewX", VehInfo[i][NewX], "ID", string);
    mysql_SetFloat("Autos", "NewY", VehInfo[i][NewY], "ID", string);
    mysql_SetFloat("Autos", "NewZ", VehInfo[i][NewZ], "ID", string);

    }
    return 1;
    }


    Aber wenn ich mir jetzt den Ladestock von der Kasse anschaue verwirrt es mich etwas wegen den "Case"


    Weil es gibt ja viele viele Autos, muss ich dann jedes einzelne in ein Kase schreiben oder wie macht man das ?
    Wie definier ich das jetzt? mich verwirrt das etwas :p
    noch mal den Ladestock:
    stock LoadKassen()
    {
    new string[3], query[128], bool:added;
    for(new i=1; i < MAX_FRAKTION; i++)
    {
    format(string, sizeof string, "%d", i);
    format(KassenInfo[i][fName], 32, mysql_GetString("Kassen", "Name", "ID", string));
    if(!strlen(KassenInfo[i][fName]))
    {
    switch(i)
    {
    case 1: format(KassenInfo[i][fName], 32, "Staatskasse");
    case 2: format(KassenInfo[i][fName], 32, "Test1");
    case 3: format(KassenInfo[i][fName], 32, "Test2");
    case 4: format(KassenInfo[i][fName], 32, "Test3");
    case 5: format(KassenInfo[i][fName], 32, "ADAC");
    }
    format(query, sizeof(query), "INSERT INTO Kassen (ID) VALUES ('%d')", i);
    mysql_query(query);
    added = true;
    }
    KassenInfo[i][fGeld] = mysql_GetInt("Kassen", "Geld", "ID", string);
    KassenInfo[i][fDrogen] = mysql_GetInt("Kassen", "Drogen", "ID", string);
    KassenInfo[i][fWaffen] = mysql_GetInt("Kassen", "Waffen", "ID", string);
    }
    if(added) SaveKassen();
    return 1;
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Kommt darauf an, wie du deine Autos zur Zeit erstellst. Wenn du die aber alle Übertragen haben willst, dann musst du es so machen ja, für jedes Fahrzeug einen case.


    Übrigens, ich sehe du fängst bei den Fahrzeugen bei 1 an zu zählen:
    for(new i=1; i < MAX_VEHICLES; i++)
    Fange da bei 0 an, da es sonst zu Fehlern kommen kann. Bei den Kassen ist dies ja anders, da Fraktion 0 = Zivilist ist.


    for(new i = 0; i < MAX_VEHICLES; i++)


    Dein SaveVehicles passt, soweit ich das überblicken kann.


    Poste mal, wie du die Fahrzeuge momentan (altes System) erstellst, dann schau ich mir das mal an, vielleicht lässt sich das schnell er und einfacher lösen.

  • Ah ok, danke :)


    Meine Autos werden momentan ganz normal gespeichert..

    new PolizeiFahrzeuge[19];
    forward PolizeiFahrzeug(vehicleid);


    Ongamemodeinit


    PolizeiFahrzeuge[0] = AddStaticVehicle(597,-1595.8781,693.9594,-5.4741,180.1654,198,1); // CC1
    PolizeiFahrzeuge[1] = AddStaticVehicle(597,-1600.1920,693.9489,-5.4725,179.5844,198,1); // CC2


    Und dann halt die abfrage ob er cop ist moment


    public PolizeiFahrzeug(vehicleid)
    {
    for(new i = 0; i < sizeof(PolizeiFahrzeuge); i++)
    {
    if(vehicleid == PolizeiFahrzeuge[i])
    {
    return 1;
    }
    }
    return 0;
    }
    //___________Fahrzeug Ende___________//
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    //___________Fahrzeug Defi___________//
    if(PolizeiFahrzeug(vehicleid) && !ispassenger)
    {
    if(SpielerInfo[playerid][pTeam] != 1 && isinADAC[playerid] != 1) {
    SendClientMessage(playerid,hinweis1,"Du bist kein Beamter der Bundespolizei!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true); }
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    //____Fahrzeuge___//
    new vehicleid = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(PolizeiFahrzeug(vehicleid) && SpielerInfo[playerid][pTeam] != 1 && isinADAC[playerid] != 1) {
    SendClientMessage(playerid,hinweis1,"Du bist kein Beamter der Bundespolizei!");
    return RemovePlayerFromVehicle(playerid);
    }
    }


    Wenn es eine etwas Simplere methode als alle in Case einfügen geben würde, wäre das etwas besser :D



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Dadurch, dass du es direkt in AddStaticVehicle stehen hast, musst du es mit einem switch-case machen.
    PolizeiFahrzeuge[0] = AddStaticVehicle(597,-1595.8781,693.9594,-5.4741,180.1654,198,1); // CC1
    PolizeiFahrzeuge[1] = AddStaticVehicle(597,-1600.1920,693.9489,-5.4725,179.5844,198,1); // CC2


    Hättest du es in einem Array drin stehen gehabt (als ein enum, in dem die Werte sind, und dann die Fahrzeuge durch eine Schleife erstellen), dann wäre es ohne switch gegangen.
    Was du natürlich machen kannst, du trägst alle diese Werte in ein Array ein. Das musst du entscheiden, wie du es machen willst.

  • Okey.
    Hab es jetzt mal so gemacht und unerklärlicherweise hab ich 1 error und 1 Warning


    enum VehEnum {
    ModellID,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosR,
    Farbe1,
    Farbe2
    }

    new FrakAutos[MAX_VEHICLES][VehEnum] =//MAX_VEHICLES wie beim Speicher Stock :)
    {
    //ModelID, Frak, X,Y,Z,Farbe1,Farbe2
    {597,-1595.8781,693.9594,-5.4741,180.1654, 198, 1},//zeile 123
    {597,-1595.8781,693.9594,-5.4741,179.5844, 198, 1}//zeile 123


    };//173


    for(new g;g<MAX_VEHICLES;g++)
    {
    CreateVehicle(FrakAutos[g][ModellID],FrakAutos[g][PosX],FrakAutos[g][PosY],FrakAutos[g][PosZ],FrakAutos[g][PosR],FrakAutos[g][Farbe1],FrakAutos[g][Farbe2]);//250
    }


    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(173) : error 052: multi-dimensional arrays must be fully initialized
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(250) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Alles richtig sonst?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • new FrakAutos[MAX_VEHICLES][VehEnum] =
    zu:
    new FrakAutos[][VehEnum] =


    Und:
    CreateVehicle(FrakAutos[g][ModellID],FrakAutos[g][PosX],FrakAutos[g][PosY],FrakAutos[g][PosZ],FrakAutos[g][PosR],FrakAutos[g][Farbe1],FrakAutos[g][Farbe2]);//250
    zu:
    CreateVehicle(FrakAutos[g][ModellID],FrakAutos[g][PosX],FrakAutos[g][PosY],FrakAutos[g][PosZ],FrakAutos[g][PosR],FrakAutos[g][Farbe1],FrakAutos[g][Farbe2],-1);//250

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Jetzt erstellst du die LoadVehicles Funktion, den Teil mit dem switch lässt du einfach mal frei.
    Wenn du das hast, poste die Funktion, dann mach ich dir den switch-Teil.


    Also das was unter der Klammer von
    if(!strlen(KassenInfo[i][fName]))
    in LoadKassen steht, frei lassen. Den Rest kannst du ja machen, gleiches Prinzip.

  • Hi Jeffry,


    hier ist der Code.
    Müsste alles richtig sein :)


    stock LoadVehicles()
    {
    new string[3], query[128], bool:added;
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    }
    if(added) SaveVehicles();
    return 1;
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Du hast bei allen "VehInfo[ i ][Fraktion]" stehen.
    Schreib da bitte noch die richtigen Werte dazu, sonst kann ich es nicht übernehmen, da ich nicht weiß, wie die bei dir heißen. ;)


    EDIT:
    Und im enum VehEnum musst du noch einen Teil "Fraktion" hinzufügen. Mach das, und poste dann auch das aktualisierte enum mit den zwei drei Werten dazu.


    Außerdem fehlen beim LoadVehicles noch die Farben, und das CreateVehicle. ;)

  • Wieso im Enum? Das Enum ist doch nur dazu da die Fahrzeuge zu erstellen oder?


    Hier sorry :/
    stock LoadVehicles()
    {
    new string[3], query[128], bool:added;
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][PosX] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][PosY] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][PosZ] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Abgeschleppt] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][inADAC] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Preis] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][NewX] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][NewY] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    }
    if(added) SaveVehicles();
    return 1;
    }


    Wo soll das CreateVehicle hin?



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Zur Frage:
    Wenn das Fahrzeug ja noch nicht in der Datenbank ist, muss der Code ja wissen, welcher Fraktion er es zuweisen soll. Somit musst du es im enum angeben.


    CreateVehicle:
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    Nach dieser Zeile.


    Außerdem fehlt noch das Laden der Farben des Fahrzeugs. Füge diese Sachen noch hinzu.

  • So richtig?
    stock LoadVehicles()
    {
    new string[3], query[128], bool:added;
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][PosX] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][PosY] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][PosZ] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Abgeschleppt] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][inADAC] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Preis] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][NewX] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][NewY] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    VehInfo[i][Farbe1] = mysql_GetFloat("Auto", "Farbe1", "ID", string);
    VehInfo[i][Farbe2] = mysql_GetFloat("Auto", "Farbe2", "ID", string);
    CreateVehicle(FrakAutos[g][ModellID],FrakAutos[g][PosX],FrakAutos[g][PosY],FrakAutos[g][PosZ],FrakAutos[g][PosR],FrakAutos[g][Farbe1],FrakAutos[g][Farbe2],-1);//250

    }
    if(added) SaveVehicles();
    return 1;
    }


    Wie sieht es aus mit meinem Speicher Stock? muss ich den auch noch verändern?
    stock SaveVehicles()
    {
    new string[34];
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    mysql_SetInt("Autos", "ModellID", VehInfo[i][ModellID], "ID", string);
    mysql_SetInt("Autos", "Fraktion", VehInfo[i][Fraktion], "ID", string);
    mysql_SetFloat("Autos", "PosX", VehInfo[i][PosX], "ID", string);
    mysql_SetFloat("Autos", "PosY", VehInfo[i][PosY], "ID", string);
    mysql_SetFloat("Autos", "PosZ", VehInfo[i][PosZ], "ID", string);
    mysql_SetInt("Autos", "Abgeschleppt", VehInfo[i][Abgeschleppt], "ID", string);
    mysql_SetInt("Autos", "inADAC", VehInfo[i][inADAC], "ID", string);
    mysql_SetInt("Autos", "Preis", VehInfo[i][Preis], "ID", string);
    mysql_SetString("Autos", "Grund", VehInfo[i][Grund], "ID", string);
    mysql_SetFloat("Autos", "NewX", VehInfo[i][NewX], "ID", string);
    mysql_SetFloat("Autos", "NewY", VehInfo[i][NewY], "ID", string);
    mysql_SetFloat("Autos", "NewZ", VehInfo[i][NewZ], "ID", string);

    }
    return 1;
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Nein, das muss
    CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);
    heißen.


    Füge außerdem
    LoadVehicles();
    bei OnGameModeInit ein.


    Und dann mach bitte noch die Fraktion zu dem VehEnum dazu und poste das dann. Ohne das, kann ich es dir nicht komplett machen, da die Fraktionszuweisung fehlt.
    Poste dann das enum und zwei drei Zeilen der Daten.

  • enum VehEnum {
    ModellID,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosR,
    Farbe1,
    Farbe2,
    Fraktionp
    }
    enum VehDaten
    {
    ModellID,
    Fraktion,
    Float: PosX,
    Float: PosY, // Das sollen die Koord. sein wo es üblicherweiße Spawnt bsp SFPD
    Float: PosZ,
    Abgeschleppt,//Falls auf 1 darf es nicht mehr bei dem üblichen Spawn spawnen!
    inADAC,//Das es in der ADAC Zone ist und die ADAC'ler vollsten Zugriff auf das Fahrzeug haben
    Preis,
    Grund[32],
    Float: NewX,
    Float: NewY,//Stattdessen soll es hier Spawnen(Da wo der ADAC /oPark gemacht hat)
    Float: NewZ
    }


    Damit du es unterscheiden kannst :)


    Von Was brauchst du noch Daten?


    PS: Hab Warnings
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1818) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1818) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1819) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1819) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 217: loose indentation
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1802) : warning 204: symbol is assigned a value that is never used: "query"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Warnings.
    stock LoadVehicles()
    {
    new string[3], query[128], bool:added;//02
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][PosX] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][PosY] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][PosZ] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Abgeschleppt] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][inADAC] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Preis] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][NewX] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][NewY] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    VehInfo[i][Farbe1] = mysql_GetFloat("Auto", "Farbe1", "ID", string);//18
    VehInfo[i][Farbe2] = mysql_GetFloat("Auto", "Farbe2", "ID", string);//19
    CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20

    }
    if(added) SaveVehicles();
    return 1;
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • stock LoadVehicles()
    {
    new string[3], bool:added;//02
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][PosX] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][PosY] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][PosZ] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Abgeschleppt] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][inADAC] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Preis] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][NewX] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][NewY] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    VehInfo[i][Farbe1] = mysql_GetInt("Auto", "Farbe1", "ID", string);//18
    VehInfo[i][Farbe2] = mysql_GetInt("Auto", "Farbe2", "ID", string);//19
    CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20

    }
    if(added) SaveVehicles();
    return 1;
    }


    Und im VehDaten enum musst du noch Farbe1 und Farbe2 hinzufügen.
    Sind dann alle Warnungen weg?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen