[DotA] Invoker Auto-Hotkey Script

This is a discussion on [DotA] Invoker Auto-Hotkey Script within the Warcraft 3 Hacks, bots and tools board part of the Warcraft 3 forum category; My problem is that I can't figure out the button positions. Sometimes they are right and sometimes left. It would ...

Page 3 of 3 FirstFirst 123
Results 21 to 23 of 23
  1. #21
    kill5link is offline Newbie
    Array
    Join Date
    Dec 2008
    Posts
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    9
    Reputation
    1
    My problem is that I can't figure out the button positions.
    Sometimes they are right and sometimes left.
    It would be easy when it just replaces the old spell but it doesen't -.- They often replace the spell and swap the postition with the old one...
    I could make a function for every damned combination but that would be to much work :|



    EDIT:
    And heres a list of the keys:
    Blast = B
    Meteor = D
    Wall = G
    EMP = C
    Forge = F
    Ghost = V
    Strike = T
    Tornado = X
    Alacrity = Z
    Cold = Y

    Ok I find a way to do it,
    but im stuck with a stupid problem... I want that I can send a Variable with SendPlay...
    I just change the Variable to the key the spell need but SendPlay just sends the name of the Variable. For example when I write SendPlay KeyVar it will write ingame KeyVar and not the String that is behind KeyVar...

    I tried another way too. But this seems not to work...
    I don't know why it not work, but I think it's something with the "if functions"...

    Code:
    ;;;;; Enable/disable all hotkeys ;;;;;
    ~*Enter::
    ~*NumpadEnter::
    Suspend, Permit
    if (bInChatRoom == True)
      return
    Suspend
    if (A_IsSuspended == true)
      SetScrollLockState, Off
    else
      SetScrollLockState, On
    return
    
    ~*Esc::
    Suspend, Permit
    if (bInChatRoom == True)
      return
    Suspend, Off
    SetScrollLockState, On
    return
    
    *End::
    Suspend, Permit
    bInChatRoom := not bInChatRoom
    if (bInChatRoom == True)
    {
      Suspend, On
      SetScrollLockState, Off
    }
    else
    {
      Suspend, Off
      SetScrollLockState, On
    }
    return
    
    
    #NoEnv
    SetWorkingDir %A_ScriptDir%
    #InstallKeybdHook
    SendMode Play
    Suspend On
    
    #IfWinActive, Warcraft III
    #UseHook On
    
    *F3::
        Suspend
        InitialSetup()
        return
    InitialSetup()
    {
        global
        sleeptime = 150
        ;SetColors()
          GridSetup()
         Spell1 = 0
         Spell2 = 0
         Spell3 = 0
         Spell4 = 0
         Spell5 = 0
         Spell6 = 0
         Spell7 = 0
         Spell8 = 0
         Spell9 = 0
         Spell10 = 0
        CurrentVar = 1
        if (A_IsSuspended)
            SoundPlay *64
        else
            SoundPlay *48
    }
    
    *1:: PrepBlast()
    *2:: PrepMeteor()
    *3:: PrepIceWall()
    *4:: PrepEmp()
    *5:: PrepForge()
    *6:: PrepGhost()
    *7:: PrepSunStrike()
    *8:: PrepTornado()
    *9:: PrepAlacrity()
    *0:: PrepColdSnap()
    *q:: NewSpell()
    *w:: OldSpell()
    *a:: Quas()
    *s:: Wex()
    *d:: Exort()
    
    
    
    
    Quas()
    {
    global
        SendPlay {q 3}
        CurrentVar = 1
    }
    Wex()
    {
    global
        SendPlay {w 3}
        CurrentVar = 2
    }
    Exort()
    {
    global
        SendPlay {e 3}
        CurrentVar = 3
    }
    
    
    
    PrepGhost()
    {
    global
        SendPlay {q 2}
        SendPlay w
        SendPlay r
    Current()
    Spell1 = 3
    NextSpell()
    }
    
    PrepForge()
    {
    global
        SendPlay {e 2}
        SendPlay q
        SendPlay r
    Current()
    Spell2 = 3
    NextSpell()
    }
    
    PrepBlast()
    {
    global
        SendPlay q
        SendPlay w
        SendPlay e
        SendPlay r
    Current()
    Spell3 = 3
    NextSpell()
    }
    
    PrepMeteor()
    {
    global
        SendPlay {e 2}
        SendPlay w
        SendPlay r
    Current()
    Spell4 = 3
    NextSpell()
    }
    
    PrepIceWall()
    {
    global
        SendPlay {q 2}
        SendPlay e
        SendPlay r
    Current()
    Spell5 = 3
    NextSpell()
    }
    
    PrepEmp()
    {
    global
        SendPlay {w 3}
        SendPlay r
    Current()
    Spell6 = 3
    NextSpell()
    }
    
    PrepSunStrike()
    {
    global
        SendPlay {e 3}
        SendPlay r
    Current()
    Spell7 = 3
    NextSpell()
    }
    
    PrepColdSnap()
    {
    global
        SendPlay {q 3}
        SendPlay r
    Current()
    Spell8 = 3
    NextSpell()
    }
    
    PrepAlacrity()
    {
    global
        SendPlay {w 2}
        SendPlay e
        SendPlay r
    Current()
    Spell9 = 3
    NextSpell()
    }
    
    PrepTornado()
    {
    global
        SendPlay {w 2}
        SendPlay q
        SendPlay r
    Current()
    Spell10 = 3
    NextSpell()
    }
    
    
    GridSetup()   ;set up the screen coords for clicking
    {
      global
      WinGetPos,,, winWidth, winHeight, A
    
      x1:=(510*winWidth)//640
      x2:=(544*winWidth)//640
      x3:=(578*winWidth)//640
      x4:=(612*winWidth)//640
    
      y1:=(390*winHeight)//480
      y2:=(424*winHeight)//480
      y3:=(458*winHeight)//480
    
      sentinelx:=(13*winWidth)//640   ;Sentinel fountain
      sentinely:=(467*winHeight)//480
    
      scourgex:=(110*winWidth)//640   ;Scourge fountain
      scourgey:=(374*winHeight)//480
    
      selfx:=(200*winWidth)//640
      selfy:=(420*winHeight)//480
    }
    
    Current()
    {
    global    
        if (CurrentVar = 1)
        {
        SendPlay {q 3}
        }
        else if (CurrentVar = 2)
        {
        SendPlay {w 3}
        }
        else if (CurrentVar = 3)
        {
        SendPlay {e 3}
        }
    }
    
    NextSpell()
    {
    global
    Spell1 = Spell1 - 1
    Spell2 = Spell2 - 1
    Spell3 = Spell3 - 1
    Spell4 = Spell4 - 1
    Spell5 = Spell5 - 1
    Spell6 = Spell6 - 1
    Spell7 = Spell7 - 1
    Spell8 = Spell8 - 1
    Spell9 = Spell9 - 1
    Spell10 = Spell10 - 1
    }
    
    NewSpell()
    {
    global
        if (Spell1 = 2)
        {
        SendPlay v
        }
        else if (Spell2 = 2)
        {
        SendPlay f
        }
        else if (Spell3 = 2)
        {
        SendPlay b
        }
        else if (Spell4 = 2)
        {
        SendPlay d
        }
        else if (Spell5 = 2)
        {
        SendPlay g
        }
        else if (Spell6 = 2)
        {
        SendPlay c
        }
        else if (Spell7 = 2)
        {
        SendPlay t
        }
        else if (Spell8 = 2)
        {
        SendPlay y
        }
        else if (Spell9 = 2)
        {
        SendPlay z
        }
        else if (Spell10 = 2)
        {
        SendPlay x
        }
    }
    
    OldSpell()
    {
    global
        if (Spell1 = 1)
        {
        SendPlay v
        }
        else if (Spell2 = 1)
        {
        SendPlay f
        }
        else if (Spell3 = 1)
        {
        SendPlay b
        }
        else if (Spell4 = 1)
        {
        SendPlay d
        }
        else if (Spell5 = 1)
        {
        SendPlay g
        }
        else if (Spell6 = 1)
        {
        SendPlay c
        }
        else if (Spell7 = 1)
        {
        SendPlay t
        }
        else if (Spell8 = 1)
        {
        SendPlay y
        }
        else if (Spell9 = 1)
        {
        SendPlay z
        }
        else if (Spell10 = 1)
        {
        SendPlay x
        }
    }
    There are 3 Systems that I know:
    1. Image Detection
    Maybe you can edit the pictures with a little colored dot or something and then it would be easy to find the spells. (Warkeys can change the images, I think )

    2. If Function for every combination
    There are 10 Spells so there would be 100 possible ways to combinate them -.-

    3. NewSpell and OldSpell
    The problem here is that you have to memorize your spell order...
    (I tried this in my last posted Code but I coudn't get it to work -.-)
    Last edited by kill5link; 05-03-2009 at 10:05 AM. Reason: New ways

  2. #22
    Wynthar's Avatar
    Wynthar is offline Advanced Hacker
    Array
    Join Date
    Feb 2009
    Location
    So Cal, USA
    Posts
    267
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    10
    Reputation
    243
    Yea, you are thinking along the lines of what I was thinking for detecting spells. You can read in my post for version 3 that I tried doing image pixels. I didn't realize warkeys might be able to alter the icons. If we can do that we could get a functional detection system. I'll look into the image detection thing. I posted this last night but had to wait for it to get approved. :-P So here's the new version.

    Anyways, new thread with lots of updates. Enjoy

    Version 3 - Invoker Auto-Hotkeys Script

  3. #23
    Reinn's Avatar
    Reinn is offline Multi-qouter

    Array
    Join Date
    May 2008
    Location
    Denmark
    Posts
    1,892
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    19
    Reputation
    1845
    Closed, please visit http://www.d3scene.com/forum/warcraf...t-ver-3-a.html for the new version.
    // Reinn

Page 3 of 3 FirstFirst 123

Similar Threads

  1. Auto Warkey,Auto hotkey
    By USMC-Syndicate in forum Warcraft 3 Hacks, bots and tools
    Replies: 2
    Last Post: 06-15-2009, 06:47 PM
  2. Antfamous Gauntlet Bot v1.8 for mmBot
    By tschoerk in forum Diablo 2 Hacks
    Replies: 9
    Last Post: 04-29-2009, 02:33 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •