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

Скрипт на персонажа-грушу (DRW)

Only working scripts
Post Reply
dukeduke
Neophyte
Neophyte
Posts: 10
Joined: 23.08.2008 10:00
Contact:

Скрипт на персонажа-грушу (DRW)

Post by dukeduke »

Простой скриптик на персонажа, на котором мона качать других персонажей:

Code: Select all

Program Healing; 

{$Include 'all.inc'} 

const 
Eat=$09bb; {тип еды}
Washbasin=$403116db; {мойка}  
bloodbandages=$0E20;  {кровавые бинты, тип}
CharHP=177; {количество здоровья у персонажа груши}
ElBow=$404aa15e; {ельвин лук}
BoxSunduk=$4037064e; {сундук для безопасного хранения ельвин лука}

var 
Str1,str2,str3,str4,str5:String; 
bandages:cardinal; 

BEGIN 
AddToSystemJournal('СКРИПТ ЗАГРУЖЕН!');
bandages:=FindType($0E21,backpack); 
Str1:='You bandage'; 
Str2:='You put '; 
Str3:='You sucessfully '; 
Str4:='Do you '; 
Str5:='You must wait to perform another action'; 
WaitConnection(5000); 

While not Dead do 
   begin 
	If Life >= CharHP then 
	begin 
		MoveItem(ElBow,1,Backpack,0,0,0);
		Wait(800);
		UseObject(ElBow); 
		Wait(3000); 
		UOSay('go');
		SetWarMode(true);
		While Life > (CharHP - 100) do Wait(100); 
	end;
	UOSay('stay');
	SetWarMode(false);
	MoveItem(ElBow,1,BoxSunduk,0,0,0);
	While HP < CharHP do 
	Begin 
		AddToSystemJournal('Лечимся');
		SetWarMode(false);
		UseObject(bandages); 
		SetWarMode(false);
		WaitTargetSelf; 
		SetWarMode(false);
		While (InJournal(str1)<0) and (InJournal(str2)<0) and (InJournal(str3)<0) and (InJournal(str4)<0) and (InJournal(str5)<0) do wait(500); 
		SetWarMode(false);
		Wait(2500); 
		SetWarMode(false);
	end; 
	Wait(100);
	SetWarMode(false);
	FindType(bloodbandages,backpack); 
	SetWarMode(false);
	if FindCount >= 1 then 
	begin 
		wait(100);
		SetWarMode(false);
		AddToSystemJournal('Начинаю мыть бинты'); 
		SetWarMode(false);
		UseObject(finditem); 
		SetWarMode(false);
		WaitForTarget(5000); 
		SetWarMode(false);
		if TargetPresent then TargetToObject(Washbasin); 
		SetWarMode(false);
		wait(100); 
		SetWarMode(false);
		AddToSystemJournal('Вымыл бинты'); 
		SetWarMode(false);

		FindType(Eat,backpack); 
		SetWarMode(false);
		if FindCount >= 1 then 
		begin 
			SetWarMode(false);
			AddToSystemJournal('кушаем'); 
			SetWarMode(false);
			UseObject(finditem);
			SetWarMode(false);
		end else 
			SetWarMode(false);
			AddToSystemJournal('нечего кушать');
	end else 
		SetWarMode(false);
		AddToSystemJournal('Нечего мыть'); 
	end; 
END.
I'M
dukeduke
Neophyte
Neophyte
Posts: 10
Joined: 23.08.2008 10:00
Contact:

Post by dukeduke »

Кароче так - у персонажа-груши должно быть в бекпаке бинтов уйма, мойка, жрачка! А у того кто качается должен быть скрипт на го\стей спаринг, иногда при плохом конекте скрипт глючит!
I'M
Beren
Novice
Novice
Posts: 108
Joined: 08.09.2008 1:07

Post by Beren »

У меня несколько иной скрипт. Рабочий, правда не знаю на счёт того, убивал ли я когда-нибудь куклу, возможно ведь, что просто потом воскрешал)))

Code: Select all

Program Dummy; 

const
 Enemy=$000C8B01; // ID противника 
 EnemyType=$0190; // Тип противника
 Weapons=$4037BE9B;// ID оружия
 clean_bandages = $0E21;// Тип чистых бинтов
 bloody_bandages =$0E20;// Тип кровавых бинтов
 a_wash_basin =$1008;// Тип чашки для мытья бинтов
 EatType=$160A;// Тип еды
 lim_iter=300;// Максимальное количество итераций;
 Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника

var 
 TempDamage: integer; // жизнь противника в условных единицах
 Body:Cardinal; // для поиска противника
 iter: integer; // условие выхода из цикла
 
{$Include 'all.inc'} 

function to_out(do_iter:boolean):boolean;
begin
   if do_iter then iter:=iter+1;
   Body:= FindType(EnemyType,Ground); 
   if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then
    begin
      Result:= true;
      iter:=0;
    end
      else   Result:= false;
end;

procedure Wash;
begin
 UseObject(FindType(bloody_bandages,Backpack));
 repeat
  wait(100);
  checksave;
 until ((targetpresent) or to_out(true));
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;

procedure Heal; 
var 
 ctime : TDateTime;  
begin 
 SetWarMode(false);
 repeat
  ctime := Now; 
  checksave;
  UseObject(FindType(clean_bandages,Backpack));
  repeat
   wait(250);
   checksave;
  until ((targetpresent) or to_out(true));
  WaitTargetObject(Enemy);
  repeat
   wait(100);
   checksave;
  until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to 

heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true)); 
  wait(250);
 until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
wait(250);
Wash;
end;

Begin 
FindDistance:=1;
iter:=0;
clearjournal; 
while not Dead do 
 begin 
  if Connected then 
   begin
    checksave;
    Equip(RhandLayer,Weapons);
    UseObject(FindType(EatType,Backpack));
    Attack(Enemy);
     repeat
       TempDamage:=GetHP(Enemy);
       checksave;
       wait(100);
     until ((TempDamage<Min_Damage) or to_out(false));
     iter:=0;
     Heal;
   end;
  end; 
End.
-Bulevif-
Posts: 5
Joined: 11.08.2008 8:47
Contact:

Re: Скрипт на персонажа-грушу (DRW)

Post by -Bulevif- »

спс за скриптик :)
Maruk
Neophyte
Neophyte
Posts: 19
Joined: 05.11.2009 2:24

Post by Maruk »

18:50:58 [myst]: Compiling
18:50:58 [myst]: Compiler: [Error] (спаринг3.sc at 60:34): tbtString error
18:50:58 [myst]: Compiler: [Error] (спаринг3.sc at 60:34): Syntax error
18:50:58 [myst]: Compiling failed
18:50:58 [myst]: Script спаринг3.sc stopped successfuly
Вот такая батва
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

Code: Select all

  until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to
heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true)); 
замени на

Code: Select all

  until (((InJournalBetweenTimes('bloody|barely|does not need|bandage yet', ctime, Now))<>-1) or to_out(true)); 
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Faxford
Neophyte
Neophyte
Posts: 10
Joined: 21.08.2009 1:48

Post by Faxford »

:!:
Delmar
Posts: 9
Joined: 22.11.2011 22:04

Re:

Post by Delmar »

Beren wrote:У меня несколько иной скрипт. Рабочий, правда не знаю на счёт того, убивал ли я когда-нибудь куклу, возможно ведь, что просто потом воскрешал)))

Code: Select all

Program Dummy; 

const
 Enemy=$000C8B01; // ID противника 
 EnemyType=$0190; // Тип противника
 Weapons=$4037BE9B;// ID оружия
 clean_bandages = $0E21;// Тип чистых бинтов
 bloody_bandages =$0E20;// Тип кровавых бинтов
 a_wash_basin =$1008;// Тип чашки для мытья бинтов
 EatType=$160A;// Тип еды
 lim_iter=300;// Максимальное количество итераций;
 Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника

var 
 TempDamage: integer; // жизнь противника в условных единицах
 Body:Cardinal; // для поиска противника
 iter: integer; // условие выхода из цикла
 
{$Include 'all.inc'} 

function to_out(do_iter:boolean):boolean;
begin
   if do_iter then iter:=iter+1;
   Body:= FindType(EnemyType,Ground); 
   if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then
    begin
      Result:= true;
      iter:=0;
    end
      else   Result:= false;
end;

procedure Wash;
begin
 UseObject(FindType(bloody_bandages,Backpack));
 repeat
  wait(100);
  checksave;
 until ((targetpresent) or to_out(true));
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;

procedure Heal; 
var 
 ctime : TDateTime;  
begin 
 SetWarMode(false);
 repeat
  ctime := Now; 
  checksave;
  UseObject(FindType(clean_bandages,Backpack));
  repeat
   wait(250);
   checksave;
  until ((targetpresent) or to_out(true));
  WaitTargetObject(Enemy);
  repeat
   wait(100);
   checksave;
  until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to 

heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true)); 
  wait(250);
 until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
wait(250);
Wash;
end;

Begin 
FindDistance:=1;
iter:=0;
clearjournal; 
while not Dead do 
 begin 
  if Connected then 
   begin
    checksave;
    Equip(RhandLayer,Weapons);
    UseObject(FindType(EatType,Backpack));
    Attack(Enemy);
     repeat
       TempDamage:=GetHP(Enemy);
       checksave;
       wait(100);
     until ((TempDamage<Min_Damage) or to_out(false));
     iter:=0;
     Heal;
   end;
  end; 
End.
Это как я понял, он тупо бьёт куклу, хилит и тд. Так, да?)
+Ghost+
Posts: 6
Joined: 27.11.2008 12:53

Re: Скрипт на персонажа-грушу (DRW)

Post by +Ghost+ »

Да этот скрипт бьет и лечит) У меня вопросик в другом, я недавно вернулся и все позабыл в уо, играю на ДРВ! Скажите пожалуйста почему когда я запущу скрипт он побьет куклу, начинает лечить и стоит и лечит, кукла уже в мумию от бинтов превращается, давно полечив он все равно пытается лечить, но бить так и не начинает! Скажите в чем проблема ...

Code: Select all

Program Dummy; 

const 
 Enemy=$0004FEA7; // ID противника 
 EnemyType=$0191; // Тип противника 
 Weapons=$400B27B4;// ID оружия 
 clean_bandages = $0E21;// Тип чистых бинтов 
 bloody_bandages =$0E20;// Тип кровавых бинтов 
 a_wash_basin =$1008;// Тип чашки для мытья бинтов 
 EatType=$160A;// Тип еды 
 lim_iter=300;// Максимальное количество итераций; 
 Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника 

var 
 TempDamage: integer; // жизнь противника в условных единицах 
 Body:Cardinal; // для поиска противника 
 iter: integer; // условие выхода из цикла 
  
{$Include 'all.inc'} 

function to_out(do_iter:boolean):boolean; 
begin 
   if do_iter then iter:=iter+1; 
   Body:= FindType(EnemyType,Ground); 
   if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then 
    begin 
      Result:= true; 
      iter:=0; 
    end 
      else   Result:= false; 
end; 

procedure Wash; 
begin 
 UseObject(FindType(bloody_bandages,Backpack)); 
 repeat 
  wait(500); 
  checksave; 
 until ((targetpresent) or to_out(true)); 
WaitTargetObject(FindType(a_wash_basin,Backpack)); 
end; 

procedure Heal; 
var 
 ctime : TDateTime;  
begin 
 SetWarMode(false); 
 repeat 
  ctime := Now; 
  checksave; 
  UseObject(FindType(clean_bandages,Backpack)); 
  repeat 
   wait(2500); 
   checksave; 
  until ((targetpresent) or to_out(true)); 
  WaitTargetObject(Enemy); 
  repeat 
   wait(500); 
   checksave; 
until (((InJournalBetweenTimes('bloody|barely|does not need|bandage yet', ctime, Now))<>-1) or to_out(true));
  wait(250); 
 until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true)); 
wait(250); 
Wash; 
end; 

Begin 
FindDistance:=1; 
iter:=0; 
clearjournal; 
while not Dead do 
 begin 
  if Connected then 
   begin 
    checksave; 
    Equip(RhandLayer,Weapons); 
    UseObject(FindType(EatType,Backpack)); 
    Attack(Enemy); 
     repeat 
       TempDamage:=GetHP(Enemy); 
       checksave; 
       wait(200); 
     until ((TempDamage<Min_Damage) or to_out(false)); 
     iter:=0; 
     Heal; 
   end; 
  end; 
End.
Kynep
Neophyte
Neophyte
Posts: 40
Joined: 29.05.2008 6:41

Re: Скрипт на персонажа-грушу (DRW)

Post by Kynep »

Это,

Code: Select all

until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true)); 
замени на это:

Code: Select all

until (GetHP(Enemy) = GetMaxHP(Enemy)) OR (to_out(true));
Dsk
Posts: 6
Joined: 14.02.2012 1:11

Re: Скрипт на персонажа-грушу (DRW)

Post by Dsk »

[quote="+Ghost+"]Да этот скрипт бьет и лечит) У меня вопросик в другом, я недавно вернулся и все позабыл в уо, играю на ДРВ! Скажите пожалуйста почему когда я запущу скрипт он побьет куклу, начинает лечить и стоит и лечит, кукла уже в мумию от бинтов превращается, давно полечив он все равно пытается лечить, но бить так и не начинает! Скажите в чем проблема ...

until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
либо тупо проблема в этой фразе когда чар кукла девушка то фраза будет cure her. а когда мужик то будет cure him. и того что сделать тупо можно
until (((InJournalBetweenTimes('does not need you to heal or cure him.|does not need you to heal or cure her.', ctime, Now))<>-1) or to_out(true));
я лично сделал так у меня пашет без б ну как описал выше купер ето 100% лудший вариант :)
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Скрипт на персонажа-грушу (DRW)

Post by MuDaCk »

Сходу вижу несколько ошибок:
правильно "луЧший" и текст кода лучше хаключать в теги

Code: Select all

[/code ]
My name is Игорёшка Image
Пишу скрипты за едуImage
Post Reply