Outdated[Mod Selector] Improved Autoaim 19.1
No it's not that noticeable on any class. I didn't have trouble hitting things with swords, wands and everything in between. Before it was very obvious and if someone was standing still and auto aiming at a stationary object, you could tell they were auto aiming.
Maybe the angle should be increased a bit but not as much as before. You'd probably have a better idea of what works best if a few more people test it out using different classes.
Maybe the angle should be increased a bit but not as much as before. You'd probably have a better idea of what works best if a few more people test it out using different classes.
Final iteration?
Change log:
- Interpolates offset from 3 degrees on wand to 5 degrees with melee
- Added in autofire toggle
Code:
;----------------------------------
;AIMBOT ; Edited by maat7043 1/22/2014
;----------------------------------
; NAMES TO UPDATE
;
#set fullfunctionname "com.company.assembleegameclient.objects:Player/aim_" ; the full function name
#set functionname "aim_" ; the function name
#set mouseClass "com.company.assembleegameclient.game:_-0zX" ; Found at the end of the onmousedown procedure : initproperty QName(PrivateNamespace("*", "com.company.assembleegameclient.game:_-0M4#0"), "_-0E")
#set mouseClicked "_-F0" ; Found at the end of the onmousedown procedure : initproperty QName(PrivateNamespace("*", "com.company.assembleegameclient.game:_-0M4#0"), "_-0E")
#set playerNamespace "_-0l7" ; Namespace of the Player class
#set characterNamespace "_-Ll" ; Namespace of the Character class
#set gameobjectNamespace "_-Ko" ; Namespace of the GameObject class
#set basicobjectNamespace "_-1n6" ; Namespace of the BasicObject class
#set projectileNamespace "_-0Xr" ; Namespace of the Projectile class
#set Aimbot_charMaxHealth "_-0J6" ; Found in com/company/assembleegameclient/objects/GameObject.class.asasm [trait slot QName(PackageNamespace(""), "_-Name") type QName(PackageNamespace(""), "int") value Integer(200) end]
#set ObjLibDictionary "_-11j" ; Found in ObjectLibrary class, this is the slot 7 : trait const QName(PackageNamespace(""), "_-") slotid 4 type QName(PackageNamespace("flash.utils"), "Dictionary") end
#set gameobjVector "_-16e" ;If wrong replace for _-NC Found in GameObject class, this is the SECOND vector: trait slot QName(PackageNamespace(""), "") type TypeName(QName(PackageNamespace("__AS3__.vec"), "Vector")<QName(PackageNamespace(""), "int")>) value Null() end
#set ObjPropertiesDictionary "_-1ii" ; Found in ObjectProperties class : trait slot QName(PackageNamespace(""), "") type QName(PackageNamespace("flash.utils"), "Dictionary") end
#set FunctionIsInvincible "_-1XK"
#set FunctionsIsStasis "_-1nS"
#set FunctionsIsInvulnerable "_-Br"
;----------------------------------
; CODE
;----------------------------------
trait method QName(PackageNamespace(""), $"functionname");
method
refid $"fullfunctionname"
param QName(PackageNamespace(""), "Number")
returns QName(PackageNamespace(""), "void")
body
maxstack 16
localcount 21
initscopedepth 16
maxscopedepth 18
code
getlocal0
pushscope
;----------------------------------
; Options <-- 1 = yes 0 = no
;----------------------------------
; Shoot constructs if no other enemies in range?
pushint 1 ; <-- Change This
setlocal 17
; Shoot Tesla Coils?
pushint 1 ; <-- Change This
setlocal 18
; Incognito mode?
pushint 1 ; <-- Change This
setlocal 19
; Autofire when no enemies are in range?
pushint 1 ; <-- Change This
setlocal 20
;----------------------------------
; Code Body: only serious coders past this point
;----------------------------------
; Get Camera Angle and add it to firing angle
getlocal1
getlex QName(PackageNamespace("com.company.assembleegameclient.parameters"), "Parameters")
getproperty QName(PackageNamespace(""), "data_")
getproperty Multiname("cameraAngle", [PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#0"), PackageNamespace(""), PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#1"), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace($"playerNamespace"), StaticProtectedNs($"playerNamespace"), StaticProtectedNs($"characterNamespace"), StaticProtectedNs($"gameobjectNamespace"), StaticProtectedNs($"basicobjectNamespace")])
add
setlocal 7
; Check to see if manual fire is on
getlex QName(PackageNamespace(""), "map_")
getproperty QName(PackageNamespace(""), "gs_")
getproperty QName(PackageNamespace(""), "mui_")
getproperty QName(PrivateNamespace("*", $"mouseClass"), $"mouseClicked")
iftrue INCOGNITO_OFF
; Empty Current Object
pushnull
coerce QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject")
dup
setlocal 4
; Create a new register for Constructs
setlocal 16
; Set Current Distance to -1
pushbyte 255
setlocal 8
; Set considered distance to 0
pushbyte 0
setlocal 9
; Initialize Weapon range as null
pushnull
coerce_a
setlocal 11
; Initialize considered target health
pushbyte 0
setlocal 12
; Initialize current target health
pushbyte 0
setlocal 13
; Used as the Enumerator index in the hasnext2 loop
pushbyte 0
setlocal 5
; Create an array of all the object currently loaded
getlex QName(PackageNamespace(""), "map_")
getproperty QName(PackageNamespace(""), "goDict_")
coerce_a
setlocal 6
jump NEXTOBJ
L34:
; Move to the next object in the array
label
getlocal 6
getlocal 5
nextvalue
coerce QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject")
setlocal 4
; Tesla Coil Check
getlocal 18
pushint 0
ifeq OPTION_TESLA
getlocal 4
getproperty QName(PackageNamespace(""), "props_")
getproperty QName(PackageNamespace(""), "id_")
pushstring "Tesla Coil"
ifeq TESLA
OPTION_TESLA:
; Check if the object is a character i.e. not a wall
getlocal 4
getlex QName(PackageNamespace("com.company.assembleegameclient.objects"), "Character")
istypelate
iffalse NEXTOBJ
TESLA:
; Check to see if the object is an enemy
getlocal 4
getproperty QName(PackageNamespace(""), "props_")
getproperty QName(PackageNamespace(""), "isEnemy_")
iffalse NEXTOBJ
getlocal 4 ;---------------Check added by CrazyJani 6/19/2013--------------
getproperty QName(PackageNamespace(""), "props_") ; This allows you to choose what enemies autoaim shoots
getproperty QName(PackageNamespace(""), "id_") ; while they are invulnerable. This works better than
setlocal 14 ; long ignore list in many ways
getlocal 14
pushstring "Oryx Stone Guardian Right"
ifeq SKIP_CHECK
getlocal 14
pushstring "Oryx Stone Guardian Left"
ifeq SKIP_CHECK
getlocal 14
pushstring "Septavius the Ghost God"
ifeq SKIP_CHECK
getlocal 14
pushstring "Limon the Sprite God"
ifeq SKIP_CHECK
getlocal 14
pushstring "Oryx the Mad God 1"
ifeq SKIP_CHECK
getlocal 14
pushstring "Oryx the Mad God 2"
ifeq SKIP_CHECK
getlocal 14
pushstring "Crystal Prisoner"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Defender"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Support"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Attacker"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Defender Statue"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Support Statue"
ifeq SKIP_CHECK
getlocal 14
pushstring "Tomb Attacker Statue"
ifeq SKIP_CHECK
getlocal 14
pushstring "Lord Ruthven"
ifeq SKIP_CHECK
getlocal 14
pushstring "Archdemon Malphas"
ifeq SKIP_CHECK
getlocal 14
pushstring "Grand Sphinx"
ifeq SKIP_CHECK
getlocal 14
pushstring "Ghost Ship"
ifeq SKIP_CHECK
getlocal 14
pushstring "Davy Jones"
ifeq SKIP_CHECK
getlocal 14
pushstring "Stheno the Snake Queen"
ifeq SKIP_CHECK
getlocal 14
pushstring "Ent Ancient"
ifeq SKIP_CHECK
getlocal 14
pushstring "Actual Ent Ancient"
ifeq SKIP_CHECK
getlocal 14
pushstring "Kage Kami"
ifeq SKIP_CHECK
getlocal 14
pushstring "Ghost of Skuld"
ifeq SKIP_CHECK
getlocal 14
pushstring "Troll 3"
ifeq SKIP_CHECK
getlocal 14
pushstring "Arena Grave Caretaker"
ifeq SKIP_CHECK
getlocal 14
pushstring "Spoiled Creampuff"
ifeq SKIP_CHECK
getlocal 14
pushstring "Swoll Fairy"
ifeq SKIP_CHECK
getlocal 14
pushstring "Desire Troll"
ifeq SKIP_CHECK
getlocal 14
pushstring "Gigacorn"
ifeq SKIP_CHECK
getlocal 14
pushstring "MegaRototo"
ifeq SKIP_CHECK
getlocal 14
pushstring "Sphinx Artifact 1"
ifeq SKIP_CHECK
getlocal 14
pushstring "Sphinx Artifact 2"
ifeq SKIP_CHECK
getlocal 14
pushstring "Sphinx Artifact 3"
ifeq SKIP_CHECK
getlocal 14
pushstring "Nile Artifact 1"
ifeq SKIP_CHECK
getlocal 14
pushstring "Nile Artifact 2"
ifeq SKIP_CHECK
getlocal 14
pushstring "Nile Artifact 3"
ifeq SKIP_CHECK
getlocal 14
pushstring "Pyramid Artifact 1"
ifeq SKIP_CHECK
getlocal 14
pushstring "Pyramid Artifact 2"
ifeq SKIP_CHECK
getlocal 14
pushstring "Pyramid Artifact 3"
ifeq SKIP_CHECK
getlocal 14
pushstring "Jon Bilgewater the Pirate King"
ifeq SKIP_CHECK
getlocal 14
pushstring "Djinn"
ifeq SKIP_CHECK
getlocal 14
pushstring "Epic Larva"
ifeq SKIP_CHECK
getlocal 14
pushstring "Epic Mama Megamoth"
ifeq SKIP_CHECK
getlocal 14
pushstring "Murderous Megamoth"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Stone Mage"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Stone Knight"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Stone Paladin"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Titanum"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Bridge Titanum"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Paladin Obelisk"
ifeq SKIP_CHECK
getlocal 14
pushstring "shtrs Defense System"
ifeq SKIP_CHECK
; Check to see if enemy is damagable
getlocal 4
callproperty QName(PackageNamespace(""), $"FunctionIsInvincible"), 0 ;Check if target is INVINCIBLE
iftrue NEXTOBJ
getlocal 4
callproperty QName(PackageNamespace(""), $"FunctionsIsStasis"), 0 ;Check if target is in STASIS
iftrue NEXTOBJ
getlocal 4
callproperty QName(PackageNamespace(""), $"FunctionsIsInvulnerable"), 0 ;Check if target is in INVULNERABLE
iftrue NEXTOBJ
SKIP_CHECK:
; Get Distance to considered target
getlex QName(PackageNamespace(""), "Math")
getlocal 4
getproperty QName(PackageNamespace(""), "y_")
getlex QName(PackageNamespace(""), "y_")
subtract
dup
multiply
getlocal 4
getproperty QName(PackageNamespace(""), "x_")
getlex QName(PackageNamespace(""), "x_")
subtract
dup
multiply
add
callproperty QName(PackageNamespace(""), "sqrt"), 1
dup
setlocal 9
; Get Weapon Range
getlex QName(PackageNamespace("com.company.assembleegameclient.objects"), "ObjectLibrary")
getproperty QName(PackageNamespace(""), $"ObjLibDictionary")
getlex QName(PackageNamespace(""), $"gameobjVector")
pushbyte 0
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace($"projectileNamespace"), StaticProtectedNs($"projectileNamespace"), StaticProtectedNs($"basicobjectNamespace")])
convert_i
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace($"projectileNamespace"), StaticProtectedNs($"projectileNamespace"), StaticProtectedNs($"basicobjectNamespace")])
getproperty QName(PackageNamespace(""), $"ObjPropertiesDictionary")
pushbyte 0
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace($"projectileNamespace"), StaticProtectedNs($"projectileNamespace"), StaticProtectedNs($"basicobjectNamespace")])
dup
setlocal 11
; Check to see if current Object is within range
getproperty QName(PackageNamespace(""), "speed_")
pushshort 10000
divide
getlocal 11
getproperty QName(PackageNamespace(""), "lifetime_")
multiply
pushbyte 1 ; Add 1 to range
add
ifgt NEXTOBJ
; Define Object ID
getlocal 4
getproperty QName(PackageNamespace(""), "props_")
getproperty QName(PackageNamespace(""), "id_")
setlocal 15
; Check to see if Constructs are in range
getlocal 17
pushint 0
ifeq SKIP
getlocal 15
pushstring "Steel Bot"
ifeq CONSTRUCT
getlocal 15
pushstring "Rock Bot"
ifeq CONSTRUCT
getlocal 15
pushstring "Paper Bot"
ifeq CONSTRUCT
jump SKIP
CONSTRUCT:
; Steel Bot Priority
; Check to see if loc16 is empty
getlocal 16
pushnull
ifeq EMPTY
; Check to see if loc16 is a steel bot
getlocal 16
getproperty QName(PackageNamespace(""), "props_")
getproperty QName(PackageNamespace(""), "id_")
pushstring "Steel Bot"
ifeq NEXTOBJ
EMPTY:
; replace loc16
getlocal 4
setlocal 16
jump NEXTOBJ
SKIP:
; List of enemies to ignore
getlocal 15
pushstring "Steel Bot"
ifeq NEXTOBJ
getlocal 15
pushstring "Rock Bot"
ifeq NEXTOBJ
getlocal 15
pushstring "Paper Bot"
ifeq NEXTOBJ
getlocal 15
pushstring "Oryx Suit of Armor"
ifeq NEXTOBJ
getlocal 15
pushstring "Sprite Child"
ifeq NEXTOBJ
getlocal 15
pushstring "Shield Orc Shield"
ifeq NEXTOBJ
getlocal 15
pushstring "Shield Orc Key"
ifeq NEXTOBJ
getlocal 15
pushstring "Shield Orc Flooder"
ifeq NEXTOBJ
getlocal 15
pushstring "Blue Flaming Skull"
ifeq NEXTOBJ
getlocal 15
pushstring "Red Flaming Skull"
ifeq NEXTOBJ
getlocal 15
pushstring "Pentaract Eye"
ifeq NEXTOBJ
getlocal 15
pushstring "Beach Spectre"
ifeq NEXTOBJ
getlocal 15
pushstring "Cube Overseer"
ifeq NEXTOBJ
getlocal 15
pushstring "Mysterious Crystal"
ifeq NEXTOBJ
getlocal 15
pushstring "Crystal Prisoner Steed"
ifeq NEXTOBJ
getlocal 15
pushstring "Cube Defender"
ifeq NEXTOBJ
getlocal 15
pushstring "Cube Blaster"
ifeq NEXTOBJ
getlocal 15
pushstring "Crystal Prisoner Clone"
ifeq NEXTOBJ
getlocal 15
pushstring "Stheno Swarm"
ifeq NEXTOBJ
getlocal 15
pushstring "Stheno Pet"
ifeq NEXTOBJ
getlocal 15
pushstring "Assassin of Oryx"
ifeq NEXTOBJ
getlocal 15
pushstring "Minion of Oryx"
ifeq NEXTOBJ
getlocal 15
pushstring "Active Sarcophagus"
ifeq NEXTOBJ
getlocal 15
pushstring "Beam Priestess"
ifeq NEXTOBJ
getlocal 15
pushstring "Beam Priest"
ifeq NEXTOBJ
getlocal 15
pushstring "Ghost Lanturn On"
ifeq NEXTOBJ
getlocal 15
pushstring "Whirlpool"
ifeq NEXTOBJ
getlocal 15
pushstring "Deadwater Docks Macaw"
ifeq NEXTOBJ
getlocal 15
pushstring "Deadwater Docks Parrot"
ifeq NEXTOBJ
getlocal 15
pushstring "Malphas Protector"
ifeq NEXTOBJ
getlocal 15
pushstring "Malphas Missile"
ifeq NEXTOBJ
; Get Current enemy Health
getlocal 4
getproperty QName(PackageNamespace(""), $"Aimbot_charMaxHealth")
setlocal 13
; HP Priority Override
getlocal 15
pushstring "Greater Nature Sprite"
ifeq HP
getlocal 15
pushstring "Actual Greater Nature Sprite"
ifeq HP
jump HP_SKIP
HP:
pushshort 10000
setlocal 13
HP_SKIP:
; Check to see if they are equal
getlocal 13
getlocal 12
ifeq L103
; Check to see if new health is higher
getlocal 13
getlocal 12
iflt NEXTOBJ
jump L107
L103:
; Check to see which Enemy is closer in the event of equal health
getlocal 9
getlocal 8
iflt L107
jump NEXTOBJ
L107:
; Update Considered health
getlocal 13
setlocal 12
; Update considered distance
getlocal 9
setlocal 8
; Update angle to considered target
getlex QName(PackageNamespace(""), "Math")
getlocal 4
getproperty QName(PackageNamespace(""), "y_")
getlex QName(PackageNamespace(""), "y_")
subtract
getlocal 4
getproperty QName(PackageNamespace(""), "x_")
getlex QName(PackageNamespace(""), "x_")
subtract
callproperty QName(PackageNamespace(""), "atan2"), 2
setlocal 7
jump NEXTOBJ
NEXTOBJ:
; Loop
hasnext2 6, 5
iftrue L34
; Empty the Stack
kill 6
kill 5
; Check to see if enemy health is still 0
getlocal 12
pushbyte 0
ifeq CHECK
jump SHOOT
CHECK:
; Check to see if only constructs remain
getlocal 17
pushint 0
ifeq CONSTRUCT_OFF
jump CONSTRUCT_ON
; Check to see if autofire is on
CONSTRUCT_OFF:
getlocal 20
pushint 0
ifeq AUTOFIRE_OFF
jump INCOGNITO_OFF
AUTOFIRE_OFF:
jump END
CONSTRUCT_ON:
getlocal 20
pushint 0
ifeq AUTOFIRE_OFF2
getlocal 16
pushnull
ifeq INCOGNITO_OFF
jump CONSTRUCT2
AUTOFIRE_OFF2:
getlocal 16
pushnull
ifeq END
CONSTRUCT2:
; Firing Angle to constructs
getlex QName(PackageNamespace(""), "Math")
getlocal 16
getproperty QName(PackageNamespace(""), "y_")
getlex QName(PackageNamespace(""), "y_")
subtract
getlocal 16
getproperty QName(PackageNamespace(""), "x_")
getlex QName(PackageNamespace(""), "x_")
subtract
callproperty QName(PackageNamespace(""), "atan2"), 2
setlocal 7
getlocal 16
setlocal 4
SHOOT:
; Incognito modifier
getlocal 19
pushint 0
ifeq INCOGNITO_OFF
; Random add/subtract
getlex QName(PackageNamespace("", "#0"), "Math")
callproperty QName(PackageNamespace("", "#0"), "random"), 0
pushdouble .5
swap
ifge ADD
jump SUBTRACT
ADD:
; add random dec * multiplier to angle
; Use Y= B-Ax Where X is range (in Radians)
pushdouble .106033 ; B
getlocal 11
getproperty QName(PackageNamespace(""), "speed_")
pushshort 10000
divide
getlocal 11
getproperty QName(PackageNamespace(""), "lifetime_")
multiply
pushdouble .005362 ; A
multiply
subtract
getlex QName(PackageNamespace("", "#0"), "Math")
callproperty QName(PackageNamespace("", "#0"), "random"), 0
multiply
getlocal 7
add
setlocal 7
jump INCOGNITO_OFF
SUBTRACT:
; subtract random int * multiplier to angle
pushdouble .106033
getlocal 11
getproperty QName(PackageNamespace(""), "speed_")
pushshort 10000
divide
getlocal 11
getproperty QName(PackageNamespace(""), "lifetime_")
multiply
pushdouble .005362
multiply
subtract
getlex QName(PackageNamespace("", "#0"), "Math")
callproperty QName(PackageNamespace("", "#0"), "random"), 0
multiply
getlocal 7
swap
subtract
setlocal 7
INCOGNITO_OFF:
getlocal0
getlocal 7
callpropvoid QName(PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#0"), "shoot"), 1
END:
returnvoid
end ; code
end ; body
end ; method
end ; trait
That latest one works great. It doesn't cause me to miss a lot of shots with wand classes and works well with melees. Incognito mode looks better and more natural with autofire always on. The swaying shots still look a little obvious when not moving around but people can just learn to hold down left click if they want straight shots at a stationary target.
can you add a option so its not always auto fire but will auto fire between enemies making a wave from one to the other... maybe in option let us set the wave speed from 1-10?
How about I added a variable for shots required per 180 degrees of rotation?
Add in a check to see if new angle is more than some number +\-
Ex: 40 degrees -> 87 degrees from one enemy to the next
Fire at 40
See angle at 87
Fire at 50
Fire at 60
Fire at 70
Fire at 80
Then fire at 87
That would be 18 shots required per 180 degrees
Add in a check to see if new angle is more than some number +\-
Ex: 40 degrees -> 87 degrees from one enemy to the next
Fire at 40
See angle at 87
Fire at 50
Fire at 60
Fire at 70
Fire at 80
Then fire at 87
That would be 18 shots required per 180 degrees
thats way too slow, and actually I think you should make that into a new option.
Like 2 to 3 shots per 180 deg, but it needs some random element or else every angle between shots will be the same and so awkward
Hows this look?
I created a new trait slot to store the firing angle at the end of each loop and added the following code:
I bolded the old code that it goes inbetween. I also had to add one more option near the top for how many shots per 180 degree.
EX:
local 21 is set to 5 shots per full turn
your are firing at an enemy at 40 degrees and your next enemy is at 180 degrees
Rather than going 40 to 180 directly it will do this instead
What do you guys think of the logic here on limiting your rotation between shots in this manner?
@Cryogen235
@cehrenr
Code:
SHOOT:
; Check to see shots per 180 degrees
getlocal 21
pushint 0
ifeq SHOTSPER_OFF
; Check to see if you should rotate clockwise or counterclockwise
getproperty QName(PackageNamespace(""), "OldAngle_")
getlocal 7
ifge HIGHER
; New angle is lower
getproperty QName(PackageNamespace(""), "OldAngle_")
pushdouble 3.141592654
getlocal 21
pushdouble 1
add
divide
subtract
dup
getlocal 7
iflt USEOLD
; Fire at enemy
pop
jump SHOTSPER_OFF
USEOLD:
; modify firing angle
setlocal 7
jump SHOTSPER_OFF
HIGHER:
; New angle is higher
getproperty QName(PackageNamespace(""), "OldAngle_")
pushdouble 3.141592654
getlocal 21
pushdouble 1
add
divide
add
dup
getlocal 7
ifgt USEOLD2
; Fire at enemy
pop
jump SHOTSPER_OFF
USEOLD2:
; modify firing angle
setlocal 7
jump SHOTSPER_OFF
SHOTSPER_OFF:
; Incognito modifier
getlocal 19
pushint 0
ifeq INCOGNITO_OFF
EX:
local 21 is set to 5 shots per full turn
your are firing at an enemy at 40 degrees and your next enemy is at 180 degrees
Rather than going 40 to 180 directly it will do this instead
Code:
Check to see if 180> 40 Yes Rotate Counter-Clockwise Get old angle of 40 degrees Get 180/6 (You have to add one to get the correct math) Maximum allowed angle = 70 degrees Fire at 70 Fire at 100 Fire at 130 Fire at 160 Finally Fire at 180 degrees
@Cryogen235
@cehrenr
This thread is closed for replies.
Similar Threads
Realm of the Mad God Hacks & Cheats:) Updated MOD Selector and Client with Autoaim
53 Realm of the Mad God Hacks & CheatsROTMG Mod Selector Updated as of 10/20/2012
179 Realm of the Mad God Hacks & CheatsMod Selector - Change 1.0 version to 2.0
50 Realm of the Mad God Help & RequestsIs there a client with these options (please don't say nilly's mod selector)BL 14 Realm of the Mad God Hacks & CheatsEnable Editor for Mod Selector
46

