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

как переделать?

тут можно задать вопрос по скриптингу
Post Reply
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

как переделать?

Post by Irohay »

Program test;
Const
Cleaver=$0F51;
Weapon=$0F51;
Var
i,n:Integer;
CorpseID,Victim:Cardinal;
Animal:array[1..1] of Byte;
Label
Find;
Begin
Find:

Animal[1]:=$0190;//sheep
for i:=1 To 1 Do
begin
FindDistance:=20;
FindType(Animal,Ground);
Victim:=FindItem;
n:=FindCount;
AddToSystemJournal('Найдено '+IntToStr(n)+' '+GetName(Victim));
Begin
//UseType(Weapon,$FFFF);
Attack(Victim);
While GetDistance(Victim)>2 Do
Begin
NewMoveXY(GetX(Victim),GetY(Victim),True,1,True);
Wait(100);
End;
While GetHP(Victim)>0 Do Wait(100);
FindDistance:=20;
wait(5000);
If FindType($2006,Ground)>0 Then
Begin
CorpseID:=FindItem;
WaitTargetObject(CorpseID);
//UseType(Cleaver,$FFFF);
//UseObject(CorpseID);
MoveItem(FindType($1BD1,corpseID),0,BackPack,0,0,0);
End;

End;

End;
Wait(2000)
goto find;
End.

на procedure test помогите пожалуйста
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: как переделать?

Post by drabadan »

поясни ширее, может кому удалось понять, я - не понял...
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

Re: как переделать?

Post by Irohay »

да всё проста хочу этот скрипт сунить в миниг что бы элемов убивали
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: как переделать?

Post by drabadan »

Irohay wrote:да всё проста хочу этот скрипт сунить в миниг что бы элемов убивали
То-есть тебе вот то, что сверху переделать в процедуру для использования в другом скрипте?

Code: Select all

//Перемести блок констант в начало своего скрипта майнинга, просто добавь к существующим;
Const
 Cleaver=$0F51;
 Weapon=$0F51;

procedure MegaSmth;

Var
 i,n:Integer;
 CorpseID,Victim:Cardinal;
 Animal:array[1..1] of Byte;
Label 
 Find; 
Begin 
 Find:
 Animal[1]:=$0190;//sheep
for i:=1 To 1 Do
 begin
  FindDistance:=20;
  FindType(Animal[i],Ground);
  Victim:=FindItem;
  n:=FindCount;
  AddToSystemJournal('Найдено '+IntToStr(n)+' '+GetName(Victim));
Begin
 //UseType(Weapon,$FFFF);
 Attack(Victim);
 While GetDistance(Victim)>2 Do
  Begin
    NewMoveXY(GetX(Victim),GetY(Victim),True,1,True);
    Wait(100);
  End;
While GetHP(Victim)>0 Do Wait(100);
 FindDistance:=20;
 wait(5000);
If FindType($2006,Ground)>0 Then
Begin
CorpseID:=FindItem;
WaitTargetObject(CorpseID);
//UseType(Cleaver,$FFFF);
//UseObject(CorpseID);
MoveItem(FindType($1BD1,corpseID),0,BackPack,0,0,0);
End; 

End;

End;
Wait(2000)
goto find;
End;


Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

Re: как переделать?

Post by Irohay »

спасибо скрипт за работал вот тока атакавать не кого не хочет :(
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: как переделать?

Post by drabadan »

Irohay wrote:спасибо скрипт за работал вот тока атакавать не кого не хочет :(
сколько просил - столько и сделал.

могу предложить изучить мой скрипт на майнинг с убиванием гварда руды, для общего развития...
http://stealth.od.ua/forum/viewtopic.php?p=17119#p17119 - тут скрипт.
процедуры для обработки моба

Code: Select all

function IsMob : Cardinal;
begin    
    Result := 0;
    if FindType($000E, Ground) > 0 then Result := FindItem;
end;

procedure CarveAndLoot;
var   
    Corpse : Cardinal;
begin    
    Wait(1000);
    Beep;
    if FindType($2006, Ground) > 0 then 
        begin
            Corpse := FindItem;
            UseType(Knife_Type, $FFFF);
            CheckLag(30000);
            if WaitForTarget(5000) then 
                TargetToObject(Corpse)
            else
                AddToSystemJournal('No knifes found!');
            CheckLag(30000);
            Wait(650);
            UseObject(Corpse);
            Wait(1000);
            CheckLag(30000);            
            while FindType($FFFF, Corpse) > 0 do
                begin
                    if not ArrayHasItem(LootItems_Array, GetType(FindItem)) then
                        begin
                            SetLength(LootItems_Array, Length(LootItems_Array)+1);
                            LootItems_Array[High(LootItems_Array)] := GetType(FindItem);
                        end;
                    MoveItem(FindItem, 0, Backpack, 0,0,0);
                    Wait(650);
                    CheckLag(30000);
                end;
            if FindType(Rock_Type, Ground) > 0 then 
                begin
                    UseObject(FindItem);
                    Wait(300);
                    CheckLag(30000);
                end
            else
                ClientPrint('No rocks found...');
            if FindType(IsidasChest_Type, Ground) > 0 then
                begin
                    Corpse := FindItem;
                    UseType(Lockpick_Type, $FFFF);
                    CheckLag(30000);
                    if WaitForTarget(5000) then TargetToObject(Corpse);
                end
            else
                ClientPrint('No chests found...');
            Ignore(Corpse);
        end;
    ClientPrint('Loot finished!');   
end;

procedure KillMob(Mob : Cardinal);
var
    ctime : TDateTime;    
begin
    ctime := Now;
    while IsMob > 0 do
        begin            
            Attack(Mob);
            Wait(300);
            CheckLag(30000);
            if WaitJournalLine(ctime, 'убили', 300) then break;
        end;
    CarveAndLoot;    
end;
З.Ы. Код, конечно, кривоватый, многое можно потвикать - но лениво пока :)
Вообщем поизучай, может найдешь то, что ищешь!
Irohay
Neophyte
Neophyte
Posts: 42
Joined: 20.03.2011 16:51

Re: как переделать?

Post by Irohay »

да у нас всё проще, тупо копай и в дом отнаси тока если копаеш, в 5 или 10 чаров эелемов многа вот надо чтоб они иго убивали бандой
Post Reply