Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • So mal ein Tipp am Rande.
    Wenn du schon mysql_format nutzt, dann nutze statt %s, %e.
    In der Funktion mysql_format kannst du mit %e, den String gleich Escapen. (SQL Injection Shield)
    Wieso returnst du query? Welchen zweck hat das.
    Und die String Größe kannst du auch kleiner ansetzen, so viel brauchst du für den Query nicht.

    Zeig mal die du deine Verbindung aufbaust.
    Рыба лично :rolleyes:
  • Kasakow schrieb:

    In der Funktion mysql_format kannst du mit %e, den String gleich Escapen. (SQL Injection Shield)
    Danke für den Tipp.

    Kasakow schrieb:

    Wieso returnst du query? Welchen zweck hat das.
    Das mache ich immer so hatte es in einem Tutorial gelernt.


    Kasakow schrieb:

    Und die String Größe kannst du auch kleiner ansetzen, so viel brauchst du für den Query nicht.
    Ja war mir nicht sicher wie lang es wird deshalb hatte ich es so habs vergessen zu ändern Danke.


    Kasakow schrieb:

    Zeig mal die du deine Verbindung aufbaust.

    PAWN-Quellcode

    1. stock MySQL_SetupConnection(ttl = 3)
    2. {
    3. print("[MySQL] Verbindungsaufbau...");
    4. handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    5. if(mysql_errno(handle) != 0)
    6. {
    7. if(ttl > 1)
    8. {
    9. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    10. printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    11. return MySQL_SetupConnection(ttl-1);
    12. }
    13. else
    14. {
    15. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    16. print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    17. print("[MySQL] Der Server wird heruntergefahren.");
    18. return SendRconCommand("exit");
    19. }
    20. }
    21. printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    22. return 1;
    23. }
    24. Bei der Verbindung gibts kein Problem beim Registieren klapp auch alles wird auch in die Datenbank eingetragen.
    Alles anzeigen
  • iTsRooT schrieb:

    Das mache ich immer so hatte es in einem Tutorial gelernt.
    Das macht nur Sinn, wenn du es dann auch verwendest, ansonsten kannst du das lassen.

    Im Log ist die Rede von den cache Funktionen, diese werden hier allerdings gar nicht aufgerufen...

    Rufst du irgendwo denn noch diese auf in einem Callback?


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Hab bei Discord-Connector ein Problem, die Commands die ich erstellt habe werden ausgegeben wenn ich die anderen Commands von 'nem Bot wie z.B Unbelievableboat nutze, z.B /clear, da wird der Command von meinem Bot auch returnt.

    PAWN-Quellcode

    1. public DCC_OnMessageCreate(DCC_Message:message)
    2. {
    3. new string[500],
    4. mstring[16],
    5. DCC_User:author;
    6. DCC_GetMessageContent(message, mstring);
    7. DCC_GetMessageChannel(message, prpchannel);
    8. new bool:is_bot;
    9. DCC_IsUserBot(author, is_bot);
    10. if(is_bot)
    11. return 0;
    12. if(!strcmp(mstring, "/players"))
    13. {
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von FutureStunt () aus folgendem Grund: Screenshot hinzugefügt

  • Du erstellst zwar die Variable DCC_User:author aber gibt dieser Variable nirgends einen Wert. Ich denke mal es gibt eine eine Funktion wie DCC_GetMessageAuthor(message, author); oder so ähnlich, sonst wird die Bot Abfrage wahrscheinlich immer false returnen.
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.

    Konversation: Konversation starten
    Discord: LeonMrBonnie#2251

  • Hallo!

    Ich bekome im MySQL Logimmer folgenden Fehler:

    PAWN-Quellcode

    1. [15:24:20] [ERROR] cache_get_value_name_int: field 'id' not found
    2. [15:24:20] [ERROR] cache_get_value_name_int: field 'adminrang' not found
    3. [15:24:20] [ERROR] cache_get_value_name_int: field 'whitelist' not found
    4. [15:24:20] [ERROR] cache_get_value_name_float: field 'x' not found
    5. [15:24:20] [ERROR] cache_get_value_name_float: field 'y' not found
    6. [15:24:20] [ERROR] cache_get_value_name_float: field 'z' not found
    7. [15:24:20] [ERROR] cache_get_value_name_float: field 'r' not found
    8. [15:24:20] [ERROR] cache_get_value_name_int: field 'interior' not found
    9. [15:24:20] [ERROR] cache_get_value_name_int: field 'welt' not found
    Diese Zeilen stehen bei OnUserLogin so drinund in der DB sind die Felder ebenso vorhanden.
    Woran kann das liegen?


    MfG

  • PAWN-Quellcode

    1. new query[256];
    2. mysql_format(handle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%e' AND `passwort` = MD5('%e')",SpielerDaten[playerid][player_Name], inputtext);
    3. mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
    Das ist die Query beim Login Dialog

    Edit: Meine DB: prnt.sc/p27yqw

    Jetzt sagt mirder Log folgendes noch dazu:


    PAWN-Quellcode

    1. [15:49:17] [ERROR] error #1054 while executing query "UPDATE `accounts` SET `adminrang` = '0', `whitelist` = '0', `x` = '1958.378296', `y` = '1343.157227', `z` = '15.374607', `r` = '269.142487', `interior` = '0', `welt` = '0' WHERE `id` = '0'": Unknown column 'whitelist' in 'field list'
    Die Schreibweise sollte aber richtig sein.
  • Guten Tag zusammen,
    ich hätte mal eine Frage an euch, ich suche eine Alternative zu PVar's, gibt es da etwas ?
    Möchte gerne, alle meine Systeme in eine Separate Include Schreiben, was mit natürlich mit einem Enum möglich wäre,
    diese aber dann irgendwie alle immer zusammen hängen, was z.B bei PVar's ja nicht der Fall sein muss.
    Hoffe Ihr versteht was ich meine.

    LG,
    ●●● ► MGPK ◄ ●●●

    Pawn Erfahrung: ●●●●●●●●●●
    HTML/CSS Erfahrung: ●●●●●●●●●●
    ───────────────────────────────
    Adobe Premiere Pro Erfahrung: ●●●●●●●●●●
    Adobe After Effects Erfahrung: ●●●●●●●●●

  • Guten Abend!

    Gibt es eine Lösung um den Spawnbutton zu verstecken?

    Momentan habe ich es so, aber hierbei fleige ich immer durch die Luft.

    Quellcode

    1. public OnPlayerRequestClass(playerid)
    2. {
    3. if(!SpielerDaten[playerid][player_Eingeloggt])
    4. //SetPlayerPos(playerid,2090.5776,1743.2261,10.6719);
    5. //SetPlayerCameraPos(playerid,2092.3242,1746.4900,10.6797);
    6. //SetPlayerCameraLookAt(playerid,2092.3242,1746.4900,10.6797);
    7. //SetPlayerFacingAngle(playerid,348.7013);
    8. SetSpawnInfo(playerid,0,187,2090.5776,1743.2261,10.6719,348.7013,0,0,0,0,0,0);
    9. //SpawnPlayer(playerid);
    10. {
    11. query
    12. }
    13. TogglePlayerSpectating(playerid, true);
    14. return 1;
    15. }
    Alles anzeigen
  • Allrounder18 schrieb:

    Guten Abend!

    Gibt es eine Lösung um den Spawnbutton zu verstecken?

    Momentan habe ich es so, aber hierbei fleige ich immer durch die Luft.

    Quellcode

    1. public OnPlayerRequestClass(playerid)
    2. {
    3. if(!SpielerDaten[playerid][player_Eingeloggt])
    4. //SetPlayerPos(playerid,2090.5776,1743.2261,10.6719);
    5. //SetPlayerCameraPos(playerid,2092.3242,1746.4900,10.6797);
    6. //SetPlayerCameraLookAt(playerid,2092.3242,1746.4900,10.6797);
    7. //SetPlayerFacingAngle(playerid,348.7013);
    8. SetSpawnInfo(playerid,0,187,2090.5776,1743.2261,10.6719,348.7013,0,0,0,0,0,0);
    9. //SpawnPlayer(playerid);
    10. {
    11. query
    12. }
    13. TogglePlayerSpectating(playerid, true);
    14. return 1;
    15. }
    Alles anzeigen
    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(playerid, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0);
    TogglePlayerSpectating(playerid, 1);
    SpawnPlayer(playerid);
    SetTimerEx("SkipOnPlayerRequestClass", 100, false, "i", playerid);
    return 1;
    }

    //Irgendwo außerhalb eines publics
    forward SkipOnPlayerRequestClass(playerid);
    public SkipOnPlayerRequestClass(playerid)
    {
    SpawnPlayer(playerid);
    TogglePlayerSpectating(playerid, 0);
    return 1;

    }