60 for (
int f = 0; f < 38; f ++)
62 msg.readUInt8(
"type 0: item, 1: skill");
63 msg.readInt32(
"item or skill id");
64 msg.readInt16(
"skill level");
72 msg.readUInt8(
"rotate");
73 for (
int f = 0; f < 38; f ++)
75 msg.readUInt8(
"type 0: item, 1: skill");
76 msg.readInt32(
"item or skill id");
77 msg.readInt16(
"skill level");
85 msg.readUInt8(
"rotate");
87 for (
int f = 0; f < 38; f ++)
89 msg.readUInt8(
"type 0: item, 1: skill");
90 msg.readInt32(
"item or skill id");
91 msg.readInt16(
"skill level");
98 msg.readUInt8(
"show equip");
103 BLOCK_START(
"PlayerRecv::processPlayerStatUpdate5")
105 msg.readInt16(
"char points"),
108 unsigned int val =
msg.readUInt8(
"str");
115 msg.readUInt8(
"str cost"));
119 msg.readUInt8(
"str need");
122 val =
msg.readUInt8(
"agi");
127 msg.readUInt8(
"agi cost"));
131 msg.readUInt8(
"agi cost");
134 val =
msg.readUInt8(
"vit");
139 msg.readUInt8(
"vit cost"));
143 msg.readUInt8(
"vit cost");
146 val =
msg.readUInt8(
"int");
151 msg.readUInt8(
"int cost"));
155 msg.readUInt8(
"int cost");
158 val =
msg.readUInt8(
"dex");
163 msg.readUInt8(
"dex cost"));
167 msg.readUInt8(
"dex cost");
170 val =
msg.readUInt8(
"luk");
175 msg.readUInt8(
"luk cost"));
179 msg.readUInt8(
"luk cost");
183 msg.readInt16(
"left atk"),
186 msg.readInt16(
"right atk"),
190 val =
msg.readInt16(
"right matk");
193 val =
msg.readInt16(
"left matk");
199 msg.readInt16(
"left def"),
202 msg.readInt16(
"right def"),
206 msg.readInt16(
"left mdef"),
209 msg.readInt16(
"right mdef"),
213 msg.readInt16(
"hit"),
217 msg.readInt16(
"flee"),
220 msg.readInt16(
"flee2/10"),
224 msg.readInt16(
"crit/10"),
228 msg.readInt16(
"attack speed"),
230 msg.readInt16(
"plus speed = 0");
232 BLOCK_END(
"PlayerRecv::processPlayerStatUpdate5")
239 const BeingId id =
msg.readBeingId(
"player id");
240 const int exp =
msg.readInt32(
"exp amount");
241 const int stat =
msg.readInt16(
"exp type");
242 const bool fromQuest =
msg.readInt16(
"is from quest") != 0;
259 const BeingId id =
msg.readBeingId(
"player id");
260 const int64_t exp =
msg.readInt64(
"exp amount");
261 const int stat =
msg.readInt16(
"exp type");
262 const bool fromQuest =
msg.readInt16(
"is from quest") != 0;
287 msg.readInt32(
"tick");
288 msg.readCoordinatePair(srcX, srcY, dstX, dstY,
"move path");
289 msg.readUInt8(
"(sx<<4) | (sy&0x0f)");
292 BLOCK_END(
"PlayerRecv::processWalkResponse")
297 msg.readInt32(
"tick");
298 const int x =
msg.readInt16(
"x");
299 const int y =
msg.readInt16(
"y");
307 msg.readInt32(
"char id");
308 msg.readBeingId(
"account id");
309 msg.readInt32(
"pvp won");
310 msg.readInt32(
"pvp lost");
311 msg.readInt32(
"pvp point");
319 const int type =
msg.readInt16(
"var id");
321 if (
msg.getVersion() >= 20150513)
322 amount =
msg.readInt32(
"value");
324 amount =
msg.readInt16(
"value");
353 const int message =
msg.readInt32(
"type");
398 msg.readInt16(
"type");
404 msg.readInt32(
"points");
405 msg.readInt32(
"total points");
411 msg.readInt32(
"points");
412 msg.readInt32(
"total points");
418 msg.readInt32(
"result");
419 msg.readItemId(
"item id");
425 msg.readInt32(
"points");
426 msg.readInt32(
"total points");
432 msg.readInt32(
"book id");
433 msg.readInt32(
"page");
439 msg.readInt32(
"type");
440 msg.readInt32(
"flag");
446 const int count = (
msg.readInt16(
"len") - 8) / 2;
447 for (
int f = 0; f < count; f ++)
448 msg.readInt16(
"skill id");
454 msg.readInt16(
"type");
455 msg.readInt32(
"points");
456 msg.readInt32(
"fame");
465 const int size =
msg.readInt16(
"len") - 4;
466 STD_VECTOR<OnlinePlayer*> arr;
472 BLOCK_END(
"PlayerRecv::processOnlineList")
476 char *
const start =
reinterpret_cast<char*
>(
msg.readBytes(
size,
"nicks"));
477 if (
start ==
nullptr)
479 BLOCK_END(
"PlayerRecv::processOnlineList")
483 const char *buf =
start;
490 const unsigned char status = *buf;
492 const unsigned char level = *buf;
494 const unsigned char ver = *buf;
505 arr.push_back(
new OnlinePlayer(
static_cast<const char*
>(buf),
506 status, level, gender, ver, -1));
507 buf += strlen(buf) + 1;
513 BLOCK_END(
"PlayerRecv::processOnlineList")
519 msg.readInt16(
"view");
526 const BeingId id =
msg.readBeingId(
"killer id");
532 _(
"You were killed by unknown source."))
537 if (dstBeing !=
nullptr)
543 _(
"You were killed by %s."),
550 const int len =
msg.readInt16(
"len");
554 const int groupId =
msg.readInt32(
"group id");
564 BLOCK_START(
"PlayerRecv::processPlayerStatUpdate7")
565 const int type =
msg.readInt16(
"type");
566 const int64_t value =
msg.readInt64(
"value");
568 BLOCK_END(
"PlayerRecv::processPlayerStatUpdate7")
574 msg.readUInt8(
"flag");
580 msg.readUInt8(
"fail flag");
581 msg.readInt32(
"title");
ActorManager * actorManager
const BeingId BeingId_zero
Being * findBeing(const BeingId id) const
void setMaxHp(const int maxHp)
const std::string & getName() const
bool getBoolValue(const std::string &key) const
void addHpMessage(const int change)
void failMove(const int x, const int y)
void setGroupId(const int id)
void setRealPos(const int x, const int y)
void addJobMessage(const int64_t change)
void addXpMessage(const int64_t change)
void addSpMessage(const int change)
virtual void setStat(Net::MessageIn &msg, const int type, const int64_t base, const int mod, const Notify notify) const =0
PartyMember * getMember(const BeingId id) const
static Party * getParty(const int16_t id)
void setPointsNeeded(const AttributesT id, const int needed)
void loadList(const std::vector< OnlinePlayer * > &list)
LocalPlayer * localPlayer
#define UNIMPLEMENTEDPACKETFIELD(field)
#define UNIMPLEMENTEDPACKET
bool msg(InputEvent &event)
void processPlayerReadBook(Net::MessageIn &msg)
void processWalkResponse(Net::MessageIn &msg)
void processDressRoomOpen(Net::MessageIn &msg)
void processWalkError(Net::MessageIn &msg)
void processPlayerUpgradeMessage(Net::MessageIn &msg)
void processSetTitleAck(Net::MessageIn &msg)
void processPlayerStatUpdate7(Net::MessageIn &msg)
void processSelectStyleAck(Net::MessageIn &msg)
void processPlayerFameBlacksmith(Net::MessageIn &msg)
void processPlayerShortcuts2(Net::MessageIn &msg)
void processPlayerGetExp(Net::MessageIn &msg)
void processNotifyMapInfo(Net::MessageIn &msg)
void processPlayerHeal(Net::MessageIn &msg)
void processPvpInfo(Net::MessageIn &msg)
void processPlayerZCConfig(Net::MessageIn &msg)
void processPlayerShowEquip(Net::MessageIn &msg)
void processPlayerGetExp2(Net::MessageIn &msg)
void processPlayerAttrs(Net::MessageIn &msg)
void processOnlineList(Net::MessageIn &msg)
void processKilledBy(Net::MessageIn &msg)
void processPlayerFameTaekwon(Net::MessageIn &msg)
void processPlayerShortcuts1(Net::MessageIn &msg)
void processPlayerAutoShadowSpellList(Net::MessageIn &msg)
void processPlayerShortcuts3(Net::MessageIn &msg)
void processPlayerStatUpdate5(Net::MessageIn &msg)
void processPlayerSkillMessage(Net::MessageIn &msg)
void processPlayerFameAlchemist(Net::MessageIn &msg)
void processPlayerRankPoints(Net::MessageIn &msg)
void notify(const unsigned int message)
@ SKILL_ENCHANT_ARMOR_HOLY
@ SKILL_END_ALL_NEGATIVE_STATUS
@ SKILL_ENCHANT_WEAPON_HOLY
@ SKILL_FULL_STRIP_FAILED
@ SKILL_IMMUNITY_TO_ALL_STATUSES
@ SKILL_ALL_STATUS_PLUS_20
void setStatMod(const AttributesT id, const int value, const Notify notify)
int32_t getAttribute(const AttributesT id)
void setAttribute(const AttributesT id, const int64_t value, const Notify notify)
void setStatBase(const AttributesT id, const int value, const Notify notify)
Net::PlayerHandler * playerHandler
#define BLOCK_START(name)
StatusWindow * statusWindow
std::string strprintf(const char *const format,...)
WhoIsOnline * whoIsOnline