Jump to content

Recommended Posts

Posted

Activate the script, the client should appear in the chat window.

"Sots. Yes" - and the withdrawal of augmenta augmentirovanie.

In the inventory should be only one down with the ID.

 

const
 Name='Mamy'; // Nick
 ItemID=6608; // Weapon
 LifeID=8762; // Life Stone
 GemsID=2131; // Gems
 GemsAmount=25; // Gems Count
 max=100;  // Inventory
var
LifeBase:array[1..max] of integer;    
ColvoLife,ColvoGems,Life,Item,Gems,SocialID,augid:integer;
procedure Init;
var i:integer;
begin
buf:=hstr('0F');
SendToServerEx(Name);
end;
procedure Free;
var i:integer;
begin
for i:=1 to max do
 LifeBase[i]:=0;
end;
function StrToHex(packet: string):string;
var
 i:integer;
 tmp:byte;
 function ByteToHex(b: byte): Char;
 begin
   if b<10 then result:=chr(b+$30)
     else result:=chr(b+$37);
 end;
begin
 result:='';
 for i:=1 to length(packet) do begin
   tmp:=ord(packet[i]) div 16;
   result:=result+ByteToHex(tmp);
   tmp:=ord(packet[i]) - tmp*16;
   result:=result+ByteToHex(tmp)+' ';
 end;
end;
function inttohex(n:integer):string;
var i:integer;
   t:string;
   a:array[0..15] of char;
begin
a[0]:='0';
a[1]:='1';
a[2]:='2';
a[3]:='3';
a[4]:='4';
a[5]:='5';
a[6]:='6';
a[7]:='7';
a[8]:='8';
a[9]:='9';
a[10]:='A';
a[11]:='B';
a[12]:='C';
a[13]:='D';
a[14]:='E';
a[15]:='F';
result:='';
t:='';
i:=0;
while n<>0 do begin
 if (i mod 2=0)and(i>0) then begin
  result:=result+t+' ';
  t:='';
 end;
 t:=a[n mod 16]+t;
 n:=n div 16;
 inc(i);
end;
result:=result+t;
end;
procedure Say;
var i:integer;
   s:string;
begin
 s:='<tr><td>LS='+inttostr(ColvoLife)+' (*'+inttostr(GemsAmount)+'='+inttostr(ColvoLife*GemsAmount)+')</td></tr>';
 s:=s+'<tr><td>Gems='+inttostr(ColvoGems)+' (/'+inttostr(GemsAmount)+'='+inttostr(ColvoGems div GemsAmount)+')</td></tr>';
 s:=s+'<tr><td>---</td></tr>';
 if Item=0 then
  s:=s+'<tr><td>No Weapon</td></tr>'
 else if augid>0 then
  s:=s+'<tr><td>Augmented ('+inttohex(augid)+')</td></tr>'
 else
  s:=s+'<tr><td>Not augmented</td></tr>';
 buf:=hstr('0F 01 00 00 00');
 WriteS('<html><body><br><table width=100%>'+s+'</table><br><br><br><br><br><br>'+
  '"Social Yes" - Cancel Augment(if augmented) and Augment(if you have enough gems and LSs)<br>'+
  '"Social No" - Show this help<br><br>'+
  'Sometimes client dont get packet InventoryUpdate and you see "Not augment" when weapon is augmented.'+
  ' Simply press [Tab] twice or wear weapon.<br><br>'+
  '(c) raid aka Mamy</body></html>');
//   '(c) raid aka Mamy<br>'+strtohex(pck)+'</body></html>');
 WriteD(0);
 SendToClientEx(Name);
end;
procedure CreateItemBase; 
var i,ss,j,ObjID,ItmID,ListCount,count,aug:integer;
begin
 Item:=0;
 ss:=1;
 j:=4; 
 ListCount:=ReadH(j); 
 if ListCount>max then ListCount:=max;
 j:=8; 
 for i:=1 to ListCount do begin
    ObjID:=ReadD(j);    
    ItmID:=ReadD(j);    
    Count:=ReadD(j);
    j:=j+14;
    aug:=ReadD(j);
    case ItmID of
       LifeID: begin
           LifeBase[ss]:=ObjID;
           inc(ss);
       end;
       ItemID: begin
           Item:=ObjID;
           augid:=aug;
       end;
       GemsID: begin
           Gems:=ObjID;
           ColvoGems:=Count;
       end;
    end;
   j:=j+6;
 end;
 ColvoLife:=ss-1;
 Say;
end;
procedure UpdateItemBase; 
var i,ii,j,ObjID,ItmID,ListCount,Count,UpdType,aug: integer;
begin
 ListCount:=ReadH(2);
 j:=4;
 for i:=1 to ListCount do begin
   UpdType:=ReadH(j);
   j:=j+2;
   ObjID:=ReadD(j);
   ItmID:=ReadD(j);
   Count:=ReadD(j);
   j:=j+14;
   aug:=ReadD(j);
   case UpdType of
     1:case ItmID of
         ItemID: begin
           Item:=ObjID;
           augid:=aug;
         end;
         LifeID: begin
           for ii:=1 to max do
            if LifeBase[ii]=0 then begin
             LifeBase[ii]:=ObjID;
             ColvoLife:=ColvoLife+1;
             break;
            end;
         end;
       GemsID: begin
           Gems:=ObjID;
           ColvoGems:=Count;
       end;
     end;
     2:case ItmID of
       ItemID: begin
         Item:=ObjID;
         augid:=aug;
       end;
       GemsID: begin
           Gems:=ObjID;
           ColvoGems:=Count;
       end;
     end;
     3:case ItmID of
       ItemID:
         Item:=0;
       GemsID: begin
           Gems:=ObjID;
           ColvoGems:=Count;
       end;
       LifeID: begin
         for ii:=1 to max do
           if LifeBase[ii]=ObjID then begin
            LifeBase[ii]:=0;
            ColvoLife:=ColvoLife-1;
           end;
       end;
     end;
   end;
   j:=j+6;
 end;
Say;
end;
function GetNextLife: integer;
var i:integer;
begin
 Result:=-1;
 for i:=1 to max do begin
   if (LifeBase[i]<>0) then begin
     Result:=LifeBase[i];
     exit;
   end;
 end;
end;
procedure Augment;
begin
buf:=hstr('D0 29 00');
WriteD(Item);
SendToServerEx(Name);
delay(100);
buf:=hstr('D0 2A 00');
WriteD(Item);
WriteD(Life);
SendToServerEx(Name);
delay(100);
buf:=hstr('D0 2B 00');
WriteD(Item);
WriteD(Life);
WriteD(Gems);
WriteD(GemsAmount);
SendToServerEx(Name);
delay(100);
buf:=hstr('D0 2C 00');
WriteD(Item);
WriteD(Life);
WriteD(Gems);
WriteD(GemsAmount);
SendToServerEx(Name);
end;
procedure DisAugment;
begin
buf:=hstr('D0 2D 00');
WriteD(Item);
SendToServerEx(Name);
buf:=hstr('D0 2E 00');
WriteD(Item);
SendToServerEx(Name);
end;
begin
 if pck='' then exit;
 if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
   SocialID:=ReadD(2);
  pck:='';
   case SocialID of
     7: begin
buf:=hstr('A7 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00');
SendToServerEx(Name);
buf:=hstr('A7 29 A0 00 00 40 0D 03 00 FA 00 00 00 00 00 00 00 00 00 00');
SendToServerEx(Name);

       exit;
      end;
     6: begin
      if augid>0 then begin
       DisAugment;
       delay(300);
      end;
      Life:=GetNextLife;
      if (Life=-1)or(ColvoGems<GemsAmount)or(ColvoLife<1) then
       exit;
      Augment;
      exit;
     end;
     5: begin
      Say;
      exit;
     end;
   end;
 end;
 if FromServer then
 case pck[1] of
   #$1B: CreateItemBase; 
   #$27: UpdateItemBase; 
 end;
end.

Guest
This topic is now closed to further replies.


  • Posts

    • Yeah, for sure. Hardly anyone doesn't use it yet, but those few are gonna give in soon. I'm not judging anyone who uses it – that's not the point. The point is that people do use it. I use it, you use it, we all use it. These days, it's just NORMAL. And it's gonna keep getting more and more normal. But like I said, you still gotta know what you're actually doing.
    • Then that's the problem. Server owners are as bad as they used to be in 2005, 2010 and so on.    This scene has technically mature developers, always money-hungry server owners, but what both these groups lack, is some creativity ... I would never play in a server that needs 7 layers of anti-bot. If it needs 7 layers of anti-bot, it means its a bot friendly server and not something worth playing. 
    • Lineage just has a giga boring quest line / lore and since server owners are not reinventing the wheel, players are forced to F1 F2 spam by server design.
    • Players say: We don't have time, please add auto-farm to the server, after all, farming in L2 is the most repetitive and boring thing, it gives no enjoyment.    Then players say: OMG your server is full of auto-farmers with adrenaline. Use anti-cheat guards.    Excluding the hilarious fact that an auto-farm player is essentiall botting without botting software ...   Noone stops to ask the simple question: If nobody likes farming to that extend that they go as far as building complex bots and ask for server-side bot programs and then for no apparent reason have to build anti-bot guards ... MAYBE the problem is that "farming" is an outdated feature that has to be removed from your servers ?   What you people are building here is software that protects a game feature, nobody likes and nobody wants to use.   Has the mental capacity of server owners and developers fallen so many IQ points the last decade ? One comes back to see the same server setups of a decade ago, with zero innovation, zero creativity and a huge amount of time and resources protecting a game feature nobody wants to even use ... The other dissappointing thing one sees here, is that a lot of GREAT developers who now work full time jobs in corporate, come back here, to bash the work of others because they find their current job tasks not as fullfilling as when they would develope game related code for Lineage 2...   Talking about life choices eh ? 😛
    • Have u seen the message i sent you?
  • 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..