[MySQL] Fraktionsfahrzeuge...

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
  • //EDIT:
    So jetzt gibts ein anderes Problem ^^


    Und zwar, wenn ich ein Fraktionsfahrzeug InGame erstelle, spawnt er tausende.
    Ich weiß, dass ich es so gescriptet habe, aber ich weiß nicht, wie ich es scripten kann, damit er bloß eins spawnt...



    Code:

    ocmd:fcarc(playerid,params[])
    {
    new modelidhia,farbe1,farbe2,fraktion;
    if(sscanf(params,"s[128]dddd","Erstellen",modelidhia,farbe1,farbe2,fraktion)) return SendClientMessage(playerid,Rot,"FEHLER: /fcar Erstellen [Modelid] [Farbe 1] [Farbe 2] [Fraktion]");
    else
    {
    if(modelidhia < 400 && modelidhia > 611) return SendClientMessage(playerid,Rot,"Modelid darf nicht unter 400 oder über 611 liegen!");
    else
    {
    if(farbe1 < 0 && farbe1 > 126) return SendClientMessage(playerid,Rot,"Farbe darf nicht unter 0 oder über 126 liegen.");
    else
    {
    if(farbe2 < 0 && farbe2 > 126) return SendClientMessage(playerid,Rot,"Farbe darf nicht unter 0 oder über 126 liegen.");
    else
    {
    new fc;
    while(fc < MAX_FRAKCARS)
    {
    GetPlayerPos(playerid,XHier,YHier,ZHier);
    GetPlayerFacingAngle(playerid,AHier);


    fCars[fc][PosX] = XHier;
    fCars[fc][PosY] = YHier;
    fCars[fc][PosZ] = ZHier;
    fCars[fc][PosA] = AHier;


    fCars[fc][Farbe1] = Farbe1;
    fCars[fc][Farbe2] = Farbe2;


    fCars[fc][frakid] = fraktion;
    fCars[fc][modelid] = modelidhia;


    fCars[fc][carid] = CreateVehicle(fCars[fc][modelid],fCars[fc][PosX],fCars[fc][PosY],fCars[fc][PosZ],fCars[fc][PosA],fCars[fc][Farbe1],fCars[fc][Farbe2],-1);
    PutPlayerInVehicle(playerid,fCars[fc][carid],0);


    SendClientMessage(playerid,Weiss,"Du hast ein Fraktionsauto {33FF66}erstellt{FFFFFF}.");
    SendClientMessage(playerid,Weiss,"Du kannst es nun mit dem Befehl \"{33FF66}/fcar Parken{FFFFFF}\" umparken.");
    }
    fc++;
    }
    }
    }
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    Einmal editiert, zuletzt von Deadmau5 ()

  • Ehm dein 4. Parameter von mysql_GetFloat und mysql_GetInt verlagt einen String, das solltest du entweder ändern oder aus deinem Integer einen String über valstr(dest,integer); machen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Edit anderes Problem :/

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    Einmal editiert, zuletzt von Deadmau5 ()

  • Eben nicht :D
    Die brauch ich ja ;D
    Ich frag ja so ab




    #define MAX_FRAKCARS 200


    for(new i=0;i<MAX_FRAKCARS;i++)
    ....

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Du erstellst immer eine neue Variable erstellst die ist beim erstellen 0 und die Schleife wird dann 200 mal durchlaufen.
    Sinn?

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Na wie soll ichs sonst machen? ^^


    Mit mysql_num_rows abfragen oder was? :D

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Variable global erstellen, beim erstellen die Variable um eins hochstellen und die schleife entfernen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • So :D?

    new fcarsvar = 0;


    stock LoadMySQLCars()
    {
    for(new i=0;i<MAX_FRAKCARS;i++)
    {
    if(mysql_num_rows())// Eine Abfrage zur Sicherheit
    {
    //RESTCODE :D
    if(fCars[i][modelid] >= 400 && fCars[i][modelid] <= 611)
    {
    fcarsvar++;
    }
    }
    }
    return printf("Es wurde %d Fraktionsautos geladen.",fcarsvar);
    }


    //Teilcode vom Befehl
    fcarsvar += 1;
    if(fCars[fcarsvar][modelid] <= 400 || fCars[fcarsvar][modelid] >= 611)
    {
    GetPlayerPos(playerid,XHier,YHier,ZHier);
    GetPlayerFacingAngle(playerid,AHier);


    fCars[fcarsvar][PosX] = XHier;
    fCars[fcarsvar][PosY] = YHier;
    fCars[fcarsvar][PosZ] = ZHier;
    fCars[fcarsvar][PosA] = AHier;


    fCars[fcarsvar][Farbe1] = Farbe1;
    fCars[fcarsvar][Farbe2] = Farbe2;


    fCars[fcarsvar][frakid] = fraktion;
    fCars[fcarsvar][modelid] = modelidhia;


    fCars[fcarsvar][carid] = CreateVehicle(fCars[fcarsvar][modelid],fCars[fcarsvar][PosX],fCars[fcarsvar][PosY],fCars[fcarsvar][PosZ],fCars[fcarsvar][PosA],fCars[fcarsvar][Farbe1],fCars[fcarsvar][Farbe2],-1);
    PutPlayerInVehicle(playerid,fCars[fcarsvar][carid],0);


    SendClientMessage(playerid,Weiss,"Du hast ein Fraktionsauto {33FF66}erstellt{FFFFFF}.");
    SendClientMessage(playerid,Weiss,"Du kannst es nun mit dem Befehl \"{33FF66}/fcar Parken{FFFFFF}\" umparken.");
    }
    //....

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Neues problem is nun, dass er sie nich speichern kann...
    Wenn du mir da auch noch hilfen könntest, wäre es göttlich :D



    stock SaveMySQLCars()
    {
    for(new i=0;i<fcarsvar;i++)
    {
    if(fCars[i][modelid] >= 400 && fCars[i][modelid] <= 611)
    {
    GetVehiclePos(fCars[i][carid],XHier,YHier,ZHier);
    GetVehicleZAngle(fCars[i][carid],AHier);

    format(string,128,"%d",i);

    mysql_SetFloat("fcars", "PosX", XHier, "id", string);
    mysql_SetFloat("fcars", "PosY", YHier, "id", string);
    mysql_SetFloat("fcars", "PosZ", ZHier, "id", string);
    mysql_SetFloat("fcars", "PosA", AHier, "id", string);


    mysql_SetInt("fcars", "Farbe1", fCars[i][Farbe1], "id", string);
    mysql_SetInt("fcars", "Farbe2", fCars[i][Farbe2], "id", string);


    mysql_SetInt("fcars", "Fraktion", fCars[i][frakid], "id", string);
    mysql_SetInt("fcars", "Model", fCars[i][modelid], "id", string);
    }
    }
    }


    //EDIT: Ich sollte dazusagen, dass XHier, YHier, ZHier und AHier oben im Script als Globale Variablen schon vordefiniert sind.

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Also auf den ersten blick würde ich schonmal sagen, das du den stock nicht eingebunden hast, da sonst einen Error wegen dem String bekommen würdest ;)
    Auf den zweiten Blick würde ich dich fragen, ob mal in die mysql_log zu schaust vllt steht da ja was nützliches drin

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Der String ist oben als Globale Variable definiert ;)
    Ja ich werde mal reinschauen, ich melde mich dann :D


    //EDIT: Also ich mach jetzt mal mysql_debug(); an, dann melde ich mich mal ^^


    PS: Nutze G_Stylezz


    //EDIT2: Also er speichert sie NICHT ab... und im Log spammt er irgendwie was anderes zu, was dazu nicht passt ;)


    Hier der Callback:

    stock SaveMySQLCars()
    {
    for(new i=0;i<fcarsvar;i++)
    {
    if(fCars[i][modelid] >= 400 && fCars[i][modelid] <= 611)
    {
    GetVehiclePos(fCars[i][carid],XHier,YHier,ZHier);
    GetVehicleZAngle(fCars[i][carid],AHier);

    format(string,128,"%d",i);

    new idhier = mysql_GetInt("fcars", "id", "id", string);
    if(idhier < 0 && idhier > MAX_FRAKCARS)
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO fcars (id, Model, Fraktion, PosX, PosY, PosZ, PosA, Farbe1, Farbe2) VALUES ('%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')", i, fCars[i][modelid], fCars[i][frakid], fCars[i][PosX], fCars[i][PosY], fCars[i][PosZ], fCars[i][PosA], fCars[i][Farbe1], fCars[i][Farbe2]);
    mysql_query(query);
    }
    else
    {
    mysql_SetFloat("fcars", "PosX", XHier, "id", string);
    mysql_SetFloat("fcars", "PosY", YHier, "id", string);
    mysql_SetFloat("fcars", "PosZ", ZHier, "id", string);
    mysql_SetFloat("fcars", "PosA", AHier, "id", string);


    mysql_SetInt("fcars", "Farbe1", fCars[i][Farbe1], "id", string);
    mysql_SetInt("fcars", "Farbe2", fCars[i][Farbe2], "id", string);


    mysql_SetInt("fcars", "Fraktion", fCars[i][frakid], "id", string);
    mysql_SetInt("fcars", "Model", fCars[i][modelid], "id", string);
    }
    }
    }
    }


    //EDIT2: Push :(

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    3 Mal editiert, zuletzt von Deadmau5 ()

  • Bisschen Ahnung hab ich ja schon...


    Also das, was er da zuspammt, da lädt und speichert er den Spieler (mich)...

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Ich würde statt INSERT INTO, UPDATE versuchen. Oder du löscht zuvor die ganzen Einträge der Tabelle und lässt sie dann durch deine Funktion neuerstellen...

    Bin weg, Tschau! (Account kann gelöscht werden)

  • Jetzt hab ich das so:


    stock SaveMySQLCars()
    {
    for(new i=0;i<fcarsvar;i++)
    {
    if(fCars[i][modelid] >= 400 && fCars[i][modelid] <= 611)
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO fcars (id, Model, Fraktion, PosX, PosY, PosZ, PosA, Farbe1, Farbe2) VALUES ('%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')", i, fCars[i][modelid], fCars[i][frakid], fCars[i][PosX], fCars[i][PosY], fCars[i][PosZ], fCars[i][PosA], fCars[i][Farbe1], fCars[i][Farbe2]);
    mysql_query(query);
    }
    }
    }


    //EDIT: Brauche immernoch hilfe :/
    //EDIT2: Immernoch :D
    //EDIT3: Wie funktioniert das UPDATE denn :S
    Neues Problem ist jetzt, er erstellt die Fahrzeuge, speichern tut er sie auch.
    Wenn ich nun in ein Fahrzeug einsteige (1. Frakcar) geht der parken Befehl.
    Bei jedem Fahrzeug danach nicht :S
    //EDIT4: stock ausgebessert.

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    4 Mal editiert, zuletzt von Deadmau5 ()


  • COMMAND:fcar(playerid,params[])
    {
    new modelidhia,farbe1,farbe2,fraktion;
    if(!strlen(params))
    {
    SendClientMessage(playerid,Rot,"FEHLER: /fcar [Erstellen/Löschen/Parken/Hilfe]");
    }
    else if(strcmp(params,"Hilfe",true)==0)
    {
    SendClientMessage(playerid,Weiss,"|_______________{33FF66}Fraktionsfahrzeuge Hilfe{FFFFFF}_______________|");
    SendClientMessage(playerid,Weiss,"/fcar {33FF66}Erstellen {FFFFFF}[{33FF66}ModelID{FFFFFF}] [{33FF66}Farbe 1{FFFFFF}] [{33FF66}Farbe 2{FFFFFF}] [{33FF66}Fraktion{FFFFFF}]");
    SendClientMessage(playerid,Weiss,"/fcar {33FF66}Löschen");
    SendClientMessage(playerid,Weiss,"/fcar {33FF66}Parken");
    SendClientMessage(playerid,Weiss,"/fcar {33FF66}Hilfe");
    SendClientMessage(playerid,Weiss,"|______________________________________________________|");
    }
    if(strcmp(params,"Parken",true)==0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du bist in keinem Fahrzeug!");
    else
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i=0;i<fcarsvar;i++)
    {
    if(veh == fCars[i][carid])
    {
    if(fCars[i][modelid] >= 400 && fCars[i][modelid] <= 611)
    {
    GetVehiclePos(veh,XHier,YHier,ZHier);
    GetPlayerFacingAngle(playerid,AHier);


    fCars[i][PosX] = XHier;
    fCars[i][PosY] = YHier;
    fCars[i][PosZ] = ZHier;
    fCars[i][PosA] = AHier;


    SendClientMessage(playerid,Weiss,"Du hast das Fraktionsfahrzeug erfolgreich {33FF66}umgeparkt{FFFFFF}.");
    SetVehicleToRespawn(fCars[i][carid]);
    PutPlayerInVehicle(playerid,fCars[i][carid],0);
    }
    }
    else return SendClientMessage(playerid,Rot,"Das ist kein Fraktionsfahrzeug!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"FEHLER: /fcar [Erstellen/Löschen/Parken/Hilfe]");
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    Einmal editiert, zuletzt von Deadmau5 ()