Beiträge von Jeffry

    Das kannst du dann mit so einem Query machen:

    SQL
    SELECT MAX(id) AS `maxid` FROM `fahrzeugtabelle`

    Dann kannst du den Cache mit dem Feld "maxid" einfach auslesen und + 1 rechnen.

    Kommt drauf an in welchem Zusammenhang, da gibt es mehrere Möglichkeiten.
    Kannst du bitte erklären, wofür genau du die letzte ID wissen willst, und wann?

    Wenn ich in der Datenbank für eine Float auch float als typ nehme, gibt es Probleme da die Tabelle "," und nicht "." als Trennung der Float nimmt.

    Das wäre mir neu, dieses Problem hatte ich noch nie.



    strings werden irgendwie überhaupt nicht gelesen und konvertiert....

    Nutze es so:
    cache_get_field_content(h,"Besitzer",hInfo[h][hOwner],handle, MAX_PLAYER_NAME);




    Wenn ich %e in der Speicherung verwende werden immer nur die ersten 3 Zeichen in die Datenbank gespeichert. (Dabei ist die Datenbankgröße richtig eingestellt!

    Ist der String in dem das Query steht groß genug?





    Nur hat es normal geklappt und jetzt speichert er nicht einmal wenn ich so disconnect'e.

    Wann kommt den die Warnung? Wenn du den Befehl eingibst, oder wenn der Server beendet wird?


    Ändere außerdem:
    banned = 'd'
    zu:
    banned = '%d'

    if(age > 18 && age < 30)
    zu:
    if(age >= 18 && age <= 30)
    Das wäre dann für 18 - 30.



    Und eins habe ich beim stock nicht verstanden, was ist das für ein stock bzw für was ist das?

    Das ist für die Angabe der Tage pro Monat, damit diese nicht jedes mal lokal deklariert werden, wenn GetPlayerAge ausgeführt wird.

    SA:MP MySQL Plugin v2.1.1

    Versuche es so:
    ocmd:spielerinfo(playerid,params[])
    {
    new str[145], name[MAX_PLAYER_NAME], lastjoin[11], gebannt;
    if(sscanf(params, "s", name)) return SendClientMessage(playerid,ROT,"{FFD200}Benutze:{FEFEFE}/spielerinfo [Name]");

    mysql_real_escape_string(name,name);
    format(str, sizeof(str),"SELECT LastJoin, Gebannt FROM `accounts` WHERE `Name`='%s'",name);
    mysql_query(str);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
    mysql_free_result();
    return SendClientMessage(playerid,ROT,"Spieler existiert nicht.");
    }
    mysql_fetch_field("LastJoin",lastjoin);
    mysql_fetch_field("Gebannt",str);
    gebannt = strval(str);
    mysql_free_result();

    format(str, sizeof(str), "Der Spieler %s war zuletzt am Spieler: %s",name,lastjoin);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    if(gebannt != 0) SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist gebannt.");
    else SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist nicht gebannt.");
    return 1;
    }

    Mir wäre nichts bekannt.
    Wenn du das zwei drei mal gemacht hast, dann wirst du sehen dass es gar nicht so schwer ist. Gehe einfach denden Text den ich dir geschrieben habe Punkt für Punkt durch.

    Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.

    Du versuchst hier mit cache_get_field_content_int auf eine Spalte zuzugreifen, welche keine INT(eger) Spalte ist (also z.B. VARCHAR).
    Einen Trick kenne ich nicht, du müsstest halt auf die Zeit achten und schauen was genau zu der Zeit ausgeführt wird. Kann ja auch nur ein solches public sein.

    Dazu kannst du folgende Funktion nutzen:
    stock GetClosestATM(playerid, Float:dist = 10000.0)
    {
    new Float:tmp, Float:x, Float:y, Float:z, id = -1;
    for(new i = 0; i < sizeof(ATMInfo); i++)
    {
    if(ATMInfo[i][set])
    {
    tmp = GetPlayerDistanceFromPoint(playerid, ATMInfo[i][aX], ATMInfo[i][aY], ATMInfo[i][aZ]);
    if(tmp <= dist)
    {
    dist = tmp;
    id = i;
    }
    }
    }
    return id;
    }