Page 8 of 8

Re: Скриптинг в Stealth для чайников.

Posted: 31.01.2019 2:35
by DDoS
Сделал

Code: Select all

function CountSub(itemType, itemColor, containerID : integer) : integer;
begin
	FindTypeEx(itemType, itemColor, containerID, true);
	result := FindFullQuantity();
end;

Re: Скриптинг в Stealth для чайников.

Posted: 01.02.2019 16:46
by Vizit0r
а Count это и есть Findtype

function TScriptAPIThread.Script_CountEx(ObjType, Color : Word; Container : Cardinal) : Integer;
begin
...
Script_FindTypeEx(ObjType, Color, Container, false, True);

Re: Скриптинг в Stealth для чайников.

Posted: 01.02.2019 19:01
by DDoS
Почему константы и переменные в program не видны для includes?

Re: Скриптинг в Stealth для чайников.

Posted: 01.02.2019 20:01
by nah nah
разные пространства имён. везде так

Re: Скриптинг в Stealth для чайников.

Posted: 05.02.2019 10:14
by DDoS
includes могут содержать в себе только одну процедуру/функцию?

Re: Скриптинг в Stealth для чайников.

Posted: 06.02.2019 10:25
by Vizit0r
сколько угодно.

Re: Скриптинг в Stealth для чайников.

Posted: 15.03.2019 3:25
by DDoS
FindTypeEx не умеет искать вещи на себе? Нужно сделать Count вещей на чаре, включая подконтейнеры и слои.

Re: Скриптинг в Stealth для чайников.

Posted: 16.03.2019 20:48
by Vizit0r
FindTypeEx, и последний параметр в True.

Re: Скриптинг в Stealth для чайников.

Posted: 16.03.2019 22:03
by DDoS
Так и делал, но на чаре итем не находит. В качестве контейнера указывал и Backpack и Self

Re: Скриптинг в Stealth для чайников.

Posted: 16.03.2019 23:36
by Vizit0r

Code: Select all

var SL : TStringList;
    i : Integer;
begin
  FindTypeEx(-1,-1,Self,True);
   SL := TStringList.Create;
  GetFindedList(SL);
  if SL.Count > 0 then
    for i := 0 to SL.Count-1 do
      AddToSystemJournal('Obj ID: ' + SL.Strings[i]);
end.
Скрин с результатом приложен.
Если у тебя так не работает - стучись в Дискорд, будем копать.

Re: Скриптинг в Stealth для чайников.

Posted: 17.03.2019 0:46
by DDoS
Я понял в чем проблема, это баг как был в Орионе когда-то. Это FindFullQuantity возвращает 0 если искать определенную вещь, и она одета на чаре. Если вещь положить в пак - вернет 1. Если вещь одеть даблкликом - вернет 1. Если вещь одеть перемещением на папердол - вернет 0. Или если зайти в игру с уже надетым предметом, тоже вернет 0. Для того же бекпака будет всегда 0.

Code: Select all

program Test;
begin
	AddToSystemJournal(IntToHex(FindTypeEx($0E75, $FFFF, Self(), True), 8));
	AddToSystemJournal(IntToStr(FindFullQuantity()));
end.

Re: Скриптинг в Stealth для чайников.

Posted: 17.03.2019 2:01
by Vizit0r
это приколы конкретного сервера.
Для точного кол-ва найденных айтемов - используй FindCount
FindQuantity (ну и FindFullQuantity) используются в основном для подсчета айтемов в пачках, уж там-то сервер присылает правильно.

Re: Скриптинг в Stealth для чайников.

Posted: 17.03.2019 2:42
by DDoS
Это скрипт на добор ресурсов, там и стакуемые и одиночные считать нужно. Сделал костыль, нормально

Code: Select all

function CountSub(itemType, itemColor, containerID : integer) : integer;
begin
	FindTypeEx(itemType, itemColor, containerID, true);
	
	if (FindCount() > FindFullQuantity()) then
	begin
		result := FindCount();
	end
	else
	begin
		result := FindFullQuantity();
	end;
end;