Keybinder Problem

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
  • Derzeit funktioniert mein Keybinder nicht Richtig. Er speichert ganz komische Werte die überhaupt nicht zusammen passen. Wo kann der Fehler sein ?




    CheckChat:
    GetChatLine(1, Chat_0)
    if(InStr(Chat_0, "erfolgreich überfallen. Beute:"))
    {
    RegExMatch(Chat_0, "(.*) hat ein Store im GK (.*) erfolgreich überfallen\. Beute\: (.*)\$", params_)
    if(params_3 != "" || params_3 != Error)
    {
    DatenbankID := imp_read_where("benutzerkonten", "Name", Loginname, "ID")
    DBBetrag := imp_read("benutzerkonten", DatenbankID, "Betrag")
    NeuerBetrag := stringMath(DBBetrag+params_3)
    imp_write("benutzerkonten", DatenbankID, "Betrag", NeuerBetrag)
    AddChatMessage("Neue Beute wurde gespeichert.")
    AddChatMessage("Vorher: " DBBetrag "$")
    AddChatMessage("Nachher: " NeuerBetrag "$")
    }
    }
    return

  • AddChatMessage funktioniert nicht. Ich musste den Text gerade mal abändern. Er ist nun wie folgt



    CheckChat:
    GetChatLine(1, Chat_0)
    if(InStr(Chat_0, "erfolgreich überfallen. Beute:"))
    {
    RegExMatch(Chat_0, "(.*) hat ein Store im GK (.*) erfolgreich überfallen\. Beute\: (.*)\$", params_)
    if(params_3 != "" || params_3 != Error)
    {
    DatenbankID := imp_read_where("benutzerkonten", "Name", Loginname, "ID")
    DBBetrag := imp_read("benutzerkonten", DatenbankID, "Betrag")
    NeuerBetrag := stringMath(DBBetrag+params_3)
    imp_write("benutzerkonten", DatenbankID, "Betrag", NeuerBetrag)
    AddChatMessage("Neue Beute wurde gespeichert.")
    AddChatMessage("Vorher: " DBBetrag "$")
    AddChatMessage("Nachher: " NeuerBetrag "$")
    }
    }
    return


    Die Werte werden mal Richtig mal falsch gespeichert. Derzeit kriege ich aber auch nen ERROR angezeigt.


    Auslesen beim starten tut er richtig aber das speichern nicht wirklich

  • Wie lautet denn die Chatzeile bspw.? Den Doppelpunkt z.B. muss man nicht escapen. Wäre dann also RegExMatch(Chat_0, "(.*) hat ein Store im GK (.*) erfolgreich überfallen\. Beute: (.*)\$", params_).

  • ? Ich meine ein Beispiel für die Zeile, die du auslesen willst. Übrigens meine ich, GetChatLine geht von der letzten Zeile (Index 0) aus. Du willst also wahrscheinlich eher GetChatLine(0, Chat_0) nutzen.

  • Ich habe meinen Fehler mal gefunden. Also er will die Chatline 1 auslesen. Tut dies auch aber viel zu oft weil sich diese nicht ändern tut weil die


    AddChatMessage("Vorher: " DBBetrag "$")
    nicht geht


    Dann ist hier mal die Ursache zu finden




    AddChatMessage(wText) {
    wText := "" wText



    if(!checkHandles())
    return false

    dwFunc := dwSAMP + FUNC_SAMP_ADDTOCHATWND
    dwChatInfo := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
    if(ErrorLevel) {
    ErrorLevel := ERROR_READ_MEMORY
    return false
    }

    callWithParams(hGTA, dwFunc, [["p", dwChatInfo], ["s", wText]], true)

    ErrorLevel := ERROR_OK
    return true
    }

  • Weil ich einen Zahlen Wert auslesen will der wie folgt aufgebaut ist




    Benutzer hat ein Store im GK (.*) erfolgreich überfallen. Beute: 2000$
    Du hast erfolgreich den Store überfallen


    Da muss ich ja zeile 1 nehmen


    Und wie meinst die geht bei allen anderen auch ? Bei mir garnicht xD

  • Ok verstehe. Aber dann mach es doch wie folgt erstmal:


    Code
    GetChatLine(1, line)
    if (!InStr(line, "erfolgreich überfallen. Beute:") || !InStr(line, "hat ein Store im GK"))
    	return
    
    
    if (!RegExMatch(line, "Beute: (\d+)", params))
    	return
    
    
    AddChatMessage("Beute: " params1)

    Und probier, ob das funktioniert. Danach kannst du immer noch die Datenbank einbinden.

  • Also



    CheckChat:
    GetChatLine(1, line)
    if (!InStr(line, "hat ein Store im GK"))
    return
    if (!RegExMatch(line, "Beute: (\d+)", params))
    return
    AddChatMessage("Beute: " params1)
    return


    Ohne funktion

  • Ich habe nicht das Plugin eingebaut sondern nur einzelne Teile daher sind nicht alle funktion verfügbar wie in dem fall msgbox


    Als Input geht es aber sonst nicht und das ist wohl das problem was ich nun hab sonst wäre das mit dem auslese ja kein problem mehr xD

  • Ehm was? Du hast nicht die vollständige UDF eingebunden oder wie? Solltest du aber, es sei denn du weißt wirklich was du tust, sonst wird es nicht funktionieren. MsgBox ist allerdings eine AHK-Funktion.