Jump to content

Cafalorn

Members
  • Posts

    108
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Cafalorn

  1. 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
    
    

×
×
  • Create New...