Page 1 of 2

Нужна помощь !

Posted: 16.07.2011 10:54
by Lietman
2 вендора:
1 Алхимист - Одет в красную робу.
2 Обычный - Одет в синию робу.

* Info * : ID: $00FE785F Name: Libby Type: $0191 Color: $0404 X: 1500 Y: 1661 Z: 27
* Info * : Tooltip:
* Info * : ID: $00EDE08A Name: Aura Type: $0191 Color: $0407 X: 4454 Y: 1084 Z: 0
* Info * : Tooltip:
* Info * : ID: $00A1282F Name: Wakanda Type: $0191 Color: $0421 X: 3700 Y: 2212 Z: 20
* Info * : Tooltip:
* Info * : ID: $00A06F4B Name: Alben Type: $0190 Color: $03EA X: 1997 Y: 2720 Z: 30
* Info * : Tooltip:
инфо про обычного вендора

* Info * : ID: $00CCED3E Name: York Type: $0190 Color: $0403 X: 1998 Y: 2716 Z: 30
* Info * : Tooltip:


Вот примеры 4 алхимистов в разных городах.
Я хочю сделать чтоб под ходил к алхимисту а не к обычному.
Имена вендоров меняются !

Re: Нужна помощь !

Posted: 16.07.2011 12:35
by shinma
используй ObjAtLayerEx
http://stealth.od.ua/forum/viewtopic.php?t=1220

Re: Нужна помощь !

Posted: 16.07.2011 12:53
by Alex
попробуй кликать на них и в журнале читать кто он, если там это пишется

http://stealth.od.ua/wiki/doku.php?id=clickonobject

Re: Нужна помощь !

Posted: 16.07.2011 13:58
by Vizit0r
иногда бывает что при клике по ним не пишется, зато если открыть папердолл от НПЦ, то там пижется профессия его.

Re: Нужна помощь !

Posted: 16.07.2011 15:07
by shinma
а еще проще и наверняка(а то могут ведь и шмотки поменять) подходить ко всем в магазине и покупать у каждого соответственно - если при покупке ноль то идем дальше если скупили опять идем дальше. тупо но наверняка.

Re: Нужна помощь !

Posted: 16.07.2011 15:15
by Vizit0r
тупо и долго.
чем больше теряешь времени там - тем больше времени у врагов на твое убийство или западлостроение.
да и вообще, время терять - это плохо.

Re: Нужна помощь !

Posted: 16.07.2011 15:58
by Lietman
shinma wrote:а еще проще и наверняка(а то могут ведь и шмотки поменять) подходить ко всем в магазине и покупать у каждого соответственно - если при покупке ноль то идем дальше если скупили опять идем дальше. тупо но наверняка.
одежду не меняют !!!
Можете кто нить написать процедуру на поиск вендора и подход к нему. Буду очень благодарен !!!

Re: Нужна помощь !

Posted: 16.07.2011 23:33
by Scripts Writer
Я когда заморачивался по поводу убийства одних нпц (которые агрятся) в первую очередь и только после этого других (которые нейтральны) использовал такую функцию:

Она не идеальна, но как пример сойдёт. Смысл в том, что у агрессивных мобов были шляпы в виде "Tribal mask", а у двух других нейтральных "Рогатые" и "из Медведя". Таким образом, для их отличия использовал стандартный FindType, где ID контейнера является ID нпц.

Думаю тебе аналогично нужно искать вендоров, только с использованием функции FindTypeEx, чтобы иметь возможность кроме типа, задавать ещё и цвет, а дальше всё просто.

Code: Select all

function SearchAgroWarrior : Cardinal;
  begin
    IgnoreReset;
    
    repeat
      begin
        NpcSerial := FindType(Sex[1], ground);
        if FindCount > 0 then 
          begin
            for i :=0 to 2 do
              begin
                FindType(Hats[i],NpcSerial);
                if (FindCount > 0) AND (i = 0) then
                  begin
                    result := NpcSerial;
                    exit;
                  end
                else
                  begin
                    Ignore(NpcSerial);
                  end;
              end;                
          end;
        wait(100);
      end;
    until NpcSerial = 0
    result := 0;
  end;

Re: Нужна помощь !

Posted: 18.07.2011 18:02
by Lietman
тут проблема :) Робы на них не одного цвета одеты :(

Re: Нужна помощь !

Posted: 18.07.2011 18:12
by Alex
подожди) обрати внимание на первый топик, ты сказал что у алхимистов - красная роба, а у обычных - синяя
переформулируй вопрос тогда :)

Re: Нужна помощь !

Posted: 18.07.2011 18:24
by shinma
) чел еще не определился что надо.

у тебя есть шанс попользоваться поиском.
ищешь на этом форуме кусочек кода который ищет НПС обоих полов и сохраняет их ИД в переменную.
дальше используя
shinma wrote: используй ObjAtLayerEx
viewtopic.php?t=1220

Code: Select all

if GetType(ObjAtLayerEx(RobeLayer,ID_vendora))=Type_Rubaha and GetColor(ObjAtLayerEx(RobeLayer,ID_vendora))=Color_Rubaha then
begin
Тут мы подходим и скупаем все 
end;
хыхы ждемс продолжения анегдота. Лайтмэн не подведи))))

Re: Нужна помощь !

Posted: 18.07.2011 18:26
by Alex
никаких анекдотов, обычный рабочий процесс помощи человеку :)

Re: Нужна помощь !

Posted: 18.07.2011 18:43
by shinma
дам еще наводку) в поиск вбиваешь типы М и Ж перса НПС и выйдешь на такие вот процедурки.

Re: Нужна помощь !

Posted: 18.07.2011 18:49
by Lietman
Alex wrote:подожди) обрати внимание на первый топик, ты сказал что у алхимистов - красная роба, а у обычных - синяя
переформулируй вопрос тогда :)
у алхимистов роба почти одного цвета :) у одно светла крсная у дрогова темней и т.д. :)
По попердоллу можно определить ? у них там професия написана

Re: Нужна помощь !

Posted: 18.07.2011 19:08
by shinma
визитор говорил про папердол НПС но все, что я нарыл в эту сторону
Для любых других НПЦ, у которых есть папердол:
при коннекте берется имя неписи, пишется в свойство, которое видно через закладку World и которое можно взять через GetName.
Если нужен тайтл с папердолла - значит шлете UseObject на непись, и ставите цикл типа
Код:

S:=GetName($xxxxxxxx);
while GetName($xxxxxxxx) = S do wait(xxx)';


цикл для того, чтобы дождаться когда придет пакет папердолла на непись. Когда он приходит - title пишется поверх старого имени в свойства, и берете его так же через GetName.

Соответственно кусок получения папердолла будет выглядеть как-то так:
Код:

S:=GetName($xxxxxxxx);
UseObject($xxxxxxxx);
while GetName($xxxxxxxx) = S do wait(xxx)';
S:=GetName($xxxxxxxx);
Но тут не слова как все таки выдрать всю строку папердола. визитор не дашь больше информации?