Перейти к содержанию
Форум шарда Middle-Earth

nepret

nepret
  • Публикаций

    274
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные nepret


  1. nepret, у меня сдох один чар я не понял как ) да на инжекте уже по-привычней в спаринге качать.

    хеал настроен?

     

    добавил проверку на оружие

    • новые стволы берёт из бекпака

    тустим...

    немного переделал скрипт, пробуйте:

     

    Program Sparring;
    
    const
    VarHeal = 1;  // 0-Счёт по кол-ву хп; 1-По Процентному соотношению
    MinHP = 30;   // Если "VarHeal = 0", то ставим количество хп при котором надо лечиться,
                  // если "VarHeal = 1", то ставим количество процентов при котором начинаем лечиться.
    Food = $097B; //Тип еды. Сейчас Фиш-стейки.
    DebugMode = 0; //Выдавать информацию в системный журнал (Включать при отслеживании ошибок в скрипте).
    
    var
    CharX, CharY, IDDoll, Role, CheckVarHeal, Error, dbt, RLayer, LLayer: integer;
    NameRWeapon, NameLWeapon : String;
    htime, ftime : TDateTime;
    {$Include 'checksave.inc'}
    
    procedure CheckConnect;
    var
    dbt : integer;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< CheckConnect блок'); 
        end;
      if not Connected then
        begin
          dbt := 0;
          repeat
            dbt := dbt + 1; 
            if (DebugMode = 1) and (dbt = 30) then
            begin
              AddToSystemJournal('>>> Debug <<< CheckConnect блок > цикл ожидания...');
            end;
            wait(1000);
          until Connected;
          dbt := 0;
          wait(60000);
        end;
    end;
    
    function CheckDead : Boolean;
    begin
      CheckConnect;
      if Role = 1 then
        begin
          if GetHP(IDDoll) < 1 then
            begin
              Error := 1;
              result := true;
              SetGlobal('stealth',IntToStr(self),'0')
              AddToSystemJournal('>>> Кукла мертва! Скрипт завершает работу!');
            end;
        end;
      if Role = 0 then
        begin
          if Dead then
            begin
              Error := 1;
              result := true;
              SetGlobal('stealth',IntToStr(self),'0')
              AddToSystemJournal('>>> Я мёртв! Скрипт завершает работу!');
            end;
        end;
    end;
    
    procedure Hungry;
    var 
    FoodID : Cardinal;
    
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< Hungry блок'); 
        end;
      CheckConnect;
      if CheckDead then exit;
      if ftime <= Now then
        begin
          FindType(Food,Ground);
          if FindCount > 0 then
            begin
              ftime := ftime + 15.0/(24*60*3);
              FoodID := FindType(Food,Ground);
              if FoodID <> $00 then UseObject(FoodID);
              wait(200);
            end;
        end;
    end;
    
    procedure CheckArm;
    var
    t : integer;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< CheckArm блок'); 
        end;
      CheckConnect;
      if CheckDead then exit;
      if RLayer <> 0 then
        begin
          if ObjAtLayer(RhandLayer) = 0 then
            begin  
              FindTypeEx(RLayer, $FFFF, Backpack, False);
              if FindCount > 0 then
                begin
                  Equip(RhandLayer,finditem);
                  dbt := 0;
                  repeat
                    dbt := dbt + 1;
                    if (DebugMode = 1) and (dbt = 150) then
                      begin
                        AddToSystemJournal('>>> Debug <<< CheckArm блок > цикл ожидания надевания вещи в слой RhandLayer...');
                      end;
                    wait(100);
                    CheckConnect;
                    CheckSave;
                    if CheckDead then exit;
                    t := t + 1
                  until (ObjAtLayer(RhandLayer) > 0) or (t >= 50) or dead;
                end
              else
                begin
                  Error := 1;
                  AddToSystemJournal('>>> В бекпаке больше нет '+ NameRWeapon +'! Скрипт дальше работать НЕ БУДЕТ!');
                  exit;
                end;
            end;
        end;
      if LLayer <> 0 then
        begin
          if ObjAtLayer(LhandLayer) = 0 then
            begin  
              FindTypeEx(LLayer, $FFFF, Backpack, False);
              if FindCount > 0 then
                begin
                  Equip(LhandLayer,finditem);
                  dbt := 0;
                  repeat
                    dbt := dbt + 1;
                    if (DebugMode = 1) and (dbt = 150) then
                      begin
                        AddToSystemJournal('>>> Debug <<< CheckArm блок > цикл ожидания надевания вещи в слой LhandLayer...');
                      end;
                    wait(100);
                    CheckConnect;
                    CheckSave;
                    if CheckDead then exit;
                    t := t + 1
                  until (ObjAtLayer(LhandLayer) > 0) or (t >= 50) or dead;
                end
              else
                begin
                  Error := 1;
                  AddToSystemJournal('>>> В бекпаке больше нет '+ NameLWeapon +'! Скрипт дальше работать НЕ БУДЕТ!');
                  exit;
                end;
            end;
        end;
    end;
    
    procedure SaveArm;
    begin
      if (ObjAtLayer(RhandLayer) <> 0) or (ObjAtLayer(LhandLayer) <> 0) then
        begin
          AddToSystemJournal('Будем качаться с оружием в руках.');
          if ObjAtLayer(RhandLayer) <> 0 then
            begin
              RLayer := GetType(ObjAtLayer(RhandLayer));
              ClickOnObject(ObjAtLayer(RhandLayer));
              CheckSave;
              wait(2000);
              NameRWeapon := GetName(ObjAtLayer(RhandLayer));
              FindTypeEx(RLayer, $FFFF, Backpack, False);
              if FindCount >= 0 then AddToSystemJournal('В бекпаке найдено: '+ IntToStr(FindCount) + ' "'+ NameRWeapon + '".');
            end;
           if ObjAtLayer(LhandLayer) <> 0 then
            begin
              LLayer := GetType(ObjAtLayer(LhandLayer));
              ClickOnObject(ObjAtLayer(LhandLayer));
              CheckSave;
              wait(2000);
              NameLWeapon := GetName(ObjAtLayer(LhandLayer));
              FindTypeEx(LLayer, $FFFF, Backpack, False);
              if FindCount >= 0 then AddToSystemJournal('В бекпаке найдено: '+ IntToStr(FindCount) + ' "'+ NameLWeapon + '".');
            end;
        end
      else
        begin
          AddToSystemJournal('Будем качаться без оружия в руках.');
        end;
    end;
    
    procedure CheckRes;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< CheckRes блок'); 
        end;
      CheckConnect;
      FindTypeEx($0E21, $FFFF, Ground, False);
      if FindCount < 1 then
        begin
          Error := 1;
          AddToSystemJournal('>>> На полу нет бинтов! Скрипт дальше работать НЕ БУДЕТ!');
        end;
      CheckConnect;
      FindTypeEx(Food, $FFFF, Ground, False);
      if FindCount < 1 then
        begin
          Error := 1;
          AddToSystemJournal('>>> На полу нет еды! Скрипт дальше работать НЕ БУДЕТ!');
        end;
      if CheckDead then Error := 1;
      if Error = 1 then
        begin
          CheckConnect;
          if WarMode then SetWarMode(False);
          SetGlobal('stealth',IntToStr(IDDoll),'0');
          exit;
        end;
      Hungry; 
    end;
    
    procedure Heal;
    var
    t : integer;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< Heal блок'); 
        end;
      CheckConnect;
      dbt := 1;
      while HP < MaxHP do
        begin
          if CheckDead then exit;
          if (DebugMode = 1) and (dbt = 1) then
            begin
              AddToSystemJournal('>>> Debug <<< Heal блок > первичный цикл...');
              dbt := 0; 
            end;
          CheckConnect; 
          FindTypeEx($0E21, $FFFF, Ground, False);
          if FindCount > 0 then
            begin
              if targetpresent then canceltarget;
              htime := Now;
              CheckConnect;
              UseObject(finditem);
              t := 0;
              dbt := 0;
              repeat
                dbt := dbt + 1;
                if (DebugMode = 1) and (dbt = 150) then
                  begin
                    AddToSystemJournal('>>> Debug <<< Heal блок > цикл проверки таргета...');
                  end;
                wait(100);
                CheckConnect;
                CheckSave;
                if CheckDead then exit;
                t := t + 1;
              until TargetPresent or (t >= 50);
              t := 0;
              CheckConnect;
              WaittargetSelf;
            end;
          dbt := 0;
          repeat
            dbt := dbt + 1;
            if (DebugMode = 1) and (dbt = 150) then
            begin
              AddToSystemJournal('>>> Debug <<< Heal блок > цикл ожидания фразы...'); 
            end;
            wait(100);
            CheckConnect;
            CheckSave;
            t := t + 1;
          until (InJournalBetweenTimes('You were|You have healed|The patient|You must', htime, Now) <> -1) or (t >= 300) or dead;
          t := 0;
          htime := Now;
        end;  
    end;
    
    procedure CheckRole;
    var
    i : integer;
    TypeDoll : array [0..1] of cardinal;
    begin
      if PredictedDirection = 0 then
        begin
          CharX := GetX(self);
          CharY := GetY(self) - 1;
        end;
      if PredictedDirection = 4 then
        begin
          CharX := GetX(self);
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 2 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self);
        end;
      if PredictedDirection = 6 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self);
        end;
      if PredictedDirection = 1 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self) - 1;
        end;
      if PredictedDirection = 5 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 3 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 7 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self) - 1;
        end;
      if WarMode then SetWarMode(False); 
      TypeDoll[0] := $0190;
      TypeDoll[1] := $0191;
      Ignore(self);
      for i := 0 to 1 do
        begin
          repeat
            CheckConnect;
            FindTypeEx(TypeDoll[i], $FFFF, Ground, False)
            if FindCount > 0 then
              begin
                if (GetX(finditem) = CharX) and (GetY(finditem) = CharY) and (GetHP(finditem) > 0) then
                  begin
                    IDDoll := finditem;
                    SetGlobal('stealth',IntToStr(IDDoll),'0');
                    Role := 1;
                    SaveArm;
                    AddToSystemJournal('Выбрана роль атакующего...');
                    exit;
                  end
                else                    
                  begin
                    Ignore(finditem);
                  end;
              end;
          until FindCount < 1;
        end;
      SetGlobal('stealth',IntToStr(self),'0');
      Role := 0;
      AddToSystemJournal('Выбрана роль куклы...');
      Heal;
    end;
    
    procedure PlayRole;
    begin
      if Role = 1 then
        begin
          if CheckDead then exit;
          CheckRes;
          CheckArm;
          if Error = 1 then exit;
          if GetGlobal('stealth',IntToStr(IDDoll)) = IntToStr(1) then
            begin
              CheckConnect;
              if (WarTargetID <> IDDoll) then attack(IDDoll);
            end
          else
            begin
              CheckConnect;
              if WarMode then SetWarMode(False);
            end; 
        end;
      if Role = 0 then
        begin
          if CheckDead then exit;
          CheckRes;
          if Error = 1 then exit;
          CheckConnect;
          if HP <= CheckVarHeal then
            begin
            dbt := 1;
              repeat
                if (DebugMode = 1) and (dbt = 1) then
                  begin
                    AddToSystemJournal('>>> Debug <<< PlayRole блок > цикл куклы...');
                    dbt := 0; 
                  end;
                SetGlobal('stealth',IntToStr(self),'0');
                Heal;
                CheckRes;
                if (Error = 1) or CheckDead then exit;
                CheckConnect;
              until HP = MaxHP;
              dbt := 1;
            end;
          SetGlobal('stealth',IntToStr(self),'1');  
        end; 
    end;
    
    begin
      dbt := 0;
      Error := 0;
      htime := Now;
      ftime := Now;
      SetARStatus(true);
      SetPauseScriptOnDisconnectStatus(false);
      if VarHeal = 1 then
        begin
          CheckVarHeal := GetMaxHP(Self)*MinHP/100;
        end
      else
        begin
          CheckVarHeal := MinHP;
        end;
      CheckRole;
      dbt := 1;
      repeat
        if (DebugMode = 1) and (dbt = 1) then
          begin
            AddToSystemJournal('>>> Debug <<< Главный блок > Главный цикл...'); 
            dbt := 0;
          end;
        if Error = 1 then
          begin
            SetARStatus(false);
            Disconnect;
            exit;
          end;
        CheckConnect;
        PlayRole;
        wait(100);
      until false;
    end.


  2. Слайдер- Троль=))) Административными кнопками еще умеет пользоваться в не закона =)))

    "Сижу уже 4 года дома "- вот он человек деградировал =) "Курю батву каждый день"- а это его добивает =)))

     

    добивает то, что ты вчера со своими корешами просто так валил минеров в шахте минока...

    причём 99% этих минеров были на макросе

    вот это уже деградация полная!


  3. Навоял скрипт на спарринг.

    1. Настраиваем переменные.
    2. Ставим "куклу" так, чтобы перед ней на расстоянии 1 тайла не было чаров.
    3. Ставим атакующего так, чтобы он смотрел на того, кого атаковать.
    4. Кидаем под ноги (в радиусе 2 тайлов) бинты и еду.
    5. Запускаем скрипт на обоих чарах.

    ЗЫ: Скрипт писал ночью, вроде рабочий... Если есть желание, по тестируйте и отпишитесь о работоспособности.

    Program Sparring;
    
    const
    VarHeal = 1;  // 0-Счёт по кол-ву хп; 1-По Процентному соотношению
    MinHP = 50;   // Если "VarHeal = 0", то ставим количество хп при котором надо лечиться,
                  // если "VarHeal = 1", то ставим количество процентов при котором начинаем лечиться.
    Food = $097B; //Тип еды. Сейчас Фиш-стейки.
    DebugMode = 0; //Выдавать информацию в системный журнал (Включать при отслеживании ошибок в скрипте).
    
    var
    CharX, CharY, IDDoll, Role, CheckVarHeal, Error, dbt: integer;
    htime, ftime : TDateTime;
    {$Include 'checksave.inc'}
    
    function CheckDead : Boolean;
    begin
      if Role = 1 then
        begin
          if GetHP(IDDoll) < 1 then
            begin
              Error := 1;
              result := true;
              SetGlobal('stealth',IntToStr(self),'0')
              AddToSystemJournal('>>> Кукла мертва! Скрипт завершает работу!');
            end;
        end;
      if Role = 0 then
        begin
          if Dead then
            begin
              Error := 1;
              result := true;
              SetGlobal('stealth',IntToStr(self),'0')
              AddToSystemJournal('>>> Я мёртв! Скрипт завершает работу!');
            end;
        end;
    end;
    
    procedure Hungry;
    var 
    FoodID : Cardinal;
    
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< Hungry блок'); 
        end;
      if Not Connected then Exit;
      if ftime <= Now then
        begin
          FindType(Food,Ground);
          if FindCount > 0 then
            begin
              ftime := ftime + 15.0/(24*60*3);
              FoodID := FindType(Food,Ground);
              if FoodID <> $00 then UseObject(FoodID);
              wait(200);
            end;
        end;
    end;
    
    procedure CheckRes;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< CheckRes блок'); 
        end;
      FindTypeEx($0E21, $FFFF, Ground, False);
      if FindCount < 1 then
        begin
          Error := 1;
          AddToSystemJournal('>>> На полу нет бинтов! Скрипт дальше работать НЕ БУДЕТ!');
        end;
      FindTypeEx(Food, $FFFF, Ground, False);
      if FindCount < 1 then
        begin
          Error := 1;
          AddToSystemJournal('>>> На полу нет еды! Скрипт дальше работать НЕ БУДЕТ!');
        end;
      if Error = 1 then
        begin
          if WarMode then SetWarMode(False);
          SetGlobal('stealth',IntToStr(IDDoll),'0');
          exit;
        end;
      Hungry; 
    end;
    
    procedure Heal;
    var
    t : integer;
    begin
      if DebugMode = 1 then
        begin
          AddToSystemJournal('>>> Debug <<< Heal блок'); 
        end;
      dbt := 1;
      while HP < MaxHP do
        begin
          if (DebugMode = 1) and (dbt = 1) then
            begin
              AddToSystemJournal('>>> Debug <<< Heal блок > первичный цикл...');
              dbt := 0; 
            end; 
          FindTypeEx($0E21, $FFFF, Ground, False);
          if FindCount > 0 then
            begin
              if targetpresent then canceltarget;
              htime := Now;
              UseObject(finditem);
              t := 0;
              dbt := 1;
              repeat
                if (DebugMode = 1) and (dbt = 1) then
                  begin
                    AddToSystemJournal('>>> Debug <<< Heal блок > цикл проверки таргета...');
                    dbt := 0; 
                  end;
                wait(100);
                CheckSave;
                t := t + 1;
              until TargetPresent or (t >= 50);
              t := 0;
              WaittargetSelf;
            end;
          dbt := 1;
          repeat
            if (DebugMode = 1) and (dbt = 1) then
            begin
              AddToSystemJournal('>>> Debug <<< Heal блок > цикл ожидания фразы...');
              dbt := 0; 
            end;
            wait(100);
            CheckSave;
            t := t + 1;
          until (InJournalBetweenTimes('You were|You have healed|The patient|You must', htime, Now) <> -1) or (t >= 300) or dead;
          t := 0;
          htime := Now;
        end;  
    end;
    
    procedure CheckRole;
    var
    i : integer;
    TypeDoll : array [0..1] of cardinal;
    begin
      if PredictedDirection = 0 then
        begin
          CharX := GetX(self);
          CharY := GetY(self) - 1;
        end;
      if PredictedDirection = 4 then
        begin
          CharX := GetX(self);
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 2 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self);
        end;
      if PredictedDirection = 6 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self);
        end;
      if PredictedDirection = 1 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self) - 1;
        end;
      if PredictedDirection = 5 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 3 then
        begin
          CharX := GetX(self) + 1;
          CharY := GetY(self) + 1;
        end;
      if PredictedDirection = 7 then
        begin
          CharX := GetX(self) - 1;
          CharY := GetY(self) - 1;
        end;
      if WarMode then SetWarMode(False); 
      TypeDoll[0] := $0190;
      TypeDoll[1] := $0191;
      Ignore(self);
      for i := 0 to 1 do
        begin
          repeat
            FindTypeEx(TypeDoll[i], $FFFF, Ground, False)
            if FindCount > 0 then
              begin
                if (GetX(finditem) = CharX) and (GetY(finditem) = CharY) and (GetHP(finditem) > 0) then
                  begin
                    IDDoll := finditem;
                    SetGlobal('stealth',IntToStr(IDDoll),'0');
                    Role := 1;
                    AddToSystemJournal('Выбрана роль атакующего...');
                    exit;
                  end
                else                    
                  begin
                    Ignore(finditem);
                  end;
              end;
          until FindCount < 1;
        end;
      SetGlobal('stealth',IntToStr(self),'0');
      Role := 0;
      AddToSystemJournal('Выбрана роль куклы...');
      Heal;
    end;
    
    procedure PlayRole;
    begin
      if Role = 1 then
        begin
          if CheckDead then exit;
          CheckRes;
          if Error = 1 then exit;
          if GetGlobal('stealth',IntToStr(IDDoll)) = IntToStr(1) then
            begin
              if (WarTargetID <> IDDoll) then attack(IDDoll);
            end
          else
            begin
              if WarMode then SetWarMode(False);
            end; 
        end;
      if Role = 0 then
        begin
          if CheckDead then exit;
          CheckRes;
          if Error = 1 then exit;
          if HP <= CheckVarHeal then
            begin
            dbt := 1;
              repeat
                if (DebugMode = 1) and (dbt = 1) then
                  begin
                    AddToSystemJournal('>>> Debug <<< PlayRole блок > цикл куклы...');
                    dbt := 0; 
                  end;
                SetGlobal('stealth',IntToStr(self),'0');
                Heal;
                CheckRes;
                if (Error = 1) or CheckDead then exit;
              until HP = MaxHP;
            end;
          SetGlobal('stealth',IntToStr(self),'1');  
        end; 
    end;
    
    begin
      Error := 0;
      htime := Now;
      ftime := Now;
      SetARStatus(true);
      SetPauseScriptOnDisconnectStatus(true);
      if VarHeal = 1 then
        begin
          CheckVarHeal := GetMaxHP(Self)*MinHP/100;
        end
      else
        begin
          CheckVarHeal := MinHP;
        end;
      CheckRole;
      dbt := 1;
      repeat
        if (DebugMode = 1) and (dbt = 1) then
          begin
            AddToSystemJournal('>>> Debug <<< Главный блок > Главный цикл...'); 
            dbt := 0;
          end;
        if Error = 1 then
          begin
            SetARStatus(false);
            SetPauseScriptOnDisconnectStatus(false);
            Disconnect;
            exit;
          end;
        PlayRole;
        wait(100);
      until false;
    end.

    checksave.inc

    procedure CheckSave; 
    var Time : TDateTime; 
    begin 
    Time:= Now - (0.5 / 1440); 
    if InJournalBetweenTimes('Saving World State',Time,Now) >= 0 then
    repeat
    wait(1000);
    until InJournalBetweenTimes('Saving World State complete',Time,Now) >= 0;
    end;


  4. Не... по гвардсу у тебя смотри что получается... появляется моб... твой орет гвардс.. ждет 2 секунды и смотрит опять его наличие... так как после команды пока вылезет гвард и убьет моба проходит больше времени... соответственно он орет второй раз.. и так далее пока не исчезнет моб..

     

    предложи на пальцах более цивилизованный способ

    через игнор не вышло... бывает глючит и чар дохнет от моба

     


  5. Задержку на гвардс поставь минимум 2 секунды. А то твои боты одновременно начинают флудить гвардс, что вызывает немалое кол-во гвардов, за счет чего нагрузка серва увеличивается. Буду сквелчить в след раз.

    в скрипте выше гвардс ДОЛЖЕН повторяться не чаще чем 5 секунд при появлении моба, но к сожалению всё в точности наоборот =(

    если увидишь что мои часто орут, ставь сквеч, я хоть буду знать что что-то не так...

    вчера переделал гвардс, за сутки вроде сбоев небыло :)

    procedure MobDetected;
    var
    Mob : array [0..1] of cardinal;
    t, i : integer;
    
    begin
      if not dead then
        begin
          if InJournalBetweenTimes('attacking you', mdtime, Now) <> -1 then
            begin
              mdtime := Now;
              UOSay('.guards');
            end;
          Mob[0] := $0033;
          Mob[1] := $000E;
          FindDistance := 5; 
          FindVertical := 100;
          for i := 0 to 1 do
            begin
              FindTypeEx(Mob[i], $FFFF, Ground, False);
              if FindCount > 0 then
                begin
                  repeat
                    repeat
                      UOSay('.guards');
                      wait(2000);
                      FindTypeEx(Mob[i], $FFFF, Ground, False);
                    until (FindCount < 1) or (t >= 6000);
                  break;
                  until false
                end;
            end;
          FindDistance := 100; 
          FindVertical := 1;
        end;
    end;

     

    Про прокачку руды: на мифриле качается до 120... так же остальная выха тоже качает. Бери каждого вида руды по 1 штуке и пробуй плавить.. если очки идут - плавь на ней)

    пробовал... идёт так медленно что проще в минок шахте до 120 докачать

     

    с киркой дело говорит... создай нуба.. выбери ему в первичных скиллах мининг.. у него будет нуби кирка, которая не ломается... ей из сумки и копай...

    уже так раз 10 сделал)) осталось допилить скрипт на спарринг и будет красота :)

     

    так же у тебя в скрипте, когда чар дохнет... он запоминает место, где сдох.. и после реса возвращается к нему... в чем проблема включить лутание своего трупа? зачастую воры оставляют армор и кирку в трупе..

    самое ценное что было в трупе, это руда! а она 99% тю-тю

     

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

    большие скрипты на инжекте у меня не выходят(


  6. Не надо забывать, что этот скрипт изначально делался под одну, определённую шахту.

     

    По твоему скрипту - не хватает подхила чара(фраза Ouch!)

    Удар киркой по ноге достаточно редок, по этому и нет подхила. Это не критично.

     

    режим вармода - всегда

    Зачем? Есть же гвардс.

     

    почему то не хочет чар реколиться к шахте после речарджа буки(если она полная).

    Я не стал разбираться с резкой подстрок. Не особо понял как и что там, по этому запилил задержку в 4 секунды.

     

    Смысл плавить руду сразу? пусть в виде руды чар складирует. а потом уже самостоятельно решать - стоит плавить всю или кому-то стоит прокачать мининг.

    Если мининга выше 100, то прокачка на плавке руды не даёт поинтов к скилу. Уже проверял...

     

     

    Как сделать так что б складывал в стак - я хз. Хоть у тебя в скрипте есть пример - я не понял.

     

    Color2 это зачем тут?

    Поставь дистанцию на поиск: FindDistance, FindVertical

     

    и возьми в привычку делать отступы в скрипте, это помогает легче его читать и разбираться в нём


  7. program MiningInMinoc;
    
    const
    MineStartX = 2568; //Центер пещеры по оси X
    MineStartY = 483; //Центер пещеры по оси Y
    Pickaxe = $143C; //Type кирки (сейчас Hammer Pick)
    RuneBookInDom = $475AF894; //Указать ID рунбуки с руной в дом
    GumpDom = '601'; //Руна в рунбуке по которой летим домой (1 руна на левой странице №601)
    RuneBookInMine = $475AF894; //Указать ID рунбуки с руной возле пещеры
    GumpMine = '605'; //Руна в рунбуке по которой летим к пещере (1 руна на левой странице №601)
    ResCount = $472DDA3A; //Контейнер с припасами (еда, Recall scroll'ы, кирки)
    Food = $097B; //Тип еды. Сейчас Фиш-стейки
    SumFood = 50; //Колличество еды которой берём с собой
    MaxVes = 10000; //Максимальный вес при котором лететь домой на разгрузку
    
    var
    a : TFoundTilesArray;
    i, b, Error : integer;
    StartX, StartY : Word;
    TyleType : array [0..24] of cardinal;
    ctime, mdtime, gtime : TDateTime;
    {$Include 'all.inc'}
    
    procedure DropRes;
    var
    i, IngGround : integer;
    IngosColor : array [0..10] of cardinal;
    begin
      IngosColor[0] := $0602;
      IngosColor[1] := $0000;
      IngosColor[2] := $0386;
      IngosColor[3] := $01BF;
      IngosColor[4] := $03E9;
      IngosColor[5] := $0590;
      IngosColor[6] := $0162;
      IngosColor[7] := $0160;
      IngosColor[8] := $0455;
      IngosColor[9] := $0253;
      IngosColor[10] := $0482;
      FindTypeEx($19B9, $FFFF, Backpack, False);
      if FindCount > 0 then
        begin
          FindTypeEx($0FB1, $FFFF, Ground, False);
          if FindCount > 0 then
            begin
              NewMoveXY(GetX(finditem),GetY(finditem),True,1,True);
              repeat
                FindTypeEx($19B9, $FFFF, Backpack, False);
                if FindCount > 0 then
                  begin
                    UseType($19B9, $FFFF);
                    wait(500);
                  end;
              until FindCount < 1; 
            end;
        end;
      for i := 0 to 10 do
        begin
          FindTypeEx($1BF2, IngosColor[i], Ground, False);
          if (FindCount > 0) and (FindCount <= 55000) then
            begin
              NewMoveXY(GetX(finditem),GetY(finditem),True,2,True);
              IngGround := finditem;
              FindTypeEx($1BF2, IngosColor[i], Backpack, False);
              if FindCount > 0 then
                begin
                  checksave;
                  MoveItem(finditem, FindQuantity, IngGround, 0,0,0);
                  wait(500);
                end;
            end
          else
            begin
              checksave;
              MoveItem(finditem, FindQuantity, Ground, 0,0,0);
              wait(500);
            end;
        end;  
    end;
    
    procedure GetRes;
    var
    CheckSum : integer;
    dcx, dcy : integer;                 
    begin
      if not IsContainer(ResCount) then
        begin
          Error := 1;
          AddToSystemJournal('>>> Нет контейнера с ресурсами! Скрипт дальше работать НЕ БУДЕТ!');
          exit;
        end;
      dcx := GetX(ResCount);
      dcy := GetY(ResCount);
      NewMoveXY(dcx,dcy,True,2,True);
      checksave;
      UseObject(ResCount);
      wait(1000);
      FindtypeEx($1F4C, $FFFF, ResCount, False);
      if FindQuantity < 1 then
        begin
          Error := 1;
          AddToSystemJournal('>>> В указанном контейнере нету Recall scroll-ов! Скрипт дальше работать НЕ БУДЕТ!');
          exit;
        end
      else
        begin
          if not RuneBookInDom = RuneBookInMine then
            begin
              checksave;
              UseObject(RuneBookInMine);
              WaitGump('800');
              WaitTargetObject(finditem);
              wait(4000);
              checksave;
              UseObject(RuneBookInDom);
              WaitGump('800');
              WaitTargetObject(finditem);
              wait(4000);
            end
          else
            begin
              checksave;
              UseObject(RuneBookInDom);
              WaitGump('800');
              WaitTargetObject(finditem);
              wait(4000);
            end;
        end;
        
      FindtypeEx(Food, $FFFF, backpack, False);
      if SumFood > FindQuantity then
        begin
          CheckSum := SumFood - FindQuantity;
          FindtypeEx(Food, $FFFF, ResCount, False);
          if FindQuantity < 1 then
            begin
              Error := 1;
              AddToSystemJournal('>>> В указанном контейнере нету еды! Скрипт дальше работать НЕ БУДЕТ!');
              exit;
            end
          else
            begin
              checksave;
              MoveItem(finditem, CheckSum, backpack,0,0,0)
              wait(1000);
            end;
        end;
        
        FindtypeEx(Pickaxe, $FFFF, backpack, False);
        if FindCount < 1 then
          begin
            FindtypeEx(Pickaxe, $FFFF, ResCount, False);
            if FindCount < 1 then
              begin
                Error := 1;
                AddToSystemJournal('>>> В указанном контейнере нету Pickaxe! Скрипт дальше работать НЕ БУДЕТ!');
                exit;
              end
            else
              begin
                checksave;
                MoveItem(finditem, 1, backpack,0,0,0)
                wait(1000);
              end;  
          end;
    end;
    
    procedure CheckDisarm;
    begin
      if (ObjAtLayer(RhandLayer) <> 0) or (ObjAtLayer(LhandLayer) <> 0) then
        begin
          disarm;
          repeat
          until (ObjAtLayer(RhandLayer) = 0) or (ObjAtLayer(LhandLayer) = 0) or dead;
        end;
    end;
    
    procedure TPDom;
    var
    xs, ys : Integer;
    begin
      CheckDisarm;
      xs := GetX(self);
      ys := GetY(self);
      UseObject(RuneBookInDom);
      WaitGump(GumpDom);
      repeat
        wait(100)
      until (xs <> GetX(self)) or (ys <> GetY(self));
      wait(1000)
    end;
    
    procedure TPMine;
    var
    xs, ys : Integer;
    begin
      if Error = 1 then exit; 
      CheckDisarm;
      xs := GetX(self);
      ys := GetY(self);
      UseObject(RuneBookInMine);
      WaitGump(GumpMine);
      repeat
        wait(100)
      until (xs <> GetX(self)) or (ys <> GetY(self));
      wait(1000)
    end; 
    
    procedure MobDetected;
    var
    Mob : array [0..1] of cardinal;
    
    begin
      if not dead then
        begin
          if InJournalBetweenTimes('attacking you', mdtime, Now) <> -1 then
            begin
              mdtime := Now;
              UOSay('.guards');
            end;
          Mob[0] := $0033;
          Mob[1] := $000E;
          FindDistance := 5; 
          FindVertical := 1;
          for i := 0 to 1 do
            begin
              FindTypeEx(Mob[i], $FFFF, Ground, False);
              if FindCount > 0 then
                begin
                  if gtime = Now then
                    begin
                      UOSay('.guards');
                      gtime := gtime + 0.25/(24*60*3);
                    end;
                end;
            end;
          FindDistance := 100; 
          FindVertical := 1;
        end;
    end;
    
    procedure CheckPickaxe;
    var
    x, y : integer;
    begin
      if not dead then
        begin
          if ObjAtLayer(RhandLayer) < 1 then 
            begin
              FindType(Pickaxe, Backpack);
              if FindCount > 0 then
                begin
                  Equip(RhandLayer, FindItem);
                end
              else
                begin
                  x := GetX(self);
                  y := GetY(self);
                  TPDom;
                  DropRes;
                  GetRes;
                  TPMine;
                  NewMoveXY(x, y, True, 2, True);
                end;
            end;
          while ObjAtLayer(RhandLayer) < 1 do
            begin
              wait(100);
            end;
        end;  
    end;
    
    procedure CheckDead;
    var
    i, x, y : integer;
    Go : array [0..13] of cardinal;
    begin
      if dead then
        begin
          x := GetX(self);
          y := GetY(self);
          if IsGump then
            begin
              GumpAutoCheckBox(10,211);
              NumGumpButton(GetGumpsCount-1,0);
            end;
          if IsGump then
            begin
              CloseSimpleGump(GetGumpsCount-1);
            end;
          NewMoveXY(2550,622,True,0,True);
          NewMoveXY(2578,622,True,0,True);
          repeat
            CheckSave;
            Step(0, true);
            if GetGumpsCount > 0 then
              begin
                NumGumpButton(GetGumpsCount-1,1);
                repeat
                  wait(1000);
                until not dead;
                TPDom;
                DropRes;
                GetRes;
                TPMine;
                NewMoveXY(x, y, True, 0, True);
                exit;
            end;
          until (GetX(self) = 2578) and (GetY(self) = 601);
          if PredictedDirection <> 0 then Step(0, true);
          repeat
            CheckSave;
            Step(6, true);
            if GetGumpsCount > 0 then
              begin
                NumGumpButton(GetGumpsCount-1,1);
                repeat
                  wait(1000);
                until not dead;
                TPDom;
                DropRes;
                GetRes;
                TPMine;
                NewMoveXY(x, y, True, 0, True);
                exit;
              end;
          until (GetX(self) = 2575) and (GetY(self) = 601);
          repeat
            CheckSave;
            Step(0, true);
            if GetGumpsCount > 0 then
              begin
                NumGumpButton(GetGumpsCount-1,1);
                repeat
                  wait(1000);
                until not dead;
                TPDom;
                DropRes;
                GetRes;
                TPMine;
                NewMoveXY(x, y, True, 0, True);
                exit;
              end;
          until (GetX(self) = 2575) and (GetY(self) = 593);  
          Go[0] := 0;
          Go[1] := 0;
          Go[2] := 0;
          Go[3] := 0;
          Go[4] := 0;
          Go[5] := 6;
          Go[6] := 6;
          Go[7] := 4;
          Go[8] := 4;
          Go[9] := 4;
          Go[10] := 4;
          Go[11] := 4;
          Go[12] := 2;
          Go[13] := 2;
          while dead do
          begin
            for i := 0 to 13 do
              begin
                if GetGumpsCount > 0 then
              begin
                NumGumpButton(GetGumpsCount-1,1);
                repeat
                  wait(1000);
                until not dead;
                TPDom;
                DropRes;
                GetRes;
                TPMine;
                NewMoveXY(x, y, True, 0, True);
                exit;
              end;
                if (PredictedDirection <> 0) and (i = 0) then Step(Go[i], true);
                if (PredictedDirection <> 6) and (i = 5) then Step(Go[i], true); 
                if (PredictedDirection <> 4) and (i = 7) then Step(Go[i], true);
                if (PredictedDirection <> 2) and (i = 12) then Step(Go[i], true);
                CheckSave;
                Step(Go[i], true);
                wait(1000);
              end;
          end;   
        end;
    end;
    
    procedure CheckWeight;
    var
    rx, ry : integer;
    begin
      if Weight >= MaxVes then
        begin
          rx := GetX(self);
          ry := GetY(self);
          TPDom;
          DropRes;
          GetRes;
          TPMine;
          NewMoveXY(rx, ry, True, 0, True);   
        end; 
    end;
    
    procedure StartMining;
    var
    i, t : integer;
    begin
      for i := 0 to b do
        begin
          if a[i].Z = GetZ(Self) then
            begin
              CheckDead;
              checksave;
              hungry;
              CheckWeight;
              NewMoveXY(a[i].X, a[i].Y, True, 2, False);
              repeat
                CheckDead;
                CheckPickaxe;
                UseObject(ObjAtLayer(RhandLayer));
                t := 0;
                repeat
                  wait(50);
                  checksave;
                  t := t + 1;
                until TargetPresent or dead or (t >= 100);            
                ctime := Now;
                TargetToTile(a[i].Tile, a[i].X, a[i].Y, a[i].Z);
                CheckSave;
                WaitJournalLine(ctime, 'Points|There is no ore here to mine|Cancelled|That is too far away', 5000);            
                if (InJournalBetweenTimes('There is no ore here to mine|Cancelled|That is too far away', ctime, Now) <> -1) or dead then
                  begin
                    CheckDead;
                    break;
                  end;
                if InJournalBetweenTimes('Points|Ouch!', ctime, Now) <> -1 then
                  begin
                    repeat
                      wait(100)
                      MobDetected;
                      CheckSave;
                    until (InJournalBetweenTimes('There is no ore here to mine|Cancelled|That is too far away|You cannot|That is too far away', ctime, Now) <> -1) or dead;
                  end;
                CheckDead; 
              until false;
            end;
        end;
    end;
    
    begin
    SetARStatus(true); //автореконектер
    SetPauseScriptOnDisconnectStatus(true); //при дисконнекте, все запущенные скрипты встанут на паузу
    FindDistance := 100; 
    FindVertical := 1;
    Error := 0;
    mdtime := Now;
    gtime := Now;
    TyleType[0] := 1339; //Тайлы шахты
    TyleType[1] := 1340;
    TyleType[2] := 1341;
    TyleType[3] := 1342;
    TyleType[4] := 1343;
    TyleType[5] := 1344;
    TyleType[6] := 1345;
    TyleType[7] := 1346;
    TyleType[8] := 1347;
    TyleType[9] := 1348;
    TyleType[10] := 1349;
    TyleType[11] := 1350;
    TyleType[12] := 1351;
    TyleType[13] := 1352;
    TyleType[14] := 1353;
    TyleType[15] := 1354;
    TyleType[16] := 1355;
    TyleType[17] := 1356;
    TyleType[18] := 1357;
    TyleType[19] := 1358;
    TyleType[20] := 1359;
    TyleType[21] := 1386;
    TyleType[22] := 1361;
    TyleType[23] := 1362;
    TyleType[24] := 1363;
    
    repeat
    DropRes;
    GetRes;
    TPMine;
    if Error = 1 then
      begin
        SetARStatus(false);
        SetPauseScriptOnDisconnectStatus(false);
        exit;
      end;
    NewMoveXY(MineStartX,MineStartY,True,0,True);
    StartX := GetX(Self);
    StartY := GetY(Self);
    for i := 0 to 24 do
      begin
        b:= GetStaticTilesArray(StartX-30,StartY-30,StartX+30,StartY+30, 0, TyleType[i], a);
        if b > 1 then
          begin
            if Error = 1 then
              begin
                SetARStatus(false);
                SetPauseScriptOnDisconnectStatus(false);
                exit;
              end;
            StartMining;
          end;
      end;
    TPDom;
    until false
    END.

     

    весь скрипт писал сам, по этому могут быть опечатки

     

     

    инклюды:

     

    checksave.inc

    procedure CheckSave; 
    var Time : TDateTime; 
    begin 
    Time:= Now - (0.5 / 1440); 
    if InJournalBetweenTimes('Saving World State',Time,Now) >= 0 then
    repeat
    wait(1000);
    until InJournalBetweenTimes('Saving World State complete',Time,Now) >= 0;
    end;

     

    hungry.inc

    procedure Hungry;
    var 
        FoodID : Cardinal; 
    begin
    if Not Connected then Exit;
    FindType(Food,Backpack);
    if FindCount > 0 then
       begin
       FoodID := FindType(Food,Backpack);
       if FoodID <> $00 then UseObject(FoodID);
       wait(200);
       end;
    if FindType(Food,Backpack) = 0 then AddToSystemJournal('Нет еды!');
    end;

     

    all.inc

    [{$Include 'checksave.inc'}
    {$Include 'hungry.inc'}
    {$Include 'WaitConnection.inc'}


  8. был и арчер и ренгер и файтер и лайт клер и лайт маг и дар маг, деткнайт и пал

    вот ники на всех уже хоть убей не вспомню

    я с Краснодара...

     

    скинь номер своей аси плиз... мы помоему с тобой бегали на титанов, я ты и DrinkMaster


  9. изначально играл с 2002 по 2005 на мидле, после был перерыв сшас опять начал, зашёл на мидлу, от увиденого чуть охренел мда такой сервер с такой системой классов расс, а онлайн 35 человек

    пробывал играть на драгон ворлде, мля такое гавно если честно...

    всеми руками и ногами за мидлу, за мидлу 1 какая она была, я думаю народ бы подтенулся !!!

     

    а ты часом не за арчера играл с ником WesT?


  10. достаточно исправить одной строчки, что бы скрипты запускались и чар жрал - больше мне не че не нужно)

     

    исправленная МНОЙ версия:

    procedure Hungry;
    var 
    FoodID : Cardinal;
    begin
        if Not Connected then Exit;
        FindType($097B,Backpack);
        if FindCount > 0 then
            begin
                FoodID := FindType($097B,Backpack);
                if FoodID <> $00 then UseObject(FoodID);
                wait(200);
            end;
        if FindType($097B,Backpack) = 0 then AddToSystemJournal('Нет еды!');
    end;

     

    исходная:

    procedure Hungry(NeededLevel : Integer; Container : Cardinal);
    var HArray : array [0..10] of String;
        CurrentLevel : Integer;
        HasError : Boolean;
        TimeSayHungry : TDateTime;
        FoodID : Cardinal;
        i,c,difference : Integer;
    begin
    if Not Connected then Exit;
    if (NeededLevel < 0) or (NeededLevel > 10) then Exit;
       HArray[0] := 'You are absolutely stuffed!';
       HArray[1] := 'You are stuffed';
       HArray[2] := 'hungry at all';
       HArray[3] := 'You are a little hungry';
       HArray[4] := 'You are somewhat hungry';
       HArray[5] := 'You are REALLY hungry';
       HArray[6] := 'Your stomash hurts';
       HArray[7] := 'Your stomash hurts and you feel dizzy';
       HArray[8] := 'You are starving';
       HArray[9] := 'You are almost dying of hunger';
       HArray[10] := 'You are DYING of hunger...';
    HasError := true;
    TimeSayHungry := Now;
    UOSay('.hungry');
    wait(100);
    i:=0;
    while i < 100 do
       begin
       for c := 0 to 10 do
       if InJournalBetweenTimes(HArray[c],TimeSayHungry,Now) >= 0 then
        begin
        CurrentLevel := c;
        HasError := false;
        i := 100;
        end;
       wait(100);
       i := i + 1;
       end;
    if HasError then
       begin
       AddToSystemJournal('Error with Hungry: Lag? Conection error? Something else?');
       Exit;
       end;
    difference := CurrentLevel - NeededLevel;
    FindType($097B,Container);
    if (difference > 0) and (FindCount > 0) then for i := 1 to difference do
       begin
       FoodID := FindType($097B,Container);
       if FoodID <> $00 then UseObject(FoodID);
       wait(200);
       end;
    if FindType($097B,Container) = 0 then AddToSystemJournal('No Food');
    end;

    редактировать "UOSay('.hungry');" совсем не вариант...


  11. лол... с начало на саябов орали, мол они читера все погловно, мол в окло клиенты валят через баг, теперь вот энеми :) кто следующий?

     

    по сабжу: бред!

     

    Загрузка: 53%, В работе: 173.822 часов
    Всего игроков online: 12
    Персонажи On-Line
    CBRTOU
    Koneuka [Гильдия enemy]
    nAgoHoK [Гильдия enemy]
    deadly knight
    sitelab.pro
    rubaka
    Merlin
    Needled [Гильдия AM]
    Velma Kelly [Гильдия enemy]
    Captain erotica
    still
    H-C-K [Гильдия enemy]


  12. Код
    Program Evaluate;
    var t:integer;
    
    {$Include 'all.inc'}
    
    Begin
    SetARStatus(true); //Включаем автореконектор
    Hungry(1,backpack);
    while not dead do // Зацикливаем
    begin
    for t:=0 to 30 do
    begin
    CheckSave;
    CheckTargetError(2,2); //Проверяем нет ли левого таргета
    UseSkill('Evaluate Intelligence');
    WaitTargetObject(self);
    Wait(10500);
    end;
    Hungry(1,backpack); //Проверяем голод
    end;
    End.

     

    сам что-ли писал?

     


  13. Все таки, я не забросил разбираться в программе стелс, получайте и пользуйтесь обалденным скриптом на обкаст.

    Все что нужно - это скинуть в папку Stealth\Scripts\Include все инклюды которые только есть для стелса.

     

    program cast;
    const
    sunduk = $4499C893;
    var 
    r,i : integer;
    s : string;
    MissingReg : cardinal;
    Reags : array[1..8] of cardinal;
    ctime : TDateTime;
    
    {$Include 'all.inc'}
    
    
    function timer(var acttimer:integer;actafter:integer):boolean;
    begin
       result:=false;
       acttimer:=acttimer+1;
       if acttimer>=actafter then
       begin
          acttimer:=0;
          result:=true;       
       end;
    end;
    
    procedure CheckJournal;
    begin
    if InJournalBetweenTimes('Bless!', ctime, Now) <> -1 then 
        begin
        WaitTargetObject(LineID);
        cast('Bless');
        wait(3000);
        WaitTargetObject(LineID);
        cast('Protection');
        exit;
        end;
    end;
    
    function CheckReags : boolean;
    begin
    Result := True;
    Reags[1] := $0F7B // BloodMosss
    Reags[2] := $0F7A // BlackPearls
    Reags[3] := $0F84 // Garlick
    Reags[4] := $0F85 // Ginseng
    Reags[5] := $0F86 // Madrake Roots
    Reags[6] := $0F88 // NightShades
    Reags[7] := $0F8C // Sulphuruos Ashs
    Reags[8] := $0F8D // Spider Silks
    for r := 1  to 8  do
        begin 
        findtype(Reags[r],BackPack);
        if findcount = 0 then  
            begin
            MissingReg := Reags[r];
            Result := False;
            end; 
        end;
    end;
    
    procedure Waiting;
    begin
    if MissingReg = $0F7B then s := 'BloodMosss';
    if MissingReg = $0F7A then s := 'BlackPearls';
    if MissingReg = $0F84 then s := 'Garlick';
    if MissingReg = $0F85 then s := 'Ginseng';
    if MissingReg = $0F86 then s := 'Madrake Roots';
    if MissingReg = $0F88 then s := 'NightShades';
    if MissingReg = $0F8C then s := 'Sulphuruos Ashs';
    if MissingReg = $0F8D then s := 'Spider Silks';
    AddToSystemJournal('KoH4uJIucb ' + s);
    while (not CheckReags) do
        begin 
        ctime := now;
        wait(10000);
        if InJournalBetweenTimes('dispel!|hunt!|macro!', ctime, Now) <> -1 then uosay('KoH4uJIucb ' + s );
        uosay(' ');
        findtype(MissingReg,sunduk);
        if findcount > 0 then MoveItems(sunduk, MissingReg, $FFFF, backpack, 0, 0, 0, 500);
        end; 
    end;
    
    BEGIN
    MissingReg := 0;
    while (not dead) do
        begin 
        if (not CheckReags) then Waiting;
        ctime:=now;
        wait(1000);
            if timer(i,100) then 
            begin
            Hungry(1,backpack);
            uosay(' ');
            end;
        if TargetPresent then CancelTarget;
        CheckJournal;
        if mana < 35  then 
            begin
            wait(1000);
            useskill('Meditation');
            WaitJournalLine(now,'stop medit',30000);
                    end;
        end;
    END.

    Ни каких айди прописывать не нужно, просто включайте скрипт и пользуйтесь.

     

    1. Хангри инклюд не работает под наш шард.

    2. Ид сумки с регами кто будет указывать?

    3. Нет команды на перекастовку блеса.

    4. Скрипт просит лишние реги.

    В общем, скрипт ещё править и править под наш шард...


  14. sub ress_char() 
       var jrnl, i, p_len = 5 
       var phrase = "O" 
       DIM players[6] 
        
       players[0] = 'ID того кого реснуть'; 
       players[1] = 'ID того кого реснуть';   
       players[2] = 'ID того кого реснуть'; 
       players[3] = 'ID того кого реснуть'; 
       players[4] = 'ID того кого реснуть'; 
    
    repeat 
          jrnl = uo.inJournal(phrase); 
          if jrnl then 
             for i=0 to p_len-1 
                if uo.journalserial(jrnl-1) == players[i] then 
                obkast.do(uo.journalserial(jrnl-1)) 
    endif 
             next 
             uo.setjournalline(jrnl-1, '') 
          endif 
          wait(200) 
       until false 
       uo.DeleteJournal() 
    end sub 
    
    Sub obkast.do(serial) 
       uo.cast('Resurrection', serial) 
       wait(500) 
       uo.DeleteJournal() 
    end sub

×
×
  • Создать...