Explorar el Código

- Fixed #baselevelup adding instead of substracting status points when used with negative levels. Also made it reset your stats if there wasn't enough to substract from.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8861 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex hace 18 años
padre
commit
7025584abe
Se han modificado 2 ficheros con 6 adiciones y 1 borrados
  1. 3 0
      Changelog-Trunk.txt
  2. 3 1
      src/map/charcommand.c

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/09/25
+	* Fixed #baselevelup adding instead of substracting status points when used
+	  with negative levels. Also made it reset your stats if there wasn't enough
+	  to substract from. [Skotlex]
 	* Applied FlavioJS's suggestion of expanding WFIFOPOS to also take the
 	  direction. This had the side effect of fixing the direction missing from
 	  the mob spawn packet, which explains why all npcs face north when you are

+ 3 - 1
src/map/charcommand.c

@@ -1320,7 +1320,9 @@ int charcommand_baselevel(
 					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;
+						status_point += (pl_sd->status.base_level +i + 14) / 5;
+					if (pl_sd->status.status_point < status_point)
+						pc_resetstate(sd);
 					if (pl_sd->status.status_point < status_point)
 						pl_sd->status.status_point = 0;
 					else