Auto-aim

Compatible RotMG client version: 123.5.1 trait method QName(PackageNamespace(""), "_-O7") method refid "com.company.assembleegameclient.objects:Player/_-O7" param QName(PackageNamespace(""), "Number") returns QName(PackageNamespace(""), "void") body maxstack 16 localcount 16 initscopedepth 16 maxscopedepth 18 code ;aimingAngle = arg1 + Parameters.data_.cameraAngle; getlocal0 pushscope 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("_-iX"), StaticProtectedNs("_-iX"), StaticProtectedNs("_-TE"), StaticProtectedNs("_-iP"), StaticProtectedNs("_-0-I")]) add setlocal           7 ;if (Left_Clicking) don't alter aimingAngle getlex             QName(PackageNamespace(""), "map_") getproperty        QName(PackageNamespace(""), "gs_") getproperty        QName(PackageNamespace(""), "mui_") getproperty        QName(PrivateNamespace("*", "com.company.assembleegameclient.game:_-07a#0"), "_-08R") iftrue             L138 ;Get game object pushnull coerce             QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject") ;coerce null that was pushed onto stack into a GameObject obj ??? setlocal           4 ;save object to local register 4 ;initialize current target distance to -1 pushbyte           255 setlocal           8 ;initialize considered target distance to 0 pushbyte           0 setlocal           9 ;set local register 11 to any type (used for speed and lifetime of player's projectile) pushnull coerce_a setlocal           11 ;current target max health pushbyte           0 setlocal           12 ;considered target max health pushbyte           0 setlocal           13 ;used for hasnext2 instruction pushbyte           0 setlocal           5 ;get the list of every object in game? jump to start going through list getlex             QName(PackageNamespace(""), "map_") getproperty        QName(PackageNamespace(""), "goDict_") coerce_a setlocal           6 jump               L131 L40: label getlocal           6 getlocal           5 nextvalue coerce             QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject") dup setlocal           4 ;make sure object is a character and not something like a wall ;getlocal			 4 getlex             QName(PackageNamespace("com.company.assembleegameclient.objects"), "Character") istypelate iffalse            L131 ;make sure object is an enemy getlocal			 4 getproperty        QName(PackageNamespace(""), "props_") getproperty        QName(PackageNamespace(""), "isEnemy_") iffalse            L131 getlocal           4 callproperty       QName(PackageNamespace(""), "_-0C4"), 0 ;<--don't aim at INVINCIBLE (procedure of Gameobject who check for the invincible state. This procedure use the _-0K- property which is referenced as Invincible in %ConditionEffect list       iftrue              L131 	  getlocal            4       callproperty        QName(PackageNamespace(""), "_-CH"), 0 ;<--don't aim at targets that are in stasis (Stasis effect)       iftrue              L131 	  getlocal            4       callproperty        QName(PackageNamespace(""), "_-c8"), 0 ;<--don't aim at shielded targets (Invulnerable effect)       iftrue              L131 	  ;calculate distance enemy is from player 	  	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 ;store considered target distance ;load up equiped weapon info ??? getlex             QName(PackageNamespace("com.company.assembleegameclient.objects"), "ObjectLibrary") getproperty        QName(PackageNamespace(""), "_-020") getlex             QName(PackageNamespace(""), "_-zq") 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("_-09j"), StaticProtectedNs("_-09j"), StaticProtectedNs("_-0-I")]) 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("_-09j"), StaticProtectedNs("_-09j"), StaticProtectedNs("_-0-I")]) getproperty        QName(PackageNamespace(""), "_-Ie") 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("_-09j"), StaticProtectedNs("_-09j"), StaticProtectedNs("_-0-I")]) dup setlocal           11 ;store weapon data in registry ;calculate if considered target is in range using weapon projectile speed and lifetime getproperty        QName(PackageNamespace(""), "speed_") pushshort          10000 divide getlocal           11 getproperty        QName(PackageNamespace(""), "lifetime_") multiply ifgt               L131 ;jump to next considered object (current considered object out of range) ;get considered target max health getlocal           4 getproperty        QName(PackageNamespace(""), "_-LT") dup setlocal           13 ;store max health ;if considered target max health is the same as current target max health, check distance getlocal           12 ifeq				 L109 ;if considered target max health is less than current target max health, move on to next object. getlocal			 13 getlocal			 12 iflt               L131 jump 			 	 L1099 ;considered target max health is greather than current target's, set new target L109: ;if considered target distance is less than current target distance, set new target getlocal           9 ;considered target getlocal           8 ;current target iflt               L1099 jump               L131 ;current target is closer than considered target, check next object L1099: ;considered target max health is more than current, set at new target. getlocal           13 setlocal           12 getlocal           9 setlocal           8 ;calculate shooting angle 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 ;store new angle jump               L131 ;look at next object L131: hasnext2           6, 5 iftrue             L40 kill               6 kill               5 getlocal           12 pushbyte           0 ifeq               L141 L138: getlocal0 getlocal           7 callpropvoid       QName(PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#0"), "shoot"), 1 L141: returnvoid end ; code end ; body end ; method end ; trait Your client now has autoaim.
 * Disassemble game bytecode with RABCDAsm
 * Open the folder where the disassembled code is, such as c:\rabcdsam\client\.
 * Open the com folder
 * Open the company folder
 * Open the assembleegameclient folder
 * Open the objects folder
 * Find the player.class.asasm file and open it in a text editor (such as Notepad++ ).
 * Find the function _-O7 in the document.
 * Replace _-O7 with the following code :
 * Save the file.
 * Reassemble game code with RABCDAsm