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

Ух Шас я что-то напишу.

Only working scripts
Post Reply
Unholy
Novice
Novice
Posts: 119
Joined: 23.06.2008 2:26
Location: DRW

Ух Шас я что-то напишу.

Post by Unholy »

Мдя, с момента моего последнего посещения форума многое изменилось...
И даже не знаю в чем проблема, но большинство найденных мной здесь скриптов тупо не работает. Будем переписывать)
Все скрипты переписываю под DRW.
Начнем с магии: оригинал: http://stealth.od.ua/forum/viewtopic.php?t=576
Magery + meditation

Code: Select all

Program MagicResistance;
// v.1.04 (c) Edred
//upd by Unholy (DRW, 8.01.2013)
{$Include 'all.inc'}

var
i:integer;
k:integer;

const
// ID корыта с водой.
derSunduk=$400D0339;
TypeCast='Poison';
// Реги
//BPreg=$0F7A;
//BMreg=$0F7B;
//GAreg=$0F84;
//GSreg=$0F85;
//MRreg=$0F86;
NSreg=$0F88;
//SAreg=$0F8C;
//SSreg=$0F8D;
castTime = 5000; //Время на каст

   procedure getitems(item:cardinal);
   // процедура берет из контейнера 20 шт указанного предмета
   begin
      if (count(item)=0) then
      begin      
          UseObject(derSunduk); 
          wait(100);
         findType(item,derSunduk);
         if (FindCount > 0) then
         begin
            k := FindQuantity;
            Grab(finditem,20);
            wait(1000);
            checksave;
            addtosystemjournal('Добрали регов ' + inttostr(item));
         end
         else
         begin
         addtosystemjournal('Закончились ' + inttostr(item));
         wait(5000);
         checksave;
         getitems(item); // Собственно я понятия не имею зачем в оригинале был повтор, но раз был значит надо. А раз надо значит сделаем вот так.
         end;
      end;
   end;

   procedure Medita;
   begin
      waitconnection(5000);
      if (mana <= MaxMana) then
      begin
         i:=0;
         repeat
            useskill('meditation');
            wait(1000);
            i:=i+1;
            checksave;
         until (Mana >= MaxMana);
         addtosystemjournal('медитация закончена');
      end;
   end;

   procedure Cast2Self;
   begin
      waitconnection(5000);
      getitems(NSreg); // добор регов
      checksave; 
      TargetToObject(self);
      cast(TypeCast);
	  WaitForTarget(5000);
      if targetpresent then
		begin
			TargetToObject(self);
		end;
	  wait(castTime + 100);
   end;
 
Begin
   while true do
   begin
      waitconnection(5000);
      Cast2Self;
      Medita;
   end;
End.
Last edited by Unholy on 08.01.2013 13:19, edited 1 time in total.
Unholy
Novice
Novice
Posts: 119
Joined: 23.06.2008 2:26
Location: DRW

Re: Ух Шас я что-то напишу.

Post by Unholy »

Эх, паскаль, ностальгия...
Хотелось бы отметить, что стелс стал на лучше инжы. Есть у меня пара траблов... но они, скорее всего связаны с вайном.

И так... BlackSmithing
Мораль в следующем:
берем цветные инги, крафтим из них горжетки, переплавляем горжетки

Code: Select all

Program BlackSmithing;
//BS by Unholy (08.01.2013)
const 	forgeId		= $40254F3F; //Плавильня
		ingType 	= $1BEF; //Инги (тип)
		ingiColor 	= $096B;  //Цвет
		makeType 	= $1413; //Тип того, что скрафтили
		sundukIngi 	= $401CD7DA; //Сундук с ингами

var k: integer;
      TimeStart: TDateTime;
//Собственно здесь меняем то, что должно быть скрафчено 
procedure MakeMenu; 
begin 
  automenu('Blacksmithing', 'Colored Armor & Weapons');
  automenu('Colored Armor & Weapons', 'Shadow Armor');
  automenu('Shadow Armor', 'Shadow Plate Armor');
  automenu('Shadow Plate Armor', 'Gorget');
end; 

procedure DoborIngov; 
begin
  UseObject(sundukIngi);
	wait(100);
  FindTypeEx(ingType, ingiColor, sundukIngi, false);
  wait(100);
	IF FindQuantity >= 100 then MoveItem(FindItem,100,Backpack,0,0,0);      
   wait(600);
    FindTypeEx(ingType, ingiColor, backpack, false);
     wait(100);
    AddToSystemJournal('Добрали ингов');      
end; 

procedure Pereplav; 
begin 
	while FindTypeEx(makeType, ingiColor, backpack, false) > 0 do
	begin
		wait(1000);
		useobject(forgeId);   
		WaitForTarget(5000);
		if targetpresent then TargetToObject(finditem);
		AddToSystemJournal('Переплавили');
	end;
end; 

procedure Check_World_Save;
 begin
  if InJournal('saving')<>-1 then
   begin 
    ClearJournal;
    k:=0;
    repeat
      wait(10000)
      k:=k+1;
      AddToSystemJournal('World is saving more than '+IntToStr(k*10)+' seconds.');
    until (InJournal('data')<>-1) or (k>10)
   end
 end;

procedure CraftWait; 
begin 
	TimeStart :=Now;
	k:=0;
	repeat 
	wait(100); 
	k := k + 1; 
	Check_World_Save;
	until (InJournalBetweenTimes('You put|failed', TimeStart, Now)<>-1) or (k > 300);
end; 

begin 
  MakeMenu;
  useobject(backpack);
  wait(100);
  useobject(sundukIngi);
  wait(100);             
  while (NOT dead) do 
  begin        
    FindTypeEx(ingType, ingiColor, backpack, false);
   if FindQuantity <= 12 then DoborIngov;
  useobject(finditem);
  CraftWait;
    Pereplav;
  end;
end.
Почему именно так:
Многие старожилы рассказывают, что БС качается путем перевода 50к айрона в даггеры (с последующей их переплавкой). Но с точки зрения эмпиризма - хрен там!
Мой способ состаит в следующем: до 60 действительно качаемся айроном. После этого качаемся на Rusty горжетках, далее (при 64.0%) old cooper и т. д. по таблице

p. s. на айроне пробовал при 70%. 4к айрона было использовано скилл вырос на 0.0.
Сейчас скилл 83.8 и за последний час вырос на 0.5

И в догонку версия под Rose Dagger

Code: Select all

Program BlackSmithing;
//BS by Unholy (08.01.2013)
const 	forgeId		= $40254F3F; //Плавильня
		ingType 	= $1BEF; //Инги (тип)
		ingiColor 	= $0014;  //Цвет
		makeType 	=  $0F51; //Тип того, что скрафтили
		sundukIngi 	= $401CD7DA; //Сундук с ингами

var k: integer;
      TimeStart: TDateTime;
//Собственно здесь меняем то, что должно быть скрафчено 
procedure MakeMenu; 
begin 
  automenu('Blacksmithing', 'Colored Armor & Weapons');
  automenu('Colored Armor & Weapons', 'Weapons');
  automenu('Weapons', 'Swords & Blades');
  automenu('Swords & Blades', 'Dagger');
end; 

procedure DoborIngov; 
begin
  UseObject(sundukIngi);
	wait(100);
  FindTypeEx(ingType, ingiColor, sundukIngi, false);
  wait(100);
	IF FindQuantity >= 100 then MoveItem(FindItem,100,Backpack,0,0,0);      
   wait(600);
    FindTypeEx(ingType, ingiColor, backpack, false);
     wait(100);
    AddToSystemJournal('Добрали ингов');      
end; 

procedure Pereplav; 
begin 
	while FindTypeEx(makeType, ingiColor, backpack, false) > 0 do
	begin
		wait(1000);
		useobject(forgeId);   
		WaitForTarget(5000);
		if targetpresent then TargetToObject(finditem);
		AddToSystemJournal('Переплавили');
	end;
end; 

procedure Check_World_Save;
 begin
  if InJournal('saving')<>-1 then
   begin 
    ClearJournal;
    k:=0;
    repeat
      wait(10000)
      k:=k+1;
      AddToSystemJournal('World is saving more than '+IntToStr(k*10)+' seconds.');
    until (InJournal('data')<>-1) or (k>10)
   end
 end;

procedure CraftWait; 
begin 
	TimeStart :=Now;
	k:=0;
	repeat 
	wait(100); 
	k := k + 1; 
	Check_World_Save;
	until (InJournalBetweenTimes('You put|failed', TimeStart, Now)<>-1) or (k > 300);
end; 

begin 
  MakeMenu;
  useobject(backpack);
  wait(100);
  useobject(sundukIngi);
  wait(100);             
  while (NOT dead) do 
  begin        
    FindTypeEx(ingType, ingiColor, backpack, false);
   if FindQuantity <= 12 then DoborIngov;
  useobject(finditem);
  CraftWait;
    Pereplav;
  end;
end.
Last edited by Unholy on 08.01.2013 17:05, edited 2 times in total.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Ух Шас я что-то напишу.

Post by Vizit0r »

Unholy wrote:Есть у меня пара траблов... но они, скорее всего связаны с вайном.
хинт - можно написать мне в аську и скорее всего будет исправлено.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Unholy
Novice
Novice
Posts: 119
Joined: 23.06.2008 2:26
Location: DRW

Re: Ух Шас я что-то напишу.

Post by Unholy »

Vizit0r wrote:
Unholy wrote:Есть у меня пара траблов... но они, скорее всего связаны с вайном.
хинт - можно написать мне в аську и скорее всего будет исправлено.
Они абсолютно не смертельны. Например окно эдитора подтормаживает при рэсайзе и перемещении.
Но это на столько не значительно, что даже лень узнавать почему. К стати эдитор очень классный на уровне с эклипсом. если для инжы скрипты я писал в жене, то здесь женя просто не нужна :D
Post Reply