darknesscrysis Posted June 19, 2017 Posted June 19, 2017 (edited) I want to know how to summon and feed the pet automatically. Here is how to resurrect the pet. Although when I've tried it, it gave error because it target another mob before resurrecting the pet and then it said "This is the incorrect target". How do I do it then? And to make him attack you put the attack skill in Attack -> Type: Pet skills, Name: [Pet] Attack. I would say Condition: Target HP <99%. But he can still die from aggro mobs or area of damage. How do I make the bishop heal the pet? I've seen in events I can use the heal script when the pet's life is under 50% but it doesn't work. Here is some information about pets: - To use the soulshots automatically is the same as with the character, you add the option in miscellaneous. He has to have the equipment in his inventory. The soulshots in yours. - pets win exp based on the damage they make, they don't have to take the kill. - The food has to be placed in their inventory and they will consume it automatically when fullness level is below 55%. - Best way to level up a pet is with a healer and letting it attack mobs of it level. - You can ride a great wolf (over lvl 70) or a strider. Edited June 23, 2017 by darknesscrysis
darknesscrysis Posted June 21, 2017 Author Posted June 21, 2017 (edited) I found a script here and I've modified the healing and following procedures to work with the bishop skills and in my pet as this was for summons. I don't actually understand the countExpAdena method so if someone could explain it step by step I would greatly appreciate it. The only changes I've done have been reduce the delay to match avg. human response time, remove the mp skill as the pet doesn't use skills, and reduce the follow range to match the major heal skill range, in the original script it was the pet who moved towards the healer but I've changed it so the healer moves to the pet. To improve it, it could see which pet buffs are missing from an array of buffs and use the ones needed. Or check if the User is noble and use noblesse blessing after every resurrection. Also it could check if you are in party and if so loop through the party members looking if they have pets and if their HP < 70 and then heal them, as this isn't working with the interface configuration. uses SysUtils, Classes; procedure tpContoller; var buff: TL2Buff; begin while Engine.Status = lsOnline do begin if not User.Dead and not User.Buffs.ById(1262, buff) then Engine.UseSkill(1262); delay(1000); end; end; procedure petRangeProtect; var previousTarget: TL2Live; begin print('[Thread] Summon range check started'); while Engine.Status = lsOnline do begin if (petlist.count > 0) and (User.distTo(petlist.items(0)) > 600) then begin if User.Target <> nil then previousTarget := User.Target; Engine.SetTarget('Your pet name'); Engine.MoveToTarget (-500); //Engine.UseAction(53); // Move action (ID 53) //Engine.UseAction(21); // Change movement mode); Engine.SetTarget(previousTarget); delay(3 * 1000); end; delay(500); end; end; procedure petHeal; begin print('[Thread] Summon heal thread started'); while Engine.Status = lsOnline do begin if (petlist.count > 0) and (Petlist.items(0).HP < 70) and (User.MP > 5) and (User.HP > 15) then begin Engine.SetTarget('Your pet name'); Engine.UseSkill(1401); // Major heal the pet end; if (petlist.count > 0) and (Petlist.items(0).Dead) and (User.MP > 5) and (User.HP > 15) then begin Engine.SetTarget('Your pet name'); Engine.UseSkill(1016); // Resurrect the pet end; delay(250); end; end; procedure countExpAdena; var exp : int64; TxtList : TStringList; today : tdatetime; adena : int64; obj: tl2item; begin TxtList := TStringList.Create; exp := User.exp; adena := obj.count; while Engine.Status = lsOnline do begin Inventory.User.ById(57, obj); // move adena (ID 57) to obj if exp < User.exp then begin if fileexists(Script.Path + 'exp.txt') then TxtList.LoadFromFile(Script.Path + 'exp.txt'); exp := User.exp - exp; today := now; TxtList.Add('+' + inttostr(exp)+', '+User.Name+', '+datetostr(today)+', '+timetostr(today)); TxtList.SaveToFile(Script.Path + 'exp.txt'); exp := User.exp; end; if adena < obj.count then begin if fileexists(Script.Path + 'adena.txt') then TxtList.LoadFromFile(Script.Path + 'adena.txt'); adena := obj.count - adena; today := now; TxtList.Add('+' + inttostr(adena)+', '+User.Name+', '+datetostr(today)+', '+timetostr(today)); TxtList.SaveToFile(Script.Path + 'adena.txt'); adena := obj.count; end; delay(60 * 5 * 1000); end; TxtList.Free; end; begin script.newThread(@petHeal); script.newThread(@petRangeProtect); script.newThread(@tpContoller); script.newThread(@countExpAdena); delay(-1); end. Edited June 23, 2017 by darknesscrysis
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now