Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Жесткий скриптинг
Войти через OpenID

Жесткий скриптинг Раздел для обсуждения готовых и тестируемых скриптов
Внимание! В разделе введена жесткая модерация, темы и сообщения публикуются только после проверки модераторами

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 01.07.2008, 17:43   #1
Новичок
 
Аватар для raid
 
Регистрация: 01.07.2008
Адрес: Пермь
Сообщений: 21
Сказал Спасибо: 0
Имеет 37 спасибок в 10 сообщенях
raid пока неопределено
По умолчанию Аугментация в одно нажатие

Активируем скрипт, в клиенте должно появиться окошко чата.
"Соц. Да" - снятие аугмента и аугментирование.
В инвентаре должна быть только одна пуха с данным ID.
delphi Код:
const   Name='Mamy'; // ник   ItemID=6608; // пуха   LifeID=8762; // лайфстон   GemsID=2131; // гемстон   GemsAmount=25; //кол-во гемов   max=100// инвентарь 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.
__________________
Emo-chan style.

Последний раз редактировалось raid, 02.07.2008 в 11:27.
raid вне форума   Ответить с цитированием
За это сообщение raid нажился 14 спасибками от:
 

  CoderX :: Forums > Lineage II > L2PacketHack > Жесткий скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:50.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!