Fahrzeug ID auslesen AutoHotkey

  • Hallo,


    ich würde gerne die Fahrzeug ID auslesen in dem der Spieler sitzt. Hierzu ist in meiner SAMP.ahk API folgendes vorgegeben



    Code
    1. getTargetVehicleModelIdById(dwId)

    ich habe das ganze wie folgt zuerst gemacht


    addMessageToChat(getTargetVehicleModelIdById(dwId))


    allerdings ohne Erfolg. Er zeigt immer 0 an. Wie ist es hier am besten zu Regeln ?


    @Madd92

  • Komisch trotzdem, dass in der UDF die ModelID-Funktion anscheinend nicht funktioniert. Schau am besten mal, ob du die aktuellste hast, also R16, für die 0.3.7, nicht R1 oder R2.


    Ich weiß noch, dass ich mich mit der Fahrzeug-ID schon einmal beschäftigt hatte, weil die vehicleID in der RemotePlayerData-Struktur nicht zurückgesetzt wird und daher auch wenn der Spieler zu Fuß unterwegs war, eine Fahrzeug-ID ausgegeben wurde. Es gab glaube ich eine einfachere Lösung, ich hab sie auf die schnelle aber nicht wiedergefunden, daher kannst du auch einfach erstmal diese Kombination verwenden:

  • Probiere ich gleich mal aus.


    Hab noch eine Frage



    Code
    1. SMS: Text, Sender:Name(Nummer)


    aus den Text würde ich gerne nur den Namen auslesen


    Code
    1. if(RegExMatch(Chat_9, "SMS\: (.*)\, Sender\: (.*) \(([0-9]+)\)", params))

    2 Mal editiert, zuletzt von BreadScript ()

  • Scheine ich auch für zu Blöd zusein.


    So sieht mein loop derzeit aus


    es rührt sich aber nichts


  • Ich weiß jetzt nicht genau, was deine Abbruchbedingung ist, aber im Prinzip einfach:


    PHP
    1. Loop, 20 ; // Maximale Anzahl an Durchläufen (Chatzeilen)
    2. {
    3. GetChatLine(A_Index - 1, chat) ; // A_Index wird von 1-20 hochgezählt
    4. if (!InStr(chat, freename) || !RegExMatch(chat, "", params)) ; // Haystack angeben
    5. continue ; // wenn der Name nicht enthalten ist, weiter mit der nächsten Zeile
    6. AddChatMessage(params1) ; // Was auch immer ausgeführt werden soll
    7. break ; // nach Erfolg den Loop vorzeitig beenden
    8. }

    Wenn das ganze in einem Timer laufen und dauerhaft überprüft werden soll, ist es vermutlich sinnvoller, regelmäßig die chatlog.txt auszulesen und zu prüfen, ob es neue Chatzeilen gibt und die neuen dann abzuarbeiten. Statt jedes Mal bis zu 20 Zeilen auszulesen und zu prüfen, die eventuell längere Zeit immer die gleichen sind.

  • Oh supi :D


    Wollte nun aber den params ausgeben lassen also params_2 und da gibt er mit immer wieder den kack freename aus


  • Eher so: if (!InStr(chat, freename) || !RegExMatch(chat, freename " (\d+) Minuten (\d+)\$ LSPD", params_)) ; // Haystack angeben wenn die Zeile z.B. "BreadScript 5 Minuten 2000$ LSPD" enthält.

    So kann er iwie den freename nicht auslesen warum auch immer


    und er liest den params aus einem anderen Befehl aus

  • Komisch trotzdem, dass in der UDF die ModelID-Funktion anscheinend nicht funktioniert. Schau am besten mal, ob du die aktuellste hast, also R16, für die 0.3.7, nicht R1 oder R2.


    Ich weiß noch, dass ich mich mit der Fahrzeug-ID schon einmal beschäftigt hatte, weil die vehicleID in der RemotePlayerData-Struktur nicht zurückgesetzt wird und daher auch wenn der Spieler zu Fuß unterwegs war, eine Fahrzeug-ID ausgegeben wurde. Es gab glaube ich eine einfachere Lösung, ich hab sie auf die schnelle aber nicht wiedergefunden, daher kannst du auch einfach erstmal diese Kombination verwenden:


    Brauche das mal wieder. Leider gerade etwas eingerostet. Ich würde gerne Abfragen ob der User in einem bestimmten Fahrzeug sitzt. Wie war der passende Code nochmal dazu

  • Du meinst der lokale Spieler?


    C
    1. getVehicleID() {
    2. if (!checkHandles() || !isPlayerInAnyVehicle())
    3. return 0
    4. return __READMEM(hGTA, dwSAMP, [SAMP_INFO_PTR, SAMP_POOLS, SAMP_POOL_PLAYER, SAMP_LOCALPLAYER, isPlayerDriver() ? 0xAA : 0x5C], "UShort")
    5. }
  • Du meinst der lokale Spieler?


    C
    1. getVehicleID() {
    2. if (!checkHandles() || !isPlayerInAnyVehicle())
    3. return 0
    4. return __READMEM(hGTA, dwSAMP, [SAMP_INFO_PTR, SAMP_POOLS, SAMP_POOL_PLAYER, SAMP_LOCALPLAYER, isPlayerDriver() ? 0xAA : 0x5C], "UShort")
    5. }

    Ja es geht um die Ermittlung der Fahrzeugid des Spielers der den Keybinder verwendet.


    Ich habe es nun wie folgt mal gemacht



    Code
    1. status = getVehicleID()
    2. addChatMessage(status)
    3. if(status)==482

    Leider aber ohne Richtige funktion. Die AddChatMessage gibt nichts aus.