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

Veterinary

тут можно задать вопрос по скриптингу
Post Reply
-=JoKeR=-
Novice
Novice
Posts: 153
Joined: 10.02.2008 11:19
Location: [Forest Wars] Ode$$a

Veterinary

Post by -=JoKeR=- »

Давно не писал скрипты на стэлс, немного на сфере писал, помогаю админу одному =)
Решил прокачать ветеринарию и написал себе скриптик. Но есть пару вопросов.
Скрипт работает отлично, но в журнале проскакивает строка: System: Unexpected target info. Не знаю из-за чего.
Хочу чтобы при выключении скрипта сбрасывался вар режим, такое возможно ?
Проверьте пожалуста на корректность скрипта тоже если не лень =)
Что вспомню допишу.
Update: Процедура CleenBandages не вызывается или не работает.

Code: Select all

Program Veterinary;
// made by -=JoKeR=- ©
// For Forest Wars Shard ©
// v1.4

{$Include 'all.inc'}

const
Animal = $000DBE9B;
Bandages = $0E21;
BlBandages = $0E20;
Wash = $400C9D71;
WeaponBag = $400E0C0A;
WeaponType = $13F8;
MaxBlBandages = 200;

// берём оружие с сумки на полу
  procedure GetWeapon;
  Begin
  if ObjAtLayer(LhandLayer) = 0 then
    AddToSystemJournal('Открываем сумку');
	checklag;
	checksave;
    UseObject(WeaponBag);
	wait(2000);
	AddToSystemJournal('Ищем оружие');
	FindType(WeaponType,WeaponBag);
	if FindCount >= 1 then
	  begin
	    wait(1000);
		checklag;
		checksave;
	    MoveItem(FindItem,1,backpack,0,0,0);
		AddToSystemJournal('Взял оружие из сумки');
		wait(1000);
	  end
	else
	  begin
	    AddToSystemJournal('Не нашол оружия в сумке! -=Exit=-');
		SetWarMode(false);
		exit;
		SetARStatus(false);
		Disconnect;
	  end;
	FindType(WeaponType,backpack);
	if FindCount >=1 then
	  begin
	    checklag;
		checksave;
	    UseObject(FindItem);
		AddToSystemJournal('Одел оружие');
		wait(2000);
		canceltarget;
	  end
	else
	  begin
	    AddToSystemJournal('Не нашол оружия в бэкпаке! -=Exit=-');
		SetWarMode(false);
		exit;
		SetARStatus(false);
		Disconnect;
	  end;
  End;
  
// берём бинты с пола
  procedure GetBandages;
  Begin
    FindType(Bandages,ground);
	if FindCount >= 0 then
	  begin
	    checklag;
		checksave;
	    Grab(FindItem,100);
		wait(2000);
		AddToSystemJournal('Взял бинты с пола');
	  end
	else
	  begin
	    AddToSystemJournal('Нет бинтов на полу! -=Exit=-');
		SetWarMode(false);
		exit;
		SetARStatus(false);
		Disconnect;
	  end;
  End;

// моем бинты  
  procedure CleenBandages;
  Begin
    checklag;
	checksave;
    AddToSystemJournal('Начинаю мыть бинты');
	UseObject(BlBandages);
	WaitForTarget(5000); 
	if TargetPresent then TargetToObject(Wash);
	AddToSystemJournal('Вымыл бинты');
  End;
  
   function AnimalHPControl : Double; 
   begin 
      Result := 100 * GetHP(Animal) / GetMaxHP(Animal); 
   end;
  
Begin
  AddToSystemJournal('START');
  FindDistance := 3;
  SetARStatus(true);
  While not Dead do
  begin
    if (AnimalHPControl > 30.0) then
      if ObjAtLayer(LHandLayer) = 0 then
      GetWeapon;
      if not WarMode then SetWarMode(true);
	  AddToSystemJournal('Начинаем атаку');
	  Attack(Animal);
	  repeat
	    if TargetPresent then CancelTarget;
	    wait(2000)
	    FindType(Bandages,backpack);
	    if FindCount >= 1 then
		  checklag;
		  checksave;
	      UseType(Bandages,$FFFF);
	      WaitForTarget(5000);
	      If TargetPresent then TargetToObject(Animal);
	  until (Count(Bandages) <= 0);
	  FindType(Bandages,backpack);
	  if FindCount <= 0 then
	    AddToSystemJournal('Нет бинтов в бэкпаке, будем добирать');
	    GetBandages;
	  FindType(BlBandages,backpack);
	  if FindCount >= MaxBlBandages then
	    CleenBandages
	else
	  begin
	    SetWarMode(false);
		wait(500);
	  end;
  end;
End.
-=JoKeR=-
Novice
Novice
Posts: 153
Joined: 10.02.2008 11:19
Location: [Forest Wars] Ode$$a

Post by -=JoKeR=- »

без вариантов ? ... :?
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Я не смотрю - слишком длинный скрипт. Я для себя давно выработал правило - чужие скрипты длиннее строк так 30 не читать.

Локализуй ошибку сам, хоть примерно. Сделать это легко выводом тестовых сообщений. Потом кидай кусок и описание ошибки. Тогда посмотрим.
AlexM2008
Neophyte
Neophyte
Posts: 16
Joined: 23.05.2008 12:07
Contact:

Post by AlexM2008 »

FindCount - Количество найденных СТОПОК!

Если у тебя FindType(BlBandages,backpack) будет больше 200 (MaxBlBandages), тогда твоя конструкция

Code: Select all

if FindCount >= MaxBlBandages then 
       CleenBandages 
сработает.

Пробуй:

Code: Select all

if count(BlBandages)>= MaxBlBandages then 
       CleenBandages 
-=JoKeR=-
Novice
Novice
Posts: 153
Joined: 10.02.2008 11:19
Location: [Forest Wars] Ode$$a

Post by -=JoKeR=- »

я уже давно написал по другому и проще, и давно прокачал скил :)
AlexM2008
Neophyte
Neophyte
Posts: 16
Joined: 23.05.2008 12:07
Contact:

Post by AlexM2008 »

О! Живые люди!

Кто-нибудь пользует библиотеку функций StealthMUL?
-=JoKeR=-
Novice
Novice
Posts: 153
Joined: 10.02.2008 11:19
Location: [Forest Wars] Ode$$a

Post by -=JoKeR=- »

лично я - нет
незачем
aalexx
Novice
Novice
Posts: 69
Joined: 06.02.2012 20:43
Location: Латвия\Англия
Contact:

Re: Veterinary

Post by aalexx »

А есть у кого скрипт, чтобы полиморфаться и отхиливаться с курсой ?
Post Reply