#COMBAT ROUTINE VER 2.43
#IF=%FirstTime,;
RequireVersion=6.24;
UseSpeed=1;
#UseLoop
#EnableSpeech
#EnableChatLog
WaitForResponse=Make sure F8 is bound to "Select Nearest Target" to get a soul heal after death;
#SetVar3=Enter the Potion ID you wanna use for sustain/n/nin case you don't wanna use any write 0;
#SetVar4=Wanna use NoAnimation while grinding?/n/nType 1 for yes or 0 for no;
#SetVar7=Enable selling when inventory is full?/n/nType 0 for no/nType 1 for selling at inventory/nType 2 for selling at merchant;
#SetVar2=Enable Anti-Stuck detection at the beginning of each round?/n/nType 1 for yes or 0 for no;
_SetVar10=1;Enable Transformation Potion usage?
_SetVar9=1;Enable an improved cooldown detection?
#SetVar=Timeout,Want to stop grinding after a certain amount of minutes?/n/nEnter the amount of minutes or 0 if you don't want any time limit;
_Calc[TimeoutMS]=%Var[Timeout]*60000;
_SetVar5=0;
_SetArray2=None,None;
#SmoothBackground
Command=;
MemWrite=%AddrFreeMem4,%Var4,BYTE;
MemWrite=%AddrFreeMem2,%Var5,BYTE;
MemWrite=%AddrFreeMem6,0,BYTE;
#EXECUTE=CombatSort;
MemPtrWrite=%AddrFPS,%OffsetFPS1,30,BYTE; <-- these 2 lines cap the fps at 30
MemPtrWrite=%AddrFPS,%OffsetFPS2,30,FLOAT; <-- these 2 lines cap the fps at 30
#IF=%Var7,>0;
#SetArray2=Enter the ItemIDs the bot is allowed to sell/nExample: 182010036,182010037,182010038;
#ENDIF
#IF=%FirstTime,;
#EXECUTE=GetPetID;
#EXECUTE=CheckAutoLoot;
#EXECUTE=CheckAutoBuff;
#EXECUTE=DetectObelisk;
CreateTimer=9999998;
#ShowLog
#ENDIF
#EXECUTE=CheckDead;
#IF=%Var7,>0;
_MemPtrReadVar=%AddrMaxSlots,%OffsetMaxSlots,BYTE, 6;
_Calc6=%Var6-5;
_IFMemPtrRead=%AddrSlots,%OffsetSlots,BYTE,>%Var6;
#EXECUTE=InventoryCheck;
#ENDIF
_IFMemRead=%AddrLangPack,CHAR[32],=L10N/ENU/;
#ELSE
#IF=%Timer=9999998,43200000;
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[64],25;
Speech=%Var25 has grinded for more than 12 hours, longer periods of botting can be dangerous at europe.;
#ENDIF
#IF=%Var[Timeout],>0;
#IF=%Timer=9999998,%Var[TimeoutMS];
#EXECUTE=Stop;
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[64],25;
Speech=%Var25 has finished his grind session after %Var[Timeout] minutes.;
#UseNoLoop
#EndScript
#ENDIF
#IF=%FirstTime,;
_MemPtrReadVar=%PlayerBase,%OffsetPosX,FLOAT,Start PosX;
_MemPtrReadVar=%PlayerBase,%OffsetPosY,FLOAT,Start PosY;
_MemPtrReadVar=%PlayerBase,%OffsetPosZ,FLOAT,Start PosZ;
_Calc[StartPosX1]=%Var[StartPosX]-7.5;
_Calc[StartPosY1]=%Var[StartPosY]-7.5;
_Calc[StartPosZ1]=%Var[StartPosZ]-3;
_Calc[StartPosX2]=%Var[StartPosX]+7.5;
_Calc[StartPosY2]=%Var[StartPosY]+7.5;
_Calc[StartPosZ2]=%Var[StartPosZ]+3;
_Calc[ResetPosZ]=%Var[StartPosZ]+10;
#ELSE
#LogAddRound
FlySmooth=%Var[StartPosX],%Var[StartPosY],%Var[StartPosZ];
#ENDIF
#IF=%Var10,=1;
#EXECUTE=TransformationPotions;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetPosX,FLOAT,%Var[StartPosX1]-%Var[StartPosX2];
_IFMemPtrRead=%PlayerBase,%OffsetPosY,FLOAT,%Var[StartPosY1]-%Var[StartPosY2];
_IFMemPtrRead=%PlayerBase,%OffsetPosZ,FLOAT,%Var[StartPosZ1]-%Var[StartPosZ2];
#ELSE
#IF=%Var2,=1;
#EXECUTE=Reset;
#ENDIF
FlySmooth=1412.1,2211.7,224.6;
FlySmooth=1406.7,2211.7,224.6;
FlySmooth=1399.4,2212.6,224.6;
FlySmooth=1392.3,2214.7,224.6;
_ACCheckMob=;
FlySmooth=1385.1,2215.1,226.2;
FlySmooth=1377.6,2214.8,225.8;
_ACCheckMob=;
FlySmooth=1370.2,2214.4,222.8;
FlySmooth=1363,2214.4,220.2;
_ACCheckMob=;
FlySmooth=1355.7,2214.6,217.5;
FlySmooth=1348.4,2213.7,216.3;
_ACCheckMob=;
FlySmooth=1341.2,2211.9,216.7;
FlySmooth=1335.2,2215.2,217.3;
_ACCheckMob=;
FlySmooth=1328.6,2215.4,218.4;
FlySmooth=1322,2212,219.7;
_ACCheckMob=;
FlySmooth=1315.9,2208,221.5;
FlySmooth=1315.4,2207.6,223.8;
_ACCheckMob=;
FlySmooth=1315.4,2207.6,221.7;
FlySmooth=1309.2,2203.5,223.8;
_ACCheckMob=;
FlySmooth=1302.9,2199.6,225.8;
FlySmooth=1296.1,2197.2,227.4;
_ACCheckMob=;
FlySmooth=1288.8,2197.4,228.5;
FlySmooth=1282.1,2199.1,228.9;
_ACCheckMob=;
FlySmooth=1274.4,2199.8,229;
FlySmooth=1267.1,2199.5,232;
_ACCheckMob=;
FlySmooth=1259.7,2199.9,235.3;
FlySmooth=1254.7,2204.8,236.8;
_ACCheckMob=;
FlySmooth=1255.1,2212.2,236.4;
FlySmooth=1256.9,2219.4,235.3;
_ACCheckMob=;
FlySmooth=1262.6,2223.3,233.4;
FlySmooth=1269.6,2225.5,232.8;
_ACCheckMob=;
FlySmooth=1274.2,2227.4,235.1;
FlySmooth=1268.1,2225.2,232.8;
_ACCheckMob=;
FlySmooth=1274.1,2229.4,232.6;
FlySmooth=1280.5,2233.3,232.7;
_ACCheckMob=;
FlySmooth=1286.8,2231.9,232.6;
FlySmooth=1283.2,2226.1,232.6;
_ACCheckMob=;
FlySmooth=1276.7,2222.5,232.6;
FlySmooth=1271.4,2217.7,232.7;
_ACCheckMob=;
FlySmooth=1269.4,2210.5,232;
FlySmooth=1269.4,2203.2,230.8;
_ACCheckMob=;
FlySmooth=1269.4,2195.9,230.8;
FlySmooth=1269.2,2188.3,229.2;
_ACCheckMob=;
FlySmooth=1268.5,2181.2,229.3;
FlySmooth=1267.3,2173.8,229.3;
_ACCheckMob=;
FlySmooth=1260.3,2172.3,228.9;
FlySmooth=1255.3,2172.4,231.9;
_ACCheckMob=;
FlySmooth=1255.7,2174.1,228.9;
FlySmooth=1250.9,2178.7,229;
_ACCheckMob=;
FlySmooth=1245.5,2182.4,229.1;
FlySmooth=1239.7,2178,229.1;
_ACCheckMob=;
FlySmooth=1236.8,2173.4,229.1;
FlySmooth=1233,2167.5,229.1;
_ACCheckMob=;
FlySmooth=1229.3,2173.6,229.1;
FlySmooth=1226.1,2180.3,229.1;
_ACCheckMob=;
FlySmooth=1222.2,2183.5,229;
FlySmooth=1213.5,2184.6,228.9;
_ACCheckMob=;
FlySmooth=1206.2,2185.5,228.8;
FlySmooth=1199,2186.3,228.6;
_ACCheckMob=;
FlySmooth=1191.7,2187.2,228.1;
FlySmooth=1184.2,2188.2,227.5;
_ACCheckMob=;
FlySmooth=1176.9,2189.1,226.4;
FlySmooth=1169.7,2190.1,226;
_ACCheckMob=;
FlySmooth=1162.5,2191.1,225.5;
FlySmooth=1155.2,2192.2,224.6;
_ACCheckMob=;
FlySmooth=1150.8,2192.8,224.1;
FlySmooth=1153.2,2192.6,224.4;
_ACCheckMob=;
FlySmooth=1159.4,2187.3,225.1;
FlySmooth=1164.6,2185.2,226.1;
_ACCheckMob=;
FlySmooth=1164.6,2185.2,228.3;
FlySmooth=1165.1,2185,225.8;
_ACCheckMob=;
FlySmooth=1172,2182.1,225.6;
FlySmooth=1178.8,2179.2,226.7;
_ACCheckMob=;
FlySmooth=1185.5,2176.3,227.9;
FlySmooth=1192.2,2173.2,228.4;
_ACCheckMob=;
FlySmooth=1198.5,2169.6,228.7;
FlySmooth=1204.6,2165.6,228.9;
_ACCheckMob=;
FlySmooth=1210.1,2160.8,228.9;
FlySmooth=1215.4,2155.7,229;
_ACCheckMob=;
FlySmooth=1220.7,2150.7,229;
FlySmooth=1225.4,2145.1,229.1;
_ACCheckMob=;
FlySmooth=1227.5,2138,229.9;
FlySmooth=1228.3,2130.7,232;
_ACCheckMob=;
FlySmooth=1226.5,2123.6,234.2;
FlySmooth=1223.3,2117,236.9;
_ACCheckMob=;
FlySmooth=1218.7,2111.2,239.7;
FlySmooth=1213.9,2105.6,242.2;
_ACCheckMob=;
FlySmooth=1209.7,2099.5,245.1;
FlySmooth=1206.6,2092.9,246.7;
_ACCheckMob=;
FlySmooth=1203.7,2086.2,247.8;
FlySmooth=1199.8,2079.9,248.3;
_ACCheckMob=;
FlySmooth=1195.3,2074.2,248.3;
FlySmooth=1191,2075.4,248.3;
_ACCheckMob=;
FlySmooth=1194.8,2078,248.3;
FlySmooth=1197.9,2084.7,248.3;
_ACCheckMob=;
FlySmooth=1201.7,2090.9,247.6;
FlySmooth=1205.2,2097.3,246.1;
_ACCheckMob=;
FlySmooth=1208.1,2102.5,244.4;
FlySmooth=1211.3,2107.4,243;
_ACCheckMob=;
FlySmooth=1215.5,2113.5,241.8;
FlySmooth=1220.2,2119.1,239;
_ACCheckMob=;
FlySmooth=1225,2124.7,234.1;
FlySmooth=1229.7,2130.4,232.1;
_ACCheckMob=;
FlySmooth=1234.2,2136.1,230.9;
FlySmooth=1238.8,2141.8,230.2;
_ACCheckMob=;
FlySmooth=1243.5,2147.7,229.9;
FlySmooth=1248,2153.4,229.7;
_ACCheckMob=;
FlySmooth=1252.5,2159.1,229.4;
FlySmooth=1257.1,2164.9,229.3;
_ACCheckMob=;
FlySmooth=1261.7,2170.7,229;
FlySmooth=1266,2176.5,229.3;
_ACCheckMob=;
FlySmooth=1270.3,2182.7,229.1;
FlySmooth=1274.6,2188.8,229;
_ACCheckMob=;
FlySmooth=1279.6,2194,228.8;
FlySmooth=1286.4,2196.5,228.6;
_ACCheckMob=;
FlySmooth=1293.5,2198.5,227.9;
FlySmooth=1300.4,2200.9,226.5;
_ACCheckMob=;
FlySmooth=1307.3,2203.3,224.4;
FlySmooth=1314.1,2205.3,222.2;
_ACCheckMob=;
FlySmooth=1321.7,2206.8,220.1;
FlySmooth=1328.8,2207.7,218.7;
_ACCheckMob=;
FlySmooth=1336.1,2208.4,217.5;
FlySmooth=1343.4,2208,216.8;
_ACCheckMob=;
FlySmooth=1350.8,2207.6,216.9;
FlySmooth=1358.1,2207.3,218.3;
_ACCheckMob=;
FlySmooth=1365.2,2208.8,220.9;
FlySmooth=1372.5,2210.9,222.9;
_ACCheckMob=;
FlySmooth=1379.4,2212.8,223.9;
FlySmooth=1386.6,2214.6,224.5;
_ACCheckMob=;
FlySmooth=1393.8,2216.1,224.6;
FlySmooth=1401,2215.6,224.6;
_ACCheckMob=;
FlySmooth=1408,2213.7,224.6;
FlySmooth=1413.4,2212,224.6;
_ACCheckMob=;
start_CheckDead;
_SetVar=Dead,0;
_IFFrameVisible=267;
_SetVar=Dead,1;
#ENDIF
_IFMemRead=%AddrResurrect,BYTE,<8;
_SetVar=Dead,1;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetHP,DWORD,=0;
_SetVar=Dead,1;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetPercentHP,BYTE,=0 ;
_SetVar=Dead,1;
#ENDIF
#IF=%Var[Dead],=1;
#EXECUTE=SetResolution;
#LogAddDeath
#DO=20000;
MemWrite=%AddrResurrect,1,BYTE; <- Resurrect
Delay=500;
_UNTILMemPtrRead=%PlayerBase,%OffsetHP,DWORD,>0;
Delay=5000;
MemWrite=%AddrResurrect,8,BYTE; <- Reset Resurrect
#EXECUTE=FindSoulHealer;
Delay=1000;
#EXECUTE=Return;
#EXECUTE=CheckAutoLoot;
#ENDIF
end_CheckDead;
start_Stop;
#IF=%Timer=243,1200000;
SmartSkill=243,1200000,6500,False,False;
CreateTimer=243;
#ELSE
#DO=1200000;
Delay=150;
#UNTIL=%Timer=243,1200000;
SmartSkill=243,1200000,6500,False,False;
CreateTimer=243;
#ENDIF
Delay=4500;
end_Stop;
start_Reset;
#IF=%Timer=243,1200000;
SmartSkill=243,1200000,6500,False,False;
CreateTimer=243;
#ELSE
#DO=1200000;
Delay=150;
#UNTIL=%Timer=243,1200000;
SmartSkill=243,1200000,6500,False,False;
CreateTimer=243;
#ENDIF
Delay=4500;
#LogAddStuck
#EXECUTE=Return;
end_Reset;
start_DetectObelisk;
Command=/select Obelisk;
Command=/select Obélisque;
Command=/select Obelisco;
Delay=125;
_IFMemPtrRead=%TargetBase,%OffsetName,WCHAR[2],=Ob;
#EXECUTE=Return;
#ENDIF
end_DetectObelisk;
start_FindSoulHealer;
_IFMemRead=%AddrLangPack,CHAR[32],=L10N/ENU/;
_SetVar11=527; Soulhealer FrameID NA
#ELSE
_SetVar11=527; Soulhealer FrameID EU
#ENDIF
MemWrite=%AddrCamY,85,FLOAT;
#DO=7000;
SendKey=0x77;
Delay=35;
_UNTILMemPtrRead=%TargetBase,%OffsetData/0x1090,CHAR[10],=soulhealer;
_IFMemPtrRead=%TargetBase,%OffsetData/0x1090,CHAR[10],=soulhealer;
#DO=15000;
Command=/attack;
Delay=1550;
DialogClick=NpcFunc128;
Delay=750;
_UNTILMemPtrRead=%AddrFrameID[%Var11],0x28,BYTE,=175;
FrameAction=%Var11,XPOS,0;
FrameAction=%Var11,YPOS,0;
Delay=550;
Mouse=160,95;
Delay=750;
_UNTILMemPtrRead=%PlayerBase,%OffsetPercentHP,BYTE ,=100;
#ELSE
_ACReg=;
#ENDIF
SendKey=0x1B;
Delay=15;
SendKey=0x1B;
MemPtrWrite=%AddrFrameID[19],0x28,142,BYTE;
MemWrite=%AddrCamY,25,FLOAT;
#EXECUTE=CheckAutoLoot;
#EXECUTE=CheckAutoBuff;
end_FindSoulHealer;
start_CheckAutoLoot;
_IFMemRead=%AddrMinion,BYTE,=0;
_IFMemRead=%AddrPet,BYTE,=0;
#IF=%Var[PetAvailable],=1;
UseID=%Var[PetID],%Var[PetType];
Delay=250;
#ENDIF
MemWrite=%AddrFreeMem30,%AddrPet,DWORD;
_MemReadVar=%AddrFreeMem30,DWORD,CATempAddr;
_Calc[CATempAddr]=%Var[CATempAddr]+748;
_IFMemRead=%Var[CATempAddr],DWORD,=0;
#DO=1000;
UseID=50045;
Delay=250;
_UNTILMemRead=%Var[CATempAddr],DWORD,=1;
#ENDIF
_IFMemRead=%Var[CATempAddr],DWORD,=0;
_ACMob_Looting=True;
#ELSE
_ACMob_Looting=False;
#ENDIF
end_CheckAutoLoot;
start_CheckAutoBuff;
_IFMemRead=%AddrMinion,BYTE,=0;
_IFMemRead=%AddrPet,BYTE,=0;
#IF=%Var[PetAvailable],=1;
UseID=%Var[PetID],%Var[PetType];
Delay=250;
#ENDIF
MemWrite=%AddrFreeMem30,%AddrPet,DWORD;
_MemReadVar=%AddrFreeMem30,DWORD,CATempAddr;
_Calc[CATempAddr]=%Var[CATempAddr]+696;
_IFMemRead=%Var[CATempAddr],DWORD,=0;
#DO=1000;
UseID=50044;
Delay=250;
_UNTILMemRead=%Var[CATempAddr],DWORD,=1;
#ENDIF
end_CheckAutoBuff;
start_GetPetID;
_SetVar=PetAvailable,0;
_IFMemRead=%AddrPet,BYTE,>0;
_SetVar=PetAvailable,1;
MemWrite=%AddrFreeMem30,%AddrPet,DWORD;
_MemReadVar=%AddrFreeMem30,DWORD,CATempAddr;
_Calc[CATempAddr]=%Var[CATempAddr]-4;
_MemReadVar=%Var[CATempAddr],DWORD,PetID;
_SetVar=PetType,46;
#ENDIF
_IFMemRead=%AddrMinion,BYTE,>0;
_SetVar=PetAvailable,1;
MemWrite=%AddrFreeMem30,%AddrMinion,DWORD;
_MemReadVar=%AddrFreeMem30,DWORD,CATempAddr;
_Calc[CATempAddr]=%Var[CATempAddr]-4;
_MemReadVar=%Var[CATempAddr],DWORD,PetID;
_SetVar=PetType,86;
#ENDIF
end_GetPetID;
start_InventoryCheck;
_MemPtrReadVar=%PlayerBase,%OffsetName,WCHAR[32],8;
#IF=%Var7,=1;
#EXECUTE=SetResolution;
_MemPtrReadVar=%AddrKinah,%OffsetKinah,DWORD,Kinah Previous;
#EXECUTE=SellToInventory;
_MemPtrReadVar=%AddrKinah,%OffsetKinah,DWORD,Kinah New;
_Calc[KinahGained]=%Var[KinahNew]-%Var[KinahPrevious];
Speech=%Var8 has sold his cash loot and gained %Var[KinahGained] Kinah.;
#ENDIF
#IF=%Var7,=2;
#EXECUTE=SetResolution;
_MemPtrReadVar=%AddrKinah,%OffsetKinah,DWORD,Kinah Previous;
#EXECUTE=SellToMerchant;
_MemPtrReadVar=%AddrKinah,%OffsetKinah,DWORD,Kinah New;
_Calc[KinahGained]=%Var[KinahNew]-%Var[KinahPrevious];
Speech=%Var8 has sold his cash loot and gained %Var[KinahGained] Kinah.;
#ENDIF
#IF=%Var7,=0;
Speech=%Var8 has full inventory and no sale method, looting will be turned off now;
_ACMob_Looting=False;
#ENDIF
end_InventoryCheck;
start_SellToInventory;
FrameAction=16,STATE,SHOW;
FrameAction=16,XPOS,0;
FrameAction=16,YPOS,0;
Delay=250;
Mouse=11,117;
Delay=750;
FrameAction=172,XPOS,0;
FrameAction=172,YPOS,0;
Delay=250;
SellItemsAtInventory=%ARRAY2,185,245;
SellItemsAtInventory=%ARRAY2,185,245;
SellItemsAtInventory=%ARRAY2,185,245;
Delay=250;
Mouse=229,246;
end_SellToInventory;
start_SellToMerchant;
#SELLMARK
end_SellToMerchant;
start_Return;
FlySmooth=2918,2462,313.8;
FlySmooth=2919.7,2469.6,313.7;
FlySmooth=2921.2,2476.9,313.7;
FlySmooth=2922.7,2483.9,313.9;
FlySmooth=2924.2,2491.1,313.7;
FlySmooth=2925.9,2498.5,313.7;
FlySmooth=2927.5,2504.9,313.8;
#DO=5000;
Command=/select Teleporter;
Delay=150;
Command=/attack;
Delay=500;
_UNTILMemPtrRead=%AddrDialoghwnd,%OffsetDialoghwnd ,BYTE,=175;
Delay=750;
_IFMemPtrRead=%AddrDialoghwnd,%OffsetDialoghwnd,BY TE,=175;
Delay=1000;
Mouse=119,181;
Delay=1500;
Mouse=191,258;
Delay=1500;
Mouse=436,347;
Delay=1500;
end_Return;
start_CombatSort;
;;;;;;;;BASIC SETTINGS;;;;;;;;;;;
#IF=%Var4,=1;
_ACUseAnimation=True;
#ENDIF
#IF=%Var3,>0;
_ACPotion=%Var3,HP/MP,50,66;
#ENDIF
_ACRegenerateEnabled=True;
_ACRegMPPercentage=30;
_ACRegHPPercentage=35;
_ACTimeout=300000;
_ACMob_Looting=True;
;;;;;;;END BASIC SETTINGS;;;;;;;;
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=0;
;;;;;;;;;Settings Warrior;;;;;;;;;
_ACInitialRange=4;
_ACSkills=517,2865,2890;
;;;;;;;End Settings Warrior;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=1;
;;;;;;;;;Settings Gladiator;;;;;;;;;
_ACRelyOnRace=662,Eylos;
_ACRelyOnRace=661,Asmo;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=5;
_ACHeals=781,544,571,620,648,4671,706,2932,553;
_ACBuffs=598,662,661,683,600;
_ACSkills=731,780,755,554,643,647,719,2902,2876,73 8,681,696,617,705,507;
;;;;;;;End Settings Gladiator;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=2;
;;;;;;;;;Settings Templar Greatsword;;;;;;;;;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=5;
_ACRelyOnPlayerHP=3127,<50;
_ACHeals=3129,2921,2931,2915,2922;
_ACBuffs=3127,3035,2932,2933,2918,2938,2966;
_ACSkills=3126,3123,3071,2967,2944,3064,2902,2876, 2973,3154,2960,3181;
;;;;;;;End Settings Templar Greatsword;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=3;
;;;;;;;;;Settings Scout;;;;;;;;;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=4;
_ACBuffs=3235,3195;
_ACSkills=3197,3183;
;;;;;;;End Settings Scout;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=4;
;;;;;;;;;Settings Assassin;;;;;;;;; Rotation by JoshuaPL
_ACRelyOnRace=3370,Eylos;
_ACRelyOnRace=3371,Asmo;
_ACRelyOnTargetDebuff=3414,8307;
_ACRelyOnTargetDebuff=5093,8307;
_ACRelyOnTargetDebuff=3311,8307;
_ACRelyOnTargetDebuff=3477,9100;
_ACHealPercentage=30;
_ACInitialRange=2;
_ACBuffs=3469,3320,3326,3195,4878;
_ACSkills=3194,3248,3395,3426,5093,3369,3414,4774, 3477;
;;;;;;;End Settings Assassin;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=5;
;;;;;;;;;Settings Ranger;;;;;;;;; by widoxd02
_ACRelyOnBuff=813,813;
_ACRelyOnBuff=796,796;
_ACRelyOnBuff=1057,1057;
_ACRelyOnBuff=867,867;
_ACRelyOnBuff=3235,3235;
_ACIsActive=889,True;
_ACIsActive=4724,True;
_ACRelyOnDP=4881,4000;
_ACRelyOnDP=4875,4000;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=15;
_ACBuffs=985,1117,1065,889,813,796,1057,867,3235,4 724,4881,4875;
_ACSkills=961,4722,795,871,825,1052,880,1026,1005, 4723,1134;
;;;;;;;End Settings Ranger;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=6;
;;;;;;;;;Settings Mage;;;;;;;;;
_ACRelyOnBuff=1155,1155;
_ACInitialRange=25;
_ACBuffs=1155;
_ACSkills=1363,1447,1403,1282;
;;;;;;;End Settings Mage;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=7;
;;;;;;;;;Settings Sorcerer;;;;;;;;;
_ACRelyOnRace=1473,Eylos;
_ACRelyOnRace=1465,Asmo;
_ACRelyOnBuff=1166,1166;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=25;
_ACHeals=1269,1420;
_ACBuffs=1166,1402,1249,1270,1542,1307,1350;
_ACManaRecover=1393,1257;
_ACSkills=1539,1446,1459,1549,1191,1493,1336,1525, 1326,1509,1548,4602,1215,1258,1383,1555,1356,1465, 1473,1390,1225;
;;;;;;;End Settings Sorcerer;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=8;
;;;;;;;;;Settings Spiritmaster;;;;;;;;;ROTATION MADE BY Gianni (Petless)
_ACCustomCooldown=3780,25000;
_ACRelyOnBuff=1166,1166;
_ACRelyOnRace=3807,Eylos;
_ACRelyOnRace=3808,Asmo;
_ACManaPercentage=65;
_ACHealPercentage=50;
_ACInitialRange=25;
_ACHeals=4665;
_ACBuffs=1166,3543;
_ACSkills=4665,1459,3776,3847,1459,3588,4665,1459, 3561,3776,1459,4665,3601;
;;;;;;;End Settings Spiritmaster;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=9;
;;;;;;;;;Settings Priest;;;;;;;;;
_ACRelyOnBuff=1684,1684;
_ACHealPercentage=30;
_ACInitialRange=5;
_ACHeals=1838;
_ACBuffs=1684;
_ACSkills=4012,1814,1615;
_ACRegenerate=1838;
;;;;;;;End Settings Priest;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=10;
;;;;;;;;;Settings Cleric;;;;;;;;;
_ACRelyOnRace=3990,Eylos;
_ACRelyOnRace=3991,Asmo;
_ACRelyOnRace=4125,Eylos;
_ACRelyOnRace=4126,Asmo;
_ACRelyOnRace=4162,Eylos;
_ACRelyOnRace=4163,Asmo;
_ACRelyOnBuff=4005,4005;
_ACRelyOnBuff=1684,1684;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=20;
_ACHeals=4192,3990,3931,3991,3959,3997,3934,4181,4 219,4212,3977;
_ACBuffs=1684,3894,3921,4005,3888;
_ACManaRecover=3895,3917;
_ACSkills=4169,4166,4162,4163,4149,4151,4133,4135, 4187,4143,4125,4126,4134,1825,1615,4024;
_ACRegenerate=4181,3997,4219;
;;;;;;;End Settings Cleric;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=11;
;;;;;;;;;Settings Chanter;;;;;;;;; by widoxd02
_ACRelyOnPlayerHP=4868,<50;
_ACRelyOnPlayerHP=1606,<90;
_ACRelyOnPlayerHP=1813,<35;
_ACRelyOnPlayerHP=1862,<50;
_ACRelyOnPlayerHP=1734,<45;
_ACRelyOnPlayerHP=1857,<50;
_ACRelyOnDP=1638,4000;
_ACRelyOnDP=1810,2000;
_ACRelyOnBuff=1579,1579;
_ACRelyOnBuff=4642,4642;
_ACRelyOnBuff=1809,1809;
_ACRelyOnBuff=1666,1666;
_ACRelyOnBuff=1689,1689;
_ACRelyOnBuff=4731,4731;
_ACRelyOnBuff=4868,4868;
_ACRelyOnBuff=1813,1813;
_ACRelyOnBuff=1758,1758;
_ACRelyOnBuff=1656,1656;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=1;
_ACHeals=1734,1606,1862,1857;
_ACBuffs=4642,1809,1666,1689,4731,4868,1813,1656,1 810,1638,1579;
_ACRegenerate=1862,1734;
_ACSkills=1789,1626,1906,4629,1767,1600,1837,1868, 1767,1647,4730,1874,1903;
;;;;;;;End Settings Chanter;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=12;
;;;;;;;;;Settings Technist;;;;;;;;;
_ACInitialRange=25;
_ACBuffs=2169;
_ACSkills=2220,1942,1958;
;;;;;;;End Settings Technist;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=14;
;;;;;;;;;Settings Gunslinger Pistols;;;;;;;;;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACIsActive=4787,True;
_ACRelyOnDP=2007,2000;
_ACInitialRange=20;
_ACHeals=2349,2380,2367,2124,1923;
_ACBuffs=2046,4787,2273,2052,2046,2273,2370;
_ACManaRecover=2367;
_ACSkills=1953,2179,2053,2179,2054,2231,2263,2166, 2007,1981,2123,2068,2090;
;;;;;;;End Settings Gunslinger Pistols;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=15;
;;;;;;;;;Settings Artist;;;;;;;;;
_ACManaPercentage=30;
_ACInitialRange=25;
_ACHeals=4339;
_ACSkills=4300,4409,4222;
;;;;;;;End Settings Artist;;;;;;;
#ENDIF
_IFMemPtrRead=%PlayerBase,%OffsetClassID,BYTE,=16;
;;;;;;;;;Settings Songweaver;;;;;;;;;
_ACRelyOnBuff=4449,4449;
_ACRelyOnBuff=4442,4442;
_ACIsActive=4590,True;
_ACManaPercentage=66;
_ACHealPercentage=50;
_ACInitialRange=25;
_ACHeals=4351,4518,4367,4537,4486;
_ACBuffs=4442,4449,4590;
_ACManaRecover=4383,4391;
_ACSkills=4296,4480,4489,4471,4233,4272,4424,4405, 4523,4420,4529,4550,4542,4579;
_ACRegenerate=4351,4518,4537,4383,4391,4486;
;;;;;;;End Settings Songweaver;;;;;;;
#ENDIF
#IF=%Var9,=1;
_ACExperimentalCooldown=True; --- Please wait...
#ENDIF
end_CombatSort;
start_TransformationPotions;
_SetVar=PotionsPerRound,3;
_IFInventoryContains=160040000,%Var[PotionsPerRound];
_ACItems=160040000/5030;
#ENDIF
_IFInventoryContains=160020004,%Var[PotionsPerRound];
_ACItems=160020004/11683;
#ENDIF
_IFInventoryContains=160040029,%Var[PotionsPerRound];
_ACItems=160040029/5059;
#ENDIF
_IFInventoryContains=160040029,%Var[PotionsPerRound];
_ACItems=160040029/5059;
#ENDIF
_IFInventoryContains=160040000,%Var[PotionsPerRound];
_ACItems=160040000/5030;
#ENDIF
_IFInventoryContains=160040022,%Var[PotionsPerRound];
_ACItems=160040022/5052;
#ENDIF
_IFInventoryContains=160040023,%Var[PotionsPerRound];
_ACItems=160040023/5053;
#ENDIF
_IFInventoryContains=160040024,%Var[PotionsPerRound];
_ACItems=160040024/5054;
#ENDIF
_IFInventoryContains=160040025,%Var[PotionsPerRound];
_ACItems=160040025/5055;
#ENDIF
_IFInventoryContains=160040026,%Var[PotionsPerRound];
_ACItems=160040026/5056;
#ENDIF
_IFInventoryContains=160040027,%Var[PotionsPerRound];
_ACItems=160040027/5057;
#ENDIF
_IFInventoryContains=160040028,%Var[PotionsPerRound];
_ACItems=160040028/5058;
#ENDIF
_IFInventoryContains=160040030,%Var[PotionsPerRound];
_ACItems=160040030/5060;
#ENDIF
_IFInventoryContains=160040031,%Var[PotionsPerRound];
_ACItems=160040031/5061;
#ENDIF
_IFInventoryContains=160040020,%Var[PotionsPerRound];
_ACItems=160040020/5050;
#ENDIF
end_TransformationPotions;
start_SetResolution; <-- resizes client without using real mouse
Console=\r_Height 600;
Console=\r_Width 800;
end_SetResolution;