Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Мининг вокруг себя
Мининг вокруг себя
Если у каго мининг вокруг себя и чтобы кирки просто менял и все если можна конечно за рание спасибо .
В моем скрипте на мининг есть соответствующие функции. Вырежь и склей. Будут проблемы - пости сюда то, что получается и спрашивай.
Отличие этого форума от форума инжекта в том, что практически бесполезно просить кого-то написать что-то за тебя. А если пытаешься разобраться сам и спрашиваешь помощи - всегда кто-нибудь поможет.
Отличие этого форума от форума инжекта в том, что практически бесполезно просить кого-то написать что-то за тебя. А если пытаешься разобраться сам и спрашиваешь помощи - всегда кто-нибудь поможет.
Code: Select all
program MinRound;
{$Include 'all.inc'}
const
TileNum = $1342;
PickAxe = $49BB5D88;
{типы кучек}
{Сообщения}
Msg1 = 'put';
Msg2 = 'fail';
Msg3 = 'you try';
Msg4 = 'no ore';
var x,y,k : integer;
Begin
while weight < 200 do
begin
for x:=-2 to 2 do
begin
for y:=-2 to 2 do
begin
WaitForTarget(500);
UseObject(PickAxe);
WaitTargetTile(TileNum,GetX(self)+x,GetY(self)+y,0);
addtosystemjournal('Start to mine...');
repeat
wait(100);
until InJournal('put|fail|no ore')<>-1;
end;
end;
end;
End.
Ну, вот так, по идее, должно работать:
Проверяй, а главное - пытайся понять что и как сделано.
Code: Select all
Program MiningAround;
var
k, x, y : Integer;
mn1, mf1, mf2, ms1 : Integer;
ctime : TDateTime;
const
Pickaxe1 = $0E85; // Типы кирок
Pickaxe2 = $0E86;
function CheckPickaxe : Boolean;
// Проверяем есть ли кирка и одеваем ее (если необходимо) в правую руку
// возвращаем true - если все ок, false - если нет кирки
// Проверка на то, что в руке у чара не кирка не производится!
var tmpser : Cardinal;
begin
Result := true;
if (ObjAtLayerEx(RhandLayer,self) = 0) then
begin
// ничего в руках нету
tmpser := findtype(Pickaxe1,backpack);
if tmpser = 0 then tmpser := findtype(Pickaxe2,backpack);
if tmpser = 0 then
begin
Result := false;
exit;
end;
if not equip(RhandLayer,tmpser) then
begin
wait(1000);
if not equip(RhandLayer,tmpser) then
begin
Result := false;
exit;
end;
end;
wait(500);
checksave;
end;
end;
Begin
for x := -2 to 2 do
begin
for y := -2 to 2 do
begin
repeat
waitconnection(5000);
if not CheckPickaxe then
begin
exit;
end;
if TargetPresent then CancelTarget;
if WarMode = true then SetWarMode(false);
ctime := Now;
UseObject(ObjAtLayerEx(RhandLayer,self));
WaitForTarget(5000);
If TargetPresent then TargetToTile(1342, GetX(self)+x, GetY(self)+y, GetZ(self));
k := 0;
repeat
wait(100);
k := k + 1;
checksave;
mn1 := InJournalBetweenTimes('no ore', ctime, Now);
mf1 := InJournalBetweenTimes('you try', ctime, Now);
mf2 := InJournalBetweenTimes('fail', ctime, Now);
ms1 := InJournalBetweenTimes('put', ctime, Now);
until (mn1<>-1) or (mf1<>-1) or (mf2<>-1) or (ms1<>-1) or (k > 300);
until (mn1<>-1);
end;
end;
End.
Code: Select all
Compiler: [Error] (Òåêñòîâûé äîêóìåíò (2).txt at 39:10): Unknown identifier 'checksave'
Compiler: [Error] (Òåêñòîâûé äîêóìåíò (2).txt at 48:13): Unknown identifier 'waitconnection'
Compiler: [Error] (Òåêñòîâûé äîêóìåíò (2).txt at 62:16): Unknown identifier 'checksave'
Вот какие ошибки. Я ети строки стер и какбы работает .
Code: Select all
{$Include 'all.inc'}
А вообще - читай топики в разделе FAQ. Ограничитель на макс вес я в скрипт не включал. Но чар просто физически не может копать при наборе максимального веса. Так шард устроен обычно. Либо чар начинает руду просто ронять.
ЗЫ: Началось все с мининга вокруг себя. Потом нужно было кирки менять. Потом реконнектор. Потом потребуется разгрузка при максимальном весе. Потом проверка на то, что чара кильнули и рес. И так далее. Что в результате? Примерно такой же скрипт, как тот, который я на форуме и разместил. Именно так подобные скрипты и пишутся, никто не ваяет сразу какой-то супер-пупер-скрипт, сначала пишут маленький, потом постепенно расширяют.
Я пас в дальнейших усовершенствованиях. Болванку я тебе дал, дальше сам.