浏览代码

- Changed some pc_authfails to clif_authfail_fd since pc_authfail prints errors when invoked after a char is auth'ed.
- Added a static +100 Hp to ninjas and gunslingers since it's required for the best approximated hp growth algorythm.


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

skotlex 18 年之前
父节点
当前提交
384fe7b6fc
共有 4 个文件被更改,包括 20 次插入12 次删除
  1. 2 0
      Changelog-Trunk.txt
  2. 2 2
      src/map/chrif.c
  3. 8 8
      src/map/guild.c
  4. 8 2
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ 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.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2006/12/04
 2006/12/04
+	* Added a static +100 Hp to ninjas and gunslingers since it's required for
+	  the best approximated hp growth algorythm. [Skotlex]
 	* Knockback will again use the fixpos packet instead of the slide packet
 	* Knockback will again use the fixpos packet instead of the slide packet
 	  (slide was introduced with high jump) since Aegis captures say that packet
 	  (slide was introduced with high jump) since Aegis captures say that packet
 	  is still used for knockbacks. [Skotlex]
 	  is still used for knockbacks. [Skotlex]

+ 2 - 2
src/map/chrif.c

@@ -342,7 +342,7 @@ int chrif_changemapserver(struct map_session_data *sd, short map, int x, int y,
 
 
 	if (other_mapserver_count < 1)
 	if (other_mapserver_count < 1)
 	{	//No other map servers are online!
 	{	//No other map servers are online!
-		pc_authfail(sd);
+		clif_authfail_fd(sd->fd, 0);
 		return -1;
 		return -1;
 	}
 	}
 
 
@@ -385,7 +385,7 @@ int chrif_changemapserverack(int fd)
 	if (RFIFOL(fd,6) == 1) {
 	if (RFIFOL(fd,6) == 1) {
 		if (battle_config.error_log)
 		if (battle_config.error_log)
 			ShowError("map server change failed.\n");
 			ShowError("map server change failed.\n");
-		pc_authfail(sd);
+		clif_authfail_fd(sd->fd, 0);
 		return 0;
 		return 0;
 	}
 	}
 	clif_changemapserver(sd, (char*)mapindex_id2name(RFIFOW(fd,18)), RFIFOW(fd,20), RFIFOW(fd,22), RFIFOL(fd,24), RFIFOW(fd,28));
 	clif_changemapserver(sd, (char*)mapindex_id2name(RFIFOW(fd,18)), RFIFOW(fd,20), RFIFOW(fd,22), RFIFOL(fd,24), RFIFOW(fd,28));

+ 8 - 8
src/map/guild.c

@@ -450,16 +450,16 @@ int guild_created(int account_id,int guild_id)
 
 
 	if(sd==NULL)
 	if(sd==NULL)
 		return 0;
 		return 0;
-	if(guild_id>0) {
-			//struct guild *g;
-			sd->status.guild_id=guild_id;
-			sd->state.guild_sent=0;
-			clif_guild_created(sd,0);
-			if(battle_config.guild_emperium_check)
-				pc_delitem(sd,pc_search_inventory(sd,714),1,0);	// エンペリウム消耗
-	} else {
+	if(!guild_id) {
 		clif_guild_created(sd,2);	// 作成失敗(同名ギルド存在)
 		clif_guild_created(sd,2);	// 作成失敗(同名ギルド存在)
+		return 0;
 	}
 	}
+	//struct guild *g;
+	sd->status.guild_id=guild_id;
+	sd->state.guild_sent=0;
+	clif_guild_created(sd,0);
+	if(battle_config.guild_emperium_check)
+		pc_delitem(sd,pc_search_inventory(sd,714),1,0);	// エンペリウム消耗
 	return 0;
 	return 0;
 }
 }
 
 

+ 8 - 2
src/map/status.c

@@ -1497,9 +1497,15 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta
 		val += val * 25/100;
 		val += val * 25/100;
 	else if (sd->class_&JOBL_BABY)
 	else if (sd->class_&JOBL_BABY)
 		val -= val * 30/100;
 		val -= val * 30/100;
-	if ((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc_famerank(sd->status.char_id, MAPID_TAEKWON))
+
+	if((sd->class_&MAPID_UPPERMASK) == MAPID_NINJA || 
+		(sd->class_&MAPID_UPPERMASK) == MAPID_GUNSLINGER)
+		val += 100; //Since their HP can't be approximated well enough without this.
+	if((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON &&
+		sd->status.base_level >= 90 && pc_famerank(sd->status.char_id, MAPID_TAEKWON))
 		val *= 3; //Triple max HP for top ranking Taekwons over level 90.
 		val *= 3; //Triple max HP for top ranking Taekwons over level 90.
-	if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99)
+	if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE &&
+		sd->status.base_level >= 99)
 		val += 2000;
 		val += 2000;
 
 
 	return val;
 	return val;