Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Скрипт на авто аттаку.

тут можно задать вопрос по скриптингу
Post Reply
Judas
Posts: 2
Joined: 23.01.2010 1:35
Contact:

Скрипт на авто аттаку.

Post by Judas »

Нуждаюсь в скрипте на авто аттаку чаров(0x0190;0x0191). Должен атачить всех, кроме гильды(отличие в цвете ника).
Есть такой скрипт на инжу:

Code: Select all

sub AutoAttack()
var i, t_len = 2 ;
DIM t [ val( str( t_len ) ) ]
t[0] = "0x0191" ;
t[1] = "0x0190" ;
repeat
   for i = 0 to t_len -1
      uo.findtype( t[i], "-1", "ground" )
      If uo.FindCount() Then
         If uo.getNotoriety( "finditem" ) == 2 Then
            uo.Ignore( "finditem" )
         Else
            uo.attack( "finditem" )
            wait( 500 )
         End If
      End If
   next
   wait( 300 )
until false
End Sub
Если кто может переписать на стелс или дать свой скрипт,буду благодарен.

Нашел на форуме впринципе аттаку.

Code: Select all

Program killer;
var
   Enemy  : cardinal;
const
    Enemy := $0190, $0191; // Тип цели.

Begin
  repeat
    begin
      FindType(Enemy,ground);
      If FindCount > 0 then
        begin
          monster := FindItem;
          AddToSystemJournal('Атакую цель.');
          Attack(monster);
          wait(5000);
          end
      Else
        begin
          AddToSystemJournal('Цель не найдена.');
          wait(5000);
        end;
    end;
  until Dead;
End.
Но как добавить, чтобы он не аттачил гильду?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

Code: Select all

program attack;

var bodytypes : array of Word;
      i : Integer;

begin
bodytypes := [$0190,$0191];

while True do
  begin
    IgnoreReset;
    for i := 0 to GetArrayLength(bodytypes) - 1 do
      begin
        if findtype(bodytypes[i],ground) > 0 then  
          if GetNotoriety(finditem) = 2 then
            Ignore(finditem)
          else
            Attack(finditem);
        wait(200);
      end;
    wait(300);
  end;
end.
а ведь вместо все этих адских циклов можно было бы использовать одну простую и удобную функцию FindNotoriety, только для этого надо знать Notoriety врага.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Judas
Posts: 2
Joined: 23.01.2010 1:35
Contact:

Post by Judas »

Спасибо большое, ща потестим)
Post Reply