Here script for AutoFighter L2Net231
//**** Fighter script v0.2 ****//
//Remember to set weapon ID at line 133 and 137 (in the killtarget sub)
//****** User Settings ******//
DEFINE INT MIN_ATTACKDELAY 1500
DEFINE INT MAX_ATTACKDELAY 2500
DEFINE INT LOOT_RANGE 100
DEFINE INT MIN_PICKUPDELAY 150
DEFINE INT MAX_PICKUPDELAY 300
DEFINE INT MIN_TARGETDELAY 500
DEFINE INT MAX_TARGETDELAY 1000
DEFINE INT MOVETO_DISTANCE 400
//***********************Kite Stuff*********************//
DEFINE INT KiteRange 450
DEFINE DOUBLE VX 0
DEFINE DOUBLE VY 0
DEFINE DOUBLE VX1 0
DEFINE DOUBLE VY1 0
DEFINE DOUBLE LEN 0
//*****************************************************//
//*******time*******//
DEFINE INT StartTime 0
DEFINE INT EndTime 0
DEFINE INT UsedTime 0
DEFINE INT MaxTime 100000000
DEFINE INT MaxPickTime 50000000
//******Rest Settings******//
//set here at what hp/mp to rest. (in %)
DEFINE INT RESTHPPERCENT 40
DEFINE INT RESTMPPERCENT 0
DEFINE INT TEMP 0
DEFINE INT i 0
DEFINE INT TEN 10
DEFINE INT FOUR 4
DEFINE INT HUNDRED 100
DEFINE INT COUNT 0
DEFINE INT Rest 0
DEFINE INT RESTHP 0
DEFINE INT RESTMP 0
DEFINE INT SKILLMP 0
DEFINE INT DISTANCE_TO_TARGET 0
DEFINE INT PICKUP_X 0
DEFINE INT PICKUP_Y 0
DEFINE INT TEMPX 3
DEFINE DOUBLE X 0
DEFINE DOUBLE Y 0
DEFINE DOUBLE Range 50
MATH RESTHP CHAR_MAX_HP MULTIPLY RESTHPPERCENT
MATH RESTHP RESTHP DIVIDE HUNDRED
MATH RESTMP CHAR_MAX_MP MULTIPLY RESTMPPERCENT
MATH RESTMP RESTMP DIVIDE HUNDRED
//****** MAIN ******//
//just a printout
PRINT_TEXT "rest below <&RESTHP&> HP"
DO
TARGET_NEAREST
GET_RAND TEMP "<&MIN_TARGETDELAY&>" "<&MAX_TARGETDELAY&>"
SLEEP "<&TEMP&>"
IF TARGET_CUR_HP > ZERO
CALLSUB MovetoTarget
SLEEP 500
CALLSUB KillTarget
ENDIF
//Target is dead, pick up
GET_TIME StartTime
SET PICKUP_X "<&CHAR_X&>"
SET PICKUP_Y "<&CHAR_Y&>"
WHILE NEAREST_ITEM_DISTANCE < LOOT_RANGE
GET_TIME EndTime
MATH UsedTime EndTime SUBTRACT StartTime
IF UsedTime > MaxPickTime
BREAK 2
ENDIF
DISTANCE TEMP CHAR_X CHAR_Y TEMP PICKUP_X PICKUP_Y TEMP
IF TEMP > LOOT_RANGE
BREAK 2
ENDIF
CALLSUB Pickup
WEND
IF COUNT_NPC_TARGETME == ZERO
IF CHAR_CUR_HP < RESTHP
CALLSUB Rest
ENDIF
ENDIF
LOOP ZERO == ZERO
SCRIPT_END
//***************** SUBS *****************//
SUB MovetoTarget
SET i 0
GET_TIME StartTime
DISTANCE DISTANCE_TO_TARGET CHAR_X CHAR_Y CHAR_Z TARGET_X TARGET_Y TARGET_Z
IF DISTANCE_TO_TARGET <= MOVETO_DISTANCE
RETURNSUB
ENDIF
SET TEMPX "<&TARGET_X&>"
MOVE_TO "<&TARGET_X&>" "<&TARGET_Y&>" "<&TARGET_Z&>"
WHILE DISTANCE_TO_TARGET > MOVETO_DISTANCE
GET_TIME EndTime
MATH UsedTime EndTime SUBTRACT StartTime
DISTANCE DISTANCE_TO_TARGET CHAR_X CHAR_Y CHAR_Z TARGET_X TARGET_Y TARGET_Z
GET_RAND TEMP "<&MIN_TARGETDELAY&>" "<&MAX_TARGETDELAY&>"
SLEEP "<&TEMP&>"
IF UsedTime > MaxTime
CALLSUB Stuck
RETURNSUB
ENDIF
IF TARGET_X != TEMPX
MOVE_TO "<&TARGET_X&>" "<&TARGET_Y&>" "<&TARGET_Z&>"
ENDIF
WEND
RETURNSUB
//******************************************************************************//
SUB KillTarget
GET_TIME StartTime
DO
MATH i i ADD ONE
PRINT_TEXT "Entering loop <&i&>"
GET_TIME EndTime
MATH UsedTime EndTime SUBTRACT StartTime
IF i == FOUR
IF TARGET_CUR_HP == TARGET_MAX_HP
USE_ITEM 13 //Equip Short Bow
SLEEP 1000
ATTACK_TARGET
SLEEP 3500
USE_ITEM 2543 //Equip duals
SET i 0
ENDIF
ENDIF
IF UsedTime > MaxTime
IF TARGET_CUR_HP == TARGET_MAX_HP
CALLSUB Stuck
RETURNSUB
ENDIF
ENDIF
ATTACK_TARGET
GET_RAND TEMP "<&MIN_ATTACKDELAY&>" "<&MAX_ATTACKDELAY&>"
SLEEP "<&TEMP&>"
LOOP TARGET_CUR_HP > ZERO
RETURNSUB
//******************************************************************************//
SUB Pickup
CLICK_NEAREST_ITEM
GET_RAND TEMP "<&MIN_PICKUPDELAY&>" "<&MAX_PICKUPDELAY&>"
SLEEP "<&TEMP&>"
RETURNSUB
//******************************************************************************//
SUB Rest
PRINT_TEXT "starting to rest"
SLEEP 1000
COMMAND "/sit"
//USE_SKILL 226
WHILE CHAR_CUR_HP < CHAR_MAX_HP
IF COUNT_NPC_TARGETME != ZERO
COMMAND "/stand"
RETURNSUB
ENDIF
SLEEP 1000
WEND
//done resting lets stand
COMMAND "/stand"
SLEEP 200
RETURNSUB
//******************************************************************************//
SUB Stuck
//need to get a vector for from the monster to us
MATH VX CHAR_X SUBTRACT TARGET_X
MATH VY CHAR_Y SUBTRACT TARGET_Y
//now we have the vector from the target to us... lets normalize it now
DISTANCE LEN ZERO ZERO ZERO VX VY ZERO
MATH VX VX DIVIDE LEN
MATH VY VY DIVIDE LEN
//now lets scale back up to our range
MATH VX VX MULTIPLY KiteRange
MATH VY VY MULTIPLY KiteRange
SET VX1 "<&VX&>"
SET VY1 "<&VY&>"
//then we add this offset to our location
MATH VX VX ADD CHAR_X
MATH VY VY ADD CHAR_Y
//and finally... we move
MOVE_TO "<&VX&>" "<&VY&>" "<&CHAR_Z&>"
SLEEP 1500
//left turn
MATH VX CHAR_X SUBTRACT VY1
MATH VY CHAR_Y ADD VX1
MOVE_TO "<&VX&>" "<&VY&>" "<&CHAR_Z&>"
SLEEP 1500
MOVE_TO "<&TARGET_X&>" "<&TARGET_Y&>" "<&TARGET_Z&>"
SLEEP 1500
RETURNSUB
//**** Developed by Oddi 2007 ****//
//Thanks to Slothmo & Asmodin88 for providing useful pre-code