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

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

тут можно задать вопрос по скриптингу
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

Сделал

Code: Select all

function CountSub(itemType, itemColor, containerID : integer) : integer;
begin
	FindTypeEx(itemType, itemColor, containerID, true);
	result := FindFullQuantity();
end;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

а Count это и есть Findtype

function TScriptAPIThread.Script_CountEx(ObjType, Color : Word; Container : Cardinal) : Integer;
begin
...
Script_FindTypeEx(ObjType, Color, Container, false, True);
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

Почему константы и переменные в program не видны для includes?
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

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

Post by nah nah »

разные пространства имён. везде так
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

includes могут содержать в себе только одну процедуру/функцию?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

сколько угодно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

FindTypeEx не умеет искать вещи на себе? Нужно сделать Count вещей на чаре, включая подконтейнеры и слои.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

FindTypeEx, и последний параметр в True.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

Так и делал, но на чаре итем не находит. В качестве контейнера указывал и Backpack и Self
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post 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.
Скрин с результатом приложен.
Если у тебя так не работает - стучись в Дискорд, будем копать.
Attachments
uo.jpg
uo.jpg (131.65 KiB) Viewed 14577 times
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post 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.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

это приколы конкретного сервера.
Для точного кол-ва найденных айтемов - используй FindCount
FindQuantity (ну и FindFullQuantity) используются в основном для подсчета айтемов в пачках, уж там-то сервер присылает правильно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post 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;
Post Reply