Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Функция открыт ли банк с булевым результатом.
Re: Функция открыт ли банк с булевым результатом.
попробуй перед юзом всегда вызывать проверку ид сундка банка если ненайдет uosay('bank');
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Функция открыт ли банк с булевым результатом.
А как мне проверить банковский сундук? LastContainer не катит ибо в банке лежит сумка с инструментами.. Откуда не подойди всюду... опа.shinma wrote:попробуй перед юзом всегда вызывать проверку ид сундка банка если ненайдет uosay('bank');
Re: Функция открыт ли банк с булевым результатом.
причина неудачного дропа какая в журнале пишется?drabadan wrote:инготы выложить не может то-есть DragItem выполняет а DropItem с результатом в бекпак выполняется.Vizit0r wrote:ты не понял. с чего ты взял, что банк закрывается? в чем это выражается?
банк что, постоянно открыт, и в теории не закрывается?
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Функция открыт ли банк с булевым результатом.
ничего не пишется в журнале, просто инготы или логи "берутся на пальчик" и падают опять в сумку. Такое есть только при выгрузке выложу процедуру целиком.Vizit0r wrote:причина неудачного дропа какая в журнале пишется?drabadan wrote:инготы выложить не может то-есть DragItem выполняет а DropItem с результатом в бекпак выполняется.Vizit0r wrote:ты не понял. с чего ты взял, что банк закрывается? в чем это выражается?
банк что, постоянно открыт, и в теории не закрывается?
Code: Select all
{CRAFTING SECTION}
procedure CraftTool(Tool : Cardinal; CategoryBtn, ItemBtn : Integer);
var
gi : TGumpInfo;
begin
while IsGump do CloseSimpleGump(GetGumpsCount-1);
WaitAverageLag(AVERAGE_LAG_MS);
Useobject(FindType(Tool, backpack));
WaitAverageLag(AVERAGE_LAG_MS*2);
GetGumpInfo(GetGumpsCount-1, gi);
WaitAverageLag(AVERAGE_LAG_MS);
NumGumpButton(GetGumpsCount-1, gi.GumpButtons[CategoryBtn].return_value);
WaitAverageLag(AVERAGE_LAG_MS*2);
NumGumpButton(GetGumpsCount-1, gi.GumpButtons[ItemBtn].return_value);
WaitAverageLag(AVERAGE_LAG_MS*3);
end;
procedure LoadCraftResources;
begin
while GetQuantity(FindType(Logs, backpack)) < 100 do
begin
UOSay('BANK');
if GetQuantity(FindItem) > 100 then break;
MoveItem(FindType(Logs, BANK_ID), 25, backpack, 0,0,0);
WaitAverageLag(AVERAGE_LAG_MS);
end;
while GetQuantity(FindType(Ingot_Type, backpack)) < 100 do
begin
UOSay('BANK');
if GetQuantity(FindItem) > 100 then break;
MoveItem(FindType(Ingot_Type, BANK_ID), 25, backpack, 0,0,0);
WaitAverageLag(AVERAGE_LAG_MS);
end;
end;
function Count(Tool, Container : Cardinal) : Integer;
var
tmpInt : Integer;
begin
FindType(Tool, Container);
tmpInt := FindCount;
FindType(Tool, Backpack);
Result := tmpInt + FindCount;
end;
procedure ToolsCheck;
var
tmpContainer : Cardinal;
begin
NewMoveXY(WayPoint[0].x, WayPoint[0].y, true, 0, true);
UOSay('BANK');
WaitAverageLag(AVERAGE_LAG_MS);
tmpContainer := FindType($0E75, BANK_ID);
UseObject(tmpContainer);
WaitAverageLag(AVERAGE_LAG_MS);
while GetQuantity(FindType(Logs, BANK_ID)) < 500 do GetLogs;
//UOSay(IntToStr(Count(Dig_Tool_Type, tmpContainer)));
while Count(Pickaxe.TypeOfItem, tmpContainer) < 25 do
begin
LoadCraftResources;
if FindType(Tinker_Tools.TypeOfItem, backpack) <= 0 then MoveItem(FindType(Tinker_Tools.TypeOfItem, tmpContainer), 1, backpack, 0,0,0);
CraftTool(Tinker_Tools.TypeOfItem, Pickaxe.CategoryBtn, Pickaxe.ItemBtn);
WaitAverageLag(AVERAGE_LAG_MS*2);
end;
while Count(Hatchet.TypeOfItem, tmpContainer) < 15 do
begin
LoadCraftResources;
if FindType(Carpentry_Tools.TypeOfItem, backpack) <= 0 then MoveItem(FindType(Carpentry_Tools.TypeOfItem, tmpContainer), 1, backpack, 0,0,0);
CraftTool(Carpentry_Tools.TypeOfItem, Hatchet.CategoryBtn, Hatchet.ItemBtn);
WaitAverageLag(AVERAGE_LAG_MS*2);
end;
while Count(Tinker_Tools.TypeOfItem, tmpContainer) < 8 do
begin
LoadCraftResources;
if FindType(Tinker_Tools.TypeOfItem, backpack) <= 0 then MoveItem(FindType(Tinker_Tools.TypeOfItem, tmpContainer), 1, backpack, 0,0,0);
CraftTool(Tinker_Tools.TypeOfItem, Tinker_Tools.CategoryBtn, Tinker_Tools.ItemBtn);
WaitAverageLag(AVERAGE_LAG_MS*2);
end;
while Count(Carpentry_Tools.TypeOfItem, tmpContainer) < 8 do
begin
LoadCraftResources;
if FindType(Tinker_Tools.TypeOfItem, backpack) <= 0 then MoveItem(FindType(Tinker_Tools.TypeOfItem, tmpContainer), 1, backpack, 0,0,0);
CraftTool(Tinker_Tools.TypeOfItem, Carpentry_Tools.CategoryBtn, Carpentry_Tools.ItemBtn);
WaitAverageLag(AVERAGE_LAG_MS*2);
end;
Unload;
while FindType($FFFF, backpack) > 0 do
begin
UOSay('BANK');
WaitAverageLag(AVERAGE_LAG_MS);
MoveItem(FindItem, 0, tmpContainer, 0,0,0);
WaitAverageLag(AVERAGE_LAG_MS);
end;
end;
{CRAFTING SECTION END}
Re: Функция открыт ли банк с булевым результатом.
короче не парься положи в банк сумку её ID всегда одно и тоже и только её. открываешь банк чатом и пользуешься обьектом ид сумки в банке. ид пропиши в константы и все.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Функция открыт ли банк с булевым результатом.
а можно попросить изобразить это кодом, а то я не улавливаю немного.shinma wrote:короче не парься положи в банк сумку её ID всегда одно и тоже и только её. открываешь банк чатом и пользуешься обьектом ид сумки в банке. ид пропиши в константы и все.
Re: Функция открыт ли банк с булевым результатом.
Code: Select all
const
bankbox=$408428E8 ;
..............................
.......................................
Procedure PutMoneyBank;
begin
checklag(60000);
AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(goldcoin,$0000,backpack)));
begin
while (CountEx(goldcoin,$0000,backpack) > 0) and not dead do
begin
checklag(60000);
FindTypeEx (goldcoin,$0000,Backpack,True) ;
checklag(60000);
MoveItem(FindItem,0,bankbox,0,0,0);
wait(2000);
end;
end;
end;
.........................
checklag(60000);
uosay('bank');
wait(1000);
UseObject(bankbox);
PutMoneyBank;
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Функция открыт ли банк с булевым результатом.
замечательный код, но. Я просил не об этом.shinma wrote:Code: Select all
const bankbox=$408428E8 ; .............................. ....................................... Procedure PutMoneyBank; begin checklag(60000); AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(goldcoin,$0000,backpack))); begin while (CountEx(goldcoin,$0000,backpack) > 0) and not dead do begin checklag(60000); FindTypeEx (goldcoin,$0000,Backpack,True) ; checklag(60000); MoveItem(FindItem,0,bankbox,0,0,0); wait(2000); end; end; end; ......................... checklag(60000); uosay('bank'); wait(1000); UseObject(bankbox); PutMoneyBank;
Но спасибо за труды и внимание к моей проблеме!
Re: Функция открыт ли банк с булевым результатом.
вообще не вижу проблем. просто переписать скрипт на работу с сумкой в банке, а не с самим банком. там хоть 20 сумок запихай и ид их юзай.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Функция открыт ли банк с булевым результатом.
проблема в том, что иногда происходит ситуация самозакрывания банка. Я не смогу выкладывать результаты крафта в закрытый банк, сессия выкладки иногда очень длинная т.к. результатов крафта много овер 50 * 1,5 сек среднего лага получается 75 секунд. И это только одна из фаз! Каждый раз флудить "Bank" перед каждой выкладкой некоего результата крафта не хочется, по-этому и выносятся себе и окружающим мозги. Как же, блина, проверить что банк, блина, открыт собака.shinma wrote:вообще не вижу проблем. просто переписать скрипт на работу с сумкой в банке, а не с самим банком. там хоть 20 сумок запихай и ид их юзай.
практический пример - выкладка 30 кирок - 15 топоров - 5 тинкер тулсов - 5 карпентри тулсов - логов - инготов - некие дополнительные результаты работы скрипта. Если всегда кричать банк перед каждой киркой - это может вызвать некие подозрения, но это не главный фактор, к тому еще есть время которое автоматом увеличивается на ожидание открытия самого банка после команды чата. Итого 50*3 = 150 секунд. Я конечно, не придалбываюсь и не перфекционист - просто для меня это задачка которую я хочу разгадать, у самого не получается по причине скудоумия. Вот подключаю коллектив.
Re: Функция открыт ли банк с булевым результатом.
пока ты не выложишь пакеты с момента этого якобы закрытия банка - можно фантазировать хоть до нового года.
лично у меня ощущение, что банк нифига не закрывается.
Для проверки можно подключиться клиентом к стелсу и посмотреть, что там делается.
лично у меня ощущение, что банк нифига не закрывается.
Для проверки можно подключиться клиентом к стелсу и посмотреть, что там делается.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Функция открыт ли банк с булевым результатом.
как скрипт может узнать "открыт" ли банк в текущий момент времени?
Re: Функция открыт ли банк с булевым результатом.
Ну а если с другой стороны подойти? Тебе ведь надо проверять, положился ли айтем в банк? Тогда перед выкладыванием запоминай текущее кол-во, после выкладывания проверяй. Соответственно, если не изменилось (банк закрыт), значит кричи БАНК.
Re: Функция открыт ли банк с булевым результатом.
так и придумал! только описал через вес =) Спасибо всем за помощь!grundick wrote:Ну а если с другой стороны подойти? Тебе ведь надо проверять, положился ли айтем в банк? Тогда перед выкладыванием запоминай текущее кол-во, после выкладывания проверяй. Соответственно, если не изменилось (банк закрыт), значит кричи БАНК.
листинг:
Code: Select all
function ItemMoved(PreviousWeight : Integer): Boolean;
begin
Result := False;
if Weight <> PreviousWeight then Result := True;
end;
.........
while FindType($FFFF, backpack) > 0 do
begin
PreviousWeight := Weight;
MoveItem(FindItem, 0, tmpContainer, 0,0,0);
WaitAverageLag(AVERAGE_LAG_MS);
if not ItemMoved(PreviousWeight) then CallBank;
end;
Re: Функция открыт ли банк с булевым результатом.
это не решение, это костыль.
Впрочем, тогда уже лучше заюзать ивент evRejectMoveItem - http://stealth.od.ua/Doc:RU/Manual/Reference/Events
Впрочем, тогда уже лучше заюзать ивент evRejectMoveItem - http://stealth.od.ua/Doc:RU/Manual/Reference/Events
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".