@events.scrollможно отменить6 методовИгрок крутит колесо мыши. Приходит и в игре, и в открытых экранах.
Прокрутка идёт мимо кнопок мыши, отдельным событием. В игре она листает хотбар, в экранах прокручивает списки, и скрипт может вмешаться в оба случая.
Направление смотрят через isUp и isDown, величину через getVertical: у обычной мыши это 1 или -1, у тачпада бывает дробной.
| Метод | Возвращает | Зачем |
|---|---|---|
getVertical() | float | Обычная прокрутка: больше нуля от себя, меньше на себя |
getHorizontal() | float | Боковая прокрутка, у обычной мыши всегда 0 |
isUp() / isDown() | bool | Куда крутанули |
getX() / getY() | float | Где курсор, в единицах render_2d |
isScreenOpen() | bool | Открыт ли сейчас экран |
cancel() | - | Не дать прокрутке дойти до игры |
mod = Module("ScrollRange", "Combat")
value = 4.0
@events.scroll
def on_scroll(event):
global value
# без зажатого Alt колесо работает как обычно и листает хотбар
if not mod.isEnabled() or not keys.down("LEFT_ALT"):
return
value += 0.5 if event.isUp() else -0.5
value = max(1.0, min(8.0, value))
client.overlay("дистанция: %.1f" % value)
# прокрутку забрали себе, хотбар не переключится
event.cancel()Общий список всех событий и правила подписки лежат на странице События.