Browse Source

Reverted r14504, the old value is correct due to how the equation works.
Fixed an ancient off-by-one mistake in the statpoint calc equation, details are in bugreport:4575.
This will affect players with levels above 99, now giving them one stat point a level later.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14508 54d463be-8e91-2dee-dedb-b68131a5f0ec

ultramage 14 years ago
parent
commit
81420ce9cd
1 changed files with 4 additions and 6 deletions
  1. 4 6
      src/map/pc.c

+ 4 - 6
src/map/pc.c

@@ -7915,7 +7915,6 @@ int pc_split_atoui(char* str, unsigned int* val, char sep, int max)
 int pc_readdb(void)
 int pc_readdb(void)
 {
 {
 	int i,j,k;
 	int i,j,k;
-	unsigned int stat;
 	FILE *fp;
 	FILE *fp;
 	char line[24000],*p;
 	char line[24000],*p;
 
 
@@ -8106,7 +8105,6 @@ int pc_readdb(void)
 	// ƒXƒLƒ‹ƒcƒŠ?
 	// ƒXƒLƒ‹ƒcƒŠ?
 	memset(statp,0,sizeof(statp));
 	memset(statp,0,sizeof(statp));
 	i=1;
 	i=1;
-	stat = 48;	// base points
 	sprintf(line, "%s/statpoint.txt", db_path);
 	sprintf(line, "%s/statpoint.txt", db_path);
 	fp=fopen(line,"r");
 	fp=fopen(line,"r");
 	if(fp == NULL){
 	if(fp == NULL){
@@ -8115,6 +8113,7 @@ int pc_readdb(void)
 	} else {
 	} else {
 		while(fgets(line, sizeof(line), fp))
 		while(fgets(line, sizeof(line), fp))
 		{
 		{
+			int stat;
 			if(line[0]=='/' && line[1]=='/')
 			if(line[0]=='/' && line[1]=='/')
 				continue;
 				continue;
 			if ((stat=strtoul(line,NULL,10))<0)
 			if ((stat=strtoul(line,NULL,10))<0)
@@ -8128,10 +8127,9 @@ int pc_readdb(void)
 		ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","statpoint.txt");
 		ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","statpoint.txt");
 	}
 	}
 	// generate the remaining parts of the db if necessary
 	// generate the remaining parts of the db if necessary
-	for (; i <= MAX_LEVEL; i++) {
-		stat += (i+15)/5;
-		statp[i] = stat;		
-	}
+	statp[0] = 45; // seed value
+	for (; i <= MAX_LEVEL; i++)
+		statp[i] = statp[i-1] + (i-1+15)/5;
 
 
 	return 0;
 	return 0;
 }
 }