2014-09-02 4 views
1

Это должно позволить мне включить или выключить кнопку запуска в игре (вместо того, чтобы удерживать ее). Он работает, но я хотел бы знать как.Может ли кто-нибудь объяснить этот скрипт authotkey для меня?

$w:: Gosub, AutorunToggleME2 
~s:: Gosub, AutoRunOffME2 

AutorunToggleME2: 
toggle := !toggle 
Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}" 
return 

AutoRunOffME1: 
toggle = ; Off 
Send {w up} 
return 

В частности, я хотел бы, что следующие строки сделать:

Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}" 

Send {w up} 

ответ

4

Код претендующий зажать ж. Проанализирован основной синтаксис Sendhere.

Чтобы удерживать или отпускать ключ: Вставить в фигурные скобки имя ключа , за которым следует слово «Вниз» или «Вниз». Например:

Send {b down}{b up} 
Send {TAB down}{TAB up} 
Send {Up down} ; Press down the up-arrow key. 
Sleep 1000 ; Keep it down for one second. 
Send {Up up} ; Release the up-arrow key. 

Так эта линия:

Send {w up} 

Очевидно выпускает ш.

Другая линия является более сложной:

Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}" 

Вы можете найти объяснение соответствующего синтаксиса here.

В основном:

  • % говорит, что следующий текст является выражение.
  • . является оператором конкатенации строк.
  • Эта часть ((Toggle) ? ("down") : ("up")) является условным оператором (a.k.a тернарный оператор). Это сокращение от if/else. В этом случае, когда Toggle истинно, он возвращает «вниз», иначе он возвращает «вверх».

Это работает либо Send {w down} или Send {w up} в зависимости от значения Toggle (истина или ложь)

Смежные вопросы