[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Ich würde mal account_Scripter, account_Mapper & account_Admin printen lassen und es nochmal probieren, falls Admin nicht 5 ist oder Mapper oder Scripter nicht 1 dann haste direkt den Fehler.

    Beachten solltest du auch das wenn Scripter & Mapper auf 1 sind wird nur Mapper angezeigt, da dort keine else abgefrage ist.

    Ich hab bei stock showstats alle 3 mal geprintent, da stimmt alles. Also zb wenn ich projektleiter bin steht da 6 0 0 also Admin = 6 Scripter = 0 Mapper = 0


    Edit: Fehler gefunden. switch(AccountInfo[targetid][account_Admin]) hier stand playerid und das war falsch.


  • Guten Abend,


    ich habe mir zum test einen Befehl gemacht zum Autos ersellen für Autohäuser und möchte das wenn man das Auto bewegen muss sich das Textlabel mitbewegt, aber irgendwie geht es nicht.


    Was muss ich machen, damit es geht?


    Danke im Voraus


    MfG


    Allrounder18

  • Code
    Carlabel[vid] = Create3DTextLabel(carlabel1, -1, X,Y,Z,20.0, 0, 1);                                                                                                  
    Attach3DTextLabelToVehicle(Carlabel[Autohauscar], Autohauscar, X,Y,Z);

    Du setzt hier den 3DText in die falsche Variable, das sollte Carlabel[Autohauscar] statt Carlabel[vid] sein

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

    Margarete Stokowski

  • Guten tag,ich habe folgenes problem mit mein script.

    Ich habe auch vorhier gegooglet aber nix gefunden was geht. ist version R5 und

    SA-MP MySQL plugin R5

    Copyright (c) 2008-2010, G-sTyLeZzZ das ist in der inc drinne.




    inc:

    Server:log


  • [07:43:34] Loading plugin: mysql

    1. [07:43:34] Failed.


    lädt nicht mein Lieber.

  • Guten Abend,


    ich möchte in mein Script das Registrierungsdatum einbauen und in MySQL speichern, jedoch immer wenn ich mich einlogge aktualisiert es sich. Ich hab nirgends ein MySQL Update für das Registerdatum


    Das hier wird im Register Dialog aufgerufen.

    Was mache ich hier falsch?


    Danke im Voraus


    MfG


    Allrounder18

  • du setzt es doch immer wieder bei OnPasswordHashed auf die aktuelle Zeit, wenn ich esgrade richtig sehe

    Oh ja, das stimmt.

    Ich habs jetzt mal bei Accountlogin probiert aber da stimmt was net.


    Was genau müsst ich hier einfügen bzw anders machen damit es funktioniert?


    Edit: wenn ich es richtig sehe würde es doch bei OnPaasswordHashed reingehören, diese Funktion wird kein zweites mal aufgerufen. Aber wieso updatet sich der Wert immer?


    Edit2: wenn ich mysql_format(handle, query, sizeof(query), "UPDATE `accounts` SET `LastLogin` = '%e' WHERE `ID` = '%d'",AccountInfo[playerid][account_LastLogin],AccountInfo[playerid][account_ID]); in OnPasswordHashed Lasse kann ich mich nicht registrieren, wenn ich es aber ausklammere wird der Register Wert nicht angezeigt.

  • in Zeile 10 hast du 2 Parameter, gibt aber nur einen an

    Danke, wenn ich zwei Parameter angeben sagt er mir [21:14:18 - 14.03.2020] [ERROR] error #1364 while executing query "INSERT INTO `accounts` (`Register`,`LastLogin`) VALUES ('14.03.2020 | 21:14:18 ','')": Field 'Name' doesn't have a default value.

    Sieht dann so aus:

    mysql_format(handle, string, sizeof(string), "INSERT INTO `accounts` (`Register`,`LastLogin`) VALUES ('%e','%e')",AccountInfo[playerid][account_Register],AccountInfo[playerid][account_LastLogin]);    mysql_tquery(handle, string);

    .

    Nun wird zwar beim Registrieren der Register Wert angezeigt aber beim nächsten Login nicht mehr.


    Edit: Beim Registrieren wird der Registerwert angezeigt aber der Loginwert nicht, beim Login is es genau andersrum.


    Edit2: In die Datenbank wird alles richtig eingetragen, nur in den Stats wirds falsch angezeigt.

    Der Registerprint spuckt nichts aus und der Loginprint das Richtige.

    • Offizieller Beitrag

    [21:14:18 - 14.03.2020] [ERROR] error #1364 while executing query "INSERT INTO `accounts` (`Register`,`LastLogin`) VALUES ('14.03.2020 | 21:14:18 ','')": Field 'Name' doesn't have a default value

    Das scheint mir eine andere Query zu sein, irgendwo hast du ein MYSQL Befehl, in dem du den "Name" setzten willst, er jedoch nichts einträgt (Vielleicht eine leere Variable) und kein Standartwert in der DB festgelegt ist.

    Der Registerprint spuckt nichts aus und der Loginprint das Richtige.

    Das ist ja ein Wert, der beim ersten Mal registieren festgelegt wird und nie wieder verändert wird. Ließt du den Wert dann auch aus? Also wird die Variable beim Login per SQL Befehl Abgefragt und in die Variable gespeichert?

  • Wie sieht der Wert in der Datenbank aus, nach dem Registrieren?

    Wie sieht dein enum zu AccountInfo aus?

    Wie sieht deine Login Funktion aus?


    Werte in der DB (links die Registrierung, rechts der Login)

    regwert.PNG


    AccountInfoEnum

    Login Funktion


    Das scheint mir eine andere Query zu sein, irgendwo hast du ein MYSQL Befehl, in dem du den "Name" setzten willst, er jedoch nichts einträgt (Vielleicht eine leere Variable) und kein Standartwert in der DB festgelegt ist.

    Der Fehler is bereits wieder weg.


    Das ist ja ein Wert, der beim ersten Mal registieren festgelegt wird und nie wieder verändert wird. Ließt du den Wert dann auch aus? Also wird die Variable beim Login per SQL Befehl Abgefragt und in die Variable gespeichert?

    Siehe Login Funktion

  • Nochmal die Frage:

    "Das ist ja ein Wert, der beim ersten Mal registrieren festgelegt wird und nie wieder verändert wird. Ließt du den Wert dann auch aus? Also wird die Variable beim Login per SQL Befehl Abgefragt und in die Variable gespeichert?"

    Heiß speicherst du das in deinem ShowCharacter in die Variable?

    mysql_format(handle, string, sizeof(string), "SELECT Register FROM `accounts` WHERE `ID` = '%d'", AccountInfo[playerid][account_ID]);

    so hätte ich versucht es auszulesen beim Login.

    Ich speicher es nicht in Showcharacter.


    Bei OnPasswordHashed lese ich den Wert in die DB ein.

    Code
     format(AccountInfo[playerid][account_Register], 50, "%02d.%02d.%d | %02d:%02d:%02d ",day,month,year,hour,minute,second);
        mysql_format(handle, query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`,`Register`,`LastLogin`) VALUES ('%e', '%e','%e','%e')", AccountInfo[playerid][account_Name], hash,AccountInfo[playerid][account_Register],AccountInfo[playerid][account_LastLogin]);


    Edit:

            format(AccountInfo[playerid][account_Register], 50, "%02d.%02d.%d | %02d:%02d:%02d ",tag,monat,jahr,stunde,minuten,sekunde); das hab ich bei AccountLogin und bei OnPasswordHashed stehen. Nur bei OnPasswordHashed mache ich gettime und getdate für diese Werte. jetzt spuckt mir der Print die Standardwerte 00.00.0 | 00:00:00 aus die ich eingestellt habe beim Login , beim Registrieren kommt die normale Uhrzeit wann ich mich registriert habe.


    Edit2: Interessanterweise sind das nichtmal die Standardwerte vom Account sondern vom Character.

  • Du liest den Wert von Register (und LastLogin) nicht bei AccountLogin aus dem Cache, daher bleibt die Variable auch leer, was Register angeht (LastLogin setzt du ja im Code wieder).

    Du meinst

    Code
    cache_get_value_name(0, "Register", AccountInfo[playerid][account_Register],50);
            cache_get_value_name(0, "LastLogin", AccountInfo[playerid][account_LastLogin],50);

    bei AccountLogin? Das bringt mir irgendwie nix.