Post Reply Home » Forums » MMO Forums » Lineage 2 » Lineage 2 Submissions

L2 macro that works. : Lineage 2 Submissions

Posted: April 28th, 2004
Total Posts:10213 Joined:2004
alrighty, the bot picks up drops, checks ur health so it will sit when you need it (varies from toon so change it if you must)
Has a new "distance" targeting system so it doesnt rely on the close range "next target" feature.

Step 1. Go onto Google and search for a macro called AC tool.
Step 2. Download/install it.
Step 3. Open it up.
Step 4. Paste this code into it.
Step 5. Run Lineage and log in.
Step 6. Get to your hunting ground.
Step 7. Minimize L2 and type the name of the mob you want to hunt where it says at the top of the macro script, [puma] for example.
Step 8. bring L2 back up and Edit your quickbar to what it says on the macro.
Step 9. Minimize L2 and Start the macro.


The macro will open up L2 by its self and will start to do its thing in around 8 seconds.

Hope this gives me a life membership! :D

Copy and paste the 2nd part over the same line were it asks you to add the Hpbar. (at the bottom)


This sounds a long one but with common sense you can be up and running in moments. Good luck.

1st part

Code: Register to unlock hidden link

//Level2 0.1
//alpha beta gaga release

SETActiveWindow Lineage II

delay 8 sec //start delay

//code borrowed from tivia is the hp/mp check for your char, thanks mang

//RESOLUTION: 1024x768
//PUT ALL FILES IN YOUR ACTOOL\MACROS FOLDER.

//Personal Notes:
//1: If you haven't attacked the mob yet, and you're being aggro'd,
//   you'll have a monster attacking you and their name will have red
//	 balls in the target title. You could wait and check that before you
//	 attack the passive mob. (assuming you only target passive mobs)
//2: Could use the near target hotkey to see how many mobs are attacking
//	 you at once. Cycle through and keep a count by checking discrepancies
//   in their health bars. --run away using the arrow keys?
//3: Load potential targets from a text file?
//4: Find out precisely the amount of HP by scanning down the hp meter till
//   you get to the depleted red color (or blue)
//5: Start using soulshots if monster health is lower than yours but you're starting to hurt
//6: Could determine how fast you are killing him by storing damage/hit over x amount
//	 of exchanges...see if you need to use soulshots

Constants
  //CHANGE "PUMA" TO WHATEVER MONSTER (PASSIVE IS BEST) YOU WANT TO FIGHT
  //KEEP THE NAME IN THE BRACKETS
  Monster = [Puma]
  
  ExecWeaponSkill = {F1}
  ExecAttack		  = {F2}
  ExecPickup 		  = {F3}
  ExecTarget 			= {F4}
  ExecSpoil 			= {F5}
  ExecSweep 		  = {F6}
  ExecHeal 				= {F7}
  ExecPotion		  = {F8}
  
  ///LOCATIONS//
  //LiveNPC  = 435, 19
  //DeadNPC	 = 435, 19
  MobHP 	 = 435, 19
  FullHP 	 = 119, 25
  HalfHp	 = 70, 25
  LowHp 	 = 40, 25
  FullMP 	 = 119, 38
  HalfMP 	 = 70, 38
  LowMP  	 = 40, 38
  ObjVar 	 = 5
  
  //COLORS//
  //DeadMOB = 102 //the color the hp bar will be if a mob is dead (at 435, 19)
  LiveMOB = 207 //the color the hp bar will be if a mob is alive (at 435, 19)
  
  
  //TOOLBAR FLAGS//
  WeaponSkill = 1
  Spoil 			= 1
  Heal 				= 0
  Potion 			= 0
  
  //HEALTH FLAGS//
  Safe 		 = 1
  Danger 	 = 0
  Critical = 0
  
  //COMBAT FLAGS//
  Attacking = 0 //test if you're currently engaged in combat
  StopSpoil = 1 //should we spoil this guy or not
  Spoiled   = 0 //see if target is already spoiled
  
  //MISC
  Difference = 0 //used to find the variance of red
  
End //of constants

////MAIN LOOP
While 1=1
  Processmessages
  Call Main
End
///END MAIN LOOP


/////////////////////////////////////////////////
/////////////////////////////////////////////////
Procedure Main
  
  Keys ^a {BACK} {BACK} //make sure it deletes any channel crap crap (+, #, etc)
  Set STOPSPOIL = 0 //reset stop spoil if it somehow didn't get reset already
  
  While $Attacking = 0
    Timestamp Debug: We're at main...
    Keys ^a {BACK} {BACK} //make sure it deletes any channel crap crap (+, #, etc)
    Keys /target $Monster {RETURN}
    Delay 200
    //target anything close first
    Call Aggro
    //Call the CheckMonsterHP procedure to see if we have a target
    Call CheckMonsterHP
    //see if we need to sit down
    //lots of overhead here?
    Call SitDown
    Timestamp Debug: End of main...
  End //End $Attacking While
  
  //Call Kill because we're attacking now
  Call Kill
  
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////


/////////////////////////////////////////////////
/////////////////////////////////////////////////
Procedure Kill
  
  If $Spoil = 1 and $Spoiled = 0 and $StopSpoil = 0
    Keydown $ExecSpoil 500
    Set SPOILED = 1 //monster has been spoiled
  End
  
  //if $Critical = 1
  //call runawaylikeabitch
  
  While $Attacking = 1
    Keydown $ExecAttack 150
    delay 1500
    Keydown $ExecWeaponSkill 250
    delay 100
    KeyDown $ExecAttack 150
    delay 5 sec
    Call CheckMonsterHP
    Timestamp END OF ATTACKING
  End
  //Hooray! Monster is dead, now for the spoils
  
  //BEGIN !@#$%^* PICKUP HACK
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 20
  Keydown $ExecPickup 10
  delay 50
  Keydown $ExecPickup 100
  //END PICKUP HACK
  
  If $Spoiled = 1
    Keydown $ExecSweep //sweep the monster
    Set SPOILED = 0 //reset spoiled flag
    Set STOPSPOIL = 0 //reset stopspoil flag
  End
  
  Call Aggro //double check
  Call HealthCheck // see if you're good to go again
  
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////


/////////////////////////////////////////////////
/////////////////////////////////////////////////
Procedure SitDown
  Call HealthCheck
  //now we check and see if we're safe to attack
  If $Safe = 0 and $Attacking = 0
    //see how long we need to sit
    while $Danger = 1 or $Critical = 1
      keys /sit
      if $Danger = 1
        delay 1 min
      else
        if $Critical = 1
          delay 2 min
        End
      End
      keys /stand
    End //End HealthCheck while
  End //End parent If
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////


/////////////////////////////////////////////////
/////////////////////////////////////////////////
//Pretty much just Tivia's MyHealth procedure with a few things sprinkled in
Procedure HealthCheck
  Timestamp ()
  Isobject HalfHp at 70, 25
    //SET HEALTH FLAGS
    Set SAFE 		 = 0
    Set DANGER 	 = 1
    Set CRITICAL = 0
    
    If $Heal = 1
      Keydown $ExecHeal 200
      //dont want to sit there with your thumb up your !@#$%^* if you're getting stomped
      If $Attacking = 0
        Delay 4000
      End
    End
  Else
    Isobject LowHp at 40, 25
      //SET HEALTH FLAGS
      Set SAFE 		 = 0
      Set DANGER 	 = 0
      Set CRITICAL = 1
      
      If $Potion = 1
        Keydown $ExecPotion 200
        //defend yourself, dont delay! :D
        If $Attacking = 0
          delay 1000
        End
      Else
        Set SAFE 		 = 1
        Set DANGER 	 = 0
        Set CRITICAL = 0
        Timestamp
        If $Attacking = 0
          Delay 1 sec
        End
      End
    End
  End
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////

/////////////////////////////////////////////////
/////////////////////////////////////////////////
Procedure CheckMonsterHP
  //Load the current RGB values at $MobHP
  LoadRGB $MobHP
  
  //find the difference between desired red and actual red
  Compute $Difference = ABS ( $LiveMOB - {RGBRed} )
  
  //if the difference is acceptable, it's still alive
  if $Difference < 40
    Set ATTACKING = 1
    Timestamp Debug: We're still fighting...
    //else it's dead
  else
    Set ATTACKING = 0
    Timestamp Debug: MOB has been vanquished.
  end
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////


/////////////////////////////////////////////////
/////////////////////////////////////////////////
Procedure Aggro every 5 sec
  Timestamp ()
  Keydown $ExecTarget 250
  Call CheckMonsterHP
  
  //if we got aggrod, dont waste time by spoiling
  If $Attacking = 1 and $Spoil = 1
    Set STOPSPOIL = 1
  End
  //hit escape and call nearest target?
End
/////////////////////////////////////////////////
/////////////////////////////////////////////////

//stolen include file -- Thanks tivia
Include Macros\Objects\HpBar.inc
2nd part (hpbar)

Code: Register to unlock hidden link

Object HalfHp   // Test at coords 74, 25
  99=0,0|99=2,0|
  76=0,2|76=2,2|
  90=0,4|90=2,4|
  121=0,6|121=2,6|
End Object

Object FullHp   // Test at coords 106, 26
  140=0,0|140=2,0|140=4,0|140=6,0|140=8,0|140=10,0|140=12,0|140=14,0|140=16,0|140=18,0|140=20,0|140=22,0|145=24,0|
  162=0,2|162=2,2|162=4,2|162=6,2|162=8,2|162=10,2|162=12,2|162=14,2|162=16,2|162=18,2|162=20,2|162=22,2|145=24,2|
  198=0,4|198=2,4|198=4,4|198=6,4|198=8,4|198=10,4|198=12,4|198=14,4|198=16,4|198=18,4|198=20,4|198=22,4|176=24,4|
  247=0,6|247=2,6|247=4,6|247=6,6|247=8,6|247=10,6|247=12,6|247=14,6|247=16,6|247=18,6|247=20,6|247=22,6|247=24,6|
End Object

Object LowHp  // Test at coords 40, 25
  99=0,0|99=2,0|99=4,0|99=6,0|
  76=0,2|76=2,2|76=4,2|76=6,2|
  90=0,4|90=2,4|90=4,4|90=6,4|
  121=0,6|121=2,6|121=4,6|121=6,6|
End Object

//Object MyMP   // Test at coords 13, 40
76=0,0|132=2,0|132=4,0|132=6,0|132=8,0|132=10,0|132=12,0|132=16,0|132=20,0|255=22,0|255=24,0|132=26,0|132=28,0|132=30,0|132=32,0|132=34,0|132=36,0|132=38,0|132=40,0|132=42,0|132=46,0|132=48,0|255=50,0|255=52,0|132=54,0|132=56,0|255=58,0|255=60,0|132=64,0|132=66,0|132=68,0|132=72,0|132=76,0|132=78,0|255=80,0|255=82,0|132=84,0|132=86,0|255=88,0|255=90,0|132=94,0|132=96,0|132=98,0|
132=0,2|150=2,2|150=4,2|150=6,2|150=8,2|150=10,2|150=12,2|255=14,2|255=16,2|150=20,2|150=24,2|150=28,2|150=30,2|150=32,2|150=34,2|150=36,2|150=38,2|150=40,2|150=42,2|150=46,2|150=48,2|150=52,2|150=56,2|150=60,2|150=62,2|150=64,2|150=66,2|255=68,2|150=70,2|150=72,2|150=76,2|150=78,2|150=82,2|150=86,2|150=90,2|150=92,2|150=94,2|150=96,2|150=98,2|
132=0,4|187=2,4|187=4,4|187=6,4|187=8,4|187=10,4|187=12,4|187=20,4|255=22,4|255=24,4|187=26,4|187=28,4|187=30,4|187=32,4|187=34,4|187=36,4|187=38,4|187=40,4|187=42,4|187=46,4|187=48,4|187=52,4|187=56,4|187=58,4|187=60,4|187=64,4|187=66,4|187=70,4|187=72,4|187=76,4|187=78,4|187=82,4|187=86,4|187=88,4|187=90,4|187=94,4|187=96,4|187=98,4|
143=0,6|225=2,6|225=4,6|225=6,6|225=8,6|225=10,6|225=12,6|225=20,6|225=24,6|225=26,6|225=28,6|225=30,6|225=32,6|225=34,6|225=36,6|225=38,6|225=40,6|225=42,6|225=46,6|225=48,6|225=52,6|225=56,6|225=60,6|225=64,6|255=66,6|225=68,6|225=70,6|225=72,6|225=76,6|225=78,6|225=82,6|225=86,6|225=90,6|225=94,6|225=96,6|225=98,6|
// End Object

// Object HalfMp   // Test at coords 13, 39
119=0,0|215=2,0|213=4,0|213=6,0|213=8,0|213=10,0|213=12,0|213=14,0|213=16,0|213=18,0|213=20,0|213=22,0|213=24,0|213=26,0|213=28,0|213=30,0|213=32,0|213=34,0|213=36,0|213=38,0|213=40,0|78=42,0|78=44,0|78=46,0|78=48,0|78=50,0|78=52,0|78=54,0|78=56,0|78=58,0|78=60,0|78=62,0|78=64,0|78=66,0|78=68,0|78=70,0|78=72,0|78=74,0|78=76,0|78=78,0|78=80,0|78=82,0|78=84,0|78=86,0|78=88,0|78=90,0|78=92,0|78=94,0|78=96,0|78=98,0|
123=0,2|132=2,2|132=4,2|132=6,2|132=8,2|132=10,2|132=12,2|132=16,2|132=20,2|132=24,2|132=28,2|132=30,2|132=32,2|132=34,2|132=36,2|132=38,2|132=40,2|62=42,2|62=44,2|62=46,2|62=50,2|62=54,2|62=58,2|62=62,2|62=64,2|62=66,2|255=68,2|62=70,2|62=74,2|62=78,2|62=82,2|62=86,2|62=88,2|62=90,2|62=92,2|62=94,2|62=96,2|62=98,2|
118=0,4|168=2,4|168=4,4|168=6,4|168=8,4|168=10,4|168=12,4|255=14,4|255=16,4|168=20,4|168=24,4|168=28,4|168=30,4|168=32,4|168=34,4|168=36,4|168=38,4|168=40,4|88=42,4|88=44,4|88=46,4|255=48,4|255=50,4|88=52,4|88=54,4|255=56,4|255=58,4|88=60,4|88=62,4|88=64,4|88=66,4|88=70,4|88=74,4|88=78,4|255=80,4|255=82,4|88=84,4|88=86,4|88=88,4|88=90,4|88=92,4|88=94,4|88=96,4|88=98,4|
113=0,6|215=2,6|215=4,6|215=6,6|215=8,6|215=10,6|215=12,6|215=20,6|215=24,6|215=26,6|215=28,6|215=30,6|215=32,6|215=34,6|215=36,6|215=38,6|215=40,6|110=42,6|110=44,6|110=46,6|110=48,6|110=50,6|110=54,6|110=56,6|110=58,6|111=62,6|111=64,6|255=66,6|111=68,6|111=70,6|111=72,6|111=74,6|111=78,6|111=82,6|111=86,6|111=88,6|111=90,6|111=92,6|111=94,6|111=96,6|111=98,6|
115=0,8|215=2,8|215=4,8|215=6,8|215=8,8|215=10,8|215=12,8|215=16,8|215=20,8|215=24,8|215=26,8|215=28,8|215=30,8|215=32,8|215=34,8|215=36,8|215=38,8|215=40,8|110=42,8|110=44,8|110=46,8|255=48,8|255=50,8|110=52,8|110=54,8|255=56,8|255=58,8|111=60,8|111=62,8|111=64,8|111=68,8|111=70,8|255=72,8|255=74,8|111=76,8|111=78,8|255=80,8|255=82,8|111=84,8|111=86,8|111=88,8|111=90,8|111=92,8|111=94,8|111=96,8|111=98,8|
// End Object

//Object AlternateHalfhp   // Test at coords 75, 25
99=0,0|99=2,0|99=4,0|99=6,0|
76=0,2|76=2,2|76=4,2|255=6,2|
90=0,4|90=2,4|90=4,4|
121=0,6|121=2,6|255=4,6|121=6,6|
121=0,8|121=2,8|121=6,8|
//End Object
Posted: April 28th, 2004
Total Posts:10213 Joined:2004
goes this for orc mages ore other mages too ?

the begin not with attak the begin with
/lifedrain
Posted: April 28th, 2004
Total Posts:10213 Joined:2004
Instead of having your attack move in qb one (I think) just put the spell you want to use in and do the same in the potion quickbar.
Posted: April 28th, 2004
Total Posts:10213 Joined:2004
you should PM sirusdv with this, he wrote the L2 macro, and would be better able to decipher this than any noral board member
Ready to join the community? Click here and see all of the benefits!
blue large dotWho is online
Users browsing this forum: No registered users and 15 guests
Post Reply