Jump to content

darknesscrysis

Members
  • Posts

    42
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by darknesscrysis

  1. Is this working for anyone? uses sysutils,classes; var alarm:boolean= false; procedure OnPacket(ID, ID2: Cardinal; Data: Pointer; Size: Word); begin if (IntToHex(ID, 2) = 'A0') and (not alarm) then alarm:= true; end; procedure doAlarm; begin while delay(1111) do begin if alarm then begin playsound(exepath+'sounds\playeralarm.wav'); delay(2222); end; end; end; begin script.newthread(@doAlarm); delay(-1); end.
  2. ttps://github.com/arturojosejr/L2-Adrenaline-Scripts/blob/master/My%20Scripts/Lvl%201-80%20(interlude)/TeleportModule.txt I want to do a script in which you write the place you want to go and it teleports from one gatekeeper to another and to the place you want. For example if we are in elven village: TeleportTo ('antharas lair') would go to gludio, then giran and finally antharas lair. What I've done is if the destination isn't found in the current gatekeeper it goes to the first dialog option. But then it can enter a loop, for example in my example above it would do elven village -> gludio -> schuttgart -> rune -> goddard -> shuttgart -> ... And would keep repeating schuttgart, rune, goddard from there. The problem is that I canot think the logic after the process of deciding which city to go next. I think I should start looking in all the strings where is the destination, then if it isn't reachable from the current city, check if we can go from the current city to the first city from which it's reachable and so on.. what do you think? Even better would be taking into consideration the adena spent in each path and then choosing the lest expensive path. Although that would be even harder. This is what I've thought so far: if the destination is a city cityDestination = destination if the destination isn't a city cityDestination = search the city from which the destination can be reached if cityDestination is reachable from current city then TP to cityDestination TP to destination else find the shortest path with BFS algorithm. TP through the fastest path till the destination
  3. Nevermind I have it working now. Although sometimes it get stuck in the doors if they are closed. I don't know how to check if they are open.
  4. It would be nice if it stopped when there's a mob attacking, but it would need to pause the movement. How would that be? Something like.. function checkAgro: boolean; var npc: TL2Npc; begin result := Engine.FindEnemy(npc, user, 1100)); end; procedure killAgroMobs; begin if checkAgro // suspend thread movingToHuntingZone // resume thread after killing mobs end; procedure movingToHuntingZone; ... begin script.newThread(@killAgroMobs); script.newThread(@movingToHuntingZone); end.
  5. The problem with that is that it only kills the mobs after it arrives to the point. So when you cross a chamber you would have a lot of mobs to kill at once. I think this way would work better, you create a config that doesn't attack any mob but beat off attacking mobs, you load that config before moving to the hunting zone, and when you arrive you change it for the usual config to attack all the mobs in that zone. BEGIN Engine.LoadConfig ('KillAggroMobs'); Engine.FaceControl (0, True); Engine.MoveTo ... move.. move.. ... if User.InRange (x, y, z, range, zRange) then begin Print ('Arrived to hunting zone'); Engine.LoadConfig (User.Name); Engine.LoadZone ('huntingZoneName.zmap'); end; END.
  6. Did the free recording script worked for anyone? I used the adrenaline updater with the additionally option, it downloaded the ScriptsUpdater.exe, I used that to download the free recording script. Then I opened the Script_Recorder.enc with adrenaline and nothing happened.
  7. 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.
  8. Does this work for you? It seems to me that the condition (NpcList.Items(i).Target = User) never gives true. Maybe it doesn't work in interlude? var AggroMobs:integer; function MobsAttacking : integer; //Сколько мобов нас атакует? var i, n: Integer; begin n := 0; AggroMobs:=0; for i := 0 to NpcList.Count - 1 do if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc(n); AggroMobs:= n; Result := n; end; begin print(MobsAttacking); end. How do I configure the bot interface to attack only agro mobs?
  9. Let's see if you can help me get this path right. The script is failing where it sais "fix this". I can't find some coordinates that work in that place. You have to teleport to Garden of Eva and run the script from that point to test it. function goToGardenOfEva: Boolean; begin // DoTeleportTo ('garden of eva'); if User.InRange (85998, 231070, -3595, 500, 100) then begin Print ('Moving to Garden of Eva'); Engine.MoveTo (85619, 231367, -3528); Engine.MoveTo (84525, 235012, -3751); end; if User.InRange (84525, 235012, -3751, 500, 200) then begin Print ('Moving to Garden of Eva'); Engine.MoveTo (85166, 238905, -4416); Engine.MoveTo (85139, 242047, -4742); end; if User.InRange (85139, 242047, -4742, 500, 100) then begin Print ('Going down'); Engine.MoveTo (85023, 242090, -4814); //Fix this Engine.MoveTo (84670, 241968, -7130); Engine.MoveTo (84184, 241691, -7152); Engine.MoveTo (84823, 242285, -6704); end; if User.InRange (84449, 241751, -7122, 500, 100) then begin Print ('Going inside'); Engine.MoveTo (83376, 241711, -6898); Engine.MoveTo (82748, 241738, -6712); end; if User.InRange (82748, 241738, -6712, 500, 100) then begin Print('From here is easier'); Engine.MoveTo (82757, 244738, -7160); end; if User.InRange (82757, 244738, -7160, 500, 100) then begin Engine.MoveTo (86289, 244752, -7672); end; if User.InRange (86289, 244752, -7672, 500, 100) then begin Engine.MoveTo (86184, 244314, -7672); end; if User.InRange (86184, 244314, -7672, 500, 100) then begin Engine.MoveTo (82732, 244391, -8184); Engine.MoveTo (82625, 245488, -8748); Engine.MoveTo (84549, 245444, -8848); Engine.MoveTo (86380, 246645, -8823); end; if User.InRange (86380, 246645, -8823, 500, 100) then begin Print ('Activating bot interface'); // Activate bot interface // When you get the item go to the next floor and get another item end; if User.InRange (86380, 246645, -8823, 500, 100) then begin Print ('Moving in front of the arc'); Engine.MoveTo (86319, 246917, -8824); while not Engine.MoveTo (86104, 247220, -8847) do begin Print ('Waiting for it to open'); Delay (10 * 1000); end; Engine.MoveTo (86942, 247817, -9311); end; if User.InRange (86942, 247817, -9311, 500, 100) then begin Print ('Second level'); Engine.MoveTo (87659, 248808, -9336); Engine.MoveTo (88106, 250266, -9365); while not Engine.MoveTo (87721, 250458, -9328) do begin Print ('Waiting for it to open'); Delay (10 * 1000); end; Engine.MoveTo (88066, 251495, -9848); end; if User.InRange (88066, 251495, -9848, 500, 100) then begin Print ('Third Level'); Engine.MoveTo (87182, 253432, -9877); while not Engine.MoveTo (86843, 253339, -9840) do begin Print ('Waiting for it to open'); Delay (10 * 1000); end; Engine.MoveTo (87135, 252357, -10336); end; if User.InRange (87135, 252357, -10336, 500, 100) then begin Print ('Fourth Level'); Engine.MoveTo (87008, 252252, -10389); Engine.MoveTo (86384, 253252, -10389); while not Engine.MoveTo (86079, 253159, -10389) do begin Print ('Waiting for it to open'); Delay (10 * 1000); end; Engine.MoveTo (83428, 252654, -10680); end; if User.InRange (83428, 252654, -10680, 200, 100) then begin Engine.MoveTo (82933, 252441, -10618); Engine.MoveTo (81973, 252445, -10592); Print ('You''ve arrived to Garden of Eva'); end; end;
  10. If it checks for any window and not only a dialog one it's good too.
  11. 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.
  12. I'm trying to play a sound when the captcha pops up but I don't know how to detect the tutorial window.
  13. I want to know places easy to access from the normal gatekeepers that are a bit hidden and where people don't use to go. Give one for each lvl range (whichever you choose).
  14. I was doing the A-Grade weapons quest script and I don't know why I can't select the next option. // A-Grade weapon quest uses Classes; begin if User.Level > 61 then begin Engine.SetTarget(32105); Engine.DlgOpen; Delay(500); Engine.DlgSel('Quest'); Delay(500); Engine.DlgSel('A Powerful Primeval creature'); Delay(500); Engine.DlgSel('What rumors are you talking about?'); Delay(500); end; end.
  15. To use Cracked L2 Adrenaline 1.71 bot you have to run as administrator Start, Tunel in that order, from Tunel open Boot. Then open as many L2 clients as you want and they will appear in the bot. You have to open the client from the system folder of the game. The important things you have to know to reduce the probability of getting banned. Basically the most important is being able to react if the gm talks to you. I'm leveling a destroyer, an archer and a bishop at the same time and it works much better than if I was botting with only one character, but I have to keep an eye for the captchas from this server, for buffs, to look if they are dead, if the inventory is full (for not leaving behind any useful items that the mobs may drop) , if someone talks to me, etc.. I just want to leave it running while I sleep. This is the party setup. The destroyer attacks first. Then the archer. Bishop and archer follow at some distance for not getting area damage. The bishop heals the destroyer if he's below 25% HP and the archer if he's less than 80%. The bishop is the party guard so when he's being attacked the rest of the party protect him. Party is created automatically, and they are resurrected automatically, it's configured to make a sound when some events happen, but I'd like it to make the sound just once (how it's done?). I'm gonna be doing a 1-85 leveler script that includes some quests like pet quests, nobless, etc. And you'll be seing the progress as I update this thread. Adrenaline scripts are written in delphi/pascal syntax so If you want to better understand them to be able to modify them you could read something about those languages. Here is the Auto rebuff and returning to hunting ground. You need to have the four other files in the same directory for it to work. It goes to city when you die, or need buffs and teleports to Wall of Argos, you have to modify the id of the buffer and gatekeeper and change the dialog options and the movements commands to go to your hunting ground. Here is how it has to be customized: When you spawn in a Town you have to do a /loc and see the coordinates, you then have to do an script to move from that coordinates to the buffer, then buff, then go to the gatekeeper and teleport. You have to do this from every respawn location in a town. If you respawn in coordinates 146785, 25813, -2008 in Aden you move from there to the next point do another /loc and with the new coordinates you write a MoveTo command. That's the way in wich the script is written, here are some things that need to be added: - Some places to bot at each level. - This killAggroMobs doesn't work in Interlude, try this. - The killAggroMobs procedure should check for mobs attacking not only you but any party member and kill them. - There should be an array with of hunting grounds to having to change only the name or to write a number corresponding to the hunting grund and depending of the huntingGround string it would go to a different position. - The moveInCity procedure currently checks a range of 250 around every respawn of the city. It would be better for it to work in all the city. Let's say the city has a range of 5000 (the range I think is the radius of a circle), it would need small circles in the different locations of the city and they should completely fill the city range. It would start by the shops, if you are in the range of a shop you move to the door, then move to a place of the square of the city in which the previous shops where. The difficult part will be checking if the city range is completely filled, the dumb way to do it would be whenever the script doesn't work you check the location and increase the range of the part of the city in which you are. - Create another procedure with community buffer [Alt+b] to modify it more easily. It's very important to read this page to solve the buff problem. - Automatically clean some garbage items from the inventory. - Automatically move the rest of items from some members to another one. - Automatically going to the warehouse if the inventory is full of useful items, storing them there and going back to hunting zone. - Add an anti captcha script. Autos Auto Agument, Auto SOS charging, Anti Disarm, Imperial Tomb Auto Farm LS, Auto Mana Burn Enemys Healer Another back to farm scrip Auto 1-61 leveler, auto agument, auto enchant, auto back to farm location and more Play sound Captcha (other) How can I detect a tutorial window? Quests Tatteosian script Quest sweetest venom Frintezza quest Items Change weapon Trading script Store in warehouse (exchange don't work in interlude) Sending items to another player Send money (concatening strings) Send all items by mail Useful >>Very interesting Target certain class Save server bypass command to buff and teleport from community Alt+B window PM everyone in a server Loop through party members Count number of aggro mobs Auto relogin Game login Kick buffer from party after done buffing (no script needed Some commands: Engine.GoHome(rtclanhall); // When you die go to clan hall Engine.UseItem(736); // Use scroll of escape Engine.EnterText('/unstuck'); // For ustuck uses Classes; // This goes at the begining of the script if User.Level > 61 then begin ... end; // Level check Here some questions that I have: - How do I delete an item with adrenaline? - What is the range at which experience is obtained in party? - How do I seed and harvest mobs? - How to use chest keys in mobs or else ignore Treasure Chests? - How do I find out an item's ID? - How can I set up a pet in Adrenaline interface so it attacks the same target, is fed automatically and is resurrected if it dies? - What is party guard from the Adrenaline interface? - How to do PIN unlock? Adrenaline Bot for Lineage 2 you can buy here - https://l2soft.eu/#purchase
  16. I've seen that it can't be done like that in interlude. So I've done it with mouse events but it isn't dragging the object. What's wrong? // Exchanges itemCount number of items from the inventory function SetCursorPos(x, y : integer): boolean; stdcall; external 'user32.dll'; function mouse_event(dwFlags, dx, dy, dwData: byte; dwExtraInfo: integer): void; stdcall; external 'user32.dll'; var i : integer; const itemCount = 3; // for testing purposes make this number small perActionDelay = 200; procedure mouseClick(x, y : integer); begin SetCursorPos(x, y); mouse_event($2, 0, 0, 0, 0); delay(perActionDelay); mouse_event($4, 0, 0, 0, 0); end; begin i := 1; while i < itemCount do begin delay(perActionDelay); SetCursorPos(30, 310); delay(perActionDelay); mouse_event($2, 0, 0, 0, 0); delay(perActionDelay); SetCursorPos(30,480); delay(perActionDelay); mouse_event($4, 0, 0, 0, 0); delay(perActionDelay); mouseClick(900,480); delay(perActionDelay); mouseClick(690,480); delay(perActionDelay); i := i + 1; end; end.
  17. I'm trying to save all items (that are not equipped) in the warehouse. //auto store items in warehouse var items: TL2List; i: integer procedure save (itemId: integer) if not inventory.user.byid(728, item) or (item.count<1) then begin Engine.SetTarget(31268); // NPC's id Engine.DlgOpen; Engine.DlgSel(1); // NPC window option Engine.DlgSel(1); Engine.NPCExchange(itemId, 1); // (iditem, quantity) Print('OK'); delay(1000); end; end; begin while Length(items) > 0 do begin for i:0 to Length(Inventory.User.Items) do begin save(Inventory.User.Items[i].); //get Item id?? end; end; end.
  18. Please put the download link of a free bot here and a server in which you know for sure that it's working. I was using L2Tower but it had a 3 hour limit...
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock