Page 1 of 1

RHandLayer

Posted: 16.11.2016 2:47
by Oasis
Почитал в нашей вики про слои чара, огромное спасибо создателям вики и всем кто принимает участия по наполнению контента.
Вернемся к слоям чара.
В соседней моей теме по фишингу, я писал, что чар ловит рыбу с даггером в руке, тоесть в правой руке у него удочка и даггер, когда идет проверка наличия удочки в руке и отрабатывается строка: UnEquip(RHandLayer);
Он снимает даггер, который по задумке снимать не нужно. Вопрос, как сделать что бы он различал 2 итема в правой руке?

Code: Select all

procedure CheckEquip;
 Var EquipPole : Cardinal;  
   begin
   if (GetType(ObjAtLayer(RhandLayer)) <> fishpole) then
   begin
   //Disarm;
   UnEquip(RHandLayer);
   wait(500);
   checktools;
   FindTypeEx(fishpole,$0000,Backpack,True);
   EquipPole := finditem; 
   Equip(RhandLayer, EquipPole);  
   wait(500);
   end;
 end;

Re: RHandLayer

Posted: 16.11.2016 14:50
by drabadan
Oasis wrote:Почитал в нашей вики про слои чара, огромное спасибо создателям вики и всем кто принимает участия по наполнению контента.
Вернемся к слоям чара.
В соседней моей теме по фишингу, я писал, что чар ловит рыбу с даггером в руке, тоесть в правой руке у него удочка и даггер, когда идет проверка наличия удочки в руке и отрабатывается строка: UnEquip(RHandLayer);
Он снимает даггер, который по задумке снимать не нужно. Вопрос, как сделать что бы он различал 2 итема в правой руке?

Code: Select all

procedure CheckEquip;
 Var EquipPole : Cardinal;  
   begin
   if (GetType(ObjAtLayer(RhandLayer)) <> fishpole) then
   begin
   //Disarm;
   UnEquip(RHandLayer);
   wait(500);
   checktools;
   FindTypeEx(fishpole,$0000,Backpack,True);
   EquipPole := finditem; 
   Equip(RhandLayer, EquipPole);  
   wait(500);
   end;
 end;
fishpole по идее в левой руке.

Re: RHandLayer

Posted: 16.11.2016 15:54
by Oasis
В правой, и даггер там тоже есть, его не видно из-за удочки=)

Re: RHandLayer

Posted: 16.11.2016 16:09
by drabadan
Oasis wrote:В правой, и даггер там тоже есть, его не видно из-за удочки=)

Code: Select all

 AddToSystemJournal(IntToHex(ObjAtLayer(RhandLayer), 8) + IntToHex(ObjAtLayer(LhandLayer), 8)); 
что говорит?

Re: RHandLayer

Posted: 16.11.2016 18:06
by Oasis

Code: Select all

15:33:11:864 [timy]: Compiling
15:33:11:889 [timy]: Compiled succesfully
15:33:11:994 [timy]: Найдено тайлов для рыбалки: 140
15:33:13:154 [timy]: 00000000445FE7DE
Это я на 4.3.6 стелсе правда тестю.

Re: RHandLayer

Posted: 16.11.2016 18:17
by drabadan
Oasis wrote:

Code: Select all

15:33:11:864 [timy]: Compiling
15:33:11:889 [timy]: Compiled succesfully
15:33:11:994 [timy]: Найдено тайлов для рыбалки: 140
15:33:13:154 [timy]: 00000000445FE7DE
Это я на 4.3.6 стелсе правда тестю.
я ето к тому намекал, что ты проверив "обе руки" можешь узнать, что видит стелс а что нет...
То-есть если стелс видит последний одетый итем, как то - сперва удочка потом даггер - стелс видит даггер, или наоборот - даггер потом удочка - стелс видит удочку, отсюда и сделай вывод что одевать последним для того чтобы использовать нужный итем.

Re: RHandLayer

Posted: 16.11.2016 18:19
by Oasis
Спасибо, поэкспериментирую=)

Re: RHandLayer

Posted: 17.11.2016 14:05
by Vizit0r
клиент зачастую некорректно рисует айтемы. Много раз я встречал топоры, которые одевались в левую руку, а рисовались в правой, удочки, оружие...

Re: RHandLayer

Posted: 17.11.2016 16:28
by Oasis
Не знал, спасибо за наводку, попробую в другую руку прописать.
Но он как бы берет и даггер и удочку, в правую руку, по команде брать в правую руку. Просто иногда он снимал и одевал даггер, который не должен снимать по задумке. Раньше скрипт просто юзал удочку с пака, тем самым одевая ее в руку и ловя рыбку, без проверки есть ли она в руке или нет. А даггер брал в руку по команде, но не производил проверку снятием и одеванием, он просто всегда был в руке. Потом я сделал, что бы чар одевал удочку по команде,а не просто юзал ее с пака, и получилось так, что он иногда снимал и одевал даггер, из-за чего только что выловленная рыба не резалась и в пак падала целая рыба, что мешало идеи скрипта.
Потом мне намекнули поменять местами что чар берет в первую очередь:

Code: Select all

AddToSystemJournal('Найдено тайлов для рыбалки: '+IntToStr(WaterCount));
while not Dead and s do begin
if cut = 1 then begin
CheckEquip;
CheckDagger;
end;
Fishing;
end;
end.
строки CheckEquip; и CheckDagger; просто поменял местами как выше, и вроде получилось. Очень редко, в пак падает не резанная рыба. Почему я пока не понял.

Кажется увидел ошибку.

Code: Select all

if cut = 1 then begin
CheckEquip;
CheckDagger;
end;
Хотя там есть что делать, по более скудному знанию правки скриптов, написал целую процедуру, даже 2 процедуры, чектулс, проверил в пак на наличие удочек, если в паке меньше 1 удочек выполняем 2ю процедуру - сундук с удочками: снова проверяем пак на наличие удочек, и если их меньше 1: открыть сундук, если в сундуке больше 1 удочки - ищем удочку по типу и цвету в сундуке - берем 1 удочку в пак. Дальше уже идет основная процедура фишинг, которая обращается к процедуре с командой взять удочку в правую руку с пака... ох как, а ведь можно было сделать что он брал удочку в руку сразу с сундука... этот чертов скрипт открывает с каждым часом глаза на "скриптостроку" и новый уровень правки=) очень скудный но приятный.

Re: RHandLayer

Posted: 17.11.2016 18:03
by Oasis
Фантастика, и ведь действительно удочка в левой руке, хотя он ее все равно брал когда стояла команда в правую руку.

Re: RHandLayer

Posted: 17.11.2016 18:48
by Vizit0r
ты отсылал команду взять ее в правую руку.
Сервер это нормально воспринимал, брал - и перекидывал в другую руку. Это бывает.