Page 1 of 1

Как купить blank map?

Posted: 27.09.2008 19:55
by Beren
собственно суть в том, что blank map ни по типу, ни по цвету не отличается от других карт продоваеммых вендором.

Posted: 04.10.2008 13:59
by Beren
жаль, что никто не знает.
сделали бы тогда AutoBuy ещё и по ID

Posted: 04.10.2008 18:42
by Vano
Beren wrote:жаль, что никто не знает.
Отдельно купить бланк мапы на данный момент никак нельзя. Только если купить все карты с вендора.
Beren wrote:сделали бы тогда AutoBuy ещё и по ID
Ну и каким же образом ID поможет? :) ID все время меняется.
Единственный вариант(который пришел мне на ум) - добавить возможность покупки по названию итема(как в инже или подобно этому).

2Edred Предлагаю перенести топ в раздел Requests.

Posted: 04.10.2008 18:59
by Beren
Единственный вариант(который пришел мне на ум) - добавить возможность покупки по названию итема(как в инже или подобно этому).
это было бы вообще идеально)
Ну и каким же образом ID поможет? ID все время меняется.
ну ID можно определить, дело в том, что всё осталдьные карты продаются по одной, а blank map на вендоре 8 штук(это DRW) так что вычислить все ID продоваемые на вендоре, а потом определить в какой стопке 8 не сложно) тут бы ещё

Code: Select all

GetName (ObjID : Cardinal) : String
не работающая пригодилась)

Posted: 04.10.2008 19:06
by Vano
Beren wrote:ну ID можно определить, дело в том, что всё осталдьные карты продаются по одной, а blank map на вендоре 8 штук(это DRW) так что вычислить все ID продоваемые на вендоре, а потом определить в какой стопке 8 не сложно)
А можно поподробней? :) Например, как узнать ID хоть какого-нибудь предмета который находится в списке у вендора?

Posted: 04.10.2008 19:20
by Beren
это мой код:

Code: Select all

program buy

{$Include 'all.inc'} 

const 
 Quantity =1; 
 Map = $14EB; 
 vendor = $0029D6F6;

var
 i, k : Integer; 
 map_buy,temp: Cardinal;
 BuyList:TStringList;
 str:string;


begin 
 BuyList := TStringList.Create;
 clearjournal;
 UOSay('Arpiar buy'); 
 wait(3000);
 map_buy:=FindTypeEx(Map,$0000,vendor,true);
 AddToSystemJournal(IntToStr(FindCount));
 GetFindedList(BuyList);
 for i := 0 to BuyList.Count-1 do
 AddToSystemJournal(BuyList[i]);
 str:= '$'+BuyList[0];
 temp:= StrToInt(str);
 AddToSystemJournal('количество '+IntToStr(GetQuantity(temp)));
 UOSay('Arpiar bye'); 
End.
а для того, что бы найти всё пишем:

Code: Select all

FindTypeEx($FFFFFFFF,$FFFF,vendor,true);
только я думаю, что он найдёт и одежду этого вендора)))

Posted: 04.10.2008 19:26
by Beren
только я думаю, что он найдёт и одежду этого вендора)))
что-то в этом роде, ага. в обычном режиме с

Code: Select all

FindTypeEx($FFFFFFFF,$FFFF,vendor,true);
получается 36 объектов, а с закомментированным

Code: Select all

UOSay('Arpiar buy');
всего 6 объектов

Posted: 04.10.2008 19:29
by Beren
в связи с этим просто получается логичным сделать функции

Code: Select all

GetName (ObjID : Cardinal) : String
и

Code: Select all

AutoBuy(ItemID : Cardinal; Quantity : Word)
а уж с помошью их сделать покупку по имени будет достаточно просто)

Posted: 04.10.2008 19:46
by Vano
Такой метод конечно будет работать, но уж слишком много ухищрений. Тем более таким способом покупка будет происходить дольше, сначала надо будет проверить список вендора, а потом уже покупать(хотя это надо протестировать, требуется ли второй раз произносить buy, скорей всего надо).
Таким образом, альтернативный вариант покупки по названию итема, по моему мнению, является гораздо лучшей идеей. Да и не так это трудно реализовать(хотя покупка по ID реализуется гораздо проще).

Posted: 04.10.2008 19:48
by Beren
это всё понятно, но кроме ухищрений у меня сейчас ничего нет))
я даже не могу заюзать объект у вендора по найденому ID, пишет "System: You can't see the target"

Posted: 04.10.2008 19:51
by Vano
Ну так до новой версии ничего и не появится. А если уж делать(т.е. реализовывать), то делать нормально.

Posted: 04.10.2008 19:55
by Beren
а что, скоро будет новая версия?
просто в разделе Developers тишина с весны)

Posted: 04.10.2008 20:01
by Vano
Видимо что нет.

P.S. т.к. все ответы получены хватит флудить в этой теме.

Posted: 05.10.2008 6:38
by CFA
Beren wrote:в связи с этим просто получается логичным сделать функции

Code: Select all

GetName (ObjID : Cardinal) : String
и

Code: Select all

AutoBuy(ItemID : Cardinal; Quantity : Word)
а уж с помошью их сделать покупку по имени будет достаточно просто)
возможно это только у нас на шарде, но getName для итемов в buy/sell листах не работает.