INCLUDE StdLib\inventory.l2c
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" PET_STATUS_UPD 182
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" PET_DEL 183
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" PET_SUM 178
DEFINE_GLOBAL ARRAYLIST ITEMSTODELETE 0 //used in Delete_stuff
DEFINE_GLOBAL ARRAYLIST ITEMSTODELETE_N 0 //used in Delete_stuff
DEFINE_GLOBAL ARRAYLIST INVEN 0
DEFINE_GLOBAL ARRAYLIST FRIENDS 0
DEFINE_GLOBAL INT ITEM_CURRENT_N_TMP 0
DEFINE_GLOBAL INT ITEM_TYPE_ID_TMP 0
DEFINE_GLOBAL INT ITEM_BEAST_SOULSHOT_COUNT 0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////// SETTINGS /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DEFINE_GLOBAL INT MY_CLASS_ID 104
DEFINE_GLOBAL INT USE_PREDEFINED_CLASS_ID 1
//////////////////////////// SUMMONS / BUFFS / CUBICS SETTINGS ///////////////////////////////////////////////////////////
DEFINE_GLOBAL INT USE_BUFF_FINAL_SERVITOR 1
DEFINE_GLOBAL INT USE_MASS_SUMMON_CUBIC 0
//Phantom summoner
DEFINE_GLOBAL INT USE_SERVITOR_SOULLESS 0
DEFINE_GLOBAL INT USE_SERVITOR_SHADOW 0
DEFINE_GLOBAL INT USE_SERVITOR_NIGHTSHADE 0
DEFINE_GLOBAL INT USE_SERVITOR_SPECTRAL_LORD 1
//Warlock
DEFINE_GLOBAL INT USE_SERVITOR_MEW 1
DEFINE_GLOBAL INT USE_SERVITOR_FELINE_KING 0
//Elemental summoner
DEFINE_GLOBAL INT USE_SERVITOR_BOXER 0
DEFINE_GLOBAL INT USE_SERVITOR_MERROW 0
DEFINE_GLOBAL INT USE_SERVITOR_MIRAGE 0
DEFINE_GLOBAL INT USE_SERVITOR_MAGNUS 1
//////////////////////////// TIME SETTINGS ////////////////////////////////////////////////////////////////////////////////
DEFINE_GLOBAL INT TIME_LAST_SUMMONED_SERVITOR 36000000000 //set how much summon last ( 1 hour ); 10,000 = 1[ms] -- not used
DEFINE_GLOBAL INT TIME_SUMMONED_SERVITOR_WAIT_EXPIRE 150000000 //time to w8 ( not attack new targets ) before the summon expires( 15[s] ); 10,000 = 1[ms] -- not used
DEFINE_GLOBAL INT TIME_REBUFF_DELAY 1195000 // 19 [m] 55[s]
DEFINE_GLOBAL INT TIME_SPECIAL_REBUFF_DELAY 280000 // 4[m] 55[s]
DEFINE_GLOBAL INT TIME_CUBIC_RESUMMON_DELAY 1210000 // 20 [m] 10[s] (set it to just a little bit more than the cubics last - just to be sure that summoning won't fail
DEFINE_GLOBAL INT TIME_SKILL_CAST_DELAY 4000 // 4[s] ( how long U cast a skill? 4[s] is default value for no external buff phantom summoner.
DEFINE_GLOBAL INT TIME_ITEMS_DELETE_DELAY 60000 // 1[m]
//////////////////////////// ITEM SETTINGS ////////////////////////////////////////////////////////////////////////////////
ItemsToDelete.ADD "#$Mithril Arrow"
ItemsToDelete_N.ADD "#i100"
ItemsToDelete.ADD "#$Iron Arrow"
ItemsToDelete_N.ADD "#i100"
ItemsToDelete.ADD "#$Silver Arrow"
ItemsToDelete_N.ADD "#i100"
ItemsToDelete.ADD "#$Wooden Arrow"
ItemsToDelete_N.ADD "#i100"
ItemsToDelete.ADD "#$Steel Arrow"
ItemsToDelete_N.ADD "#i100"
DEFINE_GLOBAL INT ITEM_MIN_BEAST_SOULSHOT_N 1000
DEFINE_GLOBAL INT ITEM_MIN_BEAST_SPIRITSHOT_N 1000
DEFINE_GLOBAL STRING ITEM_BEAST_SOULSHOT_NAME "#$Beast Soulshot"
DEFINE_GLOBAL STRING ITEM_BEAST_SOULSHOT_PACK_NAME "#$Beast Soulshot Compressed Pack"
DEFINE_GLOBAL STRING ITEM_BEAST_SPIRITSHOT_NAME "#$Beast Spiritshot"
DEFINE_GLOBAL STRING ITEM_BEAST_SPIRITSHOT_PACK_NAME "#$Beast Spiritshot Compressed Pack"
//////////////////////////// NOT ATTACK SETTINGS //////////////////////////////////////////////////////////////////////////
FRIENDS.ADD "#$Great Wolf"
//////////////////////////// PERFORMANCE SETTINGS //////////////////////////////////////////////////////////////////////////
DEFINE_GLOBAL INT PERFORMANCE_SOULSHOT_N_RECHECK 60000 // 1[min] ( lower - more accurate, less effcient. ) DO NOT set under 5000 !
DEFINE_GLOBAL INT PERFORMANCE_REATTACK_DELAY 1500 // 1.5[s]
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DEFINE_GLOBAL INT BUFF_PET1 1139 // Servitor Magic Shield
DEFINE_GLOBAL INT BUFF_PET2 1140 // Servitor Physical Shield
DEFINE_GLOBAL INT BUFF_PET3 1141 // Servitor Haste
DEFINE_GLOBAL INT BUFF_FINAL_SERVITOR 1349 // Final Servitor
DEFINE_GLOBAL INT PET_HEAL 1127 // Servitor Heal
DEFINE_GLOBAL INT PET_RECHARGE 1126 // Servitor Recharge
DEFINE_GLOBAL INT TIME_SUMMON_SERVITOR 0
DEFINE_GLOBAL INT TIME_TMP 1
DEFINE_GLOBAL INT TIME_NOW 1
DEFINE_GLOBAL INT TIME_LAST_SUMMONED_SERVITOR_TMP 1
DEFINE_GLOBAL INT TIME_LEFT_1_TMP 0
DEFINE_GLOBAL INT TIME_LEFT_2_TMP 0
DEFINE_GLOBAL INT TIME_LEFT_3_TMP 0
DEFINE_GLOBAL INT PQT 0
DEFINE_GLOBAL INT sumType 0
DEFINE_GLOBAL INT petID 0
DEFINE_GLOBAL INT X 0
DEFINE_GLOBAL INT Y 0
DEFINE_GLOBAL INT Z 0
DEFINE_GLOBAL STRING Title 0
DEFINE_GLOBAL INT curFed 0
DEFINE_GLOBAL INT maxFed 0
DEFINE_GLOBAL INT curHP 0
DEFINE_GLOBAL INT maxHP 0
DEFINE_GLOBAL INT curMP 0
DEFINE_GLOBAL INT maxMP 0
DEFINE_GLOBAL INT lvl 0
DEFINE_GLOBAL INT exp 0
DEFINE_GLOBAL INT exp2 0
DEFINE_GLOBAL INT exp3 0
DEFINE_GLOBAL INT isSUM 0
DEFINE_GLOBAL INT SSPETVISKOR 0 //si vous etes hors jeux, mettez 0 -- WTF? ;]
DEFINE_GLOBAL INT BENEDI 0
DEFINE_GLOBAL INT AMIC 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIME_LAST_SUMMONED_SERVITOR_TMP = TIME_LAST_SUMMONED_SERVITOR - TIME_SUMMONED_SERVITOR_WAIT_EXPIRE
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IF USE_PREDEFINED_CLASS_ID == ZERO
MY_CLASS_ID = CHAR_CLASS
ENDIF
PRINT_TEXT "MY CLASS ID is: <&MY_CLASS_ID&>"
SWITCH MY_CLASS_ID
CASE #i14
CASE #i96
DEFINE_GLOBAL INT SUMMON_CUBIC_1 10 // Storm Cubic
DEFINE_GLOBAL INT SUMMON_CUBIC_2 1279 // Binding Cubic
DEFINE_GLOBAL INT SUMMON_CUBIC_SMART 781 // Smart cubic
IF USE_MASS_SUMMON_CUBIC == ONE
SUMMON_CUBIC_1 = #i1328 // Storm cubic mass
ENDIF
/////////
DEFINE_GLOBAL INT BUFF_PET4 1144 // Servitor Wind Walk
DEFINE_GLOBAL INT BUFF_PET5 1346 // Warrior Servitor
IF USE_BUFF_FINAL_SERVITOR == ONE
BUFF_PET5 = BUFF_FINAL_SERVITOR
ENDIF
/////////
DEFINE_GLOBAL INT PET1 1276 // Summon Kai the Cat
IF USE_SERVITOR_FELINE_KING == ONE
PET1 = #i1406
PRINT_TEXT "USING FELINE KING"
ENDIF
/////////
PRINT_TEXT "SUMMON ID: <&PET1&>"
PRINT_TEXT "Human SUMMONER CONFIG LOADED.....OK!"
BREAK 1
CASE #i28
CASE #i104
DEFINE_GLOBAL INT SUMMON_CUBIC_1 67 // Life Cubic
DEFINE_GLOBAL INT SUMMON_CUBIC_2 1280 // Aqua Cubic
DEFINE_GLOBAL INT SUMMON_CUBIC_SMART 782 // Smart cubic
IF USE_MASS_SUMMON_CUBIC == ONE
SUMMON_CUBIC_1 = #i1280 // Aqua cubic mass
ENDIF
/////////
DEFINE_GLOBAL INT BUFF_PET4 1145 // Bright Servitor
DEFINE_GLOBAL INT BUFF_PET5 1347 // Wizard Servitor
IF USE_BUFF_FINAL_SERVITOR == ONE
BUFF_PET5 = BUFF_FINAL_SERVITOR
ENDIF
/////////
DEFINE_GLOBAL INT PET1 1407 // Summon Merrow the Unicorn
IF USE_SERVITOR_MAGNUS == ONE
PET1 = #i1407
PRINT_TEXT "USING MAGNUS THE UNICORN"
ELSE
IF USE_SERVITOR_BOXER == ONE
PET1 = #i1226
ELSE
IF USE_SERVITOR_MIRAGE == ONE
PET1 = #i1227
ELSE
IF USE_SERVITOR_MERROW == ONE
PET1 = #i1277
ENDIF
ENDIF
ENDIF
ENDIF
PRINT_TEXT "ELF SUMMONER CONFIG LOADED.....OK!"
BREAK 1
CASE #i41
CASE #i111
DEFINE_GLOBAL INT SUMMON_CUBIC_1 33 // Phantom cubic
IF USE_MASS_SUMMON_CUBIC == ONE
SUMMON_CUBIC_1 = #i1330 // Phantom cubic mass
ENDIF
DEFINE_GLOBAL INT SUMMON_CUBIC_2 1281 // Spark Cubic
DEFINE_GLOBAL INT SUMMON_CUBIC_SMART 783 // Smart cubic
DEFINE_GLOBAL INT BUFF_PET4 1146 // Mighty Servitor
DEFINE_GLOBAL INT BUFF_PET5 1348 // Assasin Servitor
IF USE_BUFF_FINAL_SERVITOR == ONE
BUFF_PET5 = BUFF_FINAL_SERVITOR
ENDIF
DEFINE_GLOBAL INT PET1 1333 // Summon Nightshade
IF USE_SERVITOR_SPECTRAL_LORD == ONE
PET1 = #i1408
PRINT_TEXT "USING SPECTRAL LORD"
ELSE
IF USE_SERVITOR_NIGHTSHADE == ONE
PET1 = #i1333
PRINT_TEXT "USING NIGHTSHADE"
ELSE
IF USE_SERVITOR_SOULLESS == ONE
PET1 = #i1278
PRINT_TEXT "USING SOULLESS"
ELSE
IF USE_SERVITOR_SHADOW == ONE
PET1 = #i1128
PRINT_TEXT "USING SHADOW"
ENDIF
ENDIF
ENDIF
ENDIF
PRINT_TEXT "DARK ELF SUMMONER CONFIG LOADED.....OK!"
BREAK 1
DEFAULT
ENDSWITCH
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CALL SUMMON_PET
DELAY "<&TIME_SKILL_CAST_DELAY&>"
DELAY "<&TIME_SKILL_CAST_DELAY&>"
CALL CUBIC_RESUMMON
THREAD FULL_BUFF_PET_LOOP
THREAD DELETE_STUFF_LOOP
THREAD OPEN_SOULSHOT_PACKAGES_LOOP
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WHILE ONE == ONE
GET_TIME TIME_NOW
TIME_TMP = TIME_NOW - TIME_SUMMON_SERVITOR
IF TARGET_NAME != #$
IF TARGET_NAME == CHAR_NAME
AMIC = ONE
ELSE
AMIC = ZERO
FOREACH A STRING FRIENDS
IF FRIENDS.A == TARGET_NAME
AMIC = ONE
ENDIF
NEXTEACH
IF TIME_TMP > TIME_LAST_SUMMONED_SERVITOR_TMP
//AMIC = ONE
//PRINT_TEXT "======================= waiting for summon to expire =========================="
// still not done.
ENDIF
IF AMIC == ZERO
PRINT_TEXT "Target: [ <&TARGET_NAME&> ] ( <&TARGET_CUR_HP&> / <&TARGET_MAX_HP&> )"
INJECT "56 16 00 00 00 00 00 00 00 00" //PET_ATTACK
ENDIF
SLEEP "<&PERFORMANCE_REATTACK_DELAY&>"
ENDIF
ENDIF
WEND
// MAIN_WHILE_END
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FUNCTION PET_SUM packet
IF SSPETVISKOR == ZERO
isSUM = ONE
INJECT "D0 0D 00 F5 19 00 00 01 00 00 00" //SS PET 6645->19F5
SLEEP 500
INJECT "D0 0D 00 F7 19 00 00 01 00 00 00" //BSS PET 6647->19F7
PRINT_TEXT "Activation of SS and BSS for pet"
SSPETVISKOR = ONE
ENDIF
SLEEP 500
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION PET_STATUS_UPD packet
DEFINE DOUBLE HEAL 0.7
packet.READ_BYTE PQT // writeC(0xb6);
packet.READ_INT32 sumType //writeD(_summon.getSummonType());
packet.READ_INT32 petID //writeD(_summon.getObjectId());
packet.READ_INT32 X //writeD(_summon.getX());
packet.READ_INT32 Y //writeD(_summon.getY());
packet.READ_INT32 Z //writeD(_summon.getZ());
packet.READ_STRING Title //writeS(_summon.getTitle());
packet.READ_INT32 curFed //writeD(_curFed);
packet.READ_INT32 maxFed //writeD(_maxFed);
packet.READ_INT32 curHP //writeD((int)_summon.getStatus().getCurrentHp());
packet.READ_INT32 maxHP //writeD(_maxHp);
packet.READ_INT32 curMP //writeD((int)_summon.getStatus().getCurrentMp());
packet.READ_INT32 maxMP //writeD(_maxMp);
packet.READ_INT32 lvl //writeD(_summon.getLevel());
packet.READ_DOUBLE exp //writeQ(_summon.getStat().getExp());
packet.READ_DOUBLE exp2 //writeQ(_summon.getExpForThisLevel());// 0% absolute value
packet.READ_DOUBLE exp3 //writeQ(_summon.getExpForNextLevel());// 100% absolute value
HEAL = maxHP * HEAL
IF HEAL > curHP
USE_SKILL "<&PET_HEAL&>" 0 0
ENDIF
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION PET_DEL packet
DEFINE INT PET_DEAD_TIME_TMP 0
GET_TIME PET_DEAD_TIME_TMP
PRINT_TEXT "PET DEAD"
PRINT_TEXT "PET DEAD time tick: <&PET_DEAD_TIME_TMP&>"
isSUM = ZERO
SLEEP 500
CALL SUMMON_PET
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION SUMMON_PET
GET_TIME TIME_SUMMON_SERVITOR
PRINT_TEXT "Summon time tick: <&TIME_SUMMON_SERVITOR&>"
PRINT_TEXT "Summoning PET"
USE_SKILL "<&PET1&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
DELAY "<&TIME_SKILL_CAST_DELAY&>"
CALL BUFF_PET
DELAY "<&TIME_SKILL_CAST_DELAY&>"
DELAY "<&TIME_SKILL_CAST_DELAY&>"
CALL SPECIAL_BUFF_PET
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION FULL_BUFF_PET_LOOP
DO
SLEEP 60000
TIME_LEFT_1_TMP = TIME_LEFT_1_TMP + #i60000
TIME_LEFT_2_TMP = TIME_LEFT_2_TMP + #i60000
TIME_LEFT_3_TMP = TIME_LEFT_3_TMP + #i60000
IF TIME_LEFT_1_TMP >= TIME_REBUFF_DELAY
CALL BUFF_PET
TIME_LEFT_1_TMP = TIME_SKILL_CAST_DELAY * #i6
TIME_LEFT_3_TMP = TIME_LEFT_3_TMP + TIME_LEFT_1_TMP
ENDIF
IF TIME_LEFT_2_TMP >= TIME_CUBIC_RESUMMON_DELAY
DELAY "<&TIME_SKILL_CAST_DELAY&>"
CALL CUBIC_RESUMMON
TIME_LEFT_2_TMP = TIME_SKILL_CAST_DELAY * #i2
TIME_LEFT_1_TMP = TIME_LEFT_1_TMP + TIME_LEFT_2_TMP
ENDIF
IF TIME_LEFT_3_TMP >= TIME_SPECIAL_REBUFF_DELAY
DELAY "<&TIME_SKILL_CAST_DELAY&>"
PRINT_TEXT "SPECIAL BUFF CALL: <&BUFF_PET5&>"
CALL SPECIAL_BUFF_PET
TIME_LEFT_3_TMP = TIME_SKILL_CAST_DELAY
TIME_LEFT_1_TMP = TIME_LEFT_1_TMP + TIME_SKILL_CAST_DELAY
TIME_LEFT_2_TMP = TIME_LEFT_2_TMP + TIME_SKILL_CAST_DELAY
ENDIF
TIME_LEFT_3_TMP = TIME_LEFT_3_TMP + #i2000
TIME_LEFT_2_TMP = TIME_LEFT_2_TMP + #i2000
TIME_LEFT_1_TMP = TIME_LEFT_1_TMP + #i2000
LOOP TRUE == TRUE
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION CUBIC_RESUMMON_LOOP
DO
SLEEP "<&TIME_CUBIC_RESUMMON_DELAY&>"
CALL CUBIC_RESUMMON
LOOP TRUE == TRUE
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION BUFF_PET
USE_SKILL "<&BUFF_PET1&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
USE_SKILL "<&BUFF_PET2&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
USE_SKILL "<&BUFF_PET3&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
USE_SKILL "<&BUFF_PET4&>" 0 0
PRINT_TEXT "Summon is buffed now!"
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION CUBIC_RESUMMON
USE_SKILL "<&SUMMON_CUBIC_1&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
USE_SKILL "<&SUMMON_CUBIC_2&>" 0 0
DELAY "<&TIME_SKILL_CAST_DELAY&>"
USE_SKILL "<&SUMMON_CUBIC_SMART&>" 0 0
PRINT_TEXT "cubics summoned!!"
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION SPECIAL_BUFF_PET
USE_SKILL "<&BUFF_PET5&>" 0 0
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION DELETE_STUFF_LOOP 0 //written by L2Netabuser
DEFINE INT ITEM_TYPE_ID_TMP 0
DEFINE INT I 0
DO
GET_INVENTORY INVEN
FOREACH A INVENTORY INVEN
FOR i 0 "<&ITEMSTODELETE.COUNT&>" 1
IF INVEN.A.NAME == ITEMSTODELETE.I
ITEM_TYPE_ID_TMP = INVEN.A.ITEM_ID
ITEM_COUNT ITEM_CURRENT_N_TMP "<&ITEM_TYPE_ID_TMP&>"
PRINT_TEXT "<&INVEN.A.NAME&> <&ITEM_CURRENT_N_TMP&> / <&ITEMSTODELETE_N.I&> ( current / max )"
IF ITEM_CURRENT_N_TMP > ITEMSTODELETE_N.I
PRINT_TEXT "Deleted Item: <&INVEN.A.NAME&>"
DELETE_ITEM "<&INVEN.A.ID&>" "<&ITEM_CURRENT_N_TMP&>"
ITEM_CURRENT_N_TMP = ZERO
SLEEP 500
ENDIF
ENDIF
NEXT
NEXTEACH
DELAY "<&TIME_ITEMS_DELETE_DELAY&>"
LOOP TRUE == TRUE
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION OPEN_SOULSHOT_PACKAGES_LOOP 0
DEFINE INT ITEM_TMP_ID 0
DO
SLEEP "<&PERFORMANCE_SOULSHOT_N_RECHECK&>"
CALL GET_ITEM_COUNT ITEM_BEAST_SOULSHOT_COUNT 1 "<&ITEM_BEAST_SOULSHOT_NAME&>"
PRINT_TEXT "<&ITEM_BEAST_SOULSHOT_NAME&>: <&ITEM_BEAST_SOULSHOT_COUNT&>"
WHILE ITEM_BEAST_SOULSHOT_COUNT <= ITEM_MIN_BEAST_SOULSHOT_N
CALL GET_ITEM_TYPE_ID ITEM_TMP_ID 1 "<&ITEM_BEAST_SOULSHOT_PACK_NAME&>"
PRINT_TEXT "Beast Soulshot Compressed Pack UID: <&ITEM_TMP_ID&> ... Using!"
USE_ITEM "<&ITEM_TMP_ID&>"
CALL GET_ITEM_COUNT ITEM_BEAST_SOULSHOT_COUNT 1 "<&ITEM_BEAST_SOULSHOT_NAME&>"
DELAY #i1000
WEND
LOOP TRUE == TRUE
RETURN VOID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION GET_ITEM_UID 1 item_name
DEFINE ARRAYLIST INVEN 0
DEFINE INT ITEM_UID 0
GET_INVENTORY INVEN
FOREACH A INVENTORY INVEN
IF INVEN.A.NAME == item_name
ITEM_UID = INVEN.A.ID
ENDIF
NEXTEACH
RETURN ITEM_UID
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION GET_ITEM_COUNT 1 item_name
DEFINE ARRAYLIST INVEN 0
DEFINE INT ITEM_N 0
GET_INVENTORY INVEN
FOREACH A INVENTORY INVEN
IF INVEN.A.NAME == item_name
ITEM_COUNT ITEM_N "<&INVEN.A.ITEM_ID&>"
ENDIF
NEXTEACH
RETURN ITEM_N
/////////////////////////////////////////////////////////////////////////////////////////
FUNCTION GET_ITEM_TYPE_ID 1 item_name
DEFINE ARRAYLIST INVEN 0
DEFINE INT ITEM_ID 0
GET_INVENTORY INVEN
FOREACH A INVENTORY INVEN
IF INVEN.A.NAME == item_name
ITEM_ID = INVEN.A.ITEM_ID
ENDIF
NEXTEACH
RETURN ITEM_ID
/////////////////////////////////////////////////////////////////////////////////////////
//56 34 00 00 00 00 00 00 00 00 //PET_DEL
//56 16 00 00 00 00 00 00 00 00 //PET_ATTACK
//56 17 00 00 00 00 00 00 00 00 //PET_STOP
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////// script written by
ghostdog@mazowiecka.org basing on devnull's script posted at forum:
http://insane-gamers.com/showthread.php?1305-Summoner-script /////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////// Features: /////////
///////// Auto attack selected target /////////
///////// Auto Heal if summon under 70% of HP /////////
///////// Auto open beast soulshot pkg when n of beast soulshots is lower than given /////////
///////// Auto rebuff /////////
///////// Auto Resummon /////////
///////// Auto Recubic /////////
///////// Auto Del arrows. /////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////