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

Прокачка STR(Силы) и DEX(Ловкости), шард ДРВ

Only working scripts
Post Reply
Kynep
Neophyte
Neophyte
Posts: 40
Joined: 29.05.2008 6:41

Прокачка STR(Силы) и DEX(Ловкости), шард ДРВ

Post by Kynep »

И так, продолжаю выкладывать свои скрипты... :roll:
Скрипты номер 2 и 3, прокачка Силы и Ловкости.
Силу качаем на манекене, ловкость скиллом Хайдинг.

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

Удачи!


Прокачка Силы:

Code: Select all

program Kachalka_Str;
//©Kynep, 2012

  const
    kukl = $1070;      //Тип манекена.
    pack = $4056478A;  //ID Мешка в паке с курсой (13-14 вещей).

    food = $09BB;      //Тип еды.

    Max_Sila = 100;    //Максимальная сила, качаем дубиной (Club), залочив Mace Fighting!!!
    Min_Sila = 94;     //До скольки качаем с последней шмоткой
    

  var
    tmp_cnt,sila, i : integer;
    kurs:cardinal;

procedure check_hp;
begin
  If HP < (STR - 10) then
    begin
      UOSay('Guards!');
      AddToSystemJournal('!!!*Гвардим*!!!')
    end
end;

Begin
  FindDistance := 2;
  ClearJournal;
  i := 0;
  sila := Max_Sila
  AddToSystemJournal('*Кушаем...*')
  UseObject(FindType(food,Backpack));
  wait(100);
  AddToSystemJournal('*Поехали...*')
  while not Dead do
   begin
    while Str <> sila do
     begin
      ClearJournal;
      check_hp;
      AddToSystemJournal('*Пинаю...*')
      UseObject(FindType(kukl,Ground));
      wait(5000);
      check_hp;
      i := i + 1;
      If i > 100 then
       begin
        AddToSystemJournal('*Кушаем...*')
        UseObject(FindType(food,Backpack));
        i := 0;
       end;
     end;
    If sila = Min_Sila then
     begin
      If Str = sila then
       begin
        AddToSystemJournal('*Кач закончен !*')
        exit;
       end;
     end;
    AddToSystemJournal('*Беру курс шмотку !*')
    UseObject(pack);
    wait(1000);
    kurs := FindType(-1, pack);
    wait(100);
    tmp_cnt := FindCount;
    wait(100);
    If (kurs = 0) then
     begin
      AddToSystemJournal('!!!*Мешок пуст, выходим*!!!');
      exit;
     end;
    If (kurs <> 0) AND (tmp_cnt <> 1) then
     begin
      UseObject(kurs);
      AddToSystemJournal('*Осталось ' +  IntToStr(tmp_cnt - 1) + ' шмоток.*');
      repeat
        wait(500);
      until (Str <> Max_Sila);
     end;
    If (kurs <> 0) AND (tmp_cnt = 1) then
     begin
      UseObject(kurs);
      sila := Min_Sila;
      AddToSystemJournal('*Одета последняя шмотка.*');
      repeat
        wait(500);
      until (Str <> Max_Sila);
     end;
   end;
End.
Прокачка Ловкости:

Code: Select all

program Kachalka_Dex;
//©Kynep

  const
    kukl = $1070;      //Тип манекена.
    pack = $402CFF87;  //ID Мешка в паке с курсой (13-14 вещей).

    food = $09BB;      //Тип еды.

    Skill_Name = 'Hiding';

    Max_Dex = 90;      //Максимальное значение ловкости, на ДРВ Хайдом можно докачать до 90.
    Min_Dex = 88;      //До скольки качаем ловкость с последней шмоткой
    

  var
    tmp_cnt, dext, i : integer;
    kurs:cardinal;

procedure check_hp;
begin
  If HP < (STR - 10) then
    begin
      UOSay('Guards!');
      AddToSystemJournal('!!!Гвардим!!!')
    end
end;

Begin
  FindDistance := 2;
  ClearJournal;
  i := 0;
  dext := Max_Dex
  AddToSystemJournal('*Кушаем...*')
  UseObject(FindType(food,Backpack));
  wait(100);
  AddToSystemJournal('*Поехали...*')
  while not Dead do
   begin
    while Dex <> dext do
     begin
      ClearJournal;
      check_hp;
      AddToSystemJournal('*Качаю ' +Skill_Name+'*')
      UseSkill(Skill_Name);
      wait(3000);
      check_hp;
      i := i + 1;
      If i > 100 then
       begin
        AddToSystemJournal('*Кушаем...*')
        UseObject(FindType(food,Backpack));
        i := 0;
       end;
     end;
    If dext = Min_Dex then
     begin
      If Dex = dext then
       begin
        AddToSystemJournal('*Кач закончен !*')
        exit;
       end;
     end;
    AddToSystemJournal('*Беру курс шмотку !*')
    UseObject(pack);
    wait(1000);
    kurs := FindType(-1, pack);
    wait(100);
    tmp_cnt := GetQuantity(kurs);
    wait(100);
    If (kurs = 0) then
     begin
      AddToSystemJournal('!!!*Мешок пуст, выходим*!!!');
      exit;
     end;
    If (kurs <> 0) AND (tmp_cnt <> 1) then
     begin
      UseObject(kurs);
      AddToSystemJournal('*Осталось ' +  IntToStr(tmp_cnt - 1) + ' шмоток.*');
      repeat
        wait(500);
      until (Dex <> Max_Dex);
     end;
    If (kurs <> 0) AND (tmp_cnt = 1) then
     begin
      UseObject(kurs);
      dext := Min_Dex;
      AddToSystemJournal('*Одета последняя шмотка.*');
      repeat
        wait(500);
      until (Dex <> Max_Dex);
     end;
   end;
End.
Nearga
Novice
Novice
Posts: 58
Joined: 04.03.2012 22:03
Location: DRW
Contact:

Re: Прокачка STR(Силы) и DEX(Ловкости), шард ДРВ

Post by Nearga »

Предлагаю небольшую поправку к скрипту прокачки силы.
Сейчас там так:

Code: Select all

      AddToSystemJournal('*Пинаю...*')
      UseObject(FindType(kukl,Ground));           // смотрим сюда
      wait(5000);
      check_hp;
Тоесть кукла ищется при каждом ударе, что не есть хорошо: у меня, к примеру, чар иногда переключается на соседние куклы.
Суть поправки: ищем куклу один раз, при инициализации. Можно зайти в клиент и убедиться, что нашлась рабочая кукла. Ну а дальше будем использовать именно ее. Тоесть если скрипт уж завелся, то будет работать и дальше :)


Посему добавляем в объявления переменных (у меня это 17-я строка):

Code: Select all

    tmp_cnt,sila, i : integer;
    kurs:cardinal;
doll:cardinal; // добавляем это
Добавляем перед основным циклом (37-я строка):

Code: Select all

  AddToSystemJournal('*Поехали...*')
  doll := FindType(kukl,Ground); // Добавили это
  while not Dead do
Ну и заменяем сам удар (строка 44) на

Code: Select all

      AddToSystemJournal('*Пинаю...*')
      UseObject(doll);     // Заменили вот так
      wait(5000);
      check_hp;
Номер строки у вас может не совпадать с моим, поищите по соседним строкам.


///////////////////////////////////////////////////////////////

Для особо ленивых (то, что должно получиться в итоге):

Code: Select all

program Kachalka_Str;
//©Kynep, 2012

  const
    kukl = $1070;      //Тип манекена.
    pack = $4056478A;  //ID Мешка в паке с курсой (13-14 вещей).

    food = $09BB;      //Тип еды.

    Max_Sila = 100;    //Максимальная сила, качаем дубиной (Club), залочив Mace Fighting!!!
    Min_Sila = 94;     //До скольки качаем с последней шмоткой
    

  var
    tmp_cnt,sila, i : integer;
    kurs:cardinal;
    doll:cardinal;

procedure check_hp;
begin
  If HP < (STR - 10) then
    begin
      UOSay('Guards!');
      AddToSystemJournal('!!!*Гвардим*!!!')
    end
end;

Begin
  FindDistance := 2;
  ClearJournal;
  i := 0;
  sila := Max_Sila
  AddToSystemJournal('*Кушаем...*')
  UseObject(FindType(food,Backpack));
  wait(100);
  AddToSystemJournal('*Поехали...*')
  doll := FindType(kukl,Ground);
  while not Dead do
   begin
    while Str <> sila do
     begin
      ClearJournal;
      check_hp;
      AddToSystemJournal('*Пинаю...*')
      UseObject(doll);
      wait(5000);
      check_hp;
      i := i + 1;
      If i > 100 then
       begin
        AddToSystemJournal('*Кушаем...*')
        UseObject(FindType(food,Backpack));
        i := 0;
       end;
     end;
    If sila = Min_Sila then
     begin
      If Str = sila then
       begin
        AddToSystemJournal('*Кач закончен !*')
        exit;
       end;
     end;
    AddToSystemJournal('*Беру курс шмотку !*')
    UseObject(pack);
    wait(1000);
    kurs := FindType(-1, pack);
    wait(100);
    tmp_cnt := FindCount;
    wait(100);
    If (kurs = 0) then
     begin
      AddToSystemJournal('!!!*Мешок пуст, выходим*!!!');
      exit;
     end;
    If (kurs <> 0) AND (tmp_cnt <> 1) then
     begin
      UseObject(kurs);
      AddToSystemJournal('*Осталось ' +  IntToStr(tmp_cnt - 1) + ' шмоток.*');
      repeat
        wait(500);
      until (Str <> Max_Sila);
     end;
    If (kurs <> 0) AND (tmp_cnt = 1) then
     begin
      UseObject(kurs);
      sila := Min_Sila;
      AddToSystemJournal('*Одета последняя шмотка.*');
      repeat
        wait(500);
      until (Str <> Max_Sila);
     end;
   end;
End.
Kynep
Neophyte
Neophyte
Posts: 40
Joined: 29.05.2008 6:41

Re: Прокачка STR(Силы) и DEX(Ловкости), шард ДРВ

Post by Kynep »

Nearga, за 4 года и около 30ти прокаченных чаров, ни одна из вышеперчисленных проблем НИРАЗУ не возникала. :shock: Но если хочеться... то почему бы и нет. :lol:
Post Reply