summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/protocol.h5
-rw-r--r--src/net/ea/specialhandler.cpp15
2 files changed, 17 insertions, 3 deletions
diff --git a/src/net/ea/protocol.h b/src/net/ea/protocol.h
index ce8417bf..fcb96f22 100644
--- a/src/net/ea/protocol.h
+++ b/src/net/ea/protocol.h
@@ -161,6 +161,11 @@ static const int STORAGE_OFFSET = 1;
#define CMSG_SKILL_LEVELUP_REQUEST 0x0112
#define CMSG_STAT_UPDATE_REQUEST 0x00bb
+#define CMSG_SKILL_USE_BEING 0x0113
+#define CMSG_SKILL_USE_POSITION 0x0116
+// Variant of 0x116 with 80 char string at end (unsure of use)
+#define CMSG_SKILL_USE_POSITION_MORE 0x0190
+#define CMSG_SKILL_USE_MAP 0x011b
#define CMSG_PLAYER_INVENTORY_USE 0x00a7
#define CMSG_PLAYER_INVENTORY_DROP 0x00a2
diff --git a/src/net/ea/specialhandler.cpp b/src/net/ea/specialhandler.cpp
index e75ed1bb..218ff795 100644
--- a/src/net/ea/specialhandler.cpp
+++ b/src/net/ea/specialhandler.cpp
@@ -230,17 +230,26 @@ void SpecialHandler::use(int id)
void SpecialHandler::use(int id, int level, int beingId)
{
- // TODO
+ MessageOut outMsg(CMSG_SKILL_USE_BEING);
+ outMsg.writeInt16(level);
+ outMsg.writeInt16(id);
+ outMsg.writeInt16(beingId);
}
void SpecialHandler::use(int id, int level, int x, int y)
{
- // TODO
+ MessageOut outMsg(CMSG_SKILL_USE_POSITION);
+ outMsg.writeInt16(level);
+ outMsg.writeInt16(id);
+ outMsg.writeInt16(x);
+ outMsg.writeInt16(y);
}
void SpecialHandler::use(int id, const std::string &map)
{
- // TODO
+ MessageOut outMsg(CMSG_SKILL_USE_MAP);
+ outMsg.writeInt16(id);
+ outMsg.writeString(map, 16);
}
} // namespace EAthena