소스 검색

- Cleaned up the implementation of party_send_movemap, it should fix the client receiving the party-mate positions before receiving the party information when you first log on.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9994 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 년 전
부모
커밋
d25c9daa47
2개의 변경된 파일12개의 추가작업 그리고 17개의 파일을 삭제
  1. 1 1
      src/map/map.c
  2. 11 16
      src/map/party.c

+ 1 - 1
src/map/map.c

@@ -2540,7 +2540,7 @@ int map_delmap(char *mapname) {
  * Initiate maps loading stage
  *--------------------------------------
  */
-int map_readallmaps()
+int map_readallmaps (void)
 {
 	int i;
 	int maps_removed = 0;

+ 11 - 16
src/map/party.c

@@ -520,22 +520,9 @@ void party_send_movemap(struct map_session_data *sd)
 	intif_party_changemap(sd,1);
 
 	p=party_search(sd->status.party_id);
-	if (p && sd->fd) {
-		//Send dots of other party members to this char. [Skotlex]
-		for(i=0; i < MAX_PARTY; i++) {
-			if (!p->data[i].sd	|| p->data[i].sd == sd ||
-				p->data[i].sd->bl.m != sd->bl.m)
-				continue;
-			clif_party_xy_single(sd->fd, p->data[i].sd);
-		}
-	}
-	
-	if( sd->state.party_sent )
-		return;
+	if (!p) return;
 
-	party_check_conflict(sd);
-	
-	if(p){
+	if(!sd->state.party_sent) {
 		party_check_member(&p->party);
 		if(sd->status.party_id==p->party.party_id){
 			clif_party_member_info(p,sd);
@@ -544,7 +531,15 @@ void party_send_movemap(struct map_session_data *sd)
 			sd->state.party_sent=1;
 		}
 	}
-	
+
+	if (sd->fd) { //Send dots of other party members to this char. [Skotlex]
+		for(i=0; i < MAX_PARTY; i++) {
+			if (p->data[i].sd &&
+				p->data[i].sd != sd &&
+				p->data[i].sd->bl.m == sd->bl.m)
+				clif_party_xy_single(sd->fd, p->data[i].sd);
+		}
+	}
 	return;
 }