1. Bitte vollständige und grammatikalisch richtige Sätze schreiben.
2. Wende dich doch einfach an den Ersteller des Keybinders, der wird dir bestimmt weiterhelfen.
MfG
1. Bitte vollständige und grammatikalisch richtige Sätze schreiben.
2. Wende dich doch einfach an den Ersteller des Keybinders, der wird dir bestimmt weiterhelfen.
MfG
Hallo,
habe mir mal den Spaß gemacht und das Script weitestgehend von Fehlern entfernt.
Desweiteren habe ich zu fast jeder relevanten Zeile, als Kommentar, dazu geschrieben was diese bewirkt.
!ACHTUNG!
Ich weise hiermit darauf hin, dass die von @ryaN.jeZoo verwendete Datei wahrscheinlich nicht nur als API für SAMP dient.
Die API ist auf UGBASE.EU veröffentlicht worden und stammt von keinem öffentlichem API-Projekt ab und ist eine modifizierte API von agrippa.
Da ich vor geraumer Zeit mit ziemlicher Sicherheit genau die gleiche API hatte und die Erfahrung gemacht habe, dass nach dem Includieren der API über die API.ahk, die API.dll nicht mehr zu löschen ist, da diese aktuell verwendet wird (auch wenn der Keybinder beendet worden ist).
Ob die API einen Virus, oder ähnliches enthält, ist nicht 1100%ig sicher, aber ich rate davon ab diese zu verwenden.
Die SAMP-UDF von SAMP-UDF.net, Open SAMP API von samp-api.net oder AHPi von ahkbase.eu kann ich nur weiterempfehlen, da diese Projekte Open Source sind und somit der QuellCode für jeden einsehbar ist.
!ACHTUNG!
Der Anhang ist im Prinzip das Script was @ryaN.jeZoo veröffentlicht hat, nur das hier die SAMP-UDF verwendet wurde und das Script rein theoretisch funktionieren sollte. (Ist ungetestet.)
Wer sich den Anhang nicht herunterladen möchte, hier ist das Script:
;#IfWinActive, GTA:SA:MP Kann zu problemen führen, würde ich nicht mit einfügen.
#UseHook
#SingleInstance, Force ;Der Keybinder kann nur einmal gestartet werden.
#NoEnv
#include SAMP.ahk
global Status := 0 ;Setzt den Status auf 'ausgeschaltet'
SetTimer, Bestatter, 100
Bestatter:
if(Status == 0) ;Wenn der Status gleich Null ist, dann wird die Funktion nicht weiter durchgeführt und returnt
return
Getchatline(0, Chatline) ;Es wird die neuste Nachricht im Chat ausgelesen.
if(InStr(Chatline, "ist gestorben und die Leiche muss beseitigt werden. Tippe: /accept corpse - Auftrag annehmen")) ;Wenn die Nachricht in der neusten Chatline ist, wird die IF-Abfrage fortgeführt.
{
SendChat("/accept corpse") ;Wenn im Chat die oben angegebene Nachricht steht, wird '/accept corpse' in den Chat geschrieben
AddChatMessage("'/accept corpse' wurde in den Chat geschrieben.") ;Eine weitere Nachricht in den Chat (AddChatMessage ist nur lokal zu sehen) ist deswegen sinnvoll, wenn z.B. keine neue Nachricht mehr kommt und die oben angegebene Abfrage nach einer Chatline dauerhaft '/accept corpse' in den Chat schreibt.
;Sleep, 1000 Das Sleep kannst du dann wieder rein machen, wenn Du eine art Anti-Spam machen willst. Falls die Nachricht oben oft im Chat kommt, wäre es unklug hier kein Sleep hinzumachen, da man wegen Command-Spam gekickt werden kann.
}
return
F12::
Status := !Status ;Hier wird der Status von 0 auf 1 gestellt, bzw. von 1 auf 0, wenn man die Taste F12 gedrückt hat.
if(Status == 0)
{
Status := 1
AddChatMessage("Der Keybinder wurde eingeschaltet.")
}
else if (Status == 1)
{
Status := 0
AddChatMessage("Der Keybinder wurde ausgeschaltet.")
}
return
Alles anzeigen
Hoffe ich konnte helfen
MfG
Hab das Thema neu aufgemacht, da man auf das Alte nicht mehr antworten konnte..
Moin,
ich versuche mich an einer Konsolenanwendung in C++ und will meine HP ausgeben lassen.
Mir ist bewusst, dass bei meiner Version, dass die HP in den Chat gespammt wird. Soll auch nur zum Test sein.
Folgendes "Gewusel" habe ich mir aus einzelnen Schnipseln aus dem WWW gezogen:
int main()
{
TextOverlay overlay;
SetParam("use_window", "1");
SetParam("window", "GTA:SA:MP");
SetConsoleTitleA("Konsolenanwendung - Hi");
cout << "LOL" << endl;
cout << "Suche nach dem Fenster GTA:SA:MP." << endl;
while (hWnd == 0) {
hWnd = FindWindowA(0, "GTA:SA:MP");
Sleep(100);
}
cout << "Das Fenster GTA:SA:MP wurde gefunden." << endl;
GetWindowThreadProcessId(hWnd, &pId);
pHandle = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_OPERATION, TRUE, pId);
while (true) {
ReadProcessMemory(pHandle, (LPCVOID)0xB6F5F0, &vpointer, 4, 0);
if (vpointer)
{
collflags = vpointer + 0x540;
ReadProcessMemory(pHandle, (PBYTE*)(collflags), &Health, sizeof(float), 0);
char StringConst[64];
sprintf_s(StringConst, "%s", Health);
AddChatMessage(StringConst);
}
}
CloseHandle(pHandle);
std::cin.get();
}
Alles anzeigen
Um mir die HP ausgeben zu lassen benutze ich die SAMP-API. Funktioniert auch.
Wie die Funktion ReadProcessMemory funktioniert durchschaue ich leider noch nicht ganz.
Der Pointer 0xB6F5F0 ist die CPED Adresse des eigenen Spielers und 0x540 der Offset für das Leben, wird ausgegeben in dem Datentyp Float.
Wäre cool, wenn mir jemand die Funktion erklären könnte.
Danke schon mal im Vorraus!
MfG
Der AutoHotKey SAMP Trainer that injects ASM Code von luxdav beinhaltet alle nötigen Memory write und read Funktionen.
Es ist auch ein Cheat Engine Table mit eingefügt, sodass du hier die Werte auch abfragen kannst, bzw. ohne AHK ändern kannst.
MfG
Wenn du dich mit einer Sprache wie AutoHotKey auseinandersetzen willst, musst du zwangsläufig Englisch können.
Da ich noch nie einen Angelbot oder sonstiges in der Richtung mit PixelGetColor oder so gemacht habe, ist die Aufgabe nicht sehr leicht.
Die Funktion:
Numpad0::
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
addchatmessage("Farbe: " color "X: " MouseX "Y:" MouseY)
return
Gibt dir die Farbe in den Chat und die Position der Pixel mit aus.
Einfach den Chat öffnen, mit der Maus in jede der Ecken vom Pfeil gehen und dann in eine IF-Abfrage packen.
Die Positionen kannst du ja aus der chatlog.txt in deinem GTA Ordner, in den Dokumenten rauskopieren.
MfG
Alles anzeigenPixelSearch, 926, 332,955, 284 ,955, 284, color, 3, Fast
if (color == 0x00ffc0){
SendInput {Left down}
Sleep, 2
SendInput {Left up}
Sleep, 1
}
if (color == 0xbd60cb){
SendInput {Down down}
Sleep, 2
SendInput {Down up}
Sleep, 1
}
if (color == 0xcbca60){
SendInput {Up down}
Sleep, 2
SendInput {Up up}
Sleep, 1
}
Sollte also so klappen?
Mit ziemlicher Sicherheit nicht.
Guck dir noch mal die Funktion genauer an: https://autohotkey.com/docs/commands/PixelSearch.htm
Die ersten zwei Parameter übergeben dir die X und Y Position des Pixels mit der angegebenen Farb-ID.
Die Farb-ID musst du in einer (Hexa)Dezimalzahl angeben und kommt da hin wo du die Variable color hast.
Die IF-Abfragen ergeben dementsprechend auch keinen Sinn, da du für die Variable color Werte abfragst, die nirgends definiert werden.
Einfach auf der Seite die ich geschickt habe, unten das Beispiel angucken.
Edit:
Wenn ich mir dein Script oben mal so anschaue ist das definitiv logischer aufgebaut.
Mit der Funktion PixelGetColor kannst du nämlich die Farbwerte auslesen. Also warum dann mit einer anderen Funktion arbeiten? ![]()
In dem folgenden Artikel von AutoHotKey ist auch ein sehr gutes Beispiel enthalten, damit kannst du dir dann einfach die Farbwerte ausgeben lassen.
https://autohotkey.com/docs/commands/PixelGetColor.htm
MfG
Also wäre das richtig bloß nur mit 2 == ?
Die IF-Abfrage wird mit zwei Gleichheitszeichen gemacht.
MfG
Die registrierten Spieler im Forum sind mit einer Anzahl von 24 relativ überschaubar.
Welche möglichen Vorteile man durch die Arbeit im Overwatch-Team hat, wäre auch erwähnenswert.
Wer sind die Teammitglieder?
Welche Ziele habt ihr mit dem Server, um euch von dem Rest "abzuheben"?
Lohnt es sich überhaupt zu Bewerben?
Einfach mit etwas mehr werben.
MfG
@CL4Y, ich habe schon Verstanden worauf du hinaus wolltest...Es funktioniert aber leider nicht, es ist einfach nichts auffindbar!
ist vielleicht ne dumme Frage, aber könnte es möglich sein, dass dein Dokumenten Ordner schreibgeschützt ist?
Sollte so aussehen:
MfG
Nicht böse gemeint, aber ich glaube die wenigsten werden dir hier einen Keybinder machen, bei dem man selbst nur Credits bekommt.
Entweder du lässt dir einen erstellen, oder machst selbst einen ![]()
Würde vielleicht am Anfang erst einmal die Hallo Welt - Tutorials abarbeiten, bevor du direkt ein Overlay machst.
MfG
Info:
Mein Snippet war eigentlich gedacht in einem anderen Timer gestartet zu werden.
Sollte so aussehen:
DrogenE:
Getchatline(0, Chatline)
if(instr(Chatline, "Du hast 2500 Samen eingepflanzt. In 15 Minuten kannst du sie ernten."))
{
SetTimer, Timer, 60000
}
return
Timer:
TimerVar++
if(15 - TimerVar == -1)
{
SetTimer, Timer, Off
return
}
AddChatMessage(0xFFFFFF,"{FF0000}Drogen erntbereit in:{00FF00} " 15-%TimerVar% " Minuten")
return
Alles anzeigen
Danke erstmal
Aber wo ließt er in deinem Code den Chat aus?
Also diese Nachricht:
"Du hast 2500 Samen eingepflanzt. In 15 Minuten kannst du sie ernten."
Ich will nämlich, dass der Timer erst dann los geht, wenn diese Nachricht auftaucht.
Ist ja auch nur ein Snippet ![]()
Musst den Timer für mein Snippet noch richtig in deinem Script einfügen.
MfG
Hab sowas noch nie gemacht.Kannst du wie oben schon erwähnt, den Code verbessern?
Wäre Nice von dir.
Ich würde mir dann deinen Code angucken und wohl draus lernen
Naja, hier wird Learning by Doing groß geschrieben.
Kannst ja auch z.B. einen weiteren Timer starten, der dann eine Nachricht rausschickt. (SetTimer, Counter1, 60000)
Oder die etwas professionellere Art, in dem du wieder den oben genannten Timer verwendest, bei jedem Durchlauf eine Variable immer +1 zuweist, den Wert von der Variable mit minus 15 verrechnen.
Snippet (ungetestet):
Hallo,
schreibe morgen eine Klasur in HTML und wollte eine präzise Formulierung für folgenden Pfad haben:
"bilder/wetter/icons/sonne.png"
Natürlich ist es total einfach, aber mein Lehrer beharrt immer auf einer 100% richtigen Antwort.
Da ist glaube ich mein Satz falsch:
Das Bild „sonne.png“ liegt in dem Unterordner von Bilder (Wetter), welches in dem Unterordner von Wetter liegt (Icons)
Oder es kommt mir einfach nur falsch vor.
Danke schon mal im Vorraus ![]()
MfG
Hallo,
im RGN Autohotkey Bereich gibt es eine Stats-API, ob die funktioniert und auch die gewünschten Werte ausliest, kann ich dir leider nicht sagen.
Aber die Texte und alles Overlay spezifisches, kannst du mit der Overlay-API von agrippa erstellen.
MfG
Hallo!
Ich würde mich gerne mehr mit PHP & CSS auseinandersetzen und wollte mal von euch wissen, wie Ihr euch euer Wissen angeeignet habt.
Sollte so grob in Richtung Control-Panel-Design gehen.
MfG
Moin!
Habe mir heute folgendes Gerät zugelegt:
https://www.alternate.de/ASUS/…book/html/product/1236856?
Habe folgende Problematik:
Ich bin mir nicht ganz sicher, was die Temperatur betrifft, ob sie für einen Laptop eher niedrig oder hoch ist.
Fakt ist nun mal, dass der Laptop eine sehr gute Leistung hat und diese somit auch viel Temperatur produzieren kann.
Jedoch finde ich ~50C°, wenn ich nur in Steam ein Spiel herunterlade, doch schon etwas viel.
Normal? Nicht normal?
MfG