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

RHandLayer

тут можно задать вопрос по скриптингу
Post Reply
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

RHandLayer

Post 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;
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: RHandLayer

Post 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 по идее в левой руке.
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: RHandLayer

Post by Oasis »

В правой, и даггер там тоже есть, его не видно из-за удочки=)
Attachments
Скриншот 16-11-2016 132103.jpg
Скриншот 16-11-2016 132103.jpg (58.2 KiB) Viewed 8094 times
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: RHandLayer

Post by drabadan »

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

Code: Select all

 AddToSystemJournal(IntToHex(ObjAtLayer(RhandLayer), 8) + IntToHex(ObjAtLayer(LhandLayer), 8)); 
что говорит?
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: RHandLayer

Post 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 стелсе правда тестю.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: RHandLayer

Post 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 стелсе правда тестю.
я ето к тому намекал, что ты проверив "обе руки" можешь узнать, что видит стелс а что нет...
То-есть если стелс видит последний одетый итем, как то - сперва удочка потом даггер - стелс видит даггер, или наоборот - даггер потом удочка - стелс видит удочку, отсюда и сделай вывод что одевать последним для того чтобы использовать нужный итем.
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: RHandLayer

Post by Oasis »

Спасибо, поэкспериментирую=)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: RHandLayer

Post by Vizit0r »

клиент зачастую некорректно рисует айтемы. Много раз я встречал топоры, которые одевались в левую руку, а рисовались в правой, удочки, оружие...
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: RHandLayer

Post 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 удочку в пак. Дальше уже идет основная процедура фишинг, которая обращается к процедуре с командой взять удочку в правую руку с пака... ох как, а ведь можно было сделать что он брал удочку в руку сразу с сундука... этот чертов скрипт открывает с каждым часом глаза на "скриптостроку" и новый уровень правки=) очень скудный но приятный.
Oasis
Novice
Novice
Posts: 52
Joined: 02.01.2014 14:15

Re: RHandLayer

Post by Oasis »

Фантастика, и ведь действительно удочка в левой руке, хотя он ее все равно брал когда стояла команда в правую руку.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: RHandLayer

Post by Vizit0r »

ты отсылал команду взять ее в правую руку.
Сервер это нормально воспринимал, брал - и перекидывал в другую руку. Это бывает.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply