Jump to content

Recommended Posts

Posted

Hello, 

 

Im making a custom script for my self, plan is for a fairly large one, including login check, buff, path to farm zone from multiple cities etc...

The only thing im truly having problems with is the spawn locations in the towns.

Goddard was very easy to find as most of the examples use it, however i noticed that not all spawn point are there and for some of the spawn point the char is just getting stuck when trying to get up on the stairs.

 

So does any one know where i can get the right and full spawn list ? (preferably for all the big cites, goddard, aden, rune)

 

Thanks!

Posted

Come on, no a single answer ? 

there must be a place with the spawn point right ? 

I mean i can spend hours and just recall to the city over and over and making it, but it seems such a pain the ass.

Posted
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!

Posted
On 2/14/2021 at 8:04 PM, adr.bot said:

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!

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. 
Posted
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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • TELEGRAM SEO TRAINING (Bot Ranking in Search) I teach a complete system for ranking Telegram bots at the top of search results by keywords and countries. The method works for services, shops, crypto projects, and any type of Telegram bot. You can also direct the traffic to your groups, channels, websites, or sales funnels. ⸻  Countries I work with USA, Israel, Russia, India, Turkey, China, Ukraine, Uzbekistan. If you need another country — message me, we’ll find a solution. ⸻ ️ Results First search results appear in 2–3 days. ⸻  What’s included in the training • how the Telegram search algorithm works and key ranking factors • keyword research for your country and niche • bot optimization: description, settings, greeting text • fixing and maintaining positions • specific promotion nuances for different countries ⸻  What you will receive • a complete system for ranking bots in search • understanding how to work with keywords, traffic, and positions • a skill you can use to promote your own projects or earn from clients ⸻  Who this training is for • beginners with zero experience — I explain everything from scratch • those who don’t have a bot — I provide a ready one for practice • anyone who wants to learn promotion and earn from this service ⸻  Why learn from me • doing Telegram SEO since 2021 • over 1000 successful orders • my own panel SMMTG.PRO and private databases • experience working with markets of Russia, Uzbekistan, Ukraine, Israel, USA, Turkey, China, India, Vietnam, Europe, and more ⸻  For pricing — message me t.me/smmtg_link
    • Hey everyone, I was wondering if anyone knows where the client loads all the .dat files. Is there some kind of manifest or list you can specify which dat files the client loads?
    • 🔥 Welcome to Lineage 2 Haruna x3 – True Classic Interlude Experience 🔥 At Haruna x3, we’re bringing back the true essence of Interlude – slow, meaningful progression where every level matters, every item has value, and PvP is real. We’re not about fast servers, pay-to-win advantages, or fake populations. Our goal is simple: create a fair, stable, and long-term server where players can enjoy real competition, strategic clan warfare, and the thrill of open-world PvP. 💎 What Makes Haruna x3 Special? x3 Rates – Perfect for steady, rewarding progression Classic Interlude Mechanics – Relive the nostalgia of Interlude Stable & Lag-Free Gameplay – Optimized for thousands of players online Fair & Balanced – No pay-to-win, every victory is earned PvP & Clan Warfare Focused – Every battle counts 🌟 Quality of Life Features to Enhance Your Experience We keep the classic feel while adding features that make the game more convenient and enjoyable, including: Shift + Click to view monster droplists Free item mail and buy/sell via Adena Daily login rewards & Stream Rewards ALT+K Skill Panel & Alt+Click buffs removal Offline shop system Captcha for security Donate Coins currency (cannot be traded, dropped, or destroyed) Classic P110 client – no custom interface 🏰 Our Philosophy We believe Lineage 2 is about the journey, not just the destination. Haruna x3 is designed for months and years of growth, not weeks. We provide a community-driven environment where honest gameplay, fair competition, and strategic teamwork are at the forefront. 🌍 Join Our Community Whether you’re a veteran of Interlude or a returning player seeking a true classic experience, Haruna x3 offers a place to fight, trade, and grow alongside dedicated players. Step into the world of Haruna x3 – where every decision matters, every fight counts, and every victory is yours to earn. Discord: https://discord.gg/7DDC9Dsxnh Website : www.l2haruna.com
    • No, the real purpose is cheating and custom  development for games.  I'm building a custom AI moderator specially for checking illegal activity and flag current topica.
  • Topics

×
×
  • 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