Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Last Chaos
You last visited: Today at 12:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Pferde-Buff Autoit

Discussion on Pferde-Buff Autoit within the Last Chaos forum part of the MMORPGs category.

Reply
 
Old   #1
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Pferde-Buff Autoit

Hallo

Ich wollte mal ein Bot bauen der nach einer bestimmten Zeit Pferde Buffs macht. Also der Bot geht auf das Reittierbutton in der F-Leiste , dann öffnet es die Optionen vom Pferd und drückt auf Deff- und Offbuffs und er legt dann wieder das kleine Pet an. Nun ist das problem gekommen , wenn er während des Kampfes das Reittier anlegen will geht es nicht ( weil man nicht während des Kampfes ein Reittier anlegen kann ) und der Char so keine Buffs bekommt und er trotzdem auf den Button für das kleine Pet drückt und es so einpackt. Kann man das villeicht irgednwie beheben?
Mogile is offline  
Old 11/28/2010, 13:24   #2
 
elite*gold: 0
Join Date: Jun 2010
Posts: 36
Received Thanks: 4
japp...
Gibt ein pointer [0,1] ob Du Dich gerade im Kampf befindest...
Code:
Global $AFight[5] ;dword
	$AFight[0] = 0
	$AFight[1] = 0X1C
	$AFight[2] = 0X10
	$AFight[3] = 0X04
	$AFight[4] = 0XE18
Base muesstest zu Deiner Version selber suchen, der Offset ist glaube auf allen versionen gleich... (ist aus einem alten Bot, also lieber nochmal ueberpruefen)
WickedMage is offline  
Old 11/28/2010, 14:00   #3
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Quote:
Originally Posted by WickedMage View Post
japp...
Gibt ein pointer [0,1] ob Du Dich gerade im Kampf befindest...
Code:
Global $AFight[5] ;dword
	$AFight[0] = 0
	$AFight[1] = 0X1C
	$AFight[2] = 0X10
	$AFight[3] = 0X04
	$AFight[4] = 0XE18
Base muesstest zu Deiner Version selber suchen, der Offset ist glaube auf allen versionen gleich... (ist aus einem alten Bot, also lieber nochmal ueberpruefen)
also über den script : [0,1]
Code:
Global $AFight[5] ;dword
	$AFight[0] = 0
	$AFight[1] = 0X1C
	$AFight[2] = 0X10
	$AFight[3] = 0X04
	$AFight[4] = 0XE18
?
Mogile is offline  
Old 11/28/2010, 14:25   #4
 
elite*gold: 0
Join Date: Jun 2010
Posts: 36
Received Thanks: 4
Das ist ein Offset, zu der Adresse die den Wert 0 oder 1 enthaelt, je nachdem ob Du in einem Kampf bist (1) oder nicht (0)

dafuer brauchst die Memory.au3 von Nomad (Google!)

dann kannst mit der Base, dem Offset und dem Type (DWord) den Pointer auslesen und je nachdem wie der Wert ist [0,1] dannach handeln....

hab mir selbst das lesen und schreiben von Pointern mit einer zusatzfunktion erleichtert...

bei diesem kurzen beispiel ist die Base falsch...

Code:
#include <Memory.au3>

Global $LCTitleID
	$LCTitleID = "LastChaos - "

Global $Base 
	$Base = 0x106656F8 ;Pointer(Base)

Global $AFight[5] ;dword
	$AFight[0] = 0
	$AFight[1] = 0X1C
	$AFight[2] = 0X10
	$AFight[3] = 0X04
	$AFight[4] = 0XE18

Func ReadValue($Pointer,$Type)
	Local $ProcessID
	Local $Handle
	Local $ReadPointer
	Local $Value
	
	$ProcessID = WinGetProcess($LCTitleID)
	$Handle = _MemoryOpen($ProcessID)
	
	$ReadPointer = _MemoryPointerRead($Base, $Handle, $Pointer, $Type)
	$Value = $ReadPointer[1]
	
	_MemoryClose($Handle)
	Return $Value
EndFunc

Func WriteValue($Pointer,$Type,$NewValue)
	Local $ProcessID
	Local $Handle
	Local $ReadPointer
	Local $Value
	
	$ProcessID = WinGetProcess($LCTitleID)
	$Handle = _MemoryOpen($ProcessID)
	
	_MemoryPointerWrite($Base, $Handle, $Pointer, $NewValue, $Type)
	
	_MemoryClose($Handle)
EndFunc
ReadValue($AFight,'dword')

sollte nun 0 oder 1 zurueckgeben ob du bereits im kampf bist oder nicht....
WickedMage is offline  
Thanks
1 User
Old 11/28/2010, 16:53   #5
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Quote:
Originally Posted by WickedMage View Post
Das ist ein Offset, zu der Adresse die den Wert 0 oder 1 enthaelt, je nachdem ob Du in einem Kampf bist (1) oder nicht (0)

dafuer brauchst die Memory.au3 von Nomad (Google!)

dann kannst mit der Base, dem Offset und dem Type (DWord) den Pointer auslesen und je nachdem wie der Wert ist [0,1] dannach handeln....

hab mir selbst das lesen und schreiben von Pointern mit einer zusatzfunktion erleichtert...

bei diesem kurzen beispiel ist die Base falsch...

Code:
#include <Memory.au3>

Global $LCTitleID
	$LCTitleID = "LastChaos - "

Global $Base 
	$Base = 0x106656F8 ;Pointer(Base)

Global $AFight[5] ;dword
	$AFight[0] = 0
	$AFight[1] = 0X1C
	$AFight[2] = 0X10
	$AFight[3] = 0X04
	$AFight[4] = 0XE18

Func ReadValue($Pointer,$Type)
	Local $ProcessID
	Local $Handle
	Local $ReadPointer
	Local $Value
	
	$ProcessID = WinGetProcess($LCTitleID)
	$Handle = _MemoryOpen($ProcessID)
	
	$ReadPointer = _MemoryPointerRead($Base, $Handle, $Pointer, $Type)
	$Value = $ReadPointer[1]
	
	_MemoryClose($Handle)
	Return $Value
EndFunc

Func WriteValue($Pointer,$Type,$NewValue)
	Local $ProcessID
	Local $Handle
	Local $ReadPointer
	Local $Value
	
	$ProcessID = WinGetProcess($LCTitleID)
	$Handle = _MemoryOpen($ProcessID)
	
	_MemoryPointerWrite($Base, $Handle, $Pointer, $NewValue, $Type)
	
	_MemoryClose($Handle)
EndFunc
ReadValue($AFight,'dword')

sollte nun 0 oder 1 zurueckgeben ob du bereits im kampf bist oder nicht....
Ok danke , leider verstehe ich jetzt immernoch nicht genau was ich machen muss.
Mogile is offline  
Old 11/28/2010, 18:03   #6
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich finde die Methode etwas zu umständlich aber jedem das seine. Du ließt einfach aus,
ob sich der Charakter im Kampf befindet. Bekommst du einen Rückgabewert von 1 ist
dein Charakter im Kampf verwickelt, in diesem Fall lässt du deinen Char also nicht aufs
Pferd steigen, sondern wartest erst solange, bis der Rückgabewert 0 ist.
KDeluxe is offline  
Thanks
1 User
Old 11/28/2010, 19:24   #7
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Quote:
Originally Posted by KillerDeluxe View Post
Ich finde die Methode etwas zu umständlich aber jedem das seine. Du ließt einfach aus,
ob sich der Charakter im Kampf befindet. Bekommst du einen Rückgabewert von 1 ist
dein Charakter im Kampf verwickelt, in diesem Fall lässt du deinen Char also nicht aufs
Pferd steigen, sondern wartest erst solange, bis der Rückgabewert 0 ist.
ok , aber welches script brauch ich da und was muss ich dann noch machen ?
Mogile is offline  
Old 11/28/2010, 19:54   #8
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich würde jetzt einfach mal sagen, du solltest dir etwas Wissen aneignet, dann kommst du
selber drauf. Ich würde einen Timer, 1 Variable zum überprüfen des Kampfes und 3 Offsets
(+ Base) benutzen. Mit dem Timer steuerst du die Zeit, was die Variable machen soll hab
ich oben geschrieben. Die 2 weiteren Offsets würde ich für die Koordinaten des Petfensters
benutzen. Dann noch 2 PostMessage Befehle zum anklicken der Buffs und schon es ist
zumindest in der Theorie fast fertig. Viel Arbeit sollte das aber nicht sein.
KDeluxe is offline  
Old 12/04/2010, 17:15   #9
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
kann mir villeicht jemand weiterhelfen ?
bekomme immer eine fehlermeldung bei dem Script.

Fehlermeldung:

$Handle = _MemoryOpen($ProcessID)
$Handle = ^ ERROR

Script:

#Include <Timers.au3>
#include <Memory.au3>

Global $TitleID
$LCTitleID = "LastChaos - Gamigo"

;Base & Offset
Global Const $Base = 0x1064B828;Pointer(Base)


Global $AFight[5] ;dword
$AFight[0] = 0
$AFight[1] = 0X1C
$AFight[2] = 0X10
$AFight[3] = 0X04
$AFight[4] = 0XE18


Func ReadValue($Pointer,$Type)
Local $ProcessID
Local $Handle
Local $ReadPointer
Local $Value

$ProcessID = WinGetProcess($LCTitleID)
$Handle = _MemoryOpen($ProcessID)

$ReadPointer = _MemoryPointerRead($Base, $Handle, $Pointer, $Type)
$Value = $ReadPointer[1]

_MemoryClose($Handle)
Return $Value
EndFunc

Dim $ImKampf
Dim $BuffTimer

$BuffTimer=_Timer_Init()

While 1

$ImKampf=ReadValue($AFight,'dword')

If $ImKampf=0 and _Timer_Diff($BuffTimer)>350000 Then
MouseClick ( "left" , 1177, 938 , 2, 0 )
Sleep (1000)
MouseClick ( "left" , 456 , 136 , 2 , 0 )
Sleep (1000)
MouseClick ( "left" , 565 , 409 ,2 ,0 )
sleep (1000)
MouseClick ( "left" , 566 , 444 , 2 ,0 )
Sleep (2000)
MouseClick ( "left" , 1176, 937 , 2 , 0 )
Sleep ( 1000 )
MouseClick ( "left" , 1001 , 937 , 2 , 0 )
EndIf

Sleep (500)

WEnd

Ich hab auch die NomadMemory.au3 im Include/Autoit Ordner.
Mogile is offline  
Old 12/04/2010, 18:57   #10
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Du solltest richtig lesen

Ich zitiere meine ersten 2 Zeilen der PN:
Quote:
Originally Posted by KillerDeluxe
Lass mich raten: ERROR: _MemoryOpen($ProcessID): undefined function.

Download dir die NomadMemory.au3 und binde sie mit "#include <NomadMemory.au3>" ein.
Deine Antwort darauf war, dass du sie gedownloaded hast, sie in deinen Include
Ordner kopiert hast und sie in dein Script eingebunden hast. Letzteres trifft
nicht zu. Wenn du schon bei solchen Kleinigkeiten nicht weiter kommst, solltest
du mal Grundlagen durchgehen, momentan sieht es eher danach aus, dass du
alles kopierst oder es von anderen machen lassen willst.

Die Problemlösung befindet sich in der 2. Zeile des Zitats/der PN.
KDeluxe is offline  
Thanks
1 User
Old 12/04/2010, 20:04   #11
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Quote:
Originally Posted by KillerDeluxe View Post
Du solltest richtig lesen

Ich zitiere meine ersten 2 Zeilen der PN:


Deine Antwort darauf war, dass du sie gedownloaded hast, sie in deinen Include
Ordner kopiert hast und sie in dein Script eingebunden hast. Letzteres trifft
nicht zu. Wenn du schon bei solchen Kleinigkeiten nicht weiter kommst, solltest
du mal Grundlagen durchgehen, momentan sieht es eher danach aus, dass du
alles kopierst oder es von anderen machen lassen willst.

Die Problemlösung befindet sich in der 2. Zeile des Zitats/der PN.
ok, also wolltest du sagen dass ich es nicht mit
"#include <NomadMemory.au3>" eingebunden hab ?
Mogile is offline  
Old 12/04/2010, 20:51   #12
 
RettAss's Avatar
 
elite*gold: 20
Join Date: Jan 2010
Posts: 489
Received Thanks: 1,647
Hmm ja ich schätze das will er damit sagen, auf deim script das du hier gepostet hast fehlt es oben zumindest, hast nur #include <Memory.au3> drinne stehn.

PS: Hübsches benutzerbild xD
RettAss is offline  
Old 12/04/2010, 20:57   #13
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by Mogile View Post
ok, also wolltest du sagen dass ich es nicht mit
"#include <NomadMemory.au3>" eingebunden hab ?
Ganz genau. Du hast die "Memory.au3" eingebunden, aber nicht die benötigte "NomadMemory.au3".
KDeluxe is offline  
Thanks
2 Users
Old 12/04/2010, 21:08   #14
 
Mogile's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 495
Received Thanks: 61
Quote:
Originally Posted by KillerDeluxe View Post
Ganz genau. Du hast die "Memory.au3" eingebunden, aber nicht die benötigte "NomadMemory.au3".
ok danke , hab bei Google leider nichts gefunden wie ich NomadMemory.au3 einbinde. Hat villeicht gerade jemand einen link zu einem tut bzw. wo erklärt wird wie ich die einbinde ?
Mogile is offline  
Old 12/04/2010, 21:11   #15
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
#include <Memory.au3> → #include <NomadMemory.au3>
KDeluxe is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
Pferde NPC
05/22/2010 - Metin2 Private Server - 0 Replies
Hallo!! Wie oben genannt möchte ich gerne wissen wie man einen PferdeNPC erstellen kann... Wie auf Fantasymt2 der einen ein Pferd macht wenn man ihm bestimmt sachen gibt... Danke im Vorraus ;);)
Pferde bug
07/18/2009 - Metin2 Private Server - 0 Replies
hey ich weis es gibt schon so einen thread aber ich habe ihn nicht mehr gefunden... ich hab mein gaul lvl 6. ich klick auf stallbursche, nur der quest zum leveln ist nicht da also der quest den ich annehmen muss wo ich es leveln kann ist nicht vorhanden... was soll ich machen ? mfg
Pferde Bug?
05/06/2009 - Metin2 Private Server - 5 Replies
wie macht man auf p-server sein pferd an einem tag von lvl 1 auf kg? und wie macht man das, man nur 1 pm braucht...geht das überhaupt am p server?
AutoIt script for buff/heal
07/22/2008 - Flyff - 4 Replies
I need a script that heal+buff+auto use mp for RM's That would be helpful!



All times are GMT +1. The time now is 12:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.