summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-09-27 22:35:38 +0300
committerAndrei Karas <akaras@inbox.ru>2017-09-27 22:35:38 +0300
commit9429dc4f5b5b6102a8b575de25ce5d8e7170551f (patch)
treed4603ddbea06f75e8637a1ff94da4432d7b96951 /src/net/eathena
parent64d30eda264c342aced8d791b47a35def0e4d15c (diff)
downloadplus-9429dc4f5b5b6102a8b575de25ce5d8e7170551f.tar.gz
plus-9429dc4f5b5b6102a8b575de25ce5d8e7170551f.tar.bz2
plus-9429dc4f5b5b6102a8b575de25ce5d8e7170551f.tar.xz
plus-9429dc4f5b5b6102a8b575de25ce5d8e7170551f.zip
Change player job level, exp from stat object to attribute.
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/charserverrecv.cpp16
-rw-r--r--src/net/eathena/playerhandler.cpp10
2 files changed, 12 insertions, 14 deletions
diff --git a/src/net/eathena/charserverrecv.cpp b/src/net/eathena/charserverrecv.cpp
index 3178a6d5f..f60fb1ff0 100644
--- a/src/net/eathena/charserverrecv.cpp
+++ b/src/net/eathena/charserverrecv.cpp
@@ -91,15 +91,17 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
else
data.mAttributes[Attributes::PLAYER_EXP] = msg.readInt32("exp");
data.mAttributes[Attributes::MONEY] = msg.readInt32("money");
- Stat &jobStat = data.mStats[Attributes::PLAYER_JOB];
if (packetVersion >= 20170830)
- jobStat.exp = msg.readInt64("job exp");
+ {
+ data.mAttributes[Attributes::PLAYER_JOB_EXP] =
+ msg.readInt64("job exp");
+ }
else
- jobStat.exp = msg.readInt32("job exp");
-
- const int temp = msg.readInt32("job level");
- jobStat.base = temp;
- jobStat.mod = temp;
+ {
+ data.mAttributes[Attributes::PLAYER_JOB_EXP] =
+ msg.readInt32("job exp");
+ }
+ data.mAttributes[Attributes::PLAYER_JOB] =msg.readInt32("job level");
msg.readInt16("shoes?");
const int gloves = msg.readInt16("gloves");
diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp
index c7361e1b0..9106fce26 100644
--- a/src/net/eathena/playerhandler.cpp
+++ b/src/net/eathena/playerhandler.cpp
@@ -532,8 +532,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::setAttribute(Attributes::PLAYER_EXP, base);
break;
case Sp::JOBEXP:
- PlayerInfo::setStatExperience(Attributes::PLAYER_JOB, base,
- PlayerInfo::getStatExperience(Attributes::PLAYER_JOB).second);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP, base);
break;
case Sp::KARMA:
PlayerInfo::setStatBase(Attributes::PLAYER_KARMA, base);
@@ -632,11 +631,8 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
case Sp::NEXTBASEEXP:
PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED, base);
break;
- // ++ here used in wrong way. Need like Sp::NEXTBASEEXP?
case Sp::NEXTJOBEXP:
- PlayerInfo::setStatExperience(Attributes::PLAYER_JOB,
- PlayerInfo::getStatExperience(Attributes::PLAYER_JOB).first,
- base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED, base);
break;
case Sp::WEIGHT:
PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base);
@@ -708,7 +704,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::updateAttrs();
break;
case Sp::JOBLEVEL:
- PlayerInfo::setStatBase(Attributes::PLAYER_JOB, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB, base);
break;
default: