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

Golden_Boy зарабатываем зоолто убивая мобов.

Only working scripts
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Golden_Boy зарабатываем зоолто убивая мобов.

Post by shinma »

В принципе скрипт рабочий, но я его каждый раз переделываю под новые точки.
Скрипт собирает золото убивая слабых монстров.
Скрипт удобно использовать как шаблон для своих ботов.
идет по точкам ищет мобов убивает собирает лут. лут тоже может быть какой угодно для удобства все сделано через динамические массивы.
так же в боте заложена функция самоодевания. можно кинуть в сумку пару наборов брони и штук 10 оружия он сам будет их одевать при поломке. юзает бинты если есть. Так же есть возможность юзать рунбуку , много чего просто закомментировано. ну короче сами разбирайтесь. тестил на RunUO.
и еще у кого нету мозга - я на нем заработал порядка 50 000 000. кто не умеет думать это его проблемы.

P.S. на Abyss он уже запрещен (((( увидят дадут банан.

Code: Select all

Program Golden_Boy;
const
money=30000;//кол-во денег после которого чар понесет их домой
homeX=2655 ;//Координата Х где встать для разгрузки
homeY= 534; //Координата У где встать для разгрузки

buttonHome=51;
buttonSkelet=50;

FindDistanceMob=75; //Дистанция поиска мобов

Helm= $2B10 ;  //Тип шлема
gorget= $2B0E ;   //Тип горжетки
legs = $2B06 ;   //Тип штанов
perchatki=$2B0C ; //Тип перчаток
Lokti=$2B0A ;  //Тип локтей  Arms
Cloak  = $2B04 ; //Плащь
Sandali=$2B13 ;//Сандали
Bracer =$1086 ;//Браслет
Ring=$108A ;//кольцо
Breastplate =$2B08 ;//Грудь

Shild=$1B76 ;  //Тип щита
Weapon=$1405 ; //Тип оружия


runebook= $4003B326 ;//ИД рунбуки

bankbox=$408428E8 ;

 goldcoin=$0EED;         		//ГП
 clean_bandages = $0E21;		//бинты   
 
 kolvodot=10; //кол-во точек которые будем обходить  
 
bagAll=$401335C7  ;//Ид сумки в которой лежат все остальные подсумки
bagweapon= $4020EB4D; //ид сундука откуда брать оружие и щит
bagarmor= $4020F6D6 ; //ид сундука откуда брать броню
bugMoney= $40212441 ;//ид сундука куда класть бабки
bugreagent=$40117D52 ;//ID bag reagent
BagRing=$40212437 ;  //ИД сумки куда класть кольцами
BagBrace=$40212440  ;//ИД сумки куда класть браслеты

var
//brockenItem:cardinal;  
monstro:array of word;
bodymonstro:array of word;
checkheal,k,hhh,mmn,checkmobss,dotResp:integer;
telo,TargetZ: cardinal;
ctime: TDateTime;
grabmas:array of word;
dot:array [0..10] of TFoundTile;
ctimeq:TDatetime;



procedure Init;
begin
monstro:=[$0003,$0099,$0038,$0032,$0094,$001A ];//  типы монстров которых надо бить. вписывать через запятую 
grabmas:=[$0EED];
//,$0F88,$0F78,$0F86,$0F8D,$0F7B,$0F8C,$0F7E    ,$0F8E,$0F8A,$0F7D,$0F84,$0F7A,$0F85,$0F84,$0F7D,$0F8F ] ; //$1F06,$1086-Браслеты.$1F09,$108A - кольца

{skeleton Type: $0032 
ghoul Type: $0099
}
FindVertical := 5;
moveOpenDoor := True; 
bodymonstro:=[$2006];// типы трупов монстров которые надо обыскивать
ctimeq := Now;
checkheal:=0;
SetPauseScriptOnDisconnectStatus(True);
SetARStatus(True);
mmn:=0;
dotResp:=0;
ctimeq := Now;

dot[0].X:=3679;      //точки которые будем обходить
dot[0].Y:=2481;
dot[1].X:=3654;
dot[1].Y:=2480;
dot[2].X:=3619;
dot[2].Y:=2482;
dot[3].X:=3597;
dot[3].Y:=2452;
dot[4].X:=3619;
dot[4].Y:=2507;
dot[5].X:=3643;
dot[5].Y:=2514;
dot[6].X:=3640;
dot[6].Y:=2512;
dot[7].X:=3637;     
dot[7].Y:=2539;
dot[8].X:=3658;     
dot[8].Y:=2537;
dot[9].X:=3661;     
dot[9].Y:=2512;


dot[10].X:=548;     
dot[10].Y:=969;

end;


procedure tele(kuda:Integer);
var
agump:Word;
ctime:TDatetime;

begin
{
waitgump(kuda);
wait(1000)  ;
UseObject(runebook);
wait (1000);
CloseSimpleGump(0);
}
ctime := Now; 
repeat
AddToSystemJournal('1');
if InJournalBetweenTimes('The spell fizzles|needs time to recharge|location is blocked', ctime, Now)>=0 then
begin
AddToSystemJournal('Ждем 10 сек');
wait(10000);
end;
if InJournalBetweenTimes('More reagents are needed', ctime, Now)>=0 then
begin
AddToSystemJournal('Нет реагентов для рекола.должите реагентов');
wait(60000);
end;
ctime := Now; 
checklag(60000);
  agump := GetGumpsCount;
  UseObject(runebook); 
  //If IsGump then
  while agump = GetGumpsCount do
    Wait(50);
  //NumGumpTextEntry(GetGumpsCount-1,513, '30');
  NumGumpButton(GetGumpsCount-1,kuda);
  wait(6000);         
						checklag(60000);  
AddToSystemJournal('2');
		until  (InJournalBetweenTimes('The spell fizzles|This book needs time to recharge|That location is blocked|More reagents are needed', ctime, Now)<0) or dead;
AddToSystemJournal('3');
end;


procedure equip_tool(type_of_tool:word;layer:Byte);
begin
while (GetType(ObjAtLayer(layer))<>type_of_tool) and (not dead) do
    begin    
{    while (GetType(ObjAtLayer(layer))<>0) or (not dead) do
      begin   
      checklag(60000); 
      unequip(layer); 
      wait(1000);
      end;  } 
    checklag(60000); 
    equipt(layer,type_of_tool);
    wait(1000);
   end;
end;


function podhod(targetk:Cardinal):Boolean;
begin
AddToSystemJournal('Жертва: '+GetName(targetk)+'.ID: '+inttohex(targetk,8)+'.Х: '+inttostr(GetX(targetk))+'.Y: '+inttostr(GetY(targetk))+'.Z:'+inttostr(GetZ(targetk))+'. дистанция: ' +inttostr(GetDistance(targetk)));
checklag(60000);

AddToSystemJournal('My person: '+GetName(Self)+'.Х: '+inttostr(GetX(Self))+'.Y: '+inttostr(GetY(Self))+'.Z:'+inttostr(GetZ(Self)));
checklag(60000);


if (GetX(targetk)>3686) and (GetY(targetk)>2501) and (GetX(targetk)<3701) and (GetY(targetk)<2521) then result:=False
else 
result:= NewMoveXY(GetX(targetk),GetY(targetk),true,1,true);
//wait(500);
end;

procedure Heal;// хилимcя 
var
m:integer;
begin
  if (gethp(self) < (getmaxhp(self)*0.7))and (not dead)and(ctimeq<now) then   
 //if (gethp(self) < 98) and (not dead) then  
//  while (gethp(self) < (getmaxhp(self))) and (not dead) do
    begin		
    ctimeq := now+EncodeTime(0,0,7,0);  
      AddToSystemJournal('Хилимся');
      checklag(60000); 
      UseObject(FindType(clean_bandages,Backpack)); 
      checklag(60000); 
      WaitTargetObject(Self); 
   { m:=0;   
    if (InJournalBetweenTimes('You finish applying the bandages|You apply the bandages, but they barely help', ctimeq, Now)>= 0) then   
    begin
     checkheal:=0;   
     ctimeq := Now;
    end;
     if  ctimeq+EncodeTime(0,1,0,0)<Now then
     checkheal:=0;
     
 //   while (CountEx(clean_bandages,$0000,backpack) < 1) and  (not dead) do
 if  (CountEx(clean_bandages,$0000,backpack) < 1) and  (not dead) then
    begin
      AddToSystemJournal('Нет бинтов');  
      wait(1000);
    end
    else    
     if (InJournalBetweenTimes('You finish applying the bandages|You apply the bandages, but they barely help', ctimeq, Now)< 0)and(not dead) and( (checkheal=0))  then   
     begin
      AddToSystemJournal('Хилимся');
      checklag(60000); 
      UseObject(FindType(clean_bandages,Backpack)); 
      checklag(60000); 
      WaitTargetObject(Self); 
      checkheal:=1;       
			ctimeq := Now;  
      end; }
  end;
end;

procedure checkwar; //включаем вармоде
begin
if IsWarMode(self) then
 begin
  setWarMode(false);
 end;
end;

function Fight(zertva:cardinal):integer ; //Бьем цель
var
KolVoZahod:integer;
begin
if (gethp(self) < (getmaxhp(self)*0.7)) and not dead then
Heal;
 
//AddToSystemJournal('ghj 56');  
KolVoZahod:=0;   
//Cast('Evasion');
while (GetHP(zertva)<>0) and (KolVoZahod<2) do 
begin
AddToSystemJournal('GetHP(zertva) = '+inttostr(GetHP(zertva)));  
//if IsActiveSpellAbility( 'Lightning Strike') = false then Cast('Lightning Strike');
//AddToSystemJournal('ghj 3');
setWarMode(true);
//if GetActiveAbility  <> 'Lightning Strike' then 
//Cast('Lightning Strike');
//  AddToSystemJournal('GetActiveAbility='+GetActiveAbility);
//AddToSystemJournal('16');
Attack (zertva);
Heal;
//AddToSystemJournal('17');
 if podhod(zertva)=false then 
 begin 
  //  AddToSystemJournal('Нет прохода');  
    KolVoZahod:=KolVoZahod+1;
 end;
 //AddToSystemJournal('18');
 result:=KolVoZahod;
end;
Heal;
end;



//function checkshmot:Boolean;//проверяем поломана ли вещь если да то глобальная переменная примет значение поломанной вещи
//begin
//brockenItem:= ;
//end;


procedure Stock;//выгружаем loot
var
ppp:integer;
lootReg:array of word;
lootRing:array of word;
lootBrace:array of word;
begin

lootReg:=[$0F8D,$0F84,$0F8A,$0F88,$0F86,$0F7B,$0F7D,$0F8A,$0F8C,$0F78,$0F8E,$0F7A ,$0F8F,$0F7E,$0F85 ];
lootRing:=[$1F09,$108A];
lootBrace:=[$1F06,$1086];

  checklag(60000);
  UseObject(bagAll); 
  wait(1000); 
                        
  
  //AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(GoldCoin,$0000,backpack)));  
  
 checklag(60000);
  UseObject(bugMoney); 
  wait(1000); 
    
  begin
     while (Count(goldcoin) > 0) and not dead do
     begin
	      checklag(60000);
        FindType (goldcoin,Backpack) ;
        MoveItem(FindItem,0,bugMoney,0,0,0);
      wait(600);
     end;
  end;    
  
    begin
     while (Count(clean_bandages) > 0) and not dead do
     begin
	      checklag(60000);
        FindType (clean_bandages,Backpack) ;
        MoveItem(FindItem,0,bagAll,0,0,0);
      wait(600);
     end;
  end;  
  
checklag(60000);
  UseObject(bugreagent); 
  wait(1000); 
    
  for  ppp:=0 to (GetArrayLength(lootReg)-1) do
  begin
     while (Count(lootReg[ppp]) > 0) and not dead do
     begin
	      checklag(60000);
        FindType (lootReg[ppp],Backpack) ;
        MoveItem(FindItem,0,bugreagent,0,0,0);
      wait(600);
     end;
  end;   
  
  checklag(60000);
  UseObject(BagRing); 
  wait(1000); 

  for  ppp:=0 to (GetArrayLength(lootRing)-1) do
  begin
     while (Count(lootRing[ppp]) > 0) and not dead do
     begin
	      checklag(60000);
        FindType (lootRing[ppp],Backpack) ;
        MoveItem(FindItem,0,BagRing,0,0,0);
      wait(600);
     end;
  end;

  checklag(60000);
  UseObject(BagBrace); 
  wait(1000); 

  for  ppp:=0 to (GetArrayLength(lootBrace)-1) do
  begin
     while (Count(lootBrace[ppp]) > 0) and not dead do
     begin
	      checklag(60000);
        FindType (lootBrace[ppp],Backpack) ;
        MoveItem(FindItem,0,BagBrace,0,0,0);
      wait(600);
     end;
  end;  
end;

procedure checkweapon;  
begin
{
AddToSystemJournal('srtghtrr'+inttostr(GetLayer($400A6BD5 ))); 
equip_tool(Ring,RingLayer);
AddToSystemJournal('1');
equip_tool(Breastplate,TorsoLayer);
AddToSystemJournal('2');
equip_tool(Bracer,BraceLayer);
AddToSystemJournal('3');
equip_tool(Sandali,ShoesLayer);
AddToSystemJournal('4');
equip_tool(Cloak,CloakLayer);
//AddToSystemJournal('5');
equip_tool(Lokti,ArmsLayer);
//AddToSystemJournal('6');
equip_tool(perchatki,GlovesLayer);
//AddToSystemJournal('7');
equip_tool(legs,PantsLayer);
//AddToSystemJournal('8');
equip_tool(gorget,NeckLayer);
//AddToSystemJournal('9');
equip_tool(Helm,HatLayer);
//AddToSystemJournal('10'); }
//AddToSystemJournal('Shild');
equip_tool(Shild,LhandLayer);
//AddToSystemJournal('Weapon');
equip_tool(Weapon,RhandLayer);
//AddToSystemJournal('все');
     
end;

procedure Zagruzka_regov;// запасаемся реагентами
var
pppp:integer;
RegZag:array of word;
begin
RegZag:=[$0F7B ,$0F7A ,$0F86 ];
  checklag(60000);
  UseObject(bagAll); 
  wait(1000); 
    begin
     while (Count(clean_bandages) < 80) and not dead do
     begin
	      checklag(60000);
        FindType (clean_bandages,bagAll) ;  
        MoveItem(FindItem,100,Backpack,0,0,0);
      wait(600);
     end;
  end;     
  
   checklag(60000);
  UseObject(bugreagent); 
  wait(1000); 
   for  pppp:=0 to (GetArrayLength(RegZag)-1) do
   begin
     while (Count(RegZag[pppp]) < 20) and not dead do
     begin
	      checklag(60000);
        FindType (RegZag[pppp],bugreagent) ;  
        MoveItem(FindItem,20,Backpack,0,0,0);
      wait(600);
     end;
  end; 

end;

function targetzertva:cardinal;
var
//bad_list:array [0..400] of cardinal;
distance,mob:integer;
cur_mob:cardinal;                 
begin
distance := 9999999;
FindDistance:=FindDistanceMob;
    
    for mob:=0 to (GetArrayLength(monstro)-1) do 
        while FindType(monstro[mob],Ground) <> 0 do  
          begin
           AddToSystemJournal('function targetzertva '+inttohex(FindItem,8));
            if GetDistance(FindItem) < distance  then      
                begin
                distance := GetDistance(FindItem) ;
                cur_mob := FindItem;
            end;                
                Ignore(FindItem); 
          end;       
    IgnoreReset;           
 //AddToSystemJournal('Жертва: '+GetName(cur_mob)+'. координата Х: '+inttostr(GetX(cur_mob))+'. координата Y: '+inttostr(GetY(cur_mob))+'. дистанция: ' +inttostr(GetDistance(cur_mob)));     
//if (GetX(cur_mob) in [3686..3701]) and (GetY(cur_mob) in [2502..2521]) then cur_mob:= 0;
if (GetX(cur_mob)>3686) and (GetY(cur_mob)>2502) and (GetX(cur_mob)<3701) and (GetY(cur_mob)<2521) then cur_mob:=0; 

result:= cur_mob;    //получаем сериал ближнего моба
end;

 Procedure PutMoneyBank;
begin
  checklag(60000); 
  AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(goldcoin,$0000,backpack)));
  begin
     while (CountEx(goldcoin,$0000,backpack) > 0) and not dead do
     begin
       checklag(60000); 
       FindTypeEx (goldcoin,$0000,Backpack,True) ;
       checklag(60000); 
        MoveItem(FindItem,0,bankbox,0,0,0);
     wait(2000);
     end;
  end;
end; 

begin
IgnoreReset; 
AddToSystemJournal('Init');
init;
//tele(buttonSkelet);
while not dead do
if (Weight < (MaxWeight-50)) then
  begin //Бой в городе
    begin
      checkmobss:=0 ;
     // checkwar;
      TargetZ:=targetzertva;   
      checkweapon;     
      AddToSystemJournal('TargetZ = '+inttohex(TargetZ,8));
      if (Fight(TargetZ)>1) or (TargetZ=0) then
        begin      
            if dotResp=kolvodot-1 then dotResp:=0;
            //AddToSystemJournal('Точка: '+inttostr(dotResp)); 
              
            if (NewMoveXY(dot[dotResp].X,dot[dotResp].Y,true,1,true))= true then 
            dotResp:=dotResp+1
            else    
            begin
           // tele(buttonSkelet);     
            //dotResp:=0; 
            dotResp:=0;  
            NewMoveXY(dot[dotResp].X,dot[dotResp].Y,true,1,true);
            end;    
        end;
      for k:=0 to (GetArrayLength(bodymonstro)-1) do
        begin   
          FindDistance:=2;
          FindType(bodymonstro[k],Ground);  
          if (Findcount > 0) then  
          begin 
            telo:=finditem; //telo - ИД убитый монстр  
            checklag(60000);
            if NewMoveXY(GetX(telo),GetY(telo),true,1,true) = false then 
            //tele(buttonSkelet); 
            begin
           // tele(buttonSkelet);     
            dotResp:=0;  
            NewMoveXY(dot[dotResp].X,dot[dotResp].Y,true,1,true);
            end;  
             
            checklag(60000); 
            ctime := Now;
            UseObject(telo);  
            if WaitJournalLine(ctime,'not earn the right to loot this creature', 500) = false then
                begin  
                for hhh:=0 to (GetArrayLength(grabmas)-1)  do 
                  begin 
                  if  CountEx(grabmas[hhh],$FFFF,telo)>0 then
                      begin  
                        checklag(60000);
                        Grab(findItem,telo);   
                        wait(600); 
                      end;  
                  end ;
              end;
           ignore(telo); 
        end ;    
      end ;    
      
      end ; 
      end
      else
       begin //Рекол домой и разгрузка 
           {tele(buttonHome); 
      NewMoveXY(homeX,homeY,true,1,true);  
      Stock;
      Zagruzka_regov;
      tele(buttonSkelet);
      checkweapon; } 
      // SetARStatus(false);
      //Disconnect;     
      checklag(60000);
      NewMoveXY(3494,2571,true,1,true); 
      checklag(60000);
      uosay('bank');  
      wait(1000);  
      UseObject(bankbox); 
      PutMoneyBank;
      end;  

end.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
chrisok1
Neophyte
Neophyte
Posts: 13
Joined: 01.04.2013 23:08

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by chrisok1 »

I was able to take some functions from this to use in my t2a script. thank you.
globaluo
Neophyte
Neophyte
Posts: 40
Joined: 06.02.2013 9:58

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by globaluo »

Не запускается. Пишет:
Compiling
Compiler: [Hint] (bot.sc at 182:1): Variable 'M' never used
Compiled succesfully
Init
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by shinma »

Variable 'M' never used

Если ты разберешься со скриптом то пожалуй заметишь что там на самом деле нет переменной 'M', этот скрипт написан для более опытных стелсеров. В нем надо посидеть и разобраться, если хочешь чтоб он работал под твои условия.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
chernysh
Novice
Novice
Posts: 61
Joined: 05.06.2011 14:54
Location: Ukraine

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by chernysh »

Спасибо за такие скрипты!

Я сам такой скрипт писал, правда на питоне. Но увы, у питона потоки крашили стелз.

В дополнении функционала я еще и через аську мог разговаривать с окружающим миром (игроками или ГМами), и мелкие комманды отправлять скрипту :)

Главное время и идея, а закодить можно все что угодно :)

Но ГМы такое не любят, к сожалению.
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by HeadShot1989 »

Очень хороший скрипт, дописал себе в него и хил нормальный, и резку трупа, и юз химии, и проверки на ГМа. Но с одним бьюсь и не могу поправить: если он убил на одном месте двух мобов, лутит и режет только первого, остальных просто игнорит.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by Vizit0r »

порезанный труп в игнор, и снова поиск трупов.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
VeL
Novice
Novice
Posts: 54
Joined: 03.12.2010 18:15

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by VeL »

Code: Select all

const
  Corpse        = $2006;        { тип трупа                                 }

//--------------------------------------------------------
// Получить ID последнего трупа
//--------------------------------------------------------

function LastCorpse: Cardinal;
var
  FindedList    : TStringList;
begin
  Result := FindType(Corpse, Ground);
  if Result > 0 then
    begin
      FindedList := TStringList.Create;
      if GetFindedList(FindedList) then
        Result := StrToInt('$' + FindedList.Strings[0]);
      FindedList.Free;
    end;
end; { LastCorpse }
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by Vizit0r »

интересный вопрос, подумаю на досуге. вот так сходу сказал бы, что много проще игнорить уже ненужные трупы, чем среди ВСЕХ айтемов искать конкретно последний труп. Ненадежно это. Времена, когда все айтемы шли одним большим списком - уже прошли, и теперь порядок выдачи айтемов в поиск - далеко не "подряд по мере прихода с сервера"
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by HeadShot1989 »

в этом скрипте игнор то прописан. но где-то в скрипте, прокол... что следующий труп рядом просто игнорится, не лутаясь и не разрезаясь. если хорошенько всмотреться может и сам найду, просто решил откоментить, мало ли кто еще заморочится этим вопросом.
PS offtop: Вел с уорпг? :)
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by shinma »

хехе базара нет что пропускает он и не написан искать все трупы он работает 1 кил 1 труп 1 подбор лута и повторяет. ставь циклс с проверкой на трупы на земле и все. но мне это не нужно т.к. когда мобов дофига твоего чара просто заколбасят пока он будет по трупам бегать.

P.S. вот вы жадные и так на боте работаете еще и трупов вам мало.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
HeadShot1989
Neophyte
Neophyte
Posts: 13
Joined: 11.07.2013 6:04

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by HeadShot1989 »

:) не в жадности дело, мобов много, они слабые, но с них добывается нужный реагент... А они кучками по 5-6 штук на болоте, потому и задался этим вопросом. А сильных мобов, которые по одному скрипт не осиливает, отход-отхил нужно делать. Плюс рандомно арты падают, и с них основной доход бывает, а если такого моба пропустил - считай в ноль долбишь... А так, спасибо за бота всё таки, в целом, он довольно неплох, если доработать для себя нужные функции.
MaskedPerson
Neophyte
Neophyte
Posts: 31
Joined: 14.03.2015 12:39

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by MaskedPerson »

Скрипт просто супер. Работает как бешеный. Но есть одно но - выбирает рандомный труп если их больше одного в одном месте, как правило уже пустой.

Code: Select all

 begin   
          FindDistance:=2;
          FindType(bodymonstro[k],Ground);  
          if (Findcount > 0) then  
          begin 
            telo:=finditem; //telo - ИД убитый монстр  
            checklag(60000);
            if NewMoveXY(GetX(telo),GetY(telo),true,1,true) = false then 
            //tele(buttonSkelet); 
            begin
           // tele(buttonSkelet);     
            dotResp:=0;  
            NewMoveXY(dot[dotResp].X,dot[dotResp].Y,true,1,true);
            end;  
             
            checklag(60000); 
            ctime := Now;
            UseObject(telo);  
            if WaitJournalLine(ctime,'not earn the right to loot this creature', 500) = false then
                begin  
                for hhh:=0 to (GetArrayLength(grabmas)-1)  do 
                  begin 
                  if  CountEx(grabmas[hhh],$FFFF,telo)>0 then
                      begin  
                        checklag(60000);
                        Grab(findItem,telo);   
                        wait(600); 
                      end;  
                  end ;
              end;
           ignore(telo); 
        end ;    
      end ;    
Как сюда прикрутить проверку на последний труп? Или может можно как-то трупы прятать с помощью ,hide? Знатоки, помогите :roll:
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by drabadan »

MaskedPerson wrote:Скрипт просто супер. Работает как бешеный. Но есть одно но - выбирает рандомный труп если их больше одного в одном месте, как правило уже пустой.

Code: Select all

 begin   
          FindDistance:=2;
          FindType(bodymonstro[k],Ground);  
          if (Findcount > 0) then  
          begin 
            telo:=finditem; //telo - ИД убитый монстр  
            checklag(60000);
            if NewMoveXY(GetX(telo),GetY(telo),true,1,true) = false then 
            //tele(buttonSkelet); 
            begin
           // tele(buttonSkelet);     
            dotResp:=0;  
            NewMoveXY(dot[dotResp].X,dot[dotResp].Y,true,1,true);
            end;  
             
            checklag(60000); 
            ctime := Now;
            UseObject(telo);  
            if WaitJournalLine(ctime,'not earn the right to loot this creature', 500) = false then
                begin  
                for hhh:=0 to (GetArrayLength(grabmas)-1)  do 
                  begin 
                  if  CountEx(grabmas[hhh],$FFFF,telo)>0 then
                      begin  
                        checklag(60000);
                        Grab(findItem,telo);   
                        wait(600); 
                      end;  
                  end ;
              end;
           ignore(telo); 
        end ;    
      end ;    
Как сюда прикрутить проверку на последний труп? Или может можно как-то трупы прятать с помощью ,hide? Знатоки, помогите :roll:
заведи себе список полутанных трупов, то-есть при луте запомни айди трупа в список, и каждый раз когда ищешь труп для лута проверяй не был ли он полутан, то-есть имеется ли такой адишничек в списке.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Golden_Boy зарабатываем зоолто убивая мобов.

Post by Vizit0r »

да игнорить распотрошенный труп и все.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply