Вернуться   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 спасибками от:
Старый 02.07.2008, 20:36   #2
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

добавить проверку на аргумент ) получившийся если нет и кул скрипт затариться геймами кристаллами этими и ловить аргумент нужный
Grinch вне форума   Ответить с цитированием
Старый 02.07.2008, 22:02   #3
Новичок
 
Аватар для raid
 
Регистрация: 01.07.2008
Адрес: Пермь
Сообщений: 21
Сказал Спасибо: 0
Имеет 37 спасибок в 10 сообщенях
raid пока неопределено
По умолчанию

Цитата:
Сообщение от Grinch Посмотреть сообщение
добавить проверку на аргумент ) получившийся если нет и кул скрипт затариться геймами кристаллами этими и ловить аргумент нужный
Я так и не понял как узнать полученный аугмент, единственное что в голову пришло: одевать пуху и смотреть изменение в скиллах(это я реализовал)
По моим тестам во время нажатия кнопки "аугмент" и после нее, инфа об ауге не приходит... значет можно узнать какие ауги ты можешь получить не аугментируя пухи...
__________________
Emo-chan style.
raid вне форума   Ответить с цитированием
Старый 10.07.2008, 23:33   #4
Гость
 
Сообщений: n/a
По умолчанию

пытался зделать под камаэль не получилось где ощибки в изминений пакетов ?
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('19');  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('19 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('B0 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00');  SendToServerEx(Name);  buf:=hstr('B0 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;     #$21: UpdateItemBase;   end; end.

Последний раз редактировалось NLObP, 10.07.2008 в 23:37.
  Ответить с цитированием
Старый 04.05.2009, 21:15   #5
Местный
 
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Fer123 пока неопределено
По умолчанию

Цитата:
Сообщение от raid Посмотреть сообщение
Я так и не понял как узнать полученный аугмент, единственное что в голову пришло: одевать пуху и смотреть изменение в скиллах(это я реализовал)
По моим тестам во время нажатия кнопки "аугмент" и после нее, инфа об ауге не приходит... значет можно узнать какие ауги ты можешь получить не аугментируя пухи...
Полученый агумент приходит в пакете inventoryupdate
0034 d AugId: 174800762
а клиент уже по полученому ид показывает инфу об агументе
Fer123 вне форума   Ответить с цитированием
Старый 11.05.2009, 18:34   #6
Новичок
 
Регистрация: 11.05.2009
Сообщений: 1
Сказал Спасибо: 0
Имеет 1 спасибку в 1 сообщении
Kitsune пока неопределено
По умолчанию

Предлагаю вашему вниманию переделанный скрипт mks на аугментацию, кусочек взят из кода Slaventy на открытие окошек в клиенте, откорректирован под Gracia Final (Java):
Код:
const
   nik='ваш ник';

var
   WeaponID, LsID, GemID, GemCount: integer;

procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
    if FromClient and (pck[1]=#$D0) then
        begin
           WeaponID:=ReadD(4);
           LsID:=ReadD(8);
           GemID:=ReadD(12);
           GemCount:=ReadD(16);
        end;

//Cancel Augment

    if FromClient and (pck = HStr('56 0D 00 00 00 00 00 00 00 00 ')) then   //56 0D 00 00 00 00 00 00 00 00 (Social No)

       begin
       buf:=hstr('FE 52 00 ');//окно удаления арГ
        SendToClient;
        delay(300);
          pck:='';
          Buf:=#$D0#$42#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          Buf:=#$D0#$43#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);

       end;

//Augment
    if FromClient and (pck = HStr('56 0C 00 00 00 00 00 00 00 00 ')) then    //56 0C 00 00 00 00 00 00 00 00 (Social Yes)
       begin
       buf:=hstr('FE 51 00 ');//окно Арг
          SendToClient;
          delay(300);
          pck:='';
          Buf:=#$D0#$26#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          delay(50);
          Buf:=#$D0#$27#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          SendToServerEx(nik);
          delay(50);
          Buf:=#$D0#$28#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          WriteD(GemID);
          WriteD(GemCount);
          SendToServerEx(nik);
          delay(50);
          Buf:=#$D0#$41#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          WriteD(GemID);
          WriteD(GemCount);
          SendToServerEx(nik);
          end;
end.
Kitsune вне форума   Ответить с цитированием
За это сообщение Kitsune нажился спасибкой от:
Старый 20.08.2008, 05:50   #7
Новичок
 
Регистрация: 01.02.2008
Сообщений: 7
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
4uTePoK
По умолчанию

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('19');  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('19 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]=#$34) then begin     SocialID:=ReadD(2);    pck:='';     case SocialID of       7: begin  buf:=hstr('B0 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00');  SendToServerEx(Name);  buf:=hstr('B0 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     #$34: CreateItemBase;     #$21: UpdateItemBase;   end; end.
Этот скрипт зделал под T0 но ощибка в скрипте когда проверил синтаксис
Вот сама ощибка...
Ошибка: Identifier redeclared: 'StrToHex'

Последний раз редактировалось NLObP, 20.08.2008 в 09:07.
4uTePoK вне форума   Ответить с цитированием
Старый 23.10.2008, 00:50   #8
Новичок
 
Регистрация: 22.10.2008
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
CMEPTb пока неопределено
По умолчанию

Цитата:
Сообщение от 4uTePoK Посмотреть сообщение
Этот скрипт зделал под T0 но ощибка в скрипте когда проверил синтаксис
Вот сама ощибка...
Ошибка: Identifier redeclared: 'StrToHex'
Как бороться с этой ошибкой?
CMEPTb вне форума   Ответить с цитированием
Старый 23.10.2008, 15:21   #9
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от CMEPTb Посмотреть сообщение
Цитата:
Ошибка: Identifier redeclared: 'StrToHex'
Как бороться с этой ошибкой?
Удалить в скрипте определение процедуры 'StrToHex' или все вхождения слова 'StrToHex' впереименовать в 'StrToHex2'
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 3 спасибками от:
Старый 20.04.2009, 19:49   #10
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

аналогичный скрипт, только ид випона, лсов, гемов, кол-во гемов не надо вводить, включаем скрипт и аугментируем пуху вручную 1раз, скприпт считывает все нужные данные для аугментации и ее снятия, далее 2соц действие вытащить лс, 1е соц действие вставить, писал для грации 2, на других хорониках не проверял
delphi Код:
const    nik='ник'; var    WeaponID, LsID, GemID, GemCount: integer; procedure Init; //Вызывается при включении скрипта begin end; procedure OnTimer01(Sender: TObject); begin end; procedure Free; //Вызывается при выключении скрипта begin end; procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения begin end; procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения begin end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin     if FromClient and (pck[1]=#$D0) then         begin            WeaponID:=ReadD(4);            LsID:=ReadD(8);            GemID:=ReadD(12);            GemCount:=ReadD(16);         end; //Cancel Augment     if FromClient and (pck=#$34#$03#$00#$00#$00) then        begin           pck:='';           Buf:=#$D0#$45#$00;           WriteD(WeaponID);           SendToServerEx(nik);           Buf:=#$D0#$46#$00;           WriteD(WeaponID);           SendToServerEx(nik);        end; //Augment     if FromClient and (pck=#$34#$02#$00#$00#$00) then        begin           pck:='';           Buf:=#$D0#$44#$00;           WriteD(WeaponID);           WriteD(LsID);           WriteD(GemID);           WriteD(GemCount);           SendToServerEx(nik);        end; end.

Последний раз редактировалось mks, 20.04.2009 в 19:58.
mks вне форума   Ответить с цитированием
За это сообщение mks нажился 6 спасибками от:
Ответ

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



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

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


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

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

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