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

Вытащить информацию

тут можно задать вопрос по скриптингу
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Вытащить информацию

Post by frant »

Кто-нить подскажите как вытянуть инфу(айди, тип, цвет и т.п.) об объектах и занести ее в файл?
не из гампа, а допустим из сундука...
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Вытащить информацию

Post by nepopus »

frant wrote:Кто-нить подскажите как вытянуть инфу(айди, тип, цвет и т.п.) об объектах и занести ее в файл?
не из гампа, а допустим из сундука...
перебираешь все предметы в сундуке и смотришь их параметры.

Code: Select all

ignorereset;
while findtype($FFFF, containerID) > 0 do begin

  itemtype := gettype(finditem);
  itemcolor := getcolor(finditem);

  ignore(finditem);
end;
http://stealth.od.ua/Doc:RU/Manual/Reference/Object

К сожалению с файлами в стелсе пока не работал - не подскажу.
П.С. если будешь брать имя предмета через getname, не забудь прежде кликнуть на предмет, в противном случе имя будет noname;
<( o_O<) <( O_O )> (>O_o )>
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

nepopus wrote:
frant wrote:Кто-нить подскажите как вытянуть инфу(айди, тип, цвет и т.п.) об объектах и занести ее в файл?
не из гампа, а допустим из сундука...
перебираешь все предметы в сундуке и смотришь их параметры.

Code: Select all

ignorereset;
while findtype($FFFF, containerID) > 0 do begin

  itemtype := gettype(finditem);
  itemcolor := getcolor(finditem);

  ignore(finditem);
end;
http://stealth.od.ua/Doc:RU/Manual/Reference/Object

К сожалению с файлами в стелсе пока не работал - не подскажу.
П.С. если будешь брать имя предмета через getname, не забудь прежде кликнуть на предмет, в противном случе имя будет noname;
спасибо за ответ, но мне нужно немного другое, меня интересует к примеру:
стоит сундук, в нем допустим шмот, я запускаю чара на стелсе со скриптом,
далее чар смотрит что в сундуке и записывает все предметы (тайп, цвет, нейм, кол) в файл и все...т.е. вытягивает данные из ультимы и сохраняет на жестком диске
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Вытащить информацию

Post by nepopus »

ну я тебе написал как вытянуть = ) findtype по типу $FFFF будет перебирать все предметы без исключения.
Осталось только с записью в файл тебе разобраться : )
И буду благодарен, если напишешь сюда конечный вариант с этой самой записью.
<( o_O<) <( O_O )> (>O_o )>
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

nepopus wrote:ну я тебе написал как вытянуть = ) findtype по типу $FFFF будет перебирать все предметы без исключения.
Осталось только с записью в файл тебе разобраться : )
И буду благодарен, если напишешь сюда конечный вариант с этой самой записью.
так вот у меня проблема как раз именно с записью инфы )
на паскале есть такие операторы:

Code: Select all

var
a, b, sum: integer;
f1,f2: text;
begin
assign (f1,'input.txt');
assign (f2,'res.txt');
reset(f1);
read(f1,a,b);
sum:=a+b;
rewrite(f2);
writeln(f2,'a','(',a,')','+','b','(',b,')','=',sum);
close(f1);
close(f2);

end.
а стелс не воспринимает assign, ищу аналоги...
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Вытащить информацию

Post by nepopus »

<( o_O<) <( O_O )> (>O_o )>
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Вытащить информацию

Post by CFA »

Если нужно только записывать файл (без дописывания и чтения) то проще воспользоваться TStringList.

Code: Select all

var st : TStringList;
...
st := TStringList.Create;
st.Add('line 1');
st.Add('line 2');
st.SaveToFile('filename.txt');
st.Free;
Вобщем чтение и дописывание тоже нетрудно сделать. Сначала st.LoadFromFile и дальше или добавлять или читать отдельные строки
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

CFA wrote:Если нужно только записывать файл (без дописывания и чтения) то проще воспользоваться TStringList.

Code: Select all

var st : TStringList;
...
st := TStringList.Create;
st.Add('line 1');
st.Add('line 2');
st.SaveToFile('filename.txt');
st.Free;
Вобщем чтение и дописывание тоже нетрудно сделать. Сначала st.LoadFromFile и дальше или добавлять или читать отдельные строки
да, спасибо, я так и сделал, получилось выводить в файл)
теперь у меня другая проблема, тип предмета выводится в непонятном формате
какой тип указывать переменной, в которую будет записываться тип и цвет объекта?
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Вытащить информацию

Post by CFA »

если ты формируешь строку типа IntToStr(GetType(findItem)) то они запишутся в десятичном виде, тебе я думаю их надо в шестнадцатеричном, в этом случае надо использовать IntToHex(GetType(findItem), 4) или IntToHex(findItem, 8 ).
Числа 4 и 8 определяют сколько цифр будет выведено.
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

CFA wrote:если ты формируешь строку типа IntToStr(GetType(findItem)) то они запишутся в десятичном виде, тебе я думаю их надо в шестнадцатеричном, в этом случае надо использовать IntToHex(GetType(findItem), 4) или IntToHex(findItem, 8 ).
Числа 4 и 8 определяют сколько цифр будет выведено.
спасибо огромное, это то что надо)
позже напишу если будут вопросы, если все сделаю, то выложу готовый скрипт :D
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

nepopus wrote: П.С. если будешь брать имя предмета через getname, не забудь прежде кликнуть на предмет, в противном случе имя будет noname;
а мможно вот тут уточнить? потому что я сделал с прокликом и все-равно НоуНейм выводит :(
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Вытащить информацию

Post by nepopus »

frant wrote:
nepopus wrote: П.С. если будешь брать имя предмета через getname, не забудь прежде кликнуть на предмет, в противном случе имя будет noname;
а мможно вот тут уточнить? потому что я сделал с прокликом и все-равно НоуНейм выводит :(
Задержку поставил? Принцип такой, что после клика, над предметом должно пройти время для появления названия.
wait(100-200) хватит.
Ну и код кидай = )
<( o_O<) <( O_O )> (>O_o )>
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

nepopus wrote:
frant wrote:
nepopus wrote: П.С. если будешь брать имя предмета через getname, не забудь прежде кликнуть на предмет, в противном случе имя будет noname;
а мможно вот тут уточнить? потому что я сделал с прокликом и все-равно НоуНейм выводит :(
Задержку поставил? Принцип такой, что после клика, над предметом должно пройти время для появления названия.
wait(100-200) хватит.
Ну и код кидай = )
поставил задержку и все-равно лажа (ноунейм)

Code: Select all

clickonobject(finditem);
wait(500);
itemname:= getname(finditem);
ts.add(getname(finditem));
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Вытащить информацию

Post by CFA »

Надежнее использовать CheckLag(2000), а не Wait.
Если используется клиент 4+, то надо использовать не GetName, а GetCliloc, для него вроде бы задержка и клик не нужны.
frant
Neophyte
Neophyte
Posts: 28
Joined: 18.06.2012 17:48

Re: Вытащить информацию

Post by frant »

CFA wrote:Надежнее использовать CheckLag(2000), а не Wait.
Если используется клиент 4+, то надо использовать не GetName, а GetCliloc, для него вроде бы задержка и клик не нужны.
поставил:

Code: Select all

itemname:= getcliloc(finditem);
ts.add(getcliloc(finditem));
не выводит вообще ничего
Post Reply