Browse Source

- Fixed char-server not sending party status update when a member logs on/off
- Fixed crash when parsing guild member information change from the char-server when the specified character is not found in the guild.
- Fixed MvP mobs giving exp when killed even if they shouldn't


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

skotlex 18 years ago
parent
commit
7946ebfc48
6 changed files with 15 additions and 2 deletions
  1. 6 0
      Changelog-Trunk.txt
  2. 2 0
      src/char/int_party.c
  3. 2 0
      src/char_sql/int_party.c
  4. 2 1
      src/map/atcommand.c
  5. 2 0
      src/map/intif.c
  6. 1 1
      src/map/mob.c

+ 6 - 0
Changelog-Trunk.txt

@@ -3,6 +3,12 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2007/02/06
+	* Fixed char-server not sending party status update when a member logs
+	  on/off.
+	* Fixed crash when parsing guild member information change from the
+	  char-server when the specified character is not found in the guild.
+	* Fixed MvP mobs giving exp when killed even if they shouldn't.
 2007/02/05
 	* Fixed @lvup, #lvup not doing a stat reset and lowering your status points
 	  if you had 0 status points at that time.

+ 2 - 0
src/char/int_party.c

@@ -661,6 +661,8 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
 			p->party.member[i].lv = lv;
 			int_party_check_lv(p);
 		}
+		//Send online/offline update.
+		mapif_party_membermoved(&p->party, i);
 	}
 	if (p->party.member[i].lv != lv) {
 		if(p->party.member[i].lv == p->min_lv ||

+ 2 - 0
src/char_sql/int_party.c

@@ -750,6 +750,8 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
 			p->party.member[i].lv = lv;
 			int_party_check_lv(p);
 		}
+		//Send online/offline update.
+		mapif_party_membermoved(&p->party, i);
 	}
 
 	if (p->party.member[i].lv != lv) {

+ 2 - 1
src/map/atcommand.c

@@ -9861,7 +9861,8 @@ int atcommand_fakename(const int fd, struct map_session_data* sd, const char* co
 		return 0;
 	}
 	
-	memcpy(sd->fakename,name,NAME_LENGTH-1);
+	memcpy(sd->fakename,name,NAME_LENGTH);
+	sd->fakename[NAME_LENGTH-1] = '\0';
 	clif_charnameack(0, &sd->bl);
 	clif_displaymessage(sd->fd,"Fake name enabled.");
 	

+ 2 - 0
src/map/intif.c

@@ -1267,6 +1267,8 @@ int intif_parse_GuildMemberInfoChanged(int fd)
 	if( g==NULL )
 		return 0;
 	idx=guild_getindex(g,account_id,char_id);
+	if (idx == -1)
+		return 0;
 	switch(type){
 	case GMI_POSITION:
 		g->member[idx].position=dd;

+ 1 - 1
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 || !(type&2))
+		if (map[m].flag.nobaseexp || type&2)
 			exp =1; 
 		else {
 			exp = md->db->mexp;