Jump to content

Recommended Posts

Posted

delpi cod :

 

{ Юля Сегодня, 11:46

Помню этот небольшой скриптик принес мне просто бешеное богатсво на сервере

где я играла, но поскольку я больше не играю, то выкладываю в массы суть

проста, программа ведет учет всех персов в округе, когда по вашему

персу-торговцу кликают, она пишет в френдчат ему предложение купить стрелу

и обешание за это рассказать анекдотик. за покупку программа конечно же как

и обешала рассказывает анекдотик. как показывает практика, самая идеальная

цена чтобы клиенты купили как можно больше ваших стрел, для х1 - это не

более 3к, для х5 - 10к. а для привлечения внимания именно к вашему

торговцу, в титуле (для этого вам надо быть в клане) постоянно мигает

рожица и надпись "АНЕКДОТЫ". Все анекдоты грузяться с папки c:\l2jokes (в

аттаче уже готовый архив с 237 анекдотами), каждый анекдот в отдельном

файле, не более 255 символов. Пользуйтесь на здоровье

}

// copyright © 2006, 2007 Puella

 

var curpos: byte;

    TITLE_DATA2: array [0..16] of string;

 

const

  jokes_max = 237;

 

var

  f: TStringList;

  jokes: array [1..jokes_max] of string;

  jokes_real: integer;

  IDs: array [1..2000] of cardinal;

  Names: array [1..2000] of String;

  count: Integer;

  MyID: Cardinal;

  MyName: String;

  m: TMemo;

  t: TTimer;

 

  InTimer: Boolean;

 

procedure OnTimerProc;

begin

  InTimer := true;

  buf := #$55;

  WriteS(MyName);

  WriteS(TITLE_DATA2[curpos]);

  SendToServer;

 

  curpos := curpos + 1;

  if curpos > 16 then curpos := 0;

 

  InTimer := false;

end;

 

procedure Init;

var i: byte;

begin

  randomize;

  count := 0;

 

  f := TStringList.Create;

  jokes_real := 0;

  for i := 1 to jokes_max do

  begin

    try

      f.LoadFromFile('C:\l2jokes\' + IntToStr(i) + '.txt');

      jokes_real := jokes_real + 1;

    except

    end;

    jokes[jokes_real] := f.Text;

  end;

  f.free;

 

  TITLE_DATA2[0] := '@(o_O)@';

  TITLE_DATA2[1] := '@(O_o)@';

  TITLE_DATA2[2] := '@(o_O)@';

  TITLE_DATA2[3] := '@(O_o)@';

  TITLE_DATA2[4] := '';

  TITLE_DATA2[5] := 'ANEKDOTI';

  TITLE_DATA2[6] := '';

  TITLE_DATA2[7] := 'ANEKDOTI';

  TITLE_DATA2[8] := '';

  TITLE_DATA2[9] := 'ANEKDOTI';

  TITLE_DATA2[10] := '';

  TITLE_DATA2[11] := '@(o_O)@';

  TITLE_DATA2[12] := '@(O_o)@';

  TITLE_DATA2[13] := '@(o_O)@';

  TITLE_DATA2[14] := '@(O_o)@';

  TITLE_DATA2[15] := '@(o_O)@';

  TITLE_DATA2[16] := '@(O_o)@';

 

  curpos := 0;

 

  t := TTimer.Create(nil);

  t.Enabled := false;

  t.Interval := 2000;

  t.OnTimer := @OnTimerProc;

 

  ShowTab;

 

  m:=TMemo.Create(UserTab);

  m.parent:=UserTab;

  m.align:=alClient;

  m.ReadOnly:=true;

  m.ScrollBars:=ssBoth;

  m.lines.add('Анекдотов загружено: ' + inttostr(jokes_real));

end;

 

procedure Free;

begin

  m.Free;

  HideTab;

 

  t.OnTimer := nil;

  t.Enabled := false;

  t.Interval := 0;

  t.Free;

end;

 

function FindPlayer(ObjID: cardinal): integer;

var k: cardinal;

begin

  result := -1;

  if Count > 0 then

    for k := 1 to Count do

      if IDs[k] = ObjID then

      begin

        result := k;

        break

      end;

end;

 

var

  i, k: integer;

  objid: cardinal;

  name: string;

begin

  if FromServer then

  case pck[1] of

    #$64:

    begin

      i := 2;

      if ReadD(i) = 380 then {S1_PURCHASED_S3_S2_s}

      begin

        i := i + 4*2;

        name := ReadS(i);

        if (name = '') then

        begin

          // внесем в лог (blacklist)

          m.Lines.Add(TimeToStr(now)+': '+name+' purchased (BLACKLISTED)');

        end

        else

        begin

          while (InTimer = true) do i := i;

 

          buf := #$CC;

          i := int(random * jokes_real) + 1;

          WriteS(jokes);

          WriteS(name);

          SendToServer;

 

          if (Length(m.Lines.Text) > 60000) then m.Lines.Text := '<cleared>';

          // внесем в лог

          m.Lines.Add(TimeToStr(now)+': '+name+' purchased');

          m.Lines.Add('> ' + jokes);

        end;

      end

    end;

 

    #$03: // CharInfo

    begin

      i := 4 + 4 * 4 - 2;

      objid := ReadD(i);

 

      i := FindPlayer(ObjID);

 

      if i = -1 then

      begin

        i := 4 + 4 * 5 - 2;

        name := ReadS(i);

        // blacklist

        if (name = '') then

        begin

          // (none)

        end

        else begin

          // добавление

          count := count + 1;

          IDs[count] := ObjID;

          Names[count] := name;

          //m.Lines.Add(IntToStr(count) + ' - ' + Format('%x', [ObjId])+' = '+ Names[count]);

        end;

      end;

    end;

 

    #$04: //UserInfo

    begin

      i := 2 + 4*4;

      MyID := ReadD(i);

      MyName := ReadS(i);

      t.Enabled := true;

    end;

 

    #$12: // ObjectDelete

    begin

      i := 2;

      objid := ReadD(i);

 

      i := FindPlayer(objid);

 

      if i <> -1 then

      begin

        IDs := IDs[count];

        Names := Names[count];

        count := count - 1;

      end

    end;

 

    #$29: //TargetSeleted

    begin

      i := 2;

      objid := ReadD(i);

 

      if ReadD(i) <> MyID then exit;

 

      i := FindPlayer(objid);

 

      if i <> -1 then

      begin

        while (InTimer = true) do i := i;

 

        buf := #$CC;

        WriteS('Привет, '+names+'! Я бот! Купи у меня стрел и я, в благодарность за это, расскажу тебе анекдот или стишок на тему LineAge2! ;)');

        WriteS(names);

        SendToServer;

        // внесем в лог

        m.Lines.Add(TimeToStr(now)+': '+names);

      end

    end;

  end;

end.

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

    • 🔥 Lineage 2 Haruna x3 – Interlude 🔥   Grand Opening 06.02.2026  Welcome to L2 Haruna x3, a classic Interlude server focused on retail-like gameplay, fair competition, and long-term stability. No pay-to-win, no broken customs — just real Lineage 2 the way it was meant to be played.   Website: https://l2haruna.com/ Discord: https://discord.gg/7DDC9Dsxnh Chronicle: Interlude Rates:  EXP/SP: x3   Adena: x2   Drop/Spoil: x1   Seal Stones: x1   Boss EXP/SP: x2 More Info: Click me Server Time: UTC +2 📈 Core Gameplay • Classic Interlude mechanics & formulas • Balanced economy • Real PvP, clan wars, sieges, and Olympiad 🏆 Olympiad Information • Olympiad starts 3 months after server opening • Participation only through the Olympiad Master • Competition time: 20:00 – 02:00 (UTC +2) ⚙️ Website & Account System • Master Account (MA) system on website • Game accounts must be created via Master Account • Vote system inside MA • Website rankings: PvP, PK, Clans, Castles 🧙 NPCs, Buffs & Utilities • Server Manager NPC in all towns and villages • Adventurer’s Guide (Miss Queen) in all towns and villages • Offline Buff Shops (.buffshop) allowed only in Monster Derby Track • In-game Mailbox system • Start-Up Bonus for all characters • FREE Teleport in all towns/villages until level 40 🎮 Interface & Quality of Life • ALT + K – Skill Panel (learn and enchant skills) • Alt + Click – Buff removal • Shift + Click on monsters – Drop and spoil information • Offline Shop system (set shop and exit game) • 35 seconds spawn protection • Captcha system in game (anti-bot protection) 💬 Chat System • Global chat (!) – Free, requires level 15 • Trade chat (+) – Free, requires level 15 • (!) Global chat • (+) Regional trade chat 🛡 Fair Play & Restrictions • Maximum 2 game clients per IP • Donate Coins and Vote Coins cannot be sold, dropped, traded, or destroyed • Cursed weapons disabled until first Heroes • Wedding system disabled (will be activated later) ⚔️ Class Progression • 1st Class Transfer – Quest required • 2nd Class Transfer – Quest required • 3rd Class Transfer – Full quest required • Subclass – Full quest required • Noblesse – Full quest required   🗡 Equipment • Shadow Weapons (D / C / B Grade) available via Shadow Weapon Manager 🧠 Technical & Protection • High-quality geodata and geo-engine • Advanced protection against DDoS attacks • Protection against third-party programs and cheats   Join Us Now! https://l2haruna.com/ 
    • High Five Part 5 can be uploaded?
    • do you have a Shinemaker Compiler?
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..