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

Кормилка лошадок

тут можно задать вопрос по скриптингу
Post Reply
Jedi[EP]
Neophyte
Neophyte
Posts: 14
Joined: 09.12.2006 13:33
Contact:

Кормилка лошадок

Post by Jedi[EP] »

Ребят помогите найти ошибку.
он кормит 1-ну лошадь и потом не проверяет есть ли еда и пишет просто что покормил не пробуя кормить. :(
заранее благодарю.

Code: Select all

program kormilka;

var time_begin : TDateTime;
    animal_type : array [1..4] of Byte;
    count, i : Integer;
    chest : Cardinal;
    eda_type, marker : word;
    

Begin
chest := $400ECCE6 //контейнер с едой
eda_type := $0D39   // тип еды
marker := $0E20   // bloody bandage, должны находится в chest
animal_type[1] := $00C8   // Horse (light brown)
animal_type[2] := $00CC   // Horse (dark brown)
animal_type[3] := $00E2   // Horse (light gray)
animal_type[4] := $00E4   // Horse (gray-brown)
FindDistance := 10
FindVertical := 20

ClearJournal
SetARStatus(true)
if not connected then connect
while not connected do wait(100)
SetWarMode(false)

repeat
while FindTypeEx(marker,0,chest,false) = 0 do
         begin
         AddToSystemJournal('Открываю контейнер с ресурсами')
         UseObject(chest)
         wait(1000)
         end
	 FindTypeEx(eda_type,0,backpack,false)
      if FindQuantity < 10 then
         begin
         FindTypeEx(eda_type,0,chest,false)
         AddToSystemJournal('Кол-во еды в контейнере: '+IntToStr(FindQuantity))
         if FindQuantity < 10 then
            begin
            UOSay('Еда закончились!!! Срочно киньте репы в сундук!!!')
	    
            end
         else
            begin
            if FindQuantity > 10 then Grab(finditem,10) else Grab(finditem,10)
            wait(1000)
            end
         end
   while (dead = false) and (connected = true) do
      begin

      if (i > 0) and (i <= 4) then
         begin
	 while FindTypeEx(animal_type[i], $FFFF, ground, false) <> 0 do
            begin
MoveItems(backpack,eda_type,$0000,finditem,0,0,0,500)
wait(1000)
Ignore(FindItem)
UOSay('pokormil')
wait(500)
count := count + 1
       end
 i := i + 1       
         end
      else
         begin
         AddToSystemJournal('Кол-во покормленой живности: '+IntToStr(count)+' шт.')
         count := 0
         IgnoreReset
         wait(1000)
         i := 1
         end
      end

   wait(500)

   if dead then
      begin
      AddToSystemJournal('Умерли')
      SetARStatus(false)
      Disconnect
      Exit
      end

until false

End.

Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

Code: Select all

MoveItems(backpack,eda_type,$0000,finditem,0,0,0,500)
простое перемещение в животное... у вас так? точно?

Вобще лучше считать что "покормил" исходя их уменьшения кол-ва еды.
Jedi[EP]
Neophyte
Neophyte
Posts: 14
Joined: 09.12.2006 13:33
Contact:

Post by Jedi[EP] »

Именно так. хех он зацикливается и не переходит к поиску следующей лошади :(
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

как минимум, что бросается в глаза - переменная count .... такая ф-ция уже есть и нельзя использовать это имя под переменную.
Jedi[EP]
Neophyte
Neophyte
Posts: 14
Joined: 09.12.2006 13:33
Contact:

Post by Jedi[EP] »

Но ведь этот скрипт работает отлично:
http://stealth.od.ua/forum/viewtopic.php?t=941
Jedi[EP]
Neophyte
Neophyte
Posts: 14
Joined: 09.12.2006 13:33
Contact:

Post by Jedi[EP] »

up
еще актуально.
Post Reply