Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
DRW сбор еды с полей (takings eat)
DRW сбор еды с полей (takings eat)
program sbor;
{$Include 'all.inc'}
const
rostoc=$0C76 ; //ID еды на поле
Eat=$0C77 ; //ID еды в сумке.
begin
checksave;
while CountEx(Eat,$0000,backpack)<60 do //будет собирать пока не наберет 60 штук
begin
checksave;
FindDistance:=4;
FindTypeEx(rostoc, $0000, Ground , false);
NewMoveXY(GetX(FindItem),GetY(FindItem),true,3,false);
checksave;
UseObject(FindItem);
wait(3000);
end;
end.
{$Include 'all.inc'}
const
rostoc=$0C76 ; //ID еды на поле
Eat=$0C77 ; //ID еды в сумке.
begin
checksave;
while CountEx(Eat,$0000,backpack)<60 do //будет собирать пока не наберет 60 штук
begin
checksave;
FindDistance:=4;
FindTypeEx(rostoc, $0000, Ground , false);
NewMoveXY(GetX(FindItem),GetY(FindItem),true,3,false);
checksave;
UseObject(FindItem);
wait(3000);
end;
end.
Re: DRW сбор еды с полей (takings eat)
А как сделать так, чтобы собирал несколько типов предметов сразу.
Re: DRW сбор еды с полей (takings eat)
Если тебе нужен лут с земли, то этот скрипт не пойдет. Он использует найденные на земле предметы дабл-кликом, а лут переносит их в пак - это разные вещи и разные функции.Molotov wrote:А как сделать так, чтобы собирал несколько типов предметов сразу.
В скрипте, вот эту строку, номер 44,
Code: Select all
wait(3000);
Code: Select all
ClearJournal;
repeat
wait(100);
until (InJournal('You put') <> -1);
ClearJournal;
wait(500);
А вот и сам скрипт:
Code: Select all
program sbor;
{$Include 'all.inc'}
const
max_weight = 600; //Максимальный Вес
var
types: array[1..5] of word; // 5 - размер массива, кол-во элементов.
num_of_types,i: integer;
tmp_id:cardinal;
procedure Init;
begin
types[1] := $0000; //Тип 1
types[2] := $0000; //Тип 2
types[3] := $0000; //Тип 3
types[4] := $0000; //Тип 4
types[5] := $0000; //Тип 5
num_of_types := 5; //кол-во элементов в массиве
end;
Begin
Init;
while not dead do
begin
checksave;
while Weight < max_weight do
begin
for i := 1 to num_of_types do
begin
FindDistance:= 4;
tmp_id := FindType(types[i], Ground);
wait(100);
if tmp_id <> 0 then
begin
repeat
AddToSystemJournal('ЧТо-то нашел, иду рвать...');
NewMoveXY(GetX(tmp_id),GetY(tmp_id),true,2,false);
UseObject(tmp_id);
AddToSystemJournal('Сорвал...');
wait(3000);
tmp_id := FindType(types[i], Ground);
wait(100);
until (tmp_id = 0);
end;
end;
AddToSystemJournal('Нечего рвать... жду 5 секунд...');
wait(5000);
end;
AddToSystemJournal('--->!!!Вес набран, закругляемся!!!');
exit;
end;
AddToSystemJournal('--->!!!Убили Гады!!!');
End.
Re: DRW сбор еды с полей (takings eat)
Мне как раз нужен скрипт на сбор ростков с земли дабл кликом.
Спасибо.
Спасибо.
Last edited by Molotov on 13.01.2012 8:32, edited 1 time in total.
Re: DRW сбор еды с полей (takings eat)
Значит можешь пользоваться, если что пиши что не так, не тестил, писал в блокноте.
Re: DRW сбор еды с полей (takings eat)
Выдал ошибку в 41 строке...
удалил ее и все пошло...
Code: Select all
NewMoveXY(GetX(tmp_id),GetY(tmp_id),true,2,false);
Re: DRW сбор еды с полей (takings eat)
Всем привет. Даже не знаю как без этой строки он у тебя теперь ходит)) Но это неважно. просто попробуй стелс новую версию поставить.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: DRW сбор еды с полей (takings eat)
Скрипт, кстати, не очень толковый. Он собирает еду из разных мест, а не по порядку.
Re: DRW сбор еды с полей (takings eat)
потому что нет сортировки.
вот кусок сортировки, нарыл у себя в хламе
адаптировать не буду, нет времени.
вот кусок сортировки, нарыл у себя в хламе
адаптировать не буду, нет времени.
Code: Select all
Findtype(Bush[BushType],ground);
AddToSystemJournal('Всего кустов этого типа найдено ' + IntToStr(FindFullQuantity));
if (FindFullQuantity = 0) then Exit;
StrubsList := TStringList.Create;
GetFindedList(StrubsList);
For i:= 0 to (StrubsList.Count-1) do A[i] := StrToInt64('$'+StrubsList.Strings[i]);
For i := (StrubsList.Count) to 300 do A[i] := 0;
If (StrubsList.Count> 2) Then
begin
//сортировка пузырьковым методом
j := StrubsList.Count-1;
flag := True;
while ((j >= 1) and flag) do
begin
j := j - 1;
flag := False;
for i := 0 to j - 1 do
begin
if ((i < (StrubsList.Count -2)) and ((GetX(A[i]) > GetX(A[i+1])) or ((GetX(A[i]) = GetX(A[i+1])) and (GetY(A[i]) > GetY(A[i+ 1]))))) then
begin
tempValue := A[I];
A[I] := A[i+1];
A[i+1] := tempValue;
flag := True;
end
end
end
end;
//конец сортировки
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: DRW сбор еды с полей (takings eat)
Кто-нибудь доделал скрипт? Я как ни пытался использовать помощь Визитора , но так и не удалось ничего.
Re: DRW сбор еды с полей (takings eat)
А при чем тут "толк" скрипта и зачем собирать по порядку?aalexx wrote:Скрипт, кстати, не очень толковый. Он собирает еду из разных мест, а не по порядку.
В тех задании не был указан сбор по порядку, да и смысла нет, за 5 минут можно выбрать все что есть в округе. Зачем заморачиваться? Скрипт работает, а это главное.