summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-02-06 00:03:16 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-02-06 00:03:16 +0000
commitb23e86c84c2532d5900422295c5b352b99a13b30 (patch)
tree5be95d7331b200d6cf512b8da4a81bd3843c2a85 /src/map
parent5eb3f45f49a8437e82fa27a52c70c0a611acaeb3 (diff)
downloadhercules-b23e86c84c2532d5900422295c5b352b99a13b30.tar.gz
hercules-b23e86c84c2532d5900422295c5b352b99a13b30.tar.bz2
hercules-b23e86c84c2532d5900422295c5b352b99a13b30.tar.xz
hercules-b23e86c84c2532d5900422295c5b352b99a13b30.zip
- Fixed @lvup, #lvup not doing a stat reset and lowering your status points if you had 0 status points at that time.
- Fixed MvP exp and item rewards being given even when the mob_dead flag specifies you should not receive exp or items. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9795 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/atcommand.c20
-rw-r--r--src/map/charcommand.c20
-rw-r--r--src/map/mob.c4
3 files changed, 20 insertions, 24 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 76dfdd879..68b1909d0 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -2743,17 +2743,15 @@ int atcommand_baselevelup(const int fd, struct map_session_data* sd, const char*
level*=-1;
if ((unsigned int)level >= sd->status.base_level)
level = sd->status.base_level-1;
- if (sd->status.status_point > 0) {
- for (i = 0; i > -level; i--)
- status_point += (sd->status.base_level + i + 14) / 5;
- if (sd->status.status_point < status_point)
- pc_resetstate(sd);
- if (sd->status.status_point < status_point)
- sd->status.status_point = 0;
- else
- sd->status.status_point -= status_point;
- clif_updatestatus(sd, SP_STATUSPOINT);
- } /* to add: remove status points from stats */
+ for (i = 0; i > -level; i--)
+ status_point += (sd->status.base_level + i + 14) / 5;
+ if (sd->status.status_point < status_point)
+ pc_resetstate(sd);
+ if (sd->status.status_point < status_point)
+ sd->status.status_point = 0;
+ else
+ sd->status.status_point -= status_point;
+ clif_updatestatus(sd, SP_STATUSPOINT);
sd->status.base_level -= (unsigned int)level;
clif_updatestatus(sd, SP_BASELEVEL);
clif_updatestatus(sd, SP_NEXTBASEEXP);
diff --git a/src/map/charcommand.c b/src/map/charcommand.c
index 1d0ad382b..30afa278d 100644
--- a/src/map/charcommand.c
+++ b/src/map/charcommand.c
@@ -1338,17 +1338,15 @@ int charcommand_baselevel(
level *= -1;
if ((unsigned int)level >= pl_sd->status.base_level)
level = pl_sd->status.base_level -1;
- if (pl_sd->status.status_point > 0) {
- for (i = 0; i > -level; i--)
- status_point += (pl_sd->status.base_level +i + 14) / 5;
- if (pl_sd->status.status_point < status_point)
- pc_resetstate(pl_sd);
- if (pl_sd->status.status_point < status_point)
- pl_sd->status.status_point = 0;
- else
- pl_sd->status.status_point -= status_point;
- clif_updatestatus(pl_sd, SP_STATUSPOINT);
- } // to add: remove status points from stats
+ for (i = 0; i > -level; i--)
+ status_point += (pl_sd->status.base_level +i + 14) / 5;
+ if (pl_sd->status.status_point < status_point)
+ pc_resetstate(pl_sd);
+ if (pl_sd->status.status_point < status_point)
+ pl_sd->status.status_point = 0;
+ else
+ pl_sd->status.status_point -= status_point;
+ clif_updatestatus(pl_sd, SP_STATUSPOINT);
pl_sd->status.base_level -= (unsigned int)level;
clif_updatestatus(pl_sd, SP_BASELEVEL);
clif_updatestatus(pl_sd, SP_NEXTBASEEXP);
diff --git a/src/map/mob.c b/src/map/mob.c
index bba0505c6..7434aae3a 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2058,7 +2058,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
double exp;
//mapflag: noexp check [Lorky]
- if (map[m].flag.nobaseexp)
+ if (map[m].flag.nobaseexp || !(type&2))
exp =1;
else {
exp = md->db->mexp;
@@ -2075,7 +2075,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
clif_mvp_exp(mvp_sd,mexp);
pc_gainexp(mvp_sd, &md->bl, mexp,0);
log_mvp[1] = mexp;
- if(!map[m].flag.nomvploot)
+ if(!map[m].flag.nomvploot && !(type&1))
for(j=0;j<3;j++){
i = rand() % 3;