@events.attackможно отменить2 методаВ момент, когда игрок бьёт сущность, до того как удар уйдёт на сервер.
Главное боевое событие. Здесь видно, кого именно бьют, и можно не дать удару случиться.
На нём делают френдлисты (не бить своих), счётчики ударов, уведомления о цели, автоматику вроде «после удара переключить предмет».
Сущность приходит готовой к работе: методы у неё зовутся человеческими именами.
| Метод | Возвращает | Зачем |
|---|---|---|
getEntity() | Entity | Кого бьём. Объект игры, методы зовутся сразу |
cancel() / isCancelled() | ничего / bool | Отменить удар |
mod = Module("Friends", "Combat")
FRIENDS = ["Notch", "Steve"]
@events.attack
def on_attack(event):
if not mod.isEnabled():
return
victim = event.getEntity()
nick = str(victim.getNameForScoreboard())
if nick in FRIENDS:
event.cancel() # удар не уйдёт на сервер
client.overlay("Свой: " + nick)hits = 0
@events.attack
def on_attack(event):
global hits
hits += 1
client.overlay("Ударов: %d" % hits)Общий список всех событий и правила подписки лежат на странице События.