/buycar geht 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 Abend,


    Ich bin grade dabei ein MYSQL autohaus zu schreiben und wenn ich in einem Autohaus Fahrzeug sietze kommt das ich in keinem Autohaus Fahrzeug sitze :(


    hier der befehl:


    Spoiler anzeigen
    if (strcmp("/buycar", cmdtext, true, 10) == 0)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new str[128], id=Sachen();
    new autohaus=aInfo[id][Autohaus], cpreis =aInfo[id][Preis];
    format(str,sizeof(str),"SERVER: Du besitzt zuwenig geld du benötigst $%i", cpreis-GetPlayerMoney(playerid));
    if(GetPlayerVehicleID(playerid) != aInfo[id][id_x])return SCM(playerid,COLOR_GRAD1,"SERVER: Du bist in keinem Autohaus Fahrzeug!");
    if(cpreis >= GetPlayerMoney(playerid)) return SCM(playerid,COLOR_GRAD1,str);
    for(new a = 0; a < sizeof(cInfo); a++)
    {
    GivePlayerMoney(playerid,-cpreis);
    cInfo[a][c_x]=AutohausSpawns[autohaus][pos_x];
    cInfo[a][c_y]=AutohausSpawns[autohaus][pos_y];
    cInfo[a][c_z]=AutohausSpawns[autohaus][pos_z];
    cInfo[a][c_r]=AutohausSpawns[autohaus][pos_r];
    cInfo[a][ModelID]=aInfo[id][ModelID];
    cInfo[a][Color][0] = -1;
    cInfo[a][Color][1] = -1;
    cInfo[a][id_x] = CreateVehicle(cInfo[a][ModelID],cInfo[a][c_x],cInfo[a][c_y],cInfo[a][c_z],cInfo[a][c_r],cInfo[a][Color][0],cInfo[a][Color][1],-1);
    SCM(playerid, COLOR_GREEN, "Bitte vergesse nicht dein Fahrzeug mit /park zu parken sonst spawnt es immer nach einem relogg hier.");
    SCM(playerid, COLOR_GREEN, "Mit /carlock kannst du dein Fahrzeug für andere Leute freigeben oder abschließen.");
    SCM(playerid, COLOR_YELLOW, "Dein Auto steht am Ausgabepunkt bereit! Viel Spaß beim Fahren! Und Beachte die StVo!");
    RemovePlayerFromVehicle(playerid);
    SaveCarToDB(playerid,a);
    break;
    }
    }
    return 1;
    }


    hier der stock:


    Sachen() {
    for(new i = 0; i < sizeof(aInfo); i++)
    {
    if(aInfo[i][id_x] != 0) return 1;
    }
    return 0;
    }


    ich hoffe hier könnt mir helfen.


    mfg. Fabi.StaR :thumbup:

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Mir entgeht irgendwie die Funktion vom Stock "Sachen". Könntest du die mal erlautern? Mit den Variablennamen kann ich leider nicht Sonderlich viel anfangen.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Der Name ist schlecht gewählt und die Funktion ist nicht vollständig.


    So wie ich das sehe,benutzt du Sachen() um einen Index ( bei dir id genannt ) zu finden der wohl noch nicht belegt ist.
    new str[128], id=Sachen();
    new autohaus=aInfo[id][Autohaus], cpreis =aInfo[id][Preis];
    Allerdings kann die Funktion Sachen() bei dir nur 0 oder 1 zurückgeben. Allerdings ist 0 auch ein gültiger Index und diesen erhälst du,wenn die Funktion Sachen() keinen leeren Platz findet.
    Ist die Suche erfolgreich erhälst du immer den Wert 1 als Index, aber nicht den tatsächlichen Index bei dem ein leerer Platz gefunden wurde.
    Heißt:
    Du müsstest lediglich die return Werte abändern und dir überlegen, wie du den ungültigen Index abfängst.