Stealth Client Forum

Альтернативный клиент Ultima Online
Текущее время: 15.08.2020 1:09

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 25.01.2019 10:32 
Не в сети Novice
Novice

Зарегистрирован: 23.06.2008 2:26
Сообщения: 119
Откуда: DRW
Как известно, на DRW своеобразная формула прокачки боевых, максимальное значение боевых скиллов на прямую зависит от разницы в значении скилла тактики. И при 100% тактики докачать боевые умения на спаринг-партнере (даже с ГМ тактики и элвен луком [115.0%]) возможно только до 85.n% (цифра приблизительная).

Покопавшись в исходниках слитого в сеть сервера DRW было выяснено:
1. Все существа в мире, за исключением двух (включая всевозможных драконов) имеют значение тактики до 100%.
2. Призываемое существо Blade Spirit имеет 250% тактики
3. Призываемое существо Energy Vortex имеет 500% тактики
По сему, именно на них и стоит качать боевые скиллы.
Нам понадобится:
1. Любой двухэтажный дом.
2. Прокся. С одного IP боевые не растут
3. Реагенты BP, NS, MR, BM (для каста вортексов и блейдов)
4. Маг для каста блейдов нужно около 70% магии, для каста вортексов >92%

Далее, для прокачки арчери:
1. Несколько луков
2. Стрелы
Опционально, наденьте на мага браслет регенерации маны.
Мага и лучника ставим на втором этаже, рядом с сундуком, в котором лежат реагенты и стрелы.
Лучнику запускаем вот этот скрипт.
Магу запускаем вот этот скрипт.

Для прокачки остальных боевых:
На качающемся персонаже нам понадобится:
1. Фуллец. желательно блэкрок, с вышным щитом
2. Оружие:
 вот такое
    Cleaver для прокачки Swordsmanship
    Dagger для прокачки Fencing
    Пустая правая рука и Ringmail Gloves для прокачки Wrastling

3. Anvil рядом с качающимся персонажем.
4. Smith's hammer (при прокачке mace fighting их понадобится два)
5. Инги всех используемых предметов
 Например
Если вы используете фулл blackrock-а c Acid щитом, Вам понадобятся инги: Iron (для оружия), Blackrock и Acid

6. Бутылочки Greater Heal
7. Бинты
8. Мойка для бинтов
9. Опционально наденьте на персонажа брасс регенерации жизни

И так.
Мага, на отдельном IP, ставим на втором этаже в угол, рядом ставим сундук с реагентами. Опционально надеваем брас регенерации маны и шруду. И используем Вот этот скрипт
Воина, на родном IP, ставим на первом этаже на 1 клетку ниже угла (рядом с местом куда будут кастоваться блейды но не прямо на него) рядом ставим наковальню, опционально обставляемся непроходимыми вещами дабы блейды не разбегались. Все остальное из списка, в достаточном кол-ве кладем в сумку, надеваем оружие и щит. И используем Вот этот скрипт


Последний раз редактировалось Unholy 01.02.2019 11:43, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 25.01.2019 10:38 
Не в сети Novice
Novice

Зарегистрирован: 23.06.2008 2:26
Сообщения: 119
Откуда: DRW
Маг, кастующий блейд спиритов для прокачки боевых

Скрипт расчитан на каст со второго этажа на первый. Советую кастовать под себя и качающегося персонажа держать рядом (но на первом этаже). Рядом ставим сундук с реагентами.

Здесь будет подробное описание, но позже возможно никогда
Код:
Program combatsMageBlade;
const
      //координаты куда кастовать блейда
      castX = 1166;
      castY = 301;
      castZ = 6;

      mainChest = $403F4C89; // Сундук с реагентами
      trainedCharId = $0045CC44; //id качающегося чара
      
      bladeType = $023E;
      
procedure getRegs;
begin
   CheckLag(15000);
   if (NSCount < 5) or (BPCount < 5) or (BMCount < 5) or (MRCount < 5) then
   begin
      AddToSystemJournal('Get more reagents.');
      UseObject(mainChest);
      CheckLag(15000);
      wait(500);
      if (NSCount < 5) and (FindType(NS, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (BPCount < 5) and (FindType(BP, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (BMCount < 5) and (FindType(BM, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (MRCount < 5) and (FindType(MR, mainChest) > 0) then Grab(finditem, 100);
      wait(500);         
   end;
end;

procedure meditate;
begin
   AddToSystemJournal('Meditation.');
   While GetMaxMana(self) > GetMana(self) do
   begin
      if WarMode = true then SetWarMode(false);
      useskill('Meditation');
      Wait(1000);
      CheckLag(15000);
   end;
   AddToSystemJournal('Meditation finished.');
end;

procedure waitWhileBladeExist;
begin
   AddToSystemJournal('Wait while blade exist');
   while FindType(bladeType, ground) <> 0 do
      Wait(1000);
   AddToSystemJournal('Blade died.');
end;

procedure castBlade;
begin
   AddToSystemJournal('Cast Blade.');
   CheckLag(15000);
   Cast('Blade Spirit');
   WaitForTarget(5000);
   if targetpresent then
   begin
      TargetToXYZ(castX,castY,castZ);
   end;
   wait(10000);
   CheckLag(15000);
end;

procedure waitWhileHPNotFull;
begin
   While GetMaxHP(trainedCharId) > GetHP(trainedCharId) do
   begin
      wait(1000);
      CheckLag(15000);
   end;
end;


begin
   FindVertical := 30;
   repeat
      while (FindType(bladeType, ground) = 0) and (GetMaxMana(self) >= 27) do
      begin
         getRegs;
         castBlade;
      end;
      meditate;
      waitWhileBladeExist;
      waitWhileHPNotFull;
   until not IsObjectExists(trainedCharId);
end.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 25.01.2019 10:41 
Не в сети Novice
Novice

Зарегистрирован: 23.06.2008 2:26
Сообщения: 119
Откуда: DRW
Воин качающий боевые на блейдах

Здесь будет подробное описание, но позже возможно никогда

Код:
////////////////////////////////////////////////
// Боевые на блейдах by Unholy (c) 2019
// for DRW
//
// скрипт расчитан на избиение появляющихся рядом
// с чаром Blade Spirits
//
// Перед запуском скрипта наденьте используемое оружие
// и щит (опционально)
//
// Скрипт расчитан на то, что рядом с качающимися стоит наковальня
//
// В бекпаке должно лежать
// 1. Бинты в большом кол-ве
// 2. Мойка для бинтов
// 3. Молоток для починки вещей
// 5. Инги всех используемых материалов для починки сета, оружия, щита
// 6. Бутылочки с Greater Heal.
//
// Внимание!!!
// 1. Замечен баг, женский нагрудник не воспринимается. Используйте нормальный Platemail.
// 2. Капитан очевидность намекает, что при прокачке Mace Fighting вам понадобится два молотка
//    вторым будет чениться первый.
Program combatsOnBlade;

const   
   skillToTrain          = 'Mace Fighting'; // При достижении 100% этого скилла чар дисконнектится
   bladeType             = $023E; // Тип блэйд спирита
   washBasinType       = $1008; // Тип мойки для бинтов.
   bandageClearType    = $0E21; // Чистые бинты
   bandageBloodType    = $0E20; // Грязные бинты
   GHType                   = $0F0E; // Бутылка Greater Heal Тип
   GHColor                = $09BB; // Бутылка Greater Heal Цвет
   hummerType             = $13E3; //Тип молотка, которым будет ченить сет и оружие

var
   lHandId, rHandId, hummerId: Cardinal;
   dressLayersList, dressList: Array [0..7] of Cardinal;
   ghUsed: boolean;
   
procedure init;
   var i: integer;
begin
   lHandId    := ObjAtLayer(LhandLayer);
   rHandId    := ObjAtLayer(RhandLayer);
   
   dressLayersList[0]    := LhandLayer;
   dressLayersList[1]    := RhandLayer;
   dressLayersList[2]    := ArmsLayer;
   dressLayersList[3]    := GlovesLayer;
   dressLayersList[4]    := HatLayer;
   dressLayersList[5]    := LegsLayer;
   dressLayersList[6]    := TorsoLayer;
   dressLayersList[7]    := NeckLayer;
   
   for i := 0 to 7 do
      dressList[i] := ObjAtLayer(dressLayersList[i]);

   hummerId := FindType(hummerType, backpack);
end;      

procedure stripAll;
   var i: integer;
begin
   for i := 0 to 7 do
      if (ObjAtLayer(dressLayersList[i]) > 0) then
      begin
         UnEquip(dressLayersList[i]);
         Wait(500);
         CheckLag(15000);
      end;
end;

procedure dressAll;
   var i: integer;
begin
   for i := 0 to 7 do
      if (dressList[i] > 0) then
      begin
         Equip(dressLayersList[i], dressList[i]);
         Wait(500);
         CheckLag(150000);
      end;
end;

procedure repairAll;
   var i: integer;
begin
   Equip(RhandLayer, hummerId);
   Wait(500);
   for i := 0 to 7 do
   if (dressList[i] > 0) then
   begin
      TargetToObject(dressList[i]);
      UseObject(hummerId)
      Wait(500);
      CheckLag(15000);
   end;
end;

procedure checkRepair;
begin
   if (ghUsed = true) then
   begin
      stripAll;
      repairAll;
      dressAll;
      ghUsed:= false;
   end;
end;

procedure criticalHeal;
begin
   if (GetHP(self) < 15) and (ghUsed = false) then
   begin
      UseType(GHType, GHColor);
      ghUsed := true;
      AddToSystemJournal('Was saved by greater heal');
   end;
end;
      
procedure dressWeaponUp;
begin
   AddToSystemJournal('dress up weapon');
   CheckLag(15000);
   if lHandId > 0 then UseObject(lHandId);
   Wait(500);
   CheckLag(15000);
   if rHandId > 0 then UseObject(rHandId);
end;
      
procedure waitForBlade;
begin
   AddToSystemJournal('Wait!');
   if not WarMode then setWarMode(true);
   while FindType(bladeType, ground) = 0 do
   begin
      Wait(500);
      CheckLag(15000);
   end;
end;

procedure atackWhileVortexExist;
begin
   AddToSystemJournal('Atack!');
   CheckLag(15000);
   while FindType(bladeType, ground) > 0 do
   begin
      if not WarMode then setWarMode(true);
      if (WarTargetID <> FindItem) then attack(FindItem);
      Wait(1000);
      criticalHeal;
   end;
end;

procedure washBandages;
begin
   if (FindType(bandageClearType, backpack) = 0) and (FindType(bandageBloodType, backpack) > 0) then
   begin
      AddToSystemJournal('Wash bandages');
      if (FindType(washBasinType, backpack) > 0) then
      begin
         WaitTargetObject(FindItem);
         UseType(bandageBloodType, $0000);
      end;
   end;
end;

procedure bandageSelf;
begin
    AddToSystemJournal('Healing self');
    while GetHP(self) < GetMaxHP(self) do
    begin
        washBandages; 
        if (WarMode = true) then
            SetWarMode(false);
        WaitTargetObject(Self);
        UseType(bandageClearType, $0000);
        CheckLag(15000);
    end;
end;

begin
   init;
   repeat
      CheckLag(15000);
      bandageSelf;
      dressWeaponUp;
      waitForBlade;
      CheckLag(15000);
      atackWhileVortexExist;
      checkRepair;
   until GetSkillValue(skillToTrain) >= 100;
   Disconnect;
end.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 25.01.2019 10:43 
Не в сети Novice
Novice

Зарегистрирован: 23.06.2008 2:26
Сообщения: 119
Откуда: DRW
Маг, кастующий вортексов, со второго этажа на первый.

Берем мага, ставим его на втором этаже виллы. Рядом ставим сундук с реагентами.
Место, в которое будут кастоваться вортексы лучше обложить (дабы вортексы не разбегались).
Код:
Program combatsMageVortex;

const
      castX = 1200;
      castY = 200;
      castZ = 6;

      mainChest = $433F6789; // сундук с реагентами
      trainedCharId = $0025C484; //id качающегося чара
      
      vortexType = $000D;
      vortexColor = $000D;
      
procedure getRegs;
begin
   CheckLag(15000);
   if (NSCount < 5) or (BPCount < 5) or (BMCount < 5) or (MRCount < 5) then
   begin
      AddToSystemJournal('Get more reagents.');
      UseObject(mainChest);
      CheckLag(15000);
      wait(500);
      if (NSCount < 5) and (FindType(NS, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (BPCount < 5) and (FindType(BP, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (BMCount < 5) and (FindType(BM, mainChest) > 0) then Grab(finditem, 100);
      wait(500);
      if (MRCount < 5) and (FindType(MR, mainChest) > 0) then Grab(finditem, 100);
      wait(500);         
   end;
end;

procedure meditate;
begin
   AddToSystemJournal('Meditation.');
   While GetMaxMana(self) > GetMana(self) do
   begin
      if WarMode = true then SetWarMode(false);
      useskill('Meditation');
      Wait(1000);
      CheckLag(15000);
   end;
   AddToSystemJournal('Meditation finished.');
end;

procedure waitWhileVortexExist;
begin
   AddToSystemJournal('Wait while wortex exist');
   while FindType(vortexType, ground) <> 0 do
      Wait(1000);
   AddToSystemJournal('Wortex died.');
end;

procedure castVortex;
begin
   AddToSystemJournal('Cast Wortex.');
   CheckLag(15000);
   Cast('Energy Vortex');
   WaitForTarget(5000);
   if targetpresent then
   begin
      TargetToXYZ(castX,castY,castZ);
   end;
   wait(10000);
   CheckLag(15000);
end;

begin
   FindVertical := 30;
   repeat
      while (FindType(vortexType, ground) = 0) and (GetMaxMana(self) >= 27) do
      begin
         getRegs;
         castVortex;
      end;
      meditate;
      waitWhileVortexExist;
   until not IsObjectExists(trainedCharId);
end.


Последний раз редактировалось Unholy 01.02.2019 11:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 25.01.2019 10:43 
Не в сети Novice
Novice

Зарегистрирован: 23.06.2008 2:26
Сообщения: 119
Откуда: DRW
Лучник, стреляющий в вортексов
Ставим лучника на втором этаже рядом с магом и сундуком. В сундук кладем стрелы.

Код:
Program combatsMageVortex;

const
      mainChest = $403F4C89;

      vortexType = $000D;
      arrowType = $0F3F;
      
procedure waitForVortex;
begin
   AddToSystemJournal('Wait!');
   while FindType(vortexType, ground) = 0 do
   begin
      Wait(1000);
      CheckLag(15000);
   end;
end;

procedure atackWhileVortexExist;
begin
   AddToSystemJournal('Atack!');
   CheckLag(15000);
   while FindType(vortexType, ground) > 0 do
   begin
      if not WarMode then setWarMode(true);
      if (WarTargetID <> FindItem) then attack(FindItem);
      Wait(1000);
   end;
end;

procedure checkArrows;
begin
   CheckLag(15000);
   AddToSystemJournal('Arrows found: ' + IntToStr(Count(arrowType)));
   if (Count(arrowType) < 100) then
   begin
      UseObject(mainChest);
      CheckLag(15000);
      wait(500);
      if (FindType(arrowType, mainChest) > 0) then
         begin
         Grab(finditem, 100) 
         end
      else
         begin
            disconnect;
            exit;
         end;
   end;
end;

begin
   FindVertical := 30;
   repeat
      waitForVortex;
      CheckLag(15000);
      atackWhileVortexExist;
      CheckLag(15000);
      checkArrows;
   until Dead;
end.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Тюнинг и аксессуары. Тюнинг внедорожников: магазин 4х4 в Одессе. Интернет магазин "AMAX".
Также, на правах рекламы: школьный сайт: school-work.net и еще один: https://www.youtube.com/channel/UCFSPHKHjP22tEl8Rjcst9Fw.


Рейтинг@Mail.ru
Powered by phpBB® Forum Software © phpBB Group