[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
  • Bcrypt habe ich auch gefunden und als tipp bekommen aber wie arbeitet man den da mit dem plugin

    und es es aufwendig mit dem einbau so das man fast das ganze login register um dübeln muss ?

  • Klick auf den Link, der dich zu dem Plugin führt...dort siehst du doch ein Programmierbeispiel...


    Also nicht sehr aufwändig...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • könntest du mir da helfen mit dem einbau weil ich werde jetzt nicht grade schlau wie ich dieses jetzt hier zb anwende


    Code
    format(query, sizeof(query), "INSERT INTO `account` (`name`, `password`, `registerdatum`) VALUES ('%s', md5('%s'), '%s')", GetName(playerid), password,datum);

    wird zb der user angelegt mit dem pw


    Code
    format(query, sizeof(query), "SELECT * FROM `account` WHERE `name`='%s' AND `password`=md5('%s')", GetName(playerid), inputtext);

    hier lasse ich sein pw chacken und ausgeben für login



    //edit habe es jetzt mal so beim anlegen des Users gemacht


    Code
            new query[256], Year, Month, Day, datum[64],str[144],hash[BCRYPT_HASH_LENGTH];
            getdate(Year, Month, Day);
            format(datum, sizeof(datum), "%02d.%02d.%d", Day, Month, Year);
             format(query, sizeof(query), "INSERT INTO `account` (`name`, `password`, `registerdatum`) VALUES ('%s', ('%s'), '%s')", GetName(playerid), hash,datum);

    Einmal editiert, zuletzt von Klex ()

    • Offizieller Beitrag

    //edit habe es jetzt mal so beim anlegen des Users gemacht


    Code
    new query[256], Year, Month, Day, datum[64],str[144],hash[BCRYPT_HASH_LENGTH];
    getdate(Year, Month, Day);
    format(datum, sizeof(datum), "%02d.%02d.%d", Day, Month, Year);
    format(query, sizeof(query), "INSERT INTO `account` (`name`, `password`, `registerdatum`) VALUES ('%s', ('%s'), '%s')", GetName(playerid), hash,datum);

    Jetzt erstellst du nen leeren String 'hash' und speicherst den.

    Du musst das ganze natürlich noch erstellen, das wie im Tutorial dort beschrieben 'bcrypt_hash(..)'

  • Kann mir jemand erklären warum meine Mysql_Log mir ganze Zeit das hier sagt, obwohl die Verbindung zur Datenbank hergestellt ist?




    Code
    01:38:17] <-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!
  • Rufst du das in einer Endlosschleife auf oder was? hahaha xD


    Zeig uns mal deinen Code dazu...


    Eventuell hast du eine falsche Abfrage, ob er sich zur Datenbank verbunden hat und so entsteht das Missverständnis.


    Oder werden schon Daten in der Datenbank gespeichert?

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also eigentlich wird alles gespeichert hab ich auch geprüft..

    Es ist aber erst seit Gestern irgendwie so oder seit dem ich bei meinem vServer den externen Zugriff erlaubt habe auf die Datenbank.


  • https://wiki.sa-mp.com/wiki/Gettime

    Du kannst die Zahl einfach zwischenspeichern beim letzten Mal dass er sich bewegt hat, und bei einem Timer ziehst du den neuen Wert von gettime() von der gespeicherten Variable und dann hast du die vergangenen Sekunden. Dann kannst du einfach checken ob die vergangenen Sekunden mehr als 300 sind und dann den Spieler kicken.

  • also ein timer machen fragen ob sich seine getplayerpos verändert haben und dann die letze gettime spiechern und abfragen hmm klinkt einfach aber wie könnte das vom code am besten aussehen ? ^^

  • Wie du das AFK sein checkst, das musst du selber machen, das macht jeder Server anders.


    Du speicherst im Spieler Enum den gettime() Wert z.B. alle 5 Sekunden, dort checkst du ob er AFK ist. Wenn er AFK ist speicherst du die Zeit nicht neu. Und in dem Timer fragst du auch ab, ob die vergangenen Sekunden seit dem gespeicherten Wert mehr als 300 sind, dann kannst du den Spieler in den AFK Modus schicken oder kicken oder was auch immer du machen willst.

  • Beitrag von Klex ()

    Dieser Beitrag wurde vom Autor gelöscht ().
    • Offizieller Beitrag

    aber die include ist doch wieder dann mit desktop verbunden onplayerupdate stop doch nur wenn man desktop ist ? oder irre ich mich da ?

    Achso jo, OnPlayerUpdate wird nicht mehr aufgerufen wenn er aufm Desktop (rausgetabbt) ist. Dachte das wäre das Problem.


    Wenn du das nur mit der Position haben willst, bräuchtest du eine (oder halt mehrere) Globale Variablen, die die Position des Spielers beinhaltet, jene würdest du dann mit den aktuellen vergleichen und wenn sie gleich sind überschreiben. Wenn das ganze so 5 mal durchläuft kannst du ihn afk setzten

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen