Page 1 of 1

Loot from corpse(Run UO)

Posted: 14.09.2011 15:40
by MuDaCk

Code: Select all

// Type: $0ECB Tooltip: the remains of a white wyrm
Program WyrmCorpse;
var
corpse1: cardinal;
corpse: cardinal;
resourse: array [0..13] of word; 
i: integer;

procedure loot(ID:cardinal);
begin
if (GetName(id) = 'a white wyrm corpse') then
begin 
 AddToSystemJournal(GetName(id));
newMoveXY(GetX(Id), GetY(Id), true , 0, true);
UseObject(ID);
wait(300);
UseObject(findtype(resourse[11],Backpack));  
    WaitForTarget(500); 
TargetToObject(id);
for i:= 0 to 10 do 
 begin 
   while (getquantity(findtype(resourse[i],ID))>0) do 
    begin 
     moveitem(finditem,0,backpack,0,0,0); 
      wait(1000); 
    end; 
  end;
cast('animate dead');
WaitForTarget(3000); 
TargetToObject(id);
wait(300);
UseObject(findtype(resourse[12],Backpack));  
    WaitForTarget(500); 
TargetToObject(findtype(resourse[10],Backpack));
 wait(100);
newMoveXY(5759, 137, true , 0, true);
 wait(100);
if not hidden then UseSkill('Hiding');
IgnoreReset;
end;
  end;
  
   
begin
FindDistance := 50; 
resourse[0] :=$0F26; // Type: $0F26  Tooltip: Diamond 
resourse[1] :=$0F13; //Type: $0F13 Tooltip: 2 Ruby 
resourse[2] :=$0F10;  //Type: $0F10  Tooltip: Emerald  
resourse[3] :=$0F16; //Type: $0F16 Tooltip: Amethyst 
resourse[4] :=$0F15; //Type: $0F15  Tooltip: Citrine 
resourse[5] :=$0F2D; //Type: $0F2D  Tooltip: tourmaline 
resourse[6] :=$0F25;  //Type: $0F25  Tooltip: Amber 
resourse[7] :=$0F19; //Type: $0F19  Tooltip: sapphire
resourse[8] :=$0EED;  // Type: $0EED  Tooltip: 1356 gold coin   
resourse[9] :=$1079; // Type: $1079  Tooltip: 20 pile of hides  
resourse[10] :=$26B4;  //Type: $26B4  Tooltip: 9 dragon scales
 
resourse[11] :=$0F52; //Type: $0F52  Tooltip: dagger
resourse[12] :=$0F9F; // Type: $0F9F Tooltip: scissors
corpse1 :=$2006; // Type: $2006  Tooltip: a white wyrm corpse
while true do
begin

while (GetName(findtype(corpse1, Ground)) = 'a white wyrm corpse') do
begin
corpse:=finditem;
loot(corpse);
end;
  
//begin
 //AddToSystemJournal(GetName(finditem));
//Ignore(finditem);
//end;
//AddToSystemJournal('1');
wait(1000);
end;
End.
1) трупик не находит)))
2) если подбежать к трупику, то он выполняет только эту часть:

Code: Select all

cast('animate dead');
WaitForTarget(3000); 
TargetToObject(id);
wait(300);
UseObject(findtype(resourse[12],Backpack));  
    WaitForTarget(500); 
TargetToObject(findtype(resourse[10],Backpack));
 wait(100);
newMoveXY(5759, 137, true , 0, true);
 wait(100);
if not hidden then UseSkill('Hiding');
3) через закладку World видит что кол-во трупиков в пачке больше тридцати(39 или 40 там было - уже и не вспомню)...
Именно в пачке! не раскиданно по всему ворлду, а именно в одной пачке. А в клиенте вижу что труп только один.

4) всё это получил через стелскоманду ',info'

Code: Select all

resourse[0] :=$0F26; // Type: $0F26  Tooltip: Diamond 
resourse[1] :=$0F13; //Type: $0F13 Tooltip: 2 Ruby 
resourse[2] :=$0F10;  //Type: $0F10  Tooltip: Emerald  
resourse[3] :=$0F16; //Type: $0F16 Tooltip: Amethyst 
resourse[4] :=$0F15; //Type: $0F15  Tooltip: Citrine 
resourse[5] :=$0F2D; //Type: $0F2D  Tooltip: tourmaline 
resourse[6] :=$0F25;  //Type: $0F25  Tooltip: Amber 
resourse[7] :=$0F19; //Type: $0F19  Tooltip: sapphire
resourse[8] :=$0EED;  // Type: $0EED  Tooltip: 1356 gold coin   
resourse[9] :=$1079; // Type: $1079  Tooltip: 20 pile of hides  
resourse[10] :=$26B4;  //Type: $26B4  Tooltip: 9 dragon scales
 
resourse[11] :=$0F52; //Type: $0F52  Tooltip: dagger
resourse[12] :=$0F9F; // Type: $0F9F Tooltip: scissors
corpse1 :=$2006; // Type: $2006  Tooltip: a white wyrm corpse
P.S. Дурью маюсь, делать нечего, вот и колупаю, что раньше недоделал. Так что это не срочно. расмотрим любые идеи как организовать луталку из трупа :wink: .

Re: Loot from corpse(Run UO)

Posted: 15.09.2011 19:18
by MuDaCk
Image
Вот пример) количество слегка преувеличенно))))). Кстати, тип у трупика совпадает с трупиком вирма.

Re: Loot from corpse(Run UO)

Posted: 20.09.2011 12:24
by Fenix
1.

Code: Select all

while (GetName(findtype(corpse1, Ground)) = 'a white wyrm corpse') do
Найденный итем в игнор не добавляется. Соответственно он будет всегда возвращать один и тот же ID первого встречного трупа, который может не быть трупом вирма.
2. Насчет пачки трупов - это нормально. При некоторых раскладах это можно использовать как баг на дюп :)
3. По поводу того, что выполняется только часть метода. Хочешь сказать, что первая часть метода вообще не выполняется? Включая подход к трупу и срезание кожи?
P.S.: Кстати, рекомендую вместо обычных вейтов перед TargetToObject использовать связку WaitForTarget() + if TargetPresent() then. В этом случае можно реализовать дополнительную логику в случае "непоявления" таргета.

Re: Loot from corpse(Run UO)

Posted: 21.09.2011 12:26
by chernysh
Fenix wrote:Соответственно он будет всегда возвращать один и тот же ID первого встречного трупа, который может не быть трупом вирма.
Кажется, он будет возвращать самый дальний найденный corpse, потому что FindType возвращает последний элемент из списка.

Re: Loot from corpse(Run UO)

Posted: 22.09.2011 20:18
by MuDaCk
Феникс.
1.Я пробовал ставить там if + else.
в скрипте:

Code: Select all

//begin
 //AddToSystemJournal(GetName(finditem));
//Ignore(finditem);
//end;
это было под else

3.Меня это и удивило! одна часть не срабатывает, а другая работает только в том случае, если вручную подбегаешь.

Code: Select all

if TargetPresent() then.
учту в будущем.

Re: Loot from corpse(Run UO)

Posted: 23.09.2011 9:20
by Fenix
chernysh wrote:Кажется, он будет возвращать самый дальний найденный corpse, потому что FindType возвращает последний элемент из списка.
Самый дальний итем не обязательно самый последний в списке, т.к. итемы могут появляться (кто-то выбросил шмотку из бекпака, смерть моба если при этом его ID не переходит в ID трупа, спавн). К тому же, я не помню реализацию хранения итемов в списке, возможно, что ID как-либо упорядочены.
Насчет неработоспособности первой части метода. Могу посоветовать добавить побольше отладочной информации (в том числе на появление таргета и эффективность подхода к трупу).

Re: Loot from corpse(Run UO)

Posted: 23.09.2011 9:51
by MuDaCk
Насчет неработоспособности первой части метода. Могу посоветовать добавить побольше отладочной информации (в том числе на появление таргета и эффективность подхода к трупу).
Ок . буду пробовать)