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

GetName

тут можно задать вопрос по скриптингу
Post Reply
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

GetName

Post by CxC »

Парни, на работе появились "свободные коридоры", вот решил перелопатить один из скриптов, поэтому есть вопросы )

Code: Select all

Program name;
begin
    Ignore(self);
    FindDistance := 20;
    if (FindType($0190, Ground) > 1) or (FindType($0191, Ground) > 0) then
        begin   
            //GetCliloc(FindItem);     
            //wait (5000)  
            ClickOnObject(FindItem);
            wait (5000)
            AddToSystemJournal('Name PK: ' + GetName(FindItem));
        end;
end.
Что не так? Пробовал и так, и так. И с задержками, и без. В итоге в журнале
12:36:14:639 [...]: Compiling
12:36:14:654 [...]: Compiled succesfully
12:36:19:657 [...]: Name PK:
12:36:19:659 [...]: Succesfully executed
12:36:19:662 [...]: Script гет нейм.sc stopped successfuly
Версия стелса последняя, на других не пробовал
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: GetName

Post by Vizit0r »

значит не имя, а тултип.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Re: GetName

Post by CxC »

Vizit0r wrote:значит не имя, а тултип.
нет. Живой чар, сфера, тултипов вообще нет. Тем более на инжекте работает гетнейм )
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: GetName

Post by Vizit0r »

AddToSystemJournal(GetName(Self));
АОП - показало свой ник.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Re: GetName

Post by CxC »

и у меня показало

тестю, вроде бы причина понятна
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Re: GetName

Post by CxC »

Не работает из-за or (FindType($0191, Ground) > 0), почему?
Рабочий вариант:

Code: Select all

Program name;
begin
    Ignore(self);
    FindDistance := 20;
    if (FindType($0190, Ground) > 0)  then
        begin   
            //GetCliloc(FindItem);     
            //wait (5000)  
            ClickOnObject(FindItem);
            wait (5000)
            AddToSystemJournal('Name PK: ' + GetName(FindItem));
        end;
end.
Нерабочий вариант:

Code: Select all

Program name;
begin
    Ignore(self);
    FindDistance := 20;
    if (FindType($0190, Ground) > 0) or (FindType($0191, Ground) > 0) then
        begin   
            //GetCliloc(FindItem);     
            //wait (5000)  
            ClickOnObject(FindItem);
            wait (5000)
            AddToSystemJournal('Name PK: ' + GetName(FindItem));
        end;
end.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: GetName

Post by Vizit0r »

ну, возможно что $0190 найден, но при поиске $0191 ничего не найдено, файндайтем устанавливается в ноль.
Вот и получается что формально условие if a or b выполняется, но finditem равно нулю.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: GetName

Post by drabadan »

Vizit0r wrote:ну, возможно что $0190 найден, но при поиске $0191 ничего не найдено, файндайтем устанавливается в ноль.
Вот и получается что формально условие if a or b выполняется, но finditem равно нулю.
едрить колотить!
Я себе весь мозг изнасиловал когда-то из-за этого.
По моей "логике" если это так можно назвать, я думал, что finditem остается с предыдущим результатом, а не переписывается в 0.

Кстати, а можно ли зафиксить это, а то получается почти любой 'or' с finditem'ом будет давать неоднозначный результат!
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: GetName

Post by Vizit0r »

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