@events.effect_addedотменить нельзя3 методаКогда на игрока повесили бафф или дебафф, а также когда уже висящему подняли уровень или подлили времени.
Момент, где точно известно, что зелье сработало: показать плашку, завести таймер, включить свой режим на время действия.
Клиент сравнивает эффекты игрока каждый ход игры, поэтому событие приходит одинаково и от выпитого зелья, и от маяка, и от команды сервера.
| Метод | Возвращает | Зачем |
|---|---|---|
getEffect() | Effect | Что выдали: имя, уровень, время, цвет и иконка |
getEntity() | LivingEntity | Кому выдали. Сейчас это всегда сам игрок |
isUpgraded() | bool | Эффект уже висел: подняли уровень или подлили времени |
@events.effect_added
def on_effect(event):
eff = event.getEffect()
if eff.bad:
notify.effect("Повесили %s" % eff.label, eff, eff.label, eff.color)
else:
client.msg("%s на %s" % (eff.label, eff.time))Общий список всех событий и правила подписки лежат на странице События.