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

Сброс шерсти

тут можно задать вопрос по скриптингу
Post Reply
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Сброс шерсти

Post by burn7 »

Program Sheep;
{$Include 'all.inc'}

var b:TDateTime;

Begin
SetARStatus(true);
while not dead do
begin
checksave;
WaitConnection(5000);
while findtype($00CF,ground) > 0 do
begin
checksave;
WaitConnection(5000);
waittargetobject(finditem);
useobject(findtype($0F9E,backpack));

AddToSystemJournal('Cutting');
wait(1000);
end;

UOSay('ля-ля-ля');
wait(50000);

WaitConnection(5000);

if getquantity(findtype($0DF8,backpack)) > 9 then stack($0DF8,0);

end;
End.





Прошу подсказать граждане дорогие,правельный пусть,в моём нелёгком прибывании в стране скриптов,созданной Паскалем.Прочем отвлёкся..) не могу понять какая часть скрипта отвечает за сброс определённого предмета на пол,потому что не скидывает нефига.!?????
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Сброс шерсти

Post by nah nah »

Я конечно не программист и паскаль знаю очень поверхностно, но кажется, что в строке

Code: Select all

if getquantity(findtype($0DF8,backpack)) > 9 then stack($0DF8,0);
stack($0DF8,0) совершает какое-то действие при накоплении в бэкпаке чего-то там больше 9ти.
Такой функции в вики не нашёл, может поменять на MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0)?
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

nah nah wrote:Я конечно не программист и паскаль знаю очень поверхностно, но кажется, что в строке

Code: Select all

if getquantity(findtype($0DF8,backpack)) > 9 then stack($0DF8,0);
stack($0DF8,0) совершает какое-то действие при накоплении в бэкпаке чего-то там больше 9ти.
Такой функции в вики не нашёл, может поменять на MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0)?
Тобишь if (findcount > 0) then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0) ? =)
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

Сделал вот так вот

Program xz;
{$Include 'all.inc'}


Begin
SetARStatus(true);
while not dead do
begin
checksave;
WaitConnection(5000);
while findtype($00CF,ground) > 0 do
begin
checksave;
WaitConnection(5000);
waittargetobject(finditem);
useobject(findtype($0F9E,backpack));

wait(1000);
end;

UOSay('ля-ля-ля');
wait(50000);

WaitConnection(5000);

if (findcount > 0) then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0)

end;
End.

Но по прежнему не скидывает
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Сброс шерсти

Post by nah nah »

надо так

Code: Select all

if Count($0DF8, -1) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

nah nah wrote:надо так

Code: Select all

if Count($0DF8, -1) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);
а если так то пишет Invalid number of parameters
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Сброс шерсти

Post by nah nah »

Это из-за моего незнания встроенных функций стелса. В Count только 1 параметр

Code: Select all

if Count($0DF8) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Сброс шерсти

Post by nah nah »

Но если на земле не будет такой вещи, бросит в пак чара.
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

Program xz;
{$Include 'all.inc'}


Begin
SetARStatus(true);
while not dead do
begin
checksave;
WaitConnection(5000);
while findtype($00CF,ground) > 0 do
begin
checksave;
WaitConnection(5000);
waittargetobject(finditem);
useobject(findtype($0F9E,backpack));

wait(1000);
end;

UOSay('ля-ля-ля');
wait(50000);

WaitConnection(5000);

if Count($0DF8) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);

end;
End.

Может быть ещё кто знает,почему не скидывает?Потому что проблема не уходит =(
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Сброс шерсти

Post by MuDaCk »

burn7 wrote:
Может быть ещё кто знает,почему не скидывает?Потому что проблема не уходит =(
сделай так

Code: Select all

Program xz;
 {$Include 'all.inc'}


 Begin
 SetARStatus(true);
 while not dead do
 begin
 checksave;
 WaitConnection(5000);
 while findtype($00CF,ground) > 0 do
 begin
 checksave;
 WaitConnection(5000);
 waittargetobject(finditem);
 useobject(findtype($0F9E,backpack));

 wait(1000);
 end;

 UOSay('ля-ля-ля');
 wait(50000);

 WaitConnection(5000);

if CountEX($0DF8,$FFFF,backpack) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);

 end;
 End.
My name is Игорёшка Image
Пишу скрипты за едуImage
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

небросает :evil:
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

В общем он сбрасывает если не резать,а если резать овец то не сбрасывает )))
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Re: Сброс шерсти

Post by Alex »

вот функция stack(она корректно сбрасывает на пол)

Code: Select all

procedure stack(ObjType, Color : word); 
var PackItem, GroundItem : Cardinal; 
begin 
   PackItem := 0; 
   GroundItem := 0; 
   Findtype(ObjType,backpack);                    
   IF FindFullQuantity > 0 then PackItem := finditem; 
   Findtype(ObjType,ground);                    
   IF FindFullQuantity > 0 then IgnoreReset; 
   repeat 
      FindtypeEx(ObjType,Color,ground,false); 
      IF FindCount > 0 then 
      if FindQuantity > 55000 then Ignore(finditem) 
      else GroundItem := finditem; 
      FindtypeEx(ObjType,Color,ground,false); 
   until (FindCount = 0) or (GroundItem <> 0); 
   if (PackItem <> 0) and (GroundItem <> 0) then MoveItems(backpack,ObjType,Color,GroundItem,0,0,0,1000) 
   else DropHere(PackItem); 
end;
Новый стелс лежит тут. Стелс это произведение искусства! :)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Сброс шерсти

Post by Vizit0r »

Stack и еще десятки полезных функций лежат в http://www.stealth.od.ua/forum/viewtopic.php?f=3&t=152
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Сброс шерсти

Post by burn7 »

Alex wrote:вот функция stack(она корректно сбрасывает на пол)

Code: Select all

procedure stack(ObjType, Color : word); 
var PackItem, GroundItem : Cardinal; 
begin 
   PackItem := 0; 
   GroundItem := 0; 
   Findtype(ObjType,backpack);                    
   IF FindFullQuantity > 0 then PackItem := finditem; 
   Findtype(ObjType,ground);                    
   IF FindFullQuantity > 0 then IgnoreReset; 
   repeat 
      FindtypeEx(ObjType,Color,ground,false); 
      IF FindCount > 0 then 
      if FindQuantity > 55000 then Ignore(finditem) 
      else GroundItem := finditem; 
      FindtypeEx(ObjType,Color,ground,false); 
   until (FindCount = 0) or (GroundItem <> 0); 
   if (PackItem <> 0) and (GroundItem <> 0) then MoveItems(backpack,ObjType,Color,GroundItem,0,0,0,1000) 
   else DropHere(PackItem); 
end;
Благодарю,попозже постараюсь соеденить..
Post Reply