summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-08-22 22:04:07 +0300
committerAndrei Karas <akaras@inbox.ru>2015-08-22 22:04:07 +0300
commit7f716b84fcad512a49e3122bc1bc49f3c5437cc8 (patch)
treee5972d155b0783db9b29aeb5c8fd095c3f6bbeb4
parentb7c2e8491471af7eaf92f1f93d1cbd394a295ee3 (diff)
downloadmv-7f716b84fcad512a49e3122bc1bc49f3c5437cc8.tar.gz
mv-7f716b84fcad512a49e3122bc1bc49f3c5437cc8.tar.bz2
mv-7f716b84fcad512a49e3122bc1bc49f3c5437cc8.tar.xz
mv-7f716b84fcad512a49e3122bc1bc49f3c5437cc8.zip
Impliment packet SMSG_PLAYER_SKILL_MESSAGE.
-rw-r--r--src/enums/resources/notifytypes.h12
-rw-r--r--src/net/eathena/playerhandler.cpp46
-rw-r--r--src/resources/notifications.h49
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