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

    • From Salvation onwards I think you need a patched nwindow.dll that allows such modifications, try to see if you get what you need here: https://drive.google.com/drive/u/1/folders/1LLbQFGf8KlR-O0Iv5umfF-pwZgrDh9bd
    • hello everyone! I am wanting to save the files (Ini. - Data - ) of the EP5 Client: Salvation... But they generate the error "corrupt files"... I tried several versions of L2FileEditor without good results. I need help! Thank you!
    • Opening December 6th at 19:00 (GMT +3)! Open Beta Test from November 30th!   https://l2soe.com/   🌟 Introducing L2 Saga of Eternia: A Revolution in Lineage 2 High Five! 🌟   Dear Lineage 2 enthusiasts, Prepare to witness the future of private servers! L2 Saga of Eternia is not just another High Five project—it’s a game-changing experience designed to compete with the giants of the Lineage 2 private server scene. Built for the community, by the community, we’re here to raise the bar in quality, innovation, and longevity. What Sets Us Apart? 💎 No Wipes, Ever Say goodbye to the fear of losing your progress. Our server is built to last and will never close. Stability and consistency are our promises to you. ⚔️ Weekly New Content Our dedicated development team ensures fresh challenges, events, and updates every week. From custom quests to exclusive features, there will always be something exciting to explore. 💰 No Pay-to-Win Skill and strategy matter most here. Enjoy a balanced gameplay environment where your achievements come from effort, not your wallet. 🌍 A Massive Community With 2000+ players expected, join a vibrant and active community of like-minded adventurers ready to conquer the world of Aden. 🏆 Fair and Competitive Gameplay Our systems are designed to promote healthy competition while avoiding abusive mechanics and exploits. 🔧 Professional Development From advanced bug fixes to carefully curated content, we pride ourselves on smooth performance, no lag, and unparalleled server quality. Key Features Chronicle: High Five with unique interface Rate: Dynamic x10 rates Class Balance: Carefully fine-tuned for a fair experience PvP Focused: PvP Ranking & aura display effect for 3 Top PvPers every week Custom Events: Seasonal and permanent events to keep you engaged Additional Features:   Custom Endgame Content: Introduce unique dungeons, raids, or zones unavailable in other servers. Player-Driven Economy: Implement a strong market system and avoid overinflated drops or rewards. Epic Siege Battles: Announce special large-scale sieges and PvP events. Incentives for Streamers and Clans: Attract influencers and big clans to boost server publicity. Roadmap Transparency: Share a public roadmap of planned updates to build trust and excitemen   Here you can read all the features: https://l2soe.com/features   Video preview: Join the Revolution! This is your chance to be part of something legendary. L2 Saga of Eternia is not just a server; it’s a movement to redefine what Lineage 2 can be. Whether you’re a seasoned veteran or a newcomer to the world of Aden, we invite you to experience Lineage 2 at its finest.   Official Launch Date: December 6th 2024 Website: https://l2soe.com/ Facebook: https://www.facebook.com/l2soe Discord: https://discord.com/invite/l2eternia   Let’s build the ultimate Lineage 2 experience together. See you in-game! 🎮
    • That's like a tutorial on how to run l2 on MacOS Xd but good job for the investigation. 
  • Topics

×
×
  • Create New...