Fraktionsfahrzeug Parken /fcpark gibt fehlercode als SCM

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 Community,


    ich versuche die Fraktions-Fahrzeuge zu laden was auch funktioniert nur bei dem FCarInfo[...] = CreateVehicle stimmt irgendwas nicht..
    Wenn ich die Befehle wie /fcpark also Fahrzeug umparken drücke dann geht das nur bei einem car bei den anderen kommt eine Fehlermeldung...


    Code:
    FCarInfo[i][VarID] = CreateVehicle(FCarInfo[i][fcVehicleID],FCarInfo[i][fcSpawnX],FCarInfo[i][fcSpawnY],FCarInfo[i][fcSpawnZ],FCarInfo[i][fcSpawnA],FCarInfo[i][fcColor1],FCarInfo[i][fcColor2],-1);
    format(string,sizeof(string),"%s-%i",FCarInfo[i][fcKennzeichen],FCarInfo[i][VarID]);
    SetVehicleNumberPlate(FCarInfo[i][VarID],string);
    printf("Fraktions-Fahrzeuge geladen!");


    Fahrzeug Umparken:
    ocmd:fcpark(playerid,params[])
    {
    #pragma unused params
    new query[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    new Float: X, Float: Y, Float: Z, Float: A;
    GetVehiclePos(vehicleid, X, Y, Z);
    GetVehicleZAngle(vehicleid,A);
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][fcAutoID])
    {
    if(SpielerInfo[playerid][pFraktion] != FCarInfo[i][fcFraktionID])return SendClientMessage(playerid,COLOR_BESCH,"Du kannst dieses Fahrzeug nicht umparken!");
    if(SpielerInfo[playerid][pFRang] != 6)return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    SendClientMessage(playerid,COLOR_ORANGE,"Du hast das Fraktions-Fahrzeug erfolgreich umgeparkt.");
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `SpawnX`='%f',`SpawnY`='%f',`SpawnZ`='%f',`SpawnA`='%f' WHERE `AutoID`='%i'",Float: X,Float: Y,Float: Z,Float: A,FCarInfo[i][fcAutoID]);
    mysql_query(query);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler, bitte wende dich an den Support.");
    return 1;
    }
    }
    return 1;
    }


    Ich hoffe mir kann jemand weiterhelfen.


    //Info: AutoID ist das Auto Icretment oder wie das heißt
    VarID soll eine Variable sein die immer hochzählt damit man das richtige auto in der richitgen Spalte auch umparkt.


    Mfg, Markus

    2 Mal editiert, zuletzt von [Markus] ()

  • Das ist ein Dynamisches Fraktions-Fahrzeug System...
    Load:
    stock LoadFCars()
    {
    new query[300], string[500];
    mysql_query("SELECT * FROM `Fraktionautos`");
    mysql_store_result();
    for(new i=0;i<mysql_num_rows();i++)
    {
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(query,"AutoID"); FCarInfo[i][fcAutoID] = strval(query);
    mysql_fetch_field_row(query,"VehicleID"); FCarInfo[i][fcVehicleID] = strval(query);
    mysql_fetch_field_row(query,"Color1"); FCarInfo[i][fcColor1] = strval(query);
    mysql_fetch_field_row(query,"Color2"); FCarInfo[i][fcColor2] = strval(query);
    mysql_fetch_field_row(query,"SpawnX"); FCarInfo[i][fcSpawnX] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnY"); FCarInfo[i][fcSpawnY] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnZ"); FCarInfo[i][fcSpawnZ] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnA"); FCarInfo[i][fcSpawnA] = floatstr(query);
    mysql_fetch_field_row(query,"FraktionID"); FCarInfo[i][fcFraktionID] = strval(query);
    mysql_fetch_field_row(query,"Kennzeichen"); format(FCarInfo[i][fcKennzeichen],4,"%s",query);
    }
    FCarInfo[i][VarID] = CreateVehicle(FCarInfo[i][fcVehicleID],FCarInfo[i][fcSpawnX],FCarInfo[i][fcSpawnY],FCarInfo[i][fcSpawnZ],FCarInfo[i][fcSpawnA],FCarInfo[i][fcColor1],FCarInfo[i][fcColor2],-1);
    format(string,sizeof(string),"%s-%i",FCarInfo[i][fcKennzeichen],FCarInfo[i][VarID]);
    SetVehicleNumberPlate(FCarInfo[i][VarID],string);
    printf("Fraktions-Fahrzeuge geladen!");
    }
    mysql_free_result();
    return 1;
    }


    //Es muss ja auch das richtige FCar ausgewählt und so geparkt werden...

    2 Mal editiert, zuletzt von [Markus] ()

  • Welche ID hat die Variable welche CreateVehicle ausgibt und wie hoch ist die MAX_FCARS ?


    FCarInfo[i][VarID] wird wohl größer als MAX_FCARS sein.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Pablo Borsellino: Ich habe es auf 60 gestellt also #define MAX_FCARS 60
    Laden funktioniert nun mit Kennzeichen, aber ich kann das Auto nicht umparken... es scheitert an der Abfrage..
    ocmd:fcpark(playerid,params[])
    {
    #pragma unused params
    new query[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    new Float: X, Float: Y, Float: Z, Float: A;
    GetVehiclePos(vehicleid, X, Y, Z);
    GetVehicleZAngle(vehicleid,A);
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][AutoID]) //Diese Abfrage.. habe ja schon alles ausprobiert... :/
    {
    if(SpielerInfo[playerid][pFraktion] != FCarInfo[i][fcFraktionID])return SendClientMessage(playerid,COLOR_BESCH,"Du kannst dieses Fahrzeug nicht umparken!");
    if(SpielerInfo[playerid][pFRang] != 6)return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `SpawnX`='%f',`SpawnY`='%f',`SpawnZ`='%f',`SpawnA`='%f' WHERE `AutoID`='%i'",Float: X,Float: Y,Float: Z,Float: A,FCarInfo[i][AutoID]);
    mysql_query(query);
    }
    }
    //SendClientMessage(playerid,COLOR_ORANGE,"Du hast das Fraktions-Fahrzeug erfolgreich umgeparkt.");
    return 1;
    }

  • Du erstellst die fahrzeuge doc so

    FCarInfo[i][VarID] = CreateVehicle(FCarInfo[i][fcVehicleID],FCarInfo[i][fcSpawnX],FCarInfo[i][fcSpawnY],FCarInfo[i][fcSpawnZ],FCarInfo[i][fcSpawnA],FCarInfo[i][fcColor1],FCarInfo[i][fcColor2],-1);

    also müsste deine abfrage auch so heißen

    if(vehicleid == FCarInfo[i][VarID])

  • Markus, 60 reicht nicht da die vehicle id wohl über 60 ist.Verwende statt MAX_FCARS einfach MAX_VEHICLES dann funktioniert es auch.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Bekomme trotzdem immer bei den Befehlen die Fehlermeldung :/
    ocmd:fcpark(playerid,params[])
    {
    #pragma unused params
    new query[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    new Float: X, Float: Y, Float: Z, Float: A;
    GetVehiclePos(vehicleid, X, Y, Z);
    GetVehicleZAngle(vehicleid,A);
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][VarID])
    {
    //if(SpielerInfo[playerid][pFraktion] == FCarInfo[i][fcFraktionID])return SendClientMessage(playerid,COLOR_BESCH,"Du kannst dieses Fahrzeug nicht umparken!");
    //if(SpielerInfo[playerid][pFRang] == 6)return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `SpawnX`='%f',`SpawnY`='%f',`SpawnZ`='%f',`SpawnA`='%f' WHERE `AutoID`='%i'",Float: X,Float: Y,Float: Z,Float: A,FCarInfo[i][AutoID]);
    mysql_query(query);
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte wende dich an den Support!");
    return 1;
    }
    }
    return 1;
    }


    ocmd:fkennzeichen(playerid,params[])
    {
    #pragma unused params
    new query[300], kennzeichen[4], string[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    if(sscanf(params,"s",kennzeichen))return SendClientMessage(playerid,COLOR_HELLGRAU,"Benutze: /fkennzeichen [2 Buchstaaben z. B. PD]");
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][VarID])
    {
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `Kennzeichen`='%s' WHERE AutoID='%i'",kennzeichen, FCarInfo[i][AutoID]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast dem {FD3233}Fraktions-Fahrzeug [%d]{FFFFFF} ein Kennzeichen zugeteilt {FD3233}[%s]{FFFFFF}.",FCarInfo[i][AutoID], kennzeichen);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof(string),"%s-%i",FCarInfo[i][fcKennzeichen],FCarInfo[i][VarID]);
    SetVehicleNumberPlate(FCarInfo[i][fcVehicleID],string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte kontaktiere den Support.");
    return 1;
    }
    }
    return 1;
    }


    ocmd:dfcar(playerid,params[])
    {
    #pragma unused params
    new string[300], query[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][VarID])
    {
    format(query,sizeof(query),"DELETE FROM `Fraktionautos` WHERE AutoID = '%i'",FCarInfo[i][AutoID]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast das {FD3233}Fraktions-Fahrzeug [%d]{FFFFFF} von der Fraktion {FD3233}%s{FFFFFF} gelöscht.",FCarInfo[i][AutoID], FrakName(FCarInfo[i][fcFraktionID]));
    SendClientMessage(playerid,COLOR_WHITE,string);
    DestroyVehicle(FCarInfo[i][VarID]);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte kontaktiere den Support.");
    return 1;
    }
    }
    return 1;
    }






    Was jetzt?? ^^
    MAX_FCARS or MAX_VEHICLES mit MAX_VEHICLES funkt erst gar nichts ^^

  • SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte kontaktiere den Support.");
    Ich bekomme immer diese Fehlermeldung bei Befehls-Eingabe.


    z. B.

    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][VarID]) //Abfrage scheitert.. bekomme immer die ELSE ausgabe also "Bitte wende dich an den Support"
    {
    //if(SpielerInfo[playerid][pFraktion] == FCarInfo[i][fcFraktionID])return SendClientMessage(playerid,COLOR_BESCH,"Du kannst dieses Fahrzeug nicht umparken!");
    //if(SpielerInfo[playerid][pFRang] == 6)return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `SpawnX`='%f',`SpawnY`='%f',`SpawnZ`='%f',`SpawnA`='%f' WHERE `AutoID`='%i'",Float: X,Float: Y,Float: Z,Float: A,FCarInfo[i][AutoID]);
    mysql_query(query);
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte wende dich an den Support!");
    return 1;
    }
    }


    Mfg, Markus

    Einmal editiert, zuletzt von [Markus] ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wie meinst du das?
    //Kannst du mir ein Beispiel geben^^? oder Code? :/

    Einmal editiert, zuletzt von [Markus] ()

  • was laberst du da?
    ist doch föllig egal ob die vehicle id über 60 ist, es geht nur 60 mal die schleife durch, also beschäftige dich erstmal damit ;)


    1. Ich laber nicht!
    2. Wenn die Vehicle ID 80 ist, da auf dem Server bereits 79 Fahrzeuge gespawnt sind, wird die If-Abfrage niemals durchkommen, da die Schleife nur die Vehicle IDs von 0 bis 59 abfragt. Denk doch mal nach bevor du deinen Klugscheißer Instinkt hier preis gibst, und eventuell mal logisch überdenken wovon ich rede, anscheinend bist du der unwissende.
    for(new i=0; i<MAX_FCARS;i++)
    {
    if(vehicleid == FCarInfo[i][VarID])
    {
    [pwn]


    @[Markus]: Mach das bitte einmal so, und sag mir was ausgegeben wird in der Konsole:
    [pwn]ocmd:fcpark(playerid,params[])
    {
    #pragma unused params
    new query[300];
    new vehicleid = GetPlayerVehicleID(vehicleid);
    new Float: X, Float: Y, Float: Z, Float: A;
    GetVehiclePos(vehicleid, X, Y, Z);
    GetVehicleZAngle(vehicleid,A);
    printf("Spieler VehicleID: %d | Folgende Abfrage: Vehicle ID 0 - 59",vehicleid);
    for(new i=0; i<MAX_VEHICLES;i++)
    {
    if(vehicleid == FCarInfo[i][VarID])
    {
    printf("FCarInfo[%d][VarID] = %d",i,FCarInfo[i][VarID]);
    //if(SpielerInfo[playerid][pFraktion] == FCarInfo[i][fcFraktionID])return SendClientMessage(playerid,COLOR_BESCH,"Du kannst dieses Fahrzeug nicht umparken!");
    //if(SpielerInfo[playerid][pFRang] == 6)return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    format(query,sizeof(query),"UPDATE `Fraktionautos` SET `SpawnX`='%f',`SpawnY`='%f',`SpawnZ`='%f',`SpawnA`='%f' WHERE `AutoID`='%i'",Float: X,Float: Y,Float: Z,Float: A,FCarInfo[i][AutoID]);
    mysql_query(query);
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Fehler: Bitte wende dich an den Support!");
    return 1;
    }
    }
    return 1;
    }


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Pablo Borsellino:



    Aus dem Server Log, habe mal IG 4 Frak Cars erstellt.

    Einmal editiert, zuletzt von [Markus] ()

  • Pablo ich denke weiter als du denkst icj denke das er jetu wohl kaum soviele fahrzeuge erstellt hat


    Anscheinend ja nicht. Würdest du weiter denken würdest du es auch für zukünftige Nutzung anschauen und da wird es sobald mehr als 60 Fahrzeuge auf dem Server sind scheitern falls die IDs dieser Fahrzeuge über 60 sind. Und gegen dieses Argument kann man nichts sagen, es ist ein Fakt. Also lassen wir die Diskussion.


    @[Markus]:
    [02:42:21] Fraktions-Fahrzeug: 21 erstellt!
    [02:42:21] Fraktions-Fahrzeug: 22 erstellt!
    [02:42:21] Fraktions-Fahrzeug: 23 erstellt!
    [02:42:21] Fraktions-Fahrzeug: 24 erstellt!
    [02:42:21] Number of vehicle models: 1


    Sagt ja, dass nur ein Fahrzeug erstellt wurde. Stimmt das, oder sind alle 4 Fahrzeuge Ingame?


    Schreib diese Linie mal ein wenig um:
    printf("Fraktions-Fahrzeuge geladen! FCarInfo[%d][VarID]=%d",i,FCarInfo[i][VarID]);


    Ansonsten Debug einfach bei jeder Aktion welche ID das Fahrzeug hat und welche abgefragt werden, irgendwo wirst du einen Fehler finden.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Da ich ein ähnliches Problem habe frage ich am besten hier.


    Bei mir wird das Auto geparkt, aber nur das erste Auto. Das zweite kann man nicht parken.


    Und das ist der Code.


    COMMAND:fpark(playerid, params[])
    {
    new Float:px, Float:py, Float:pz, Float:pa, query[286], vehicleid = GetPlayerVehicleID(playerid), str[128];
    if(!isPlayerAnAdmin(playerid, 5)) return SendClientMessage(playerid, HELL_GRAU,#SERVERTAG": Du hast nicht die benötigten Rechte diesen Befehl auszuführen.");
    GetVehiclePos(vehicleid, px, py, pz);
    GetVehicleZAngle(vehicleid, pa);
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    if(vehicleid == fVehicle[i][ID])
    {
    format(query,sizeof(query),"UPDATE frakveh SET Position_x = '%f', Position_y = '%f', Position_z = '%f', Angle_a = '%f' WHERE ID = '%i'",
    px, py, pz, pa, fVehicle[i][ID]);
    mysql_function_query(dbhandle, query, false , "", "");
    format(str, sizeof(str),"Du hast VehicleID: %i auf den Koordinaten %f %f %f %f geparkt", vehicleid, px, py, pz, pa);
    SendClientMessage(playerid, DUNKEL_BLAU, str);
    }
    else
    {
    return SendClientMessage(playerid, HELL_GRAU,"FEHLER");
    }
    }
    return 1;
    }

  • benutze mal statt MAX_VEHICLES was anderes,
    #define cars 100 oder so.


    und wenn du nur eine funktion bei ner abfrage brauchst du keine {}

    COMMAND:fpark(playerid, params[])
    {
    new Float:px, Float:py, Float:pz, Float:pa, query[286], vehicleid = GetPlayerVehicleID(playerid), str[128];
    if(!isPlayerAnAdmin(playerid, 5)) return SendClientMessage(playerid, HELL_GRAU,#SERVERTAG": Du hast nicht die benötigten Rechte diesen Befehl auszuführen.");
    GetVehiclePos(vehicleid, px, py, pz);
    GetVehicleZAngle(vehicleid, pa);
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    if(vehicleid == fVehicle[i][ID])
    {
    format(query,sizeof(query),"UPDATE frakveh SET Position_x = '%f', Position_y = '%f', Position_z = '%f', Angle_a = '%f' WHERE ID = '%i'",
    px, py, pz, pa, fVehicle[i][ID]);
    mysql_function_query(dbhandle, query, false , "", "");
    format(str, sizeof(str),"Du hast VehicleID: %i auf den Koordinaten %f %f %f %f geparkt", vehicleid, px, py, pz, pa);
    SendClientMessage(playerid, DUNKEL_BLAU, str);
    }
    else return SendClientMessage(playerid, HELL_GRAU,"FEHLER");
    }
    return 1;
    }


  • Ne klappt nicht, hatte es als erstes mit FRAK_VEHICLES doch das Ergebnis bleibt gleich