Beiträge von Goldkiller


    Das ist ja auch vollkommen falsch. Genau so wie auch schon die Methode aus deinem Startpost. Ich erklär mal kurz den Fehler:

    Zitat

    for(new car; car < MAX_VEHICLES; car++)
    {
    SetVehicleNumberPlate(LSPDCar[car], "LSPD");
    }


    Damit das so funktioniert, muss LSPDCar als Array Größe MAX_VEHICLES (2000) haben. Mit Sicherheit hast du abgezählt, wieviele LSPDCars du hast und dementsprechend LSPDCar in der Größe angepasst.
    Die Schleife versucht also 2000x das Nummernschild zu setzen,nur bei den LSPDCars. Du hast mit Sicherheit keine 2000 davon, sonst gäbe es auch kein Platz mehr für weitere Fahrzeuge. Das gleiche dann auch bei MediCar, BallasCar usw.
    Spätestens wenn car in der Schleife einen Wert hat, der nicht mehr als Index bei LSPDCar ( o.Ä. ) genutzt werden kann ( car >= sizeof(LSPDCar) ), streikt die Ausführung des Codes.Alles weitere danach, wird afaik nicht mehr ausgeführt.
    Du solltest daher die for Schleife umfunktionieren, dass sie nur solange läuft wie Größe die entsprechend Variable (LSPDCar) ist. Sprich:
    for(new car; car < sizeof(LSPDCar); car++ ) { ... }
    Das Fahrzeug musst du anschließend noch neu spawnen ( SetVehicleToRespawn ).

    Dann Debug das doch mal:
    if(strlen(inputtext) <= 0) return SendClientMessage(playerid,0xAA3333AA,"Bitte ausfüllen!"),ShowPlayerDialog(playerid,DIALOG_REGSTEP_3,DIALOG_STYLE_INPUT,"Woher kommst du?","Schreibe hier dein Wohnort rein!","Weiter"," ");
    printf("inputtext '%s' @ DIALOG_REGSTEP_3",inputtext);
    printf("PlayerInfo[playerid][pHerkunft] '%s' @ DIALOG_REGSTEP_3", PlayerInfo[playerid][pHerkunft] );
    strcat(PlayerInfo[playerid][pHerkunft],inputtext,20);

    Dann nochmall extra PlayerInfo[playerid][pHerkunft] beim Speichern testweise ausgeben und hier posten.

    Da es nur eine Funktion hat,nimmst du natürlich FormatNumber.
    Du hättest dir einfach die Beispiele ansehen können, da ist es eindeutig beschrieben:

    Float:fFloat = 55548623.112;
    printf( FormatNumber( fFloat, 3, ',', '.' ) );
    // -> 55.548.624,00 

    Spoiler anzeigen
    Im Englischen ist natürlich , umd . getauscht.

    Du musst natürlich den Geldbetrag als Gleitkommazahl haben.
    100.50 wäre dann 100$ und 50Cent.
    Hinter FormatNumber nocht das $ bzw €-Zeichen und fertig.
    Muss aber gestehen, laut den Beispielen fällt die Nachkommastelle weg. Du kannst es ja mal ausprobieren ob das wirklich so ist. Kann es mir aber gerade nicht wirklich vorstellen.

    if(playerobject){
    format(query, sizeof(query), "INSERT INTO nlr_tonne (X,Y,Z,rX,rY,rZ) VALUES ('%f','%f','%f','%f','%f','%f')", fX, fY, fZ, fRotX, fRotY, fRotZ);
    mysql_query(handle, query);}
    }
    return 1;
    }
    INSERT ist nicht UPDATE.
    INSERT fügt neue Zeilen an.
    UPDATE aktualisiert vorhandene Zeilen.
    Ein Update wird aber nicht so einfach funktionieren. Du musst nämlich die richtige Zeile "treffen". Ein eindeutiger Schlüssel (ID) für jede tonne wäre die einfachste Lösung.

    Kann man so schlecht sagen.
    Wenn vi = 1 ist, dann kann es klappen. Allerdings auch nur dann wenn du definitiv vehicleid = index hast. Bei Lücken in der Liste an Fahrzeugen, kann es dann zu Fehlern kommen.
    Eventuell zeigst ja einfach mal, wo es problematisch wird wenn du vi = 1 machst.


    Ich persönlich fange immer bei 0 an, ganz egal welche ID das Item (Fahrzeug,Haus,Biz etc) hat, zu zählen. Den Index finde ich dann meist manuell heraus, je nach gegebener ID.

    sizeof (Group[i][gName])
    Das geht nicht. Ließ dir durch wie enums wirklich funktionieren, dann weisst auch warum.
    Trag an Stelle von sizeof (Group[i][gName]) jeweils direkt MAX_PLAYER_NAME ein.
    gMemberMax = 15,
    Das ist ebenfalls nicht richtig. "Ließ dir durch wie enums wirklich funktionieren, dann weisst auch warum."
    Den Wert auf 15 setzen musst du direkt an der Variable, nicht im enum.
    Sprich: Group[0..MAX_GROUPS-1][gMemberMax] = 15
    Gleich gilt auch für bool:gActive = false

    Spoiler anzeigen
    bool:gActive = false
    Das geht zwar, allerdings nicht weshalb du denkst. Durch sonderliche Zufälle klappt es trotzdem


    //Edit: Rechtschreibung :pinch:

    WP_Hash ist keine MySQL Funktion.
    Die Anleitung ist mMn eindeutig:
    http://forum.sa-mp.com/showthread.php?t=65290
    new
    buf[129];
    printf("hash");
    WP_Hash(buf, sizeof (buf), "The quick brown fox jumps over the lazy dog");
    print(buf); // <-- in buf ist jetzt der Text gehasht. Den kannst du dann mit %s in dein SQL Query einbauen.


    Wenn du es trotzdem nicht verstehst, musst dein Problem genauer beschreiben.

    Der Fehler liegt immernoch in diesem Abschnitt:
    for(new i;i<sizeof(aInfo);i++){
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, aInfo[i][a_x], aInfo[i][a_y], aInfo[i][a_z]))continue;
    if(aInfo[i][LoadValue] >= 15000)return SendClientMessage(playerid, -1, "Der Automat hat bereits, $15.000");
    aInfo[i][LoadValue] += 100;
    }

    Du weisst nach Ablauf des o.g. Codes nicht, ob er Spieler in der Nähe war oder eben nicht.
    Erstell vor der Schleife eine zusätzliche Variable, mit der du festlegst ob der Spieler in der nähe ist ( 1 ) oder eben nicht ( 0 ).
    Dann kannst du nach der Schleife mit der Variable prüfen, ob der Wert bei 0 liegt und ggf den Befehl mit einer Fehlermeldung beenden.


    Spoiler anzeigen
    Vom Prinzip könntest du auch den Teil nach der Schleife in die Schleife dazu packen. Fänd ich persönlich aber unsauber.

    sCarInfo[CarID][CarSchildName] = str; //fehlerzeile
    Das klappt nur, wenn CarSchildName und str eine identische Größe haben.
    Da str die Größe 4 von dir zugewiesen bekommen hat, muss CarSchildName auch die Größe 4 haben.
    Allerdings wird dir 4 nicht aussreichen, denn:
    format(str, sizeof(str), "DSZ-%i",kszahlen);
    DSZ- sind bereits 4 Zeichen. Dann kommt da noch eine Zahl hinzu, die per Notiz 4 Zeichen haben darf "[KennschildName (max. 4Zahlen)]" aber im Code nicht mehr als 2 erlaubt "if(kslaenge > 2)".
    Angenommen du lässt maximal einen 4-Stellige Zahl zu,dann muss str die Größe von 9 haben. "DSZ-" + "XXXX" + \0. Somit dann auch 9 für CarSchildName.


    Die Länge berechnen tust du übrigens auch nirgendwo. Geschweige denn eine Zahl für "kszahlen" berechnen ?! Da passt einiges noch nicht so recht zusammen.

    Ja das ist möglich.
    Aber dann solten auch alle Werte normale Integers sein.
    Sobald ein String oder ein array oder float oder sonst was in dem Enum sind wird es einen
    Server crash (Nicht komplettabsturz nur an der Stelle) geben.


    Den Letzten Teil glaube ich dir nicht. Wieso sollte es dann Crashen ? Darf man etwa einem String (Array) oder Float nicht den Wert 0 zuweisen ?
    Es wird mit Sicherheit nicht crashen.

    ID=1898312#post1898312">

    ich möchte euch heute ein ausführliches (Im Leben nicht ausführlich. Es gibt ganze Bücher zu SQL und du schaffst es ausführlich in 1 Forenbeitrag ?)Tutorial über die Programmiersprache SQL(Structured Query Language) zur Verfügung stellen.


    Zitat

    SQL ist eine Datenbanksprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen.


    Quelle: http://de.wikipedia.org/wiki/SQL


    Den Anfang des 2 Abschnittes habe ich noch gelesen und danach aufgehört:

    Zitat

    Diese Sprache wird meist verwendet, wenn Querys in einem Script durchgeführt werden ( Würde mir ohne Ahnung von SQL absolut nicht helfen,eher nur verwirren . Querys ? Was ist das ? Warum sollte ich Querys ausführen ? Sinn ?) , jedoch fällt mir auf, dass bei 99% (Starke Zahl, wo kommt die her ?)aller
    Scripte unnötige Zeichen(wie z.B. ``) verwendet werden ( Unnötig ist es nicht, wurde dir aber in anderen Threads schon erklärt ) .


    Du brauchst mir darauf keine Antworten geben. Es würde mir reichen,wenn du die für dich selber korrekt beantwortest und dein "Tutorial" verbesserst.

    Ist das markieren der Zeilen out?
    native ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]);
    Würde mal auf "const" als Fehler tippen. Mach es überall weg.


    Nebenbei, welchen Zweck soll die Funktion erfüllen ? Ist doch bist auf den Namen identisch.


    //Edit:
    Hast dich auch erfolgreich für folgendes Tutorial qualifiziert :):
    [ SCRIPTING ] Der Mythos "stock"