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

Спаринг двух войнов

Only working scripts
Post Reply
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Спаринг двух войнов

Post by shinma »

скрипт писался под шард Forest Wars

Code: Select all

//Написал Shinma
//писал для войнов и их брони.
//Задаем ИД сундука,ИД оппонента, Тип оружия, Цвет Оружия. поблизости должно быть корыто
//для мытья бинтов. но можно и без него, тогда бинтами запаситесь побольше.
//бинты,броню и оружие берет из сундука.ставим двух чаров рядом и запускаем 
//им этот скрипт.
//соответствено качает тот навык которое качает прописанное вами оружие

Program sparingVSlama;
{$Include 'all.inc'}
const
Sunduk=$4004FE71;   //Сундук с бинтами  и оружием, если сундук =0, то не ищет в сундуке,
//а берет только из сумки.
lama=$078B234B;      //ID игрока с которым стоите в спаринге
Weapon=$13E3;          //Тип оружия на котором качаетесь
CWeapon=$0482;         //Цвет оружия.

//Дальше идет типы брони для война. Если поставите 0  -ноль вмсто типа, проверка 
// этой вещи осуществляться не будет.

Tshield=$1B76 ;
Tshield2=$1B77;
Tgolova=$1412 ;
Tgolova2=$1419 ;
TSheia=$1413 ;
Ttors=$1415 ;
Ttors2=$1416 ;
Tnogi=$1411 ;
Tnogi2=$141A;
Tlokti=$1410 ;
Tlokti2=$1417 ;
Tperchatki=$1414 ;
Tperchatki2=$1418;




Bint=$0E21;          
BloodBint=$0E20;
var
h,l,i:word;
Water:cardinal;
VGolos,GGolos:word;
ctime:TDatetime;

procedure krik;
begin
checksave;
checklag(60000);
		if  (GetHP(self)<80)and (VGolos=0) then
	begin
		checksave;
		checklag(60000);
	    uosay('Стоп мля');
	    VGolos:=1;
	end;

end;

Procedure Korito;
var g : integer;
TypeK : Array [0..3] of Word; 
begin
krik;
checksave;
checklag(60000);
Water:=0;
FindDistance:=2;
TypeK[0] := $0B41 ; 
TypeK[1] := $0B42; 
TypeK[2] := $0B43 ; 
TypeK[3] := $0B44 ; 
for g:=0 to 3 do
begin
checksave;
checklag(60000);
FindTypeEx(TypeK[g],$0000,Ground,false);
if FindCount>0 then
Water:=FindItem;
end;
if Water=0 then
for g:=0 to 3 do 
begin
        krik;
        wait(100);
        checksave;
        checklag(60000);
        Water:=(GetQuantity(FindType(TypeK[g],ground)));
		if VGolos=1 then Break;
end;
end;

	  
Procedure Heal(who:cardinal);
begin
krik;
checksave;
checklag(60000);
l:=0;
while (GetHP(who)<(GetMaxHP(who)-10)) and (connected) and (l<6)do
        begin
			l:=l+1;
			checksave;
			checklag(60000);
			UseObject(sunduk);
			wait(300);
				if (GetQuantity(FindType(Bint,sunduk))> 0) and (GetQuantity(FindType(Bint,backpack))<1) then
				begin
				   repeat
				           krik;
					   CheckSave;
					   checklag(60000);
					   MoveItem(FindType(Bint,sunduk),100,BackPack,0,0,0);
					   wait (500);
					   CheckSave;
					   checklag(60000); 
				   until (Count(Bint) > 0)or (VGolos=1);
				end
			else 
			if (GetQuantity(FindType(Bint,sunduk))< 10) and (GetQuantity(FindType(Bint,backpack))< 1) and (VGolos=0)then
			   repeat
			           krik;
				   UseObject(sunduk);
				   CheckSave;
				   checklag(60000);
				   AddToSystemJournal('Бинты кончились');
				   krik;
				   wait(10000*6);
			   until (GetQuantity(FindType(Bint,sunduk)) > 0)or (GetHP(self)=GetMaxHP(self))or (VGolos=1);
			if count(Bint)>0 then
			begin 
				ctime := Now;
				checksave;
				checklag(60000);
				WaitTargetObject(who);
				UseType(Bint,$0000);
				h:=0;
				repeat  
                                        krik;
					wait(100);
					checksave;
					checklag(60000);
					h:=h+1;
				until  (InJournalBetweenTimes('Вы переместили|Вы успешно залечили раны|Вы полностью здоровы|успешно залечили ваши раны', ctime, Now)>= 0)or dead or (h>100)or (VGolos=1);
				if (count(BloodBint)>100) and (water<>0) then
				begin
					WaitTargetObject(water);
					UseType(BloodBint,$0000);
				End;
			end;
			krik;
		end;
end;

procedure shield;
begin
krik;
if ((GetType(ObjAtLayer(LhandLayer))<>Tshield)and(GetType(ObjAtLayer(LhandLayer))<>Tshield2)) and (Tshield<>0)then
begin
if (Sunduk<>0) and (count(Tshield)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(Tshield,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(Tshield,BackPack));
end;
end;

procedure Eqweapon;
begin
krik;
if ((GetType(ObjAtLayer(RhandLayer))<>Weapon)and 
(GetType(ObjAtLayer(LhandLayer))<>Weapon))and 
(Weapon<>0)then
begin
if (Sunduk<>0) and (count(Weapon)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindTypeEx(Weapon,CWeapon,Sunduk,false),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseType(Weapon,CWeapon);
end;
end;

procedure Golova;
begin
krik;
if ((GetType(ObjAtLayer(HatLayer))<>TGolova)and(GetType(ObjAtLayer(HatLayer))<>TGolova2))and (TGolova<>0) then
begin
if (Sunduk<>0) and (count(TGolova)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TGolova,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TGolova,BackPack));
end;
end;

procedure Sheia;
begin
krik;
if (GetType(ObjAtLayer(NeckLayer))<>TSheia)and (TSheia<>0) then
begin
if (Sunduk<>0) and (count(TSheia)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TSheia,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TSheia,BackPack));
end;
end;

procedure Tors;
begin
krik;
if ((GetType(ObjAtLayer(TorsoLayer))<>TTors)and(GetType(ObjAtLayer(TorsoLayer))<>TTors2))and (TTors<>0) then
begin
if (Sunduk<>0) and (count(TTors)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TTors,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TTors,BackPack));
end;
end;

procedure Nogi;
begin
krik;
if ((GetType(ObjAtLayer(PantsLayer))<>TNogi)and(GetType(ObjAtLayer(PantsLayer))<>TNogi2))and (TNogi<>0) then
begin
if (Sunduk<>0) and (count(TNogi)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TNogi,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TNogi,BackPack));
end;
end;

procedure Lokti;
begin
krik;
if ((GetType(ObjAtLayer(ArmsLayer))<>TLokti)and (GetType(ObjAtLayer(ArmsLayer))<>TLokti2))and (TLokti<>0) then
begin
if (Sunduk<>0) and (count(TLokti)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TLokti,Sunduk),1,BackPack,0,0,0);
    wait(500);
end;
  krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TLokti,BackPack));
end;
end;    

procedure Perchatki;
begin
krik;
if ((GetType(ObjAtLayer(GlovesLayer))<>TPerchatki)and(GetType(ObjAtLayer(GlovesLayer))<>TPerchatki2))and (TPerchatki<>0) then
begin
if (Sunduk<>0) and (count(TPerchatki)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TPerchatki,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TPerchatki,BackPack));
end;
end;

Procedure CheckShmot;
begin
krik;
AddToSystemJournal('304 проверка Щита');
shield; 
AddToSystemJournal('306 проверка оружия');
Eqweapon; 
AddToSystemJournal('308 проверка шлема');
Golova;
AddToSystemJournal('310 проверка шеи');
Sheia;
AddToSystemJournal('312 проверка торса');
Tors;
AddToSystemJournal('314 проверка ног');
Nogi;
AddToSystemJournal('316 проверка локти');
Lokti;
AddToSystemJournal('318 проверка перчи');
Perchatki;
krik;
end;


procedure Golos(Text,SenderName:String;SenderID : Cardinal); 
begin                   
	if (Text = 'Стоп мля') then
	begin
	AddToSystemJournal('314 = сто мля');
        if(SenderID=lama)then
			SetWarMode(false);
			AddToSystemJournal('lama ='+inttostr(lama));
			AddToSystemJournal('SenderID ='+inttostr(SenderID));
			//uosay('Стоп мля');
			SetWarMode(false);
			VGolos:=1;
      end; 
      	if (Text = 'гогого') then
	begin
	AddToSystemJournal('385 = гогого');
        if(SenderID=lama)then
	GGolos:=1;
      end; 
end; 

procedure Helper;
var
f:word;
begin
f:=0;
i:=0;
AddToSystemJournal('Helper');
repeat
        for i:=0 to 3 do
        begin
	checksave;
	checklag(60000);
	if WarMode = true then SetWarMode(false);
	wait(500);
	end;
	f:=f+1;
	wait(1000);
	checksave;
	checklag(60000);
//	uosay('Стоп мля');
until (f<4) or (not connected) or dead;
repeat
AddToSystemJournal('Лечу себя');
Heal(self);
checksave;
checklag(60000);
until (GetHP(self)>(GetMaxHP(self)-10))or dead or(not connected);
repeat   
AddToSystemJournal('Лечу цель');
Heal(lama);
checksave;
checklag(60000);
until (GetHP(lama)>(GetMaxHP(lama)-10)) or dead or (not connected);

	if (GetHP(lama)>(GetMaxHP(lama)-10))and(GetHP(self)>(GetMaxHP(self)-10))then
	begin
	        checksave;
                checklag(60000);
		uosay('гогого');
		VGolos:=0;
		GGolos:=0;
		Attack(lama);
	end;
AddToSystemJournal('вышел с хелпера');
end;




begin
SetPauseScriptOnDisconnectStatus(True);
SetARStatus(True);
//SetEventProc(evSpeech,'Golos');
SetEventProc(evUnicodeSpeech,'Golos');
VGolos:=0;
GGolos:=0;
Korito;
checksave;
checklag(60000);
Attack(lama);
while not dead do
  begin
	  if (VGolos=0) and (GGolos=0) then
	  Korito;
	  AddToSystemJournal('Лечение себя');
	  if (VGolos=0) and (GGolos=0)then
	  Heal(self);

	  AddToSystemJournal('проверка вещей');
	 if (VGolos=0)and (GGolos=0) then CheckShmot;

		if (VGolos=0) and (GGolos=0)then
			begin
				AddToSystemJournal('Лечение Цели');
				Heal(lama);
				
			end;
		if (VGolos=1) or (GGolos=1) then Helper;
			

  end;
end.
Last edited by shinma on 11.07.2011 10:03, edited 4 times in total.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
chernysh
Novice
Novice
Posts: 61
Joined: 05.06.2011 14:54
Location: Ukraine

Re: Спаринг двух войнов

Post by chernysh »

А зачем придумали глобальные переменные? Статусы между чарами через глобальные переменные передавай. И не нужно всяких "гогого"...
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Спаринг двух войнов

Post by shinma »

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

глобальные переменные не проканают если второй скрипт запущен в паре тыщь киллометров от меня. они не настолько глобальные чтобы так передаваться))
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
chernysh
Novice
Novice
Posts: 61
Joined: 05.06.2011 14:54
Location: Ukraine

Re: Спаринг двух войнов

Post by chernysh »

shinma wrote:мде спаринг кривоват. но основная его часть все таки работает. дальше кому будет не лень надо поиграть с паузами добавить удалить. и проверками.

глобальные переменные не проканают если второй скрипт запущен в паре тыщь киллометров от меня. они не настолько глобальные чтобы так передаваться))
А, ну тогда правильно. Обычно люди качают на одном stealth'е...
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Спаринг двух войнов

Post by shinma »

еще немного доработок
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Спаринг двух войнов

Post by shinma »

еще доработки
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Спаринг двух войнов

Post by burn7 »

shinma wrote:скрипт писался под шард Forest Wars

Code: Select all

//Написал Shinma
//писал для войнов и их брони.
//Задаем ИД сундука,ИД оппонента, Тип оружия, Цвет Оружия. поблизости должно быть корыто
//для мытья бинтов. но можно и без него, тогда бинтами запаситесь побольше.
//бинты,броню и оружие берет из сундука.ставим двух чаров рядом и запускаем 
//им этот скрипт.
//соответствено качает тот навык которое качает прописанное вами оружие

Program sparingVSlama;
{$Include 'all.inc'}
const
Sunduk=$4004FE71;   //Сундук с бинтами  и оружием, если сундук =0, то не ищет в сундуке,
//а берет только из сумки.
lama=$078B234B;      //ID игрока с которым стоите в спаринге
Weapon=$13E3;          //Тип оружия на котором качаетесь
CWeapon=$0482;         //Цвет оружия.

//Дальше идет типы брони для война. Если поставите 0  -ноль вмсто типа, проверка 
// этой вещи осуществляться не будет.

Tshield=$1B76 ;
Tshield2=$1B77;
Tgolova=$1412 ;
Tgolova2=$1419 ;
TSheia=$1413 ;
Ttors=$1415 ;
Ttors2=$1416 ;
Tnogi=$1411 ;
Tnogi2=$141A;
Tlokti=$1410 ;
Tlokti2=$1417 ;
Tperchatki=$1414 ;
Tperchatki2=$1418;




Bint=$0E21;          
BloodBint=$0E20;
var
h,l,i:word;
Water:cardinal;
VGolos,GGolos:word;
ctime:TDatetime;

procedure krik;
begin
checksave;
checklag(60000);
		if  (GetHP(self)<80)and (VGolos=0) then
	begin
		checksave;
		checklag(60000);
	    uosay('Стоп мля');
	    VGolos:=1;
	end;

end;

Procedure Korito;
var g : integer;
TypeK : Array [0..3] of Word; 
begin
krik;
checksave;
checklag(60000);
Water:=0;
FindDistance:=2;
TypeK[0] := $0B41 ; 
TypeK[1] := $0B42; 
TypeK[2] := $0B43 ; 
TypeK[3] := $0B44 ; 
for g:=0 to 3 do
begin
checksave;
checklag(60000);
FindTypeEx(TypeK[g],$0000,Ground,false);
if FindCount>0 then
Water:=FindItem;
end;
if Water=0 then
for g:=0 to 3 do 
begin
        krik;
        wait(100);
        checksave;
        checklag(60000);
        Water:=(GetQuantity(FindType(TypeK[g],ground)));
		if VGolos=1 then Break;
end;
end;

	  
Procedure Heal(who:cardinal);
begin
krik;
checksave;
checklag(60000);
l:=0;
while (GetHP(who)<(GetMaxHP(who)-10)) and (connected) and (l<6)do
        begin
			l:=l+1;
			checksave;
			checklag(60000);
			UseObject(sunduk);
			wait(300);
				if (GetQuantity(FindType(Bint,sunduk))> 0) and (GetQuantity(FindType(Bint,backpack))<1) then
				begin
				   repeat
				           krik;
					   CheckSave;
					   checklag(60000);
					   MoveItem(FindType(Bint,sunduk),100,BackPack,0,0,0);
					   wait (500);
					   CheckSave;
					   checklag(60000); 
				   until (Count(Bint) > 0)or (VGolos=1);
				end
			else 
			if (GetQuantity(FindType(Bint,sunduk))< 10) and (GetQuantity(FindType(Bint,backpack))< 1) and (VGolos=0)then
			   repeat
			           krik;
				   UseObject(sunduk);
				   CheckSave;
				   checklag(60000);
				   AddToSystemJournal('Бинты кончились');
				   krik;
				   wait(10000*6);
			   until (GetQuantity(FindType(Bint,sunduk)) > 0)or (GetHP(self)=GetMaxHP(self))or (VGolos=1);
			if count(Bint)>0 then
			begin 
				ctime := Now;
				checksave;
				checklag(60000);
				WaitTargetObject(who);
				UseType(Bint,$0000);
				h:=0;
				repeat  
                                        krik;
					wait(100);
					checksave;
					checklag(60000);
					h:=h+1;
				until  (InJournalBetweenTimes('Вы переместили|Вы успешно залечили раны|Вы полностью здоровы|успешно залечили ваши раны', ctime, Now)>= 0)or dead or (h>100)or (VGolos=1);
				if (count(BloodBint)>100) and (water<>0) then
				begin
					WaitTargetObject(water);
					UseType(BloodBint,$0000);
				End;
			end;
			krik;
		end;
end;

procedure shield;
begin
krik;
if ((GetType(ObjAtLayer(LhandLayer))<>Tshield)and(GetType(ObjAtLayer(LhandLayer))<>Tshield2)) and (Tshield<>0)then
begin
if (Sunduk<>0) and (count(Tshield)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(Tshield,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(Tshield,BackPack));
end;
end;

procedure Eqweapon;
begin
krik;
if ((GetType(ObjAtLayer(RhandLayer))<>Weapon)and 
(GetType(ObjAtLayer(LhandLayer))<>Weapon))and 
(Weapon<>0)then
begin
if (Sunduk<>0) and (count(Weapon)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindTypeEx(Weapon,CWeapon,Sunduk,false),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseType(Weapon,CWeapon);
end;
end;

procedure Golova;
begin
krik;
if ((GetType(ObjAtLayer(HatLayer))<>TGolova)and(GetType(ObjAtLayer(HatLayer))<>TGolova2))and (TGolova<>0) then
begin
if (Sunduk<>0) and (count(TGolova)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TGolova,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TGolova,BackPack));
end;
end;

procedure Sheia;
begin
krik;
if (GetType(ObjAtLayer(NeckLayer))<>TSheia)and (TSheia<>0) then
begin
if (Sunduk<>0) and (count(TSheia)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TSheia,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TSheia,BackPack));
end;
end;

procedure Tors;
begin
krik;
if ((GetType(ObjAtLayer(TorsoLayer))<>TTors)and(GetType(ObjAtLayer(TorsoLayer))<>TTors2))and (TTors<>0) then
begin
if (Sunduk<>0) and (count(TTors)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TTors,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TTors,BackPack));
end;
end;

procedure Nogi;
begin
krik;
if ((GetType(ObjAtLayer(PantsLayer))<>TNogi)and(GetType(ObjAtLayer(PantsLayer))<>TNogi2))and (TNogi<>0) then
begin
if (Sunduk<>0) and (count(TNogi)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TNogi,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TNogi,BackPack));
end;
end;

procedure Lokti;
begin
krik;
if ((GetType(ObjAtLayer(ArmsLayer))<>TLokti)and (GetType(ObjAtLayer(ArmsLayer))<>TLokti2))and (TLokti<>0) then
begin
if (Sunduk<>0) and (count(TLokti)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TLokti,Sunduk),1,BackPack,0,0,0);
    wait(500);
end;
  krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TLokti,BackPack));
end;
end;    

procedure Perchatki;
begin
krik;
if ((GetType(ObjAtLayer(GlovesLayer))<>TPerchatki)and(GetType(ObjAtLayer(GlovesLayer))<>TPerchatki2))and (TPerchatki<>0) then
begin
if (Sunduk<>0) and (count(TPerchatki)=0) then
  begin
    UseObject(Sunduk);
    wait(500);
    krik;
    checksave;
    checklag(60000);
    MoveItem(FindType(TPerchatki,Sunduk),1,BackPack,0,0,0);
    wait(500);
  end;
krik;
wait(500);
checksave;
checklag(60000);
UseObject(FindType(TPerchatki,BackPack));
end;
end;

Procedure CheckShmot;
begin
krik;
AddToSystemJournal('304 проверка Щита');
shield; 
AddToSystemJournal('306 проверка оружия');
Eqweapon; 
AddToSystemJournal('308 проверка шлема');
Golova;
AddToSystemJournal('310 проверка шеи');
Sheia;
AddToSystemJournal('312 проверка торса');
Tors;
AddToSystemJournal('314 проверка ног');
Nogi;
AddToSystemJournal('316 проверка локти');
Lokti;
AddToSystemJournal('318 проверка перчи');
Perchatki;
krik;
end;


procedure Golos(Text,SenderName:String;SenderID : Cardinal); 
begin                   
	if (Text = 'Стоп мля') then
	begin
	AddToSystemJournal('314 = сто мля');
        if(SenderID=lama)then
			SetWarMode(false);
			AddToSystemJournal('lama ='+inttostr(lama));
			AddToSystemJournal('SenderID ='+inttostr(SenderID));
			//uosay('Стоп мля');
			SetWarMode(false);
			VGolos:=1;
      end; 
      	if (Text = 'гогого') then
	begin
	AddToSystemJournal('385 = гогого');
        if(SenderID=lama)then
	GGolos:=1;
      end; 
end; 

procedure Helper;
var
f:word;
begin
f:=0;
i:=0;
AddToSystemJournal('Helper');
repeat
        for i:=0 to 3 do
        begin
	checksave;
	checklag(60000);
	if WarMode = true then SetWarMode(false);
	wait(500);
	end;
	f:=f+1;
	wait(1000);
	checksave;
	checklag(60000);
//	uosay('Стоп мля');
until (f<4) or (not connected) or dead;
repeat
AddToSystemJournal('Лечу себя');
Heal(self);
checksave;
checklag(60000);
until (GetHP(self)>(GetMaxHP(self)-10))or dead or(not connected);
repeat   
AddToSystemJournal('Лечу цель');
Heal(lama);
checksave;
checklag(60000);
until (GetHP(lama)>(GetMaxHP(lama)-10)) or dead or (not connected);

	if (GetHP(lama)>(GetMaxHP(lama)-10))and(GetHP(self)>(GetMaxHP(self)-10))then
	begin
	        checksave;
                checklag(60000);
		uosay('гогого');
		VGolos:=0;
		GGolos:=0;
		Attack(lama);
	end;
AddToSystemJournal('вышел с хелпера');
end;




begin
SetPauseScriptOnDisconnectStatus(True);
SetARStatus(True);
//SetEventProc(evSpeech,'Golos');
SetEventProc(evUnicodeSpeech,'Golos');
VGolos:=0;
GGolos:=0;
Korito;
checksave;
checklag(60000);
Attack(lama);
while not dead do
  begin
	  if (VGolos=0) and (GGolos=0) then
	  Korito;
	  AddToSystemJournal('Лечение себя');
	  if (VGolos=0) and (GGolos=0)then
	  Heal(self);

	  AddToSystemJournal('проверка вещей');
	 if (VGolos=0)and (GGolos=0) then CheckShmot;

		if (VGolos=0) and (GGolos=0)then
			begin
				AddToSystemJournal('Лечение Цели');
				Heal(lama);
				
			end;
		if (VGolos=1) or (GGolos=1) then Helper;
			

  end;
end.
Подскажите где ставить колличество ХП,при котором начинаеться хелиться чар:??????????????
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Re: Спаринг двух войнов

Post by Fenix »

Code: Select all

while (GetHP(who)<(GetMaxHP(who)-10)) and (connected) and (l<6)do
Тобишь если чару отбили как минимум 10 хитов - начинает хилить.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Спаринг двух войнов

Post by MuDaCk »

дохнут персы. уже второй день со скриптом маюсь)))
1) перс не одевает вещи, а юзает их.
2) персы не останавливаются, а продолжают друг друга бить, сколько не кричи...
Но спасибо за заготовку.
My name is Игорёшка Image
Пишу скрипты за едуImage
Post Reply