Page 1 of 1

TradeMenu

Posted: 17.11.2014 0:32
by Stels
Приветствую. Подскажите, что значат переменные тут http://stealth.od.ua/Doc:Manual/Referen ... eTradeMenu
а именно
TradeNum - с этим уже разобрался - номер чара с которым торгуешься. Как вообще работать с этим списком чаров? или как он вообще работает? т.е. ко мне подошел чар обменялся, потом второй и у него уже будет другой номер? А можно как-то сбрасывать этот счетчик номеров, что бы всегда учитывался только текущий чар?

Num - что это за переменная? За что отвечает?

как можно узнать какой предмет положен в трейд окно и его кол-во?

Re: TradeMenu

Posted: 17.11.2014 0:36
by nah nah
TradeNum это скорее номер окна обмена. от 0 и выше
Num это номер контейнера в окне, их всего 2, вроде 0 и 1. 0 - левый, 1 - правый

Re: TradeMenu

Posted: 17.11.2014 0:47
by Stels
nah nah wrote:TradeNum это скорее номер окна обмена. от 0 и выше
Num это номер контейнера в окне, их всего 2, вроде 0 и 1. 0 - левый, 1 - правый
Ага, да, скорее всего так... только 1 и 2

теперь немного не понятна функция GetTradeContainer(TradeNum,Num : Byte) : Cardinal возвращает id предмета в обменнике или тип?

не... походу я тут вообще не так все понял :)))))) он вовзвращает какое-то непонятное число и каждый раз новое на один и тот же предмет... словно у каждого окошка обменника свой id который выдается при создании этого меню

Re: TradeMenu

Posted: 17.11.2014 0:58
by Mirage
Stels wrote:словно у каждого окошка обменника свой id который выдается при создании этого меню
так и есть :)

function GetTradeContainer(TradeNum,Num: Byte): Cardinal; // Получить айди для одного из двух контейнеров в окне секьюр-трейда, для поиска, перемещения туда айтема и прочего.
Num = 1 Себя
Num = 2 Оппонента
TradeNum исчесляется с 0

вроде все понятно :)
Это ID как контейнер - в него можно перемещать товар. 1 - твоё окно, 2 опонента. Золото ты будешь в 2 подсчитывать а товар перемещать в 1.
OppContainer:=GetTradeContainer(0,2);
MyContainer:=GetTradeContainer(0,1);

Re: TradeMenu

Posted: 17.11.2014 1:01
by Stels
Mirage wrote:
Stels wrote:словно у каждого окошка обменника свой id который выдается при создании этого меню
так и есть :)

function GetTradeContainer(TradeNum,Num: Byte): Cardinal; // Получить айди для одного из двух контейнеров в окне секьюр-трейда, для поиска, перемещения туда айтема и прочего.
Num = 1 Себя
Num = 2 Оппонента
TradeNum исчесляется с 0

вроде все понятно :)
Это ID как контейнер - в него можно перемещать товар. 1 - твоё окно, 2 опонента. Золото ты будешь в 2 подсчитывать а товар перемещать в 1.
OppContainer:=GetTradeContainer(0,2);
MyContainer:=GetTradeContainer(0,1);
Это я уже понял собственными усилиями :)))))))))

Re: TradeMenu

Posted: 17.11.2014 1:15
by Stels
Всё, полностью со всеми вопросами разобрался! благодарю всех за помощь!

Re: TradeMenu

Posted: 17.11.2018 21:13
by untoha
у меня чёта суммируются т.е. положил в трейд 1 предмет, отменил трейд, положил другой, отменил. в итоге uosay выводит все оба предмета в FindType($FFFF, GetTradeContainer(0,2)) возвращает все то, что уже не в трейде, но было в него добавлено ранее

Code: Select all

if FindType($FFFF, GetTradeContainer(0,2)) > 0 then begin
		List := TStringList.Create;		
		GetFindedList(List);
		if List.count > 0 then begin
			for i := 0 to (List.count-1) do begin					
				uosay('founded: '+List.Strings[i]);
				uosay('founded: '+inttostr(GetType(StrToInt('$'+List.Strings[i]))) );				
					
				wait(1);
			end;
		end;
		List.Free;
	end;
        List.Free;
пробовал GetTradeContainer(TradeCount()-1,2) , List.Free делается
логаут обнуляет, но далее все повторяется, добавленные ранее предметы остаются

Re: TradeMenu

Posted: 17.11.2018 21:40
by untoha
странно, но видимо это оказалась особенность сервера. попробовал на другом сервере - все работает как должно.

Re: TradeMenu

Posted: 19.11.2018 4:53
by Vizit0r
это скорее всего тотже баг с контейнерами, который месяц назад был сдан и исправлен.