diff options
-rw-r--r-- | src/enums/resources/notifytypes.h | 12 | ||||
-rw-r--r-- | src/net/eathena/playerhandler.cpp | 46 | ||||
-rw-r--r-- | src/resources/notifications.h | 49 |
3 files changed, 104 insertions, 3 deletions
diff --git a/src/enums/resources/notifytypes.h b/src/enums/resources/notifytypes.h index 9ad5c7577..9aa56282b 100644 --- a/src/enums/resources/notifytypes.h +++ b/src/enums/resources/notifytypes.h @@ -182,6 +182,18 @@ namespace NotifyTypes CART_ADD_WEIGHT_ERROR, CART_ADD_COUNT_ERROR, BOUND_ITEM, + SKILL_END_ALL_NEGATIVE_STATUS, + SKILL_IMMUNITY_TO_ALL_STATUSES, + SKILL_MAX_HP, + SKILL_MAX_SP, + SKILL_ALL_STATUS_PLUS_20, + SKILL_ENCHANT_WEAPON_HOLY, + SKILL_ENCHANT_ARMOR_HOLY, + SKILL_DEF_PLUS_25, + SKILL_ATTACK_PLUS_100, + SKILL_FLEE_PLUS_50, + SKILL_FULL_STRIP_FAILED, + SKILL_MESSAGE_UNKNOWN, TYPE_END }; diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp index 984713cc8..2988bf21b 100644 --- a/src/net/eathena/playerhandler.cpp +++ b/src/net/eathena/playerhandler.cpp @@ -24,11 +24,14 @@ #include "configuration.h" #include "game.h" +#include "notifymanager.h" #include "being/beingflag.h" #include "being/localplayer.h" #include "being/playerinfo.h" +#include "enums/resources/notifytypes.h" + #include "gui/onlineplayer.h" #include "gui/windows/statuswindow.h" @@ -578,9 +581,46 @@ void PlayerHandler::processPlayerHeal(Net::MessageIn &msg) void PlayerHandler::processPlayerSkillMessage(Net::MessageIn &msg) { - UNIMPLIMENTEDPACKET; - // +++ need show this message - msg.readInt32("type"); + const int message = msg.readInt32("type"); + switch (message) + { + case 0x15: + NotifyManager::notify(NotifyTypes::SKILL_END_ALL_NEGATIVE_STATUS); + break; + case 0x16: + NotifyManager::notify(NotifyTypes::SKILL_IMMUNITY_TO_ALL_STATUSES); + break; + case 0x17: + NotifyManager::notify(NotifyTypes::SKILL_MAX_HP); + break; + case 0x18: + NotifyManager::notify(NotifyTypes::SKILL_MAX_SP); + break; + case 0x19: + NotifyManager::notify(NotifyTypes::SKILL_ALL_STATUS_PLUS_20); + break; + case 0x1c: + NotifyManager::notify(NotifyTypes::SKILL_ENCHANT_WEAPON_HOLY); + break; + case 0x1d: + NotifyManager::notify(NotifyTypes::SKILL_ENCHANT_ARMOR_HOLY); + break; + case 0x1e: + NotifyManager::notify(NotifyTypes::SKILL_DEF_PLUS_25); + break; + case 0x1f: + NotifyManager::notify(NotifyTypes::SKILL_ATTACK_PLUS_100); + break; + case 0x20: + NotifyManager::notify(NotifyTypes::SKILL_FLEE_PLUS_50); + break; + case 0x28: + NotifyManager::notify(NotifyTypes::SKILL_FULL_STRIP_FAILED); + break; + default: + NotifyManager::notify(NotifyTypes::SKILL_MESSAGE_UNKNOWN); + break; + } } void PlayerHandler::setStat(Net::MessageIn &msg, diff --git a/src/resources/notifications.h b/src/resources/notifications.h index 6b2e03cbd..44044afcf 100644 --- a/src/resources/notifications.h +++ b/src/resources/notifications.h @@ -653,6 +653,55 @@ namespace NotifyManager // TRANSLATORS: notification message N_("Item %s bound to you."), NotifyFlags::STRING}, + + {"skill end all negative status", + // TRANSLATORS: notification message + N_("End all negative status."), + NotifyFlags::EMPTY}, + {"skill immunity to all status", + // TRANSLATORS: notification message + N_("Immunity to all status."), + NotifyFlags::EMPTY}, + {"skill max hp", + // TRANSLATORS: notification message + N_("Max hp +100%."), + NotifyFlags::EMPTY}, + {"skill max sp", + // TRANSLATORS: notification message + N_("Max sp +100%."), + NotifyFlags::EMPTY}, + {"skill all stats +20", + // TRANSLATORS: notification message + N_("All stats +20."), + NotifyFlags::EMPTY}, + {"skill enchant weapon with holy element", + // TRANSLATORS: notification message + N_("Enchant weapon with holy element."), + NotifyFlags::EMPTY}, + {"skill enchant armor with holy element", + // TRANSLATORS: notification message + N_("Enchant armor with holy element."), + NotifyFlags::EMPTY}, + {"skill def +25%", + // TRANSLATORS: notification message + N_("Def +25%."), + NotifyFlags::EMPTY}, + {"skill atk +100%", + // TRANSLATORS: notification message + N_("Atk +100%."), + NotifyFlags::EMPTY}, + {"skill flee +50", + // TRANSLATORS: notification message + N_("Flee +50."), + NotifyFlags::EMPTY}, + {"skill full strip failed", + // TRANSLATORS: notification message + N_("Full strip failed because of coating."), + NotifyFlags::EMPTY}, + {"skill message unknown", + // TRANSLATORS: notification message + N_("Unknown skill message."), + NotifyFlags::EMPTY}, }; } // namespace NotifyManager #endif // RESOURCES_NOTIFICATIONS_H |