-
Posts
657 -
Credits
0 -
Joined
-
Last visited
-
Feedback
100%
Content Type
Articles
Profiles
Forums
Store
Posts posted by adr.bot
-
-
40 minutes ago, Abaddon3169 said:
Where should i put that ?
well i guess not exactly that, that was just an example, you can check adr api here for detailed info https://adrenalinebot.com/en/api/adrenaline/Classes/TL2Live#Target
-
28 minutes ago, Abaddon3169 said:
Hi guys im looking for help
this is my adrenaline bot script:
How can i check for targets name ?
For example NpC name
Please help meuser.target.name
-
3 hours ago, rodrigo36999 said:
Probably. You don't know where I can get a more current cracked version. For testing or development purposes only. I have only the 1.7 version
i dont know
-
2 hours ago, rodrigo36999 said:
I restart the machine and now i can see the error. This is Undeclared identifier "LoadItems" and the script not work if i remove this line the script run correctly. I have the item 57 (adena) and only move 1 but this script not work. I see the guide from offial page and copy the example and not work. could you help my please
many commands not exist in cracked bot
-
2 hours ago, rodrigo36999 said:
hi i'm new to adrenaline. I'm making a pretty simple script, the adrenaline marks the error line but not the error it has. Please can you help me to know where I can see the error it generates.
The error is in the line adCtl.LoadItems(TodwhVal,[57]); but the adrenaline not get any error message or I cannot see this error in the application. where can I see the error in the application. Help my please.
if bot not show error in messages means script have no problems, most likely before there error, u fixed it and red line remains there, if you can start script, then you are good to go
edit: LoadItems array of items should contain "item id, items count", how u write there shouldnt be a red line, but it probably wont work
-
10 minutes ago, Demonho said:
see a quite more easy to implement.
Tested the unitpacket, this operations os pointers is strange a lot for me, i cant see any logic here kkkkk
uses SysUtils, PacketUnit; var p1, p2: Pointer; Match, Win, Loss, Points: Cardinal; i: integer; ret: string; p : TNetworkPacket; begin while true do begin if Engine.WaitAction([laSysMsg], p1, p2) = laSysMsg then begin if Cardinal(p1) = 1987 then begin p:=TNetworkPacket.Create(p2,46); Print(p.ReadS); p:=nil; end; if Cardinal(p1) = 1673 then begin p:=TNetworkPacket.Create(p2,24); Match := p.ReadD; Win := p.ReadD; Loss := p.ReadD; Points := p.ReadD; p:=nil; print(format('Match: %d; Win: %d; Loss: %d; Points: %d', [Match, Win, Loss, Points])); end; end; end; end.
well i mean to read to see idea how it getting read, and not actually use it.
anyways to read string (probably, should actually test), i cant tell "Position" number because ur server positions seems odd to me.String(PChar(Cardinal(p2) + Position))
-
28 minutes ago, Demonho said:
^^ yeah!!!
In another case, for relogin purposes i need check if char is online, my idea is send a invalid command to server. If receive the Command not found, char is online.
i made a test with:
uses SysUtils; var p1, p2: Pointer; Match, Win, Loss, Points: Cardinal; i: integer; ret: string; begin while true do begin if Engine.WaitAction([laSysMsg], p1, p2) = laSysMsg then begin if Cardinal(p1) = 1987 then begin for i:= 0 to 44 do begin if i mod 2 <> 0 then Continue; ret:=ret+PChar(Cardinal(p2)+i)^; end; end; Print(ret); end; end; end.
its correct? give me result i am expecting: SYS: Command not found.
There is a better way to read p2 on this case?i would recommend read this https://adrenalinebot.com/en/api/example/packetunit-ready-unit-working-packets-adrenaline-bot because how u read seems not right.
p2 should contain (in my case MessageID), Size, Type, and values by Type.thats why i dont have answer for ur question in this case, because ur system message data seems odd to me xd
ps. u always can use move and check if u moved. -
-
25 minutes ago, Demonho said:
Thanks adr.bot,
changed to find the correct values:
Match := PCardinal(Cardinal(p2))^; Win := PCardinal(Cardinal(p2) + 8)^; Loss := PCardinal(Cardinal(p2) + 16)^; Points := PCardinal(Cardinal(p2) + 24)^;
np, but it is really correct values? for example when tested (interlude)
PCardinal(Cardinal(p2))^
gave me system message ID.
- 1
-
uses SysUtils; var p1, p2: Pointer; Match, Win, Loss, Points: Cardinal; begin while true do begin if Engine.WaitAction([laSysMsg], p1, p2) = laSysMsg then begin if Cardinal(p1) = 1673 then begin Match := PCardinal(Cardinal(p2) + 12)^; Win := PCardinal(Cardinal(p2) + 20)^; Loss := PCardinal(Cardinal(p2) + 28)^; Points := PCardinal(Cardinal(p2) + 36)^; print(format('Match: %d; Win: %d; Loss: %d; Points: %d', [Match, Win, Loss, Points])); end; end; end; end.
-
2 hours ago, chundrik said:
Thanks for reply.
This is actually what I was trying to do, but many times my char is just getting stuck in strange corners.
On another note, another question none related.I found a script you posted back in the day wit auto re-login (below).
For the most part it works, but the server I'm playing in has auto daily restarted but like 60 sec or so.
when it happen the l2 window get disconnected popup and the script is just not doing any thing.I was trying to find a way for it to click enter when its detected, but nothing I did work.
Could you help with that , or perhaps there is a different approach ?Also if im adding a back to spot and rebuff to this below, how do i make sure it works, the original one you posted didnt work like half of the time and i have no clue why.
uses SysUtils; function ShellExecuteW(hwnd: integer; lpOperation, lpFile, lpParameters, lpDirectory: PChar; nShowCmd: integer): integer; stdcall; external 'Shell32.dll'; function keybd_event(bVk, bScan: byte; dwFlags, dwExtraInfo: integer): integer; stdcall; external 'user32.dll'; function ShowWindow(hwnd:cardinal; action:integer):boolean; stdcall; external 'user32.dll'; procedure disconnectMonitor; const login = 'qq'; password = 'aa'; gamePath = 'C:\Users\Pc\Desktop\server\Lineage II\system\l2.exe'; begin while engine.Delay(3000) do begin if (Engine.Status = lsOffline) or (Engine.Status = lsOff) then begin print('dc'); Engine.FaceControl(0, false); Delay(1000); Engine.GameClose; Delay(1000); ShellExecuteW(0, 'open', PChar(gamePath), nil, nil, 0); Delay(15000); enterText(login); Engine.UseKey('Tab'); Delay(300); enterText(password); Delay(300); Engine.UseKey('Enter'); Delay(2000); Engine.UseKey('Enter'); Delay(2000); Engine.UseKey('Enter'); Delay(2000); Engine.UseKey('Enter'); Delay(10000); ShowWindow(engine.gamewindow, 6); end; end; end; procedure enterText(const text: string); var i: cardinal; upperCase: boolean; begin for i:= 1 to length(text) do begin if isDigit(text[i]) then Engine.UseKey(text[i]) else begin upperCase:= text[i] = UpCase(text[i]); if upperCase then begin keybd_event(20, 0, 1, 0); keybd_event(20, 0, 2, 0); Engine.UseKey(text[i]); delay(10); keybd_event(20, 0, 1, 0); keybd_event(20, 0, 2, 0); end else Engine.UseKey(text[i]); end; Delay(50); end; end; function isDigit(ch: char): boolean; const digits = '013456789'; var i: cardinal; begin result:= false; for i:= 0 to length(digits) do if digits[i] = ch then begin result:= true; exit; end; end; begin Script.NewThread(@disconnectMonitor); end.
https://adrenalinebot.com/en/api/adrenaline/Classes/TL2Control#AuthLogin for enter login/passw
if server have protection most likely winapi keyclicks doesnt work, then you can try use "Engine.UseKey" https://adrenalinebot.com/en/api/adrenaline/Classes/TL2Control#UseKey
for disconnect, well if u get disconnect while u trying log in, then at very end of login , u can do check for if u are online, if not close client, and login again.if u get disconnect while playing, and bot not shows that u are diconnected, u can try do thread procedure, which would check if u moved/get some specific items in last 60sec or so, if not do any of those, most likely u diconnected and u can close client for login again.
however i dont have any examples of that, but u can try adapt this code https://adrenalinebot.com/en/api/example/checking-if-our-character-is-stuck-in-the-thread for client close if u not moved.
-
if user.inrange(123, 123, 123, 500) then begin engine.moveto(123, 123, 123); end;
u dont need have each exact spawn location, u can cover town with inrange check. 500 is radius around XYZ, gl!
-
45 minutes ago, bartun said:
Yeah thanks, but already read it 2 days ago, I am using cracked Adrenaline and I am trying to learn to edit/modify easy scripts just that haha (I don't have the script recorder and i don't have any tool to discover the ByPassToServer)
But no problem, the server for what I need this script is nearly to die so.. no problem..
By the way, lot of thanks!
-
On 4/28/2020 at 1:55 PM, bartun said:
Still searching help with this, I can't bot because i have to change adena for goldbar every 2:30 mins, so I can't left bot alone for more than 5 min. I am sure I have to click "Deposit" with the engine.ByPassToServer, but I dont know what I have to put inside the ByPassToServer, how could I know?
https://adrenalinebot.com/en/api/example/more-about-enginebypasstoserver
-
12 hours ago, bartun said:
At this moment, I am using Events tab, i put: Adena>999.999.999 alarm. I can make when adena>999.999.999 write in chat .bank, but then I have to click in "Deposit", and no option in Events tab.
Thank you so much!! Btw, not working. I mean, If i use only the script yes, char moves, slowly but he moves himself, but I am looking (and I don't know if its possible) moving between skills, something like "kiting"
-
2 hours ago, bartun said:
Another thing I would love, is to change 1kkk adena for a goldbar, I have to write .bank and appears a windows that I have to click in "Deposit" button, that's hard to do or this script exists?
u need check events tab, there is "item", select it and u see everything else there
-
2 hours ago, elrey2 said:
I used the PacketID= 15 (for trade) but this doesnt seems to work too. I tried with other packets id but cant find the right one.
Have u an idea which packet id could this be?
ED=ConfirmDlg:d(requestID)d(d)d(d)s(name)d(d)d(d)
probably this one
- 1
-
15 hours ago, gemisiz1 said:
how make for mob? :)
change CharList to NpcList
-
22 minutes ago, mr zero said:
Of course that's not the only con. That being said, by highlighting more pros than cons in my argument I'm obviously endorsing the server as someone who has consumed a product and has formed an opinion on it. Someone displeased with the server would do the exact opposite. In fact, there is another lenghty post that does exactly that within this topic. I was pleased with the product, I posted more pros in my argument. He/she was displeased by it, he/she presented more cons.
Trust me, if I had highlighted more pros and more cons, the only thing that would possibly change is your evaluation of what is considered an "essay" and whatnot. The pros would still outweigh the cons, as evaluating a product is often opinionated. My opinion is - without a doubt - in favor of this server.
Furthermore, you consider the idea of an in-game auto farm to be nonsense based on the premises that 3rd party programs are hunted. Fine, that's your opinion, okay. However, I could point out that you haven't actually tried it in practice as you clarified that you aren't playing here. Well, maybe you tried it, I cant know for sure, but that is besides the point. As for my point on why I consider it to be effective, I already explained in my previous post.
But make no mistake, a limited feature such as "hit mobs", shouldn't be considered by any means to be comparad to a 3rd party program, which via its scripts can affect the PvP element of the game, or engage in complex actions that render the person behind the monitor as useful as a flowerpot would be.
Anyhow, it's all opinionated in the end. I'm sure the people who upvoted your post also have an opinion on this place. But I cant help but note the irony. One is a notorious interface developer (amongst other things), the other was banned from this server, and my personal favorite has the username "Adre.Bot". Maybe this concept is a bit bad for business? Thought it was worth mentioning. : D
wait what, last time i checked, i wasnt banned xd about bad businness, i not even selling scripts, but if i want i could bypass that joke captcha which he use xd i not even talk about him antibot, aka "zeus guard, best server protection", which was bypassed by guy who have 0 knowledge in c#, and other debug bullshit xd
-
not sure if i understand good, but color, example in screenshot https://prnt.sc/p6dq6w can be changed in "Interface.u > ChatWnd" in "function HandleChatmessage( String param )", chronicle interlude
-
12 minutes ago, iselladena said:
@adr.bot thank u very much. Should i add that part to the end keeping the "relog" part intact? or add a new function for relog affter aggrocheck?
My knowledge is pretty limited, but i'm trying lol.
ur alarm makes no sense, u need chose if u doing one script for all windows, or only for single window, now is half with get control, half with engine (current control)
-
13 hours ago, iselladena said:
HI @adr.bot gn. I've managed to set a script for alarm captcha in the server i'm playing:
uses
SysUtils, Classes;
function SetForegroundWindow(hwnd: integer):boolean; stdcall; external 'user32.dll';
const
// words / phrase to detect
CaptchaTexts: array of string = ['=', 'Question:', '=', '?'];
// play sound when detected (true - yes / false - no)
CaptchaSound = true;
// sound file name (in the Sounds folder)
CaptchaSoundName = 'hp.wav';
// highlight the desired window on the taskbar (true - yes / false - no)
CaptchaFlashWindow = true;
// move the window to the foreground (true - yes / false - no)
CaptchaSetForegroundWindow = true;procedure CaptchaThread(CaptchaTexts: array of string);
var
a1, a2: integer;
s1, s2: integer;
EngineCustom: TL2Control;
i, j: integer;
Have: boolean;
L: TStringList;
SoundPath: string;
begin
SoundPath:= ExePath + 'Sounds\' + CaptchaSoundName;
if (CaptchaSound) and (not FileExists(SoundPath)) then
begin
print('No sound file found. Path: ' + SoundPath);
Script.Stop;
end;while (true) do
begin
delay(1000);
for i:= 0 to 100 do
begin
EngineCustom:= GetControlByIndex(i);if (EngineCustom = nil) then
break;
if (EngineCustom.Status <> lsOnline) then
continue;
Have:= false;
//print(EngineCustom.hlpText);
//print(EngineCustom.CBTime);
print(GetTickCount());
print(EngineCustom.HlpTime);
s1:=GetTickCount();
s2:=EngineCustom.HlpTime;
print(s1-s2);
//engine.dlgtext.contains
L:= TStringList.Create; // Create an object (list for strings)
L.Add(EngineCustom.hlpText);//(EngineCustom.hlpText); // Add the line to the
L.Sort;
//L.SaveToFile('C:/1.html'); // Save the list to the file
//L.Free;
if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) then//EngineCustom.hlpText.contains('Question:') then
begin
Have:= true;
if (Have) then
begin
L.Free;
PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
delay(5000);
end;
//PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav');
if (user.target.dead) then begin
while user.incombat do
delay(1000);
engine.autosoulshot(5789, true);
engine.autotarget(2500);
engine.attack;
engine.pickup;
end;
engine.restart; //restart to char select screen;
engine.gamestart(0); //0 is char id
end
end;
end;
end;
begin
Script.NewThread(@CaptchaThread(CaptchaTexts));
end.---------
Alarm works fine. And i added the last 2 lines (engine.restart) since once captcha window appears (tutorial window), if i relog the char, the captcha wont kick me and i can continue playing normally.
But what i dont know how to do, is once alarm sounds (something like... if (Pos('Question:', L.Text) > 0) and ((s1-s2) < 19000)then//L.Find('Question:', i) ????
Make the char finish aggro mobs and once out of combat relog.
function AggroCheck():boolean; var i : integer; begin result := false; if npclist.count = 0 then exit; for i := 0 to npclist.count -1 do begin if (npclist(i).target = user) or (npclist(i).atkoid = user.oid) then begin result := true; exit; end; end; end;
-
1 hour ago, Horse said:
Correct me if I'm wrong but what he wants is to be able to see correct drop info of mobs on a server where this feature isn't originally included in the system files.
Thus, even if he has these files, they'll show incorrect info on any server that has different rates or edited drops.
yes drop rates for sure not correct, although its same not correct as old drop spoil
-
4 hours ago, Horse said:
You won't be able to see the droplist of monsters by simply editing your client inferface and dat files only. This needs server side editing as well.
no it is full client sided
5 hours ago, Blitzkrieg said:Drop.ini
Interface.xdat window: DropWnd
Interface.u class: TargetstatusWnd
Spoil.ini too
L2 Adrenaline Scripts.
in Request Botting [English]
Posted · Edited by adr.bot
save? deposit load function
https://adrenalinebot.com/en/api/adrenaline/Classes/TL2Control#LoadItems