Лут мобов, stealth-client
Старшина (1377112)10 лет
Ranger
Сообщений: 332
Рег. 1.12.2013
16 октября 2014 16:55
Сообщение #1
Посидел немного и написал вот такой скриптик, возможно кому-то будет полезен. Да, если вдруг будут какие-то баги - пишите, буду исправлять :)
Вроде бы работает нормально, без сбоев :)) но мало ли...
Скрипт автоматически открывает любой встреченный труп, режет и лутит его, после чего помещает в игнорлист, что бы повторно не открывать его. Очень удобно, когда убиваешь толпу мобов.

Единственный минус, который я встретил - если во время сражения натывается на труп, немного тормозит перса примерно на пол секунды, открывая труп, но думаю это не критично :)

Нужно запускать его, общим скриптом, а не в dll-ке графического клиента

Program loot;

const
knife=$13F6; //Type бутчер кнайфа
scissors=$0F9E; //Type ножницы

var
grabmas, bodymonstro:array of word;

procedure Init;
begin
grabmas:=[$0EED,$1BFB,$0F3F,$1078,$09F1,$1BD1,$0F26,$0F25,$0F11,$0F13,$0F18,$0F16]; // предметы, которые лутим, первым ставим более нужные
bodymonstro:=[$2006];// типы трупов монстров которые надо обыскивать
SetPauseScriptOnDisconnectStatus(True);
SetARStatus(True);
end;

procedure find_body;
var
k,hhh: integer;
telo: cardinal;
begin
     for k:=0 to (GetArrayLength(bodymonstro)-1) do
     begin
     FindType(bodymonstro[k],Ground);  
        if (Findcount > 0) then  
            begin
                telo:=finditem; //telo - ИД убитый монстр  
                checklag(60000);
                WaitTargetObject(telo);
                UseObject(FindType(knife,Backpack));
                checklag(60000);
                UseObject(telo);
                checklag(60000);
                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;
                ignore(telo);
            end;
     end;
end;

procedure cut;
    var
    hides: cardinal;
    begin
        FindType($1078,Backpack);
        if (Findcount > 0) then
            begin
                hides:=finditem;
                checklag(60000);
                WaitTargetObject(hides);
                UseObject(FindType(scissors,Backpack));
                checklag(60000);
            end;
    end;

begin
    init;
    while not dead do
        begin
            find_body;
            cut;
        end;
end.
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
17 октября 2014 09:53
Сообщение #2
FindDistance:=2;
Наверное лучше прописать. Фиг знает как новый стелс но третий бы лег.
Старшина (1377112)10 лет
Ranger
Сообщений: 332
Рег. 1.12.2013
17 октября 2014 10:45
Сообщение #3
Я уже думал об этом, вроде по умолчанию там и так 2, можно кончено это уточнить и ечли что, добавить. И еще минус нашел - если умираешь скрипт выключается... тоже нужно будет подправить :))

Да, я был прав
По умолчанию имеет значение 2 (принято за умолчание на большинстве серверов как максимальная дальность, с которой обычный игрок при обычных условиях может поднять или положить вещь)


А так у меня 6 стелс)) точнее 6.5.2
зачем играть на старых версиях? :))
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
17 октября 2014 10:53
Сообщение #4
1) не всегда новое настолько обкатано чтобы быть лучше старого ;) Посмотри Win8 и IOS8.0
2) иногда просто лень переписывать что отлично работает на старых версиях.
3) Можно выпасть в реал на промежуток нескольких версий.
:derisive:


насчет автолута в принципе. Бежишь ты на таком по лесу, нарезал, налутил, прыгаешь к Брит банку а там труп какого нибудь бота - и скрипт пытается лутить тело - намотаешь карму себе ;)
Если бы я делал такое то вписал бы либо координатный стопарь либо по сообщению цикл с паузой. Типо "вы в ГЗ" - вращаем паузу. Или по команде.
Старшина (1377112)10 лет
Ranger
Сообщений: 332
Рег. 1.12.2013
17 октября 2014 12:36
Сообщение #5
Цитата: Mirage
Бежишь ты на таком по лесу, нарезал, налутил, прыгаешь к Брит банку а там труп какого нибудь бота - и скрипт пытается лутить тело - намотаешь карму себе ;)

Труп же у нас нельзя открыть и порезать в гз. Один раз пробует и потом его в игнорлист помещает :))) не намотаешь карму :))) а так в принципе можно попробовать сделать проверку на гз :)

Цитата: Mirage
1) не всегда новое настолько обкатано чтобы быть лучше старого ;) Посмотри Win8 и IOS8.0
2) иногда просто лень переписывать что отлично работает на старых версиях.

1. есть и обратные ситуации :) например, появление в свое время win98 и win7 :)
2. Ну вот это более правдоподобно, чем все остальное :)))

В принципе я уже себе добавил скидывать всего, что налутил в банк. но там косяк, кидает все стрелы... пока не получается скинуть, оставив 50 стрел в паке... какая-то фигня, но я справлюсь и выложу вторую версию сюда :)

P.S.: Я такой, что и пвм бота написал бы :))) но, боюсь, меня забанят :)))))))
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
17 октября 2014 13:30
Сообщение #6
Не забанят. Найдешь клиентуру, поимеешь пруфит а потом поменяются настройки сервера - подзатянут поясок :)
Лейтенант (3726577)10 лет
Dragonstalker
Сообщений: 42
Рег. 30.12.2013
24 октября 2014 13:22
Сообщение #7
как поставить чтоб лут был в одельную папку
Ефрейтор (253411)10 лет
Trasher
Сообщений: 50
Рег. 13.12.2013
2 ноября 2014 05:17
Сообщение #8
Цитата: DRAKOOLA
как поставить чтоб лут был в одельную папку

Скоро выложу вторую версию скрипта - мелкие исправления + добавлена возможность собирать в отдельную сумку
Последние посетители (0):

 
Сейчас: 24 ноября 2024 19:56