Page 1 of 1
Сброс шерсти
Posted: 21.12.2011 16:35
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.
Прошу подсказать граждане дорогие,правельный пусть,в моём нелёгком прибывании в стране скриптов,созданной Паскалем.Прочем отвлёкся..) не могу понять какая часть скрипта отвечает за сброс определённого предмета на пол,потому что не скидывает нефига.!?????
Re: Сброс шерсти
Posted: 21.12.2011 16:43
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)?
Re: Сброс шерсти
Posted: 21.12.2011 17:04
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) ? =)
Re: Сброс шерсти
Posted: 21.12.2011 17:14
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.
Но по прежнему не скидывает
Re: Сброс шерсти
Posted: 21.12.2011 17:18
by nah nah
надо так
Code: Select all
if Count($0DF8, -1) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);
Re: Сброс шерсти
Posted: 21.12.2011 17:24
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
Re: Сброс шерсти
Posted: 21.12.2011 17:28
by nah nah
Это из-за моего незнания встроенных функций стелса. В
Count только 1 параметр
Code: Select all
if Count($0DF8) > 0 then MoveItem(FindType($0DF8, BackPack), 0, FindType($0DF8, Ground), 0, 0, 0);
Re: Сброс шерсти
Posted: 21.12.2011 17:30
by nah nah
Но если на земле не будет такой вещи, бросит в пак чара.
Re: Сброс шерсти
Posted: 21.12.2011 17:37
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.
Может быть ещё кто знает,почему не скидывает?Потому что проблема не уходит =(
Re: Сброс шерсти
Posted: 21.12.2011 17:54
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.
Re: Сброс шерсти
Posted: 21.12.2011 18:00
by burn7
небросает

Re: Сброс шерсти
Posted: 21.12.2011 18:23
by burn7
В общем он сбрасывает если не резать,а если резать овец то не сбрасывает )))
Re: Сброс шерсти
Posted: 21.12.2011 21:06
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;
Re: Сброс шерсти
Posted: 21.12.2011 21:14
by Vizit0r
Re: Сброс шерсти
Posted: 22.12.2011 6:49
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;
Благодарю,попозже постараюсь соеденить..