Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > World of Warcraft > WoW Bots
You last visited: Today at 12:45

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

Advertisement



WoW Spellcooldown auslesen (AutoIT)

Discussion on WoW Spellcooldown auslesen (AutoIT) within the WoW Bots forum part of the World of Warcraft category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
WoW Spellcooldown auslesen (AutoIT)

Hallo

Ich würde gern meine Spell Cooldowns auslesen, hab dazu hab ich schon einiges gefunden, aber nur mit den alten Offsets, daher meine Frage:

Hat hier jemand die aktuellen SpellCooldown Offsets oder weiß einer ob die stimmen die ich haben?

spellsOnCooldown = 0x00D3F5A4

thx
mickol is offline  
Old 07/11/2010, 19:30   #2
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
Received Thanks: 1,609
Du kannst auch lua_dostring benutzen und die Funktion benutzen.

Für welche Version ist denn dein Offset? Dann besorg ich dir das für die neue, oder reverse es eben fix, je nachdem wie schnell du antwortest.

Edit:
Dein Pointer ist richtig.

oCooldownPointer = 0x00D3F5A4

Code:
private float GetSpellCD(unsigned int aSpellID) {

   // First Object
   unsigned int currentObj = readUInt(proc(), (oCooldownPointer + 0x8);

   // Liste durchgehen
  while (.....)
  {
     unsigned int currentSpell = readUint(proc(), currentObj + 0x8);
     if (currentSpell == aSpell) {
     // wir haben den spell gefunden
     int nStart = readInt(proc(), (currentObj + 0x10)

     // ....
         

     }
  }


}
Das sollte dir einen kleinen Denkanstoß geben.

NextObject = 0x8
StartTime = 0x10
CD1 = 0x14,
CD2 = 0x20

Berechnen kannst du den Kram, genau wie auch auf der API Seite beschrieben. Ich zitiere:

Quote:
local start, duration, enabled = GetSpellCooldown("Presence of Mind");
if enabled == 0 then
DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is currently active, use it and wait " .. duration .. " seconds for the next one.");
elseif ( start > 0 and duration > 0) then
DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is cooling down, wait " .. (start + duration - GetTime()) .. " seconds for the next one.");
else
DEFAULT_CHAT_FRAME:AddMessage("Presence of Mind is ready.");
end
Bl@ze! is offline  
Thanks
1 User
Old 07/11/2010, 19:44   #3
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
ich bräuchte den offset für version 3.3.5a, wäre super wenn du helfen könntest, thx
mickol is offline  
Old 07/11/2010, 20:22   #4
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
super, danke dir, ich werde mal schauen was ich damit machen kann!!!
mickol is offline  
Old 07/11/2010, 21:18   #5
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
hmm, irgendwie will das nicht, hier die funktion (hab die auf AutoIt umgebaut), manches ist noch auskommentiert, da ich am testen bin, mein derzeitiges Problem ist, dass ich schon nach dem ersten _BMReadMemory nur ein "0" zurückbekomme, ist das richtig? Soll ich da einfach auf das nächste Object switchen? In einem anderen Forum wird geschrieben das man mit 0x4 das nächset Object erreicht nicht mit 0x8, bin jetzt bisserl verwirrt

Code:
func IsSpellReady($spellid)

$spellsOnCooldown = 0x00D3F5A4 

$currentListObject = _BMReadMemory($hProcess, $spellsOnCooldown + 0x8, "uint")

;while (($currentListObject <> 0) AND (($currentListObject & 1) = 0))
  while 1
  $currentSpellId = _BMReadMemory($hProcess, $currentListObject + 0x8, "uint");
      if ($currentSpellId == $spellid) then
           
        $start = _BMReadMemory($hProcess, $currentListObject + 0x10, "uint");

        $cd1 = _BMReadMemory($hProcess, $currentListObject + 0x14, "uint");
        $cd2 = _BMReadMemory($hProcess, $currentListObject + 0x20, "uint");

        $length = $cd1 + $cd2;
        $globalLength = _BMReadMemory($hProcess, $currentListObject + 0x2C, "uint");

        ;$cdleft = Math.Max(Math.Max(length, globalLength) - (Environment.TickCount - start), 0);
                    

        ;if ($cdleft <> 0) then
        ;return 0;
        ;endif

      endif

  $currentListObject = _BMReadMemory($hProcess, $currentListObject + 4, "uint");
  wend
  return 1;
EndFunc
mickol is offline  
Old 07/11/2010, 22:47   #6
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
kann mir sonst noch wer helfen? bekomme hier einfach keinen Wert zurückgeliefert?

$currentListObject = _BMReadMemory($hProcess, $spellsOnCooldown + 0x8, "uint")

thx
mickol is offline  
Old 07/12/2010, 05:55   #7
 
swords's Avatar
 
elite*gold: 20
Join Date: Dec 2005
Posts: 811
Received Thanks: 352
Nice work in AutoIt there. I am an AutoItter myself, and got to say that's impressive.
swords is offline  
Old 07/12/2010, 10:46   #8

 
elite*gold: 140
Join Date: Aug 2007
Posts: 335
Received Thanks: 147
Quote:
Originally Posted by mickol View Post
kann mir sonst noch wer helfen? bekomme hier einfach keinen Wert zurückgeliefert?

$currentListObject = _BMReadMemory($hProcess, $spellsOnCooldown + 0x8, "uint")

thx
NextObject = 0x3C, // 3.3.5
FirstObject = 0xAC,
telcy is offline  
Old 07/12/2010, 11:05   #9
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
Received Thanks: 1,609
Quote:
Originally Posted by telcy View Post
NextObject = 0x3C, // 3.3.5
FirstObject = 0xAC,
Das ist falsch, das sind die für die Objektliste der Objects und nicht der Spell liste.

Ich schau nach der Arbeit nochmal nach, kann momentan nicht.
Bl@ze! is offline  
Old 07/12/2010, 18:41   #10
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
scheinbar ist der Offset doch falsch, verwende nun folgenden und bekommen endlich die spellid zurückgeliefert

oCooldownPointer = 0x00D3F5A8

bin mal am testen, ob es nun endlich klappt!

Edit:

gut der war auch noch falsch, hab weiter probiert, der scheint jetzt richtig zu sein, gibt jetzt die cooldowns der reihenach zurück!

oCooldownPointer = 0x00D3F5AC
mickol is offline  
Old 07/12/2010, 19:58   #11
 
elite*gold: 0
Join Date: Apr 2008
Posts: 60
Received Thanks: 7
derzeit funktioniert es, ich hoff das bleibt auch so
mickol is offline  
Old 07/16/2010, 15:54   #12
 
Endecs's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 2,256
Received Thanks: 2,342
Quote:
Originally Posted by mickol View Post
derzeit funktioniert es, ich hoff das bleibt auch so
Bis zum nächsten wow update sollte es funktionieren.
Endecs is offline  
Reply


Similar Threads Similar Threads
WoW Bot AutoIT HP auslesen
10/17/2013 - AutoIt - 13 Replies
Hey,ich hab damit angefangen mit nen kleinen Bot fürn PrivatServer zu basteln,der auf der Version 3.3.3a läuft. Gibt es für PrivatServer andere Offsets als für die Offiziellen Server? Aber irgendwie bekomme ich immer als HP anzahl : 0 raus. Ich habe die richtigen Offsets genommen : ;/*Patch 3.3.3*/ ;/*Player offsets*/ Local $Mem_Player_Base = 0x00B366D0, $Mem_Player_Base_P1 = 0x34, $Mem_Player_Base_P2 = 0x24
AutoIt Code auslesen
07/12/2010 - AutoIt - 3 Replies
Hey, sagen wir ich lade mir im Internet einen Bot runter , der mit AutoIt geschrieben ist. Gibt es ein Pogramm oder sonstwas mti dem ich den Code lesen kann? Also falls ich die falschen Begirffe genommen habe (:D) , dass sehen kann was der Scripter geschrieben hat? MFG
Exp in Autoit oder C++ auslesen???
06/26/2010 - Metin2 - 2 Replies
Wie ließt man die Ep in Autoit oder C++ aus? Bitte um hilfe
[Frage]AutoIt auslesen
06/03/2010 - AutoIt - 7 Replies
moin moin, ich bin momentan dabei n AutoIt script zu erstellen. In diesem Script muss etwas aus einer txt datei ausgelesen werden. (kann auch varriereren) Jetzt habe ich 2 Probleme: 1. Es sollen die Angaben immer Zeielweise ausgelsesen werden. Also als erstes das was in der ersten Zeile steht, damit dann was machen, dann die nächste Zeile. Bei einer TXT Datei funktioniert die Formatierung bei mir nicht, d.h. sie spring immer zurück, und alles wird in die erste Zeile geschrieben
(Autoit) Wie Pointer auslesen ?
10/13/2009 - General Coding - 6 Replies
Hiho... Ich progge gerade an einem bot und habe nur ein problem... Ich hab mit CE nen pointer für die HP gefunden... In diesem fall: game.dat+0037CC28 offset: 13C Hab aber bis jetzt keine funktionierende möglichkeit gefunden das in Autoit auszulesen... Kann mir pls einer verraten wie das geht ?



All times are GMT +2. The time now is 12:45.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.