Jump to content

darknesscrysis

Members
  • Posts

    42
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by darknesscrysis

  1. I don't know where the files are because I've never developed a lineage server. You can ask where the source code files are located in the server development subforum: L2 OFF, L2 Java.
  2. Those are the files to run the client but to help you I need you to upload the server side files somewhere so I can see what you did and if something needs fixing. Finding the errors ingame is something the players can do, you don't need a developer for that. Unless the code is properly commented you should also write what have you modified and what effects did you want those modifications to have so I can fix anything that isn't doing what it should. I'll take a look at it in my spare time and if I find any problems or can improve anything I'll let you know the changes I make.
  3. Upload the files somewhere, send me a pm with the link and tell me how to connect. I'll test it and take a look at the code and see if I find any bugs. I've seen the website and it seems like a good start but doesn't have much functionality.
  4. That while loop will end as soon as the player has IdBuff. You want it to continue running: const WindWalk = 1204; procedure InviteBuffer(bufferName: String); var buff: TL2Buff; begin while Engine.Status = lsOnline do begin if not User.Buffs.ById(WindWalk, buff) then Engine.InviteParty(bufferName); Delay(1000); end; end; procedure Main(); begin Script.NewThread(@InviteBuffer('CharName'); end; begin Main(); end.
  5. I want to heal with the spellsinger to 100% HP before attacking a new mob. Can I do that with the bot settings?
  6. For kitting I don't know how it would be, but for random clicks during combat you only have to delete the 'not User.InCombat' condition. It would do them between skills I suppose as it has a condition to not do it while casting. Although you may need to delete that condition too because if it's casting skills all the time it won't do the random clicks.
  7. Try it like this: uses SysUtils; procedure RandomClicksThread(d: integer); var X, Y, Z: integer; begin X:= User.X; // set coordinates of point Y:= User.Y; // near which we will move Z:= User.Z; while True do begin // run an endless loop if (Engine.Status = lsOnline) then begin // if we are in the game then if (User.DistTo(X, Y, Z) > 2*d*d) then begin // if the base point has changed, Print(Format('[RandomClicksThread] Base point coordinates updated: (%d, %d) -> (%d, %d)', [X, Y, User.X, User.Y])); X:= User.X; // update coordinates Y:= User.Y; Z:= User.Z; end; if (not User.Moved) and (not User.Sitting) // if we are not moving and not sitting and (not User.InCombat) and (User.Cast.EndTime = 0) // not in fight and dont cast anything and ((User.Target = nil) or (User.Target.Dead)) then begin // and we dont have a target or our target is dead, then if Engine.DMoveTo(X+Random(2*d)-d, Y+Random(2*d)-d, User.Z) then // make a random step to the side Delay(1000+Random(5000)); // and wait for random delay end; end; Delay(1000) end; end; begin Script.NewThread(@RandomClicksThread(150)); // start the thread, second argument indicate max distance from the base point // code... Delay(-1); end
  8. The above script works for tutorial windows. For trade chats you would only need to change the packet ID, so search for that. You don't need to ask for a whole other script when you already have one that you just need to modify for it to work.
  9. Here is the captcha script. You have to stop it and run it again for the sound to stop. You have to have a sound named 'beep.wav' in a folder 'sounds' in the adrenaline folder. uses sysutils,classes; var alarm:boolean= false; procedure OnPacket(ID, ID2: Cardinal; Data: Pointer; Size: Word); begin if (ID = 160) and (not alarm) then alarm := true; end; procedure doAlarm; begin while true do begin if alarm then begin playsound(exepath+'\sounds\beep.wav'); delay(2222); end; Delay(1111) end; end; begin script.newthread(@doAlarm); delay(-1); end.
  10. I have nobless quest script but it doesn't kill the raidboss for you. I have TTs script with sound when a dialog appears so you have to be there to enter captcha. Amita what is the name of the quest and where do I start it? I'll check the script.
  11. I've written a script to wait for the party when moving. So they don't get lost in case I have a big combat zone loaded, like a catacomb. I like for the bot to move around the whole place an not just stay in one room. I have the zmaps of whole necropolis and catacombs. I'll pm the script and zmaps to you if you write here a good adrenaline configuration for a class you know how to use, considering skills to farm for each lvl and skills for pvp. The settings I have in adrenaline are pretty basic because I only now how to play well a couple classes. If you don't want to configure it in adrenaline you can just tell me when would you use each skill or find me a good guide for the class that details when to use which skills. I don't mind if you give repeated classes as I'd like to see different opinions on which skills to use. You have to write a script with whatever name you want for example 'Main.txt'. The script that I have would go in the same directory and the name should be 'FunctionsModule.txt'. Then you open the 'Main.txt' script in adrenaline. Turn on the bot and press the play button. Each time it moves around it will wait for your party to be close to you to keep moving. 'Main.txt' uses FunctionsModule; begin script.newthread(@WaitParty); end.
  12. You have to create two threads Script.NewThread (@toBuff); Script.NewThread (@AceitaRess); Just out of curiosity which room is the 'ews2.zmap'? I guess you have to be noble to use this script?
  13. How can I prioritize mobs with the lower max HP?
  14. I've done a script that warns me of mobs with higher hp, in my server they are called goldkeepers. In the same line as the level it appears the word "GoldKeepers". I'd like the bot to prioritize the lower level mobs so they don't acumulate while killing the goldkeeper. As I don't know how to configure the bot like that I like to go out of the room in which I'm farming and kill the goldkeepers alone. For that I use this script to know when there is a goldkeeper. I turn the bot off, move outside and turn it on again. When the bot finishes that mob it continues as before. var i: integer; mobTitle: string; p: integer; begin while true do begin for i := 0 to NpcList.Count-1 do begin mobTitle := NpcList.Items (i).Title; p := pos ('GoldKeeper', mobTitle); if ( User.DistTo(NpcList.Items(i)) < 500 ) and NpcList.Items(i).Attackable and not NpcList.Items(i).Dead and ((NpcList.Items(i).MaxHP > 30000) or (p <> 0)) then begin PlaySound (exepath + '\sounds\beep.wav'); end; end; Delay (3333); end; end.
  15. I want to kill some players whenever I see them. Since the interface doesn't have this I'll have to do a script for it. So it would be something like: blackList: array of TL2Live; while true do begin for i := 0 to NPCList.Count-1 do begin for j := 0 to Length(players) do begin if compareStrings(NPCList.Items(i), blackList(i)) then begin Target (blackList(i)); MoveToTarget; LoadConfig ('killEveryone'); end; end; end; Delay (2222); end;
  16. This works nice: procedure MoveAndWait (x, y, z: integer); var i: integer; x1, y1, z1: integer; x2, y2, z2: integer; begin Engine.MoveTo (x, y, z); for i := 0 to Party.Chars.Count-1 do begin x1 := User.X; y1 := User.Y; z1 := User.Z; x2 := Party.Chars.Items(i).X; y2 := Party.Chars.Items(i).Y; z2 := Party.Chars.Items(i).Z; if (distanceBetween (x1, y1, z1, x2, y2, z2) < 1000) then begin while not (distanceBetween (x1, y1, z1, x2, y2, z2) < 100) do begin x2 := Party.Chars.Items(i).X; y2 := Party.Chars.Items(i).Y; z2 := Party.Chars.Items(i).Z; Delay (500); end; end; end; end;
  17. I have a script to change from one chamber to another, but when I have party members they get stuck in the walls, so I added a delay to the movement, but the delay is too long and I want to wait only till they are in a certain range. So how would that be? function distanceBetween (x1, y1, z1, x2, y2, z2: int64): extended; begin Result := sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)) + ((z2 - z1)*(z2 - z1))); end; procedure MoveAndWait (x, y, z: integer); for Party.User.Chars(i) do var x1, y1, z1: integer; x2, y2, z2: integer; begin Engine.MoveTo (x, y, z); for i := 0 to Party.User.Chars.Count-1 do begin x1 := User.X; y1 := User.Y; z1 := User.Z; x2 := Party.User.Chars.Items(i).X; y2 := Party.User.Chars.Items(i).Y; z2 := Party.User.Chars.Items(i).Z; if (distanceBetween (x1, y1, z1, x2, y2, z2) < 1000) then begin while not (distanceBetween (x1, y1, z1, x2, y2, z2) < 110) then begin x2 := Party.User.Chars.Items(i).X; y2 := Party.User.Chars.Items(i).Y; z2 := Party.User.Chars.Items(i).Z; Delay (1111); end; end; end; end; What do you think about this code?
  18. The easy way without checking for any message from the system, try to join every minute: while Engine.Status = lsOnline then begin Engine.EnterText ('.jointvt'); Delay (60 * 1000); end;
  19. Here are the movements for all the cities from respawn to gatekeeper.
  20. Mmm nice we are playing in the same server, I couldn't get the dialog text and you could, so please let me know how you did it. The dialog with Jeremy would be: Engine.SetTarget (Jeremy); Engine.DlgOpen; Engine.DlgSel ('Quest'); Delay (500); Engine.bypasstoserver ('npc_268465435_Quest 621_EggDelivery'); Delay (500); Engine.bypasstoserver ('Quest 621_EggDelivery 31521-1.htm'); Delay (500); Engine.DlgOpen; Engine.DlgSel ('Quest'); Delay (500); Engine.bypasstoserver ('npc_268465435_Quest 622_SpecialtyLiquorDelivery'); Delay (500); Engine.bypasstoserver ('Quest 622_SpecialtyLiquorDelivery 31521-1.htm'); Delay (500); I'm gonna go test it right now. Edit: working perfectly.
  21. You'll have to be much more specific so I can help you. You already knew the script didn't talk to the npcs as I already said that in my previous post. The reason why I have written it like that is because depending on the server the way to chose the dialog option is different, someones can use dlgSel command while most have to use a serverbypass command which is different in every server. If you read carefully my post you'll see I've answered your questions already. The only thing I forgot to say is that you have to download a sound to a directory called Sounds inside Adrenaline folder and call it beep.wav, or you can change the line PlaySound (exepath + 'Sounds\beep.wav'); to the name and place of the sound you download. You also have to download the TeleportModule in the same folder as the TT script or else you can change the line GoHome for Engine.EnterText ('/unstuck');
  22. Here you go it's not near perfect but it's something. The script moves through the liquor delivery first and then through the egg delivery. Beeping when it reaches an npc and giving you 10 seconds to choose the dialog option. You really need to remember that in the 5th npc you have to choose the 2 quests. It beeps twice just to remember. It needs a lot of improvements: - The path needs to be smother because sometimes it get stucked and you have to move it sideways so it moves again. - The ideal would be to send a server bypass but I don't know how to obtain it for my server because the file obtained with this script is empty and hence I don't know how to explain how to change it for your server. You should try with normal dialog selection commands anyway. You just copy the dialog text into the command "Engine.DlgSel ('textHere');" - The movement in the city could also be written but they would be different movements depending of the respawn so it's too much for me. We could do it together. If everyone who uses the script does one, we would finish pretty soon. The way to do it is, in each location to which you move you write /loc in game and copy the coordinates to a Engine.MoveTo (x, y, z) command. You move from the respawn to the grocery or the warehouse depending which one is closer, you don't need to write the commands to go to the other shop, and you don't need to go in. But the last command has to be in front of the store. - Maybe load a config to use dash. Just create a config in the interface with dash in self-buffs and add the line Engine.LoadConfig ('configName'); at the begining of the script. - The script could be written in a way that it knew where to go next by checking which npc you are close to with "User.InRange" commands. In case you miss a npc and you don't have to recall and begin the script again. But to do this it would have to check for the quest items that aren't in the normal inventory so I don't know how to do it. If it didn't have liquor left the path to go would be different than if it's still doing the liquor delivery.
  23. The bot doesn't assist me against other players. Do I have to change the attack to attack force somehow? I have the options to prioritize pvp and protect from pvp activated but it doesnt work.
  24. How does the moving through path option in the interface work? I want to move through different chambers whenever the bot finishes the mobs in the actual one. And if you make a path when it finishes does it go back through the same route or does it finishes in the last point? I want to know if I can configure the bot interface to move in circles. If it can't be done with the interface how would it be with a script? Is autotarget the right check? It could target a mob that is being hit by other player and I wouldn't want to count that. procedure StakatoNest; begin if not User.InRange (89701, -44683, -2136, 10000, 10000) then begin TeleportTo ('swamp of screams'); end; if User.InRange (89701, -44683, -2136, 500, 200) then begin //move to the nest end; // when in the first chamber if User.InRange (85004, -42461, -4616, 500, 200) then begin Engine.FaceControl (0, true); while Engine.Status = lsOnline do begin Engine.LoadZone (exepath + 'Zmaps\StakatoNest1st.zmap'); while Engine.AutoTarget do begin Print ('Stay in the first chamber'); Delay (15 * 1000); end; Print ('moving to second chamber'); Engine.MoveTo (79428, -46165, -5129); Engine.MoveTo (79284, -46526, -5128); Engine.MoveTo (79373, -47022, -5160); Engine.LoadZone ('chamber1'); Engine.LoadZone (exepath + 'Zmaps\StakatoNest2nd'); while Engine.AutoTarget do begin Delay (10 * 1000); end; Print ('moving to first chamber'); Engine.MoveTo (79373, -47022, -5160); Engine.MoveTo (79284, -46526, -5128); Engine.MoveTo (79428, -46165, -5129); end; end; end; BEGIN StakatoNest; END. if User.InRange (85004, -42461, -4616, 20000, 8000) then begin Print ('Inside the nest'); if (User.DistTo (79915, -48867, -5120) < User.DistTo (79915, -46316, -5120)) then chamber := 2 else chamber := 1; Engine.FaceControl (0, true); while Engine.Status = lsOnline do begin if ( chamber = 1 ) then begin Engine.LoadZone (exepath + 'Zmaps\StakatoNest1st.zmap'); thereAreMobs := true; while thereAreMobs do begin for i := 0 to NpcList.Count-1 do begin if NpcList.Items(i).Attackable then begin continue; thereAreMobs := false; end else begin Print ('Stay in the first chamber'); Delay (3 * 1000); end; end; end; Print ('moving to second chamber'); Engine.MoveTo (79428, -46165, -5129); Engine.MoveTo (79284, -46526, -5128); Engine.MoveTo (79373, -47022, -5160); end; Engine.LoadZone (exepath + 'Zmaps\StakatoNest2nd.zmap'); thereAreMobs := true; while thereAreMobs do begin for i := 0 to NpcList.Count-1 do begin if NpcList.Items(i).Attackable then begin continue; thereAreMobs := false; end else begin Print ('Stay in the first chamber'); Delay (3 * 1000); end; end; end; Print ('moving to first chamber'); Engine.MoveTo (79373, -47022, -5160); Engine.MoveTo (79284, -46526, -5128); Engine.MoveTo (79428, -46165, -5129); end; end else Print ('You aren''t in the nest'); end;
  25. Here http://rawr.su/topic/3577-captcha-warland/ it seems to be another solution but I can't understand it properly, so I don't know if it worked for anyone. Where can I download l2phx 3.5.34.176?
×
×
  • 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