NLObP Posted July 31, 2009 Posted July 31, 2009 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.
mg13gr Posted July 31, 2009 Posted July 31, 2009 It's already posted something similar. Dunno if it's the same but, it's posted again.
Lain Posted July 31, 2009 Posted July 31, 2009 Totally the same: http://www.maxcheaters.com/forum/index.php?topic=66099.0 Please be sure to use search before creating a new topic. LOCKED.
Recommended Posts