소스 검색

* Updated packet 0x163 (ZC_BAN_LIST) to reflect change in packet layout introduced with 2010-08-03aRagexeRE (bugreport:4881, follow up to r14718).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14804 54d463be-8e91-2dee-dedb-b68131a5f0ec
ai4rei 14 년 전
부모
커밋
6e34da4c83
2개의 변경된 파일15개의 추가작업 그리고 5개의 파일을 삭제
  1. 1 0
      Changelog-Trunk.txt
  2. 14 5
      src/map/clif.c

+ 1 - 0
Changelog-Trunk.txt

@@ -1,6 +1,7 @@
 Date	Added
 
 2011/04/28
+	* Updated packet 0x163 (ZC_BAN_LIST) to reflect change in packet layout introduced with 2010-08-03aRagexeRE (bugreport:4881, follow up to r14718). [Ai4rei]
 	* Fixed formatted broadcast messages not working with 2010-11-24aRagexeRE and later (bugreport:4872, since r14120). [Ai4rei]
 2011/04/27
 	* Fixed description for script command 'itemheal' claiming, that this command is responsible for potion visual effects which it is not (item-use causes the client to display these) (since r2397). [Ai4rei]

+ 14 - 5
src/map/clif.c

@@ -7039,6 +7039,11 @@ int clif_guild_expulsion(struct map_session_data *sd,const char *name,const char
  *------------------------------------------*/
 int clif_guild_expulsionlist(struct map_session_data *sd)
 {
+#if PACKETVER < 20100803
+	const int offset = NAME_LENGTH+64;
+#else
+	const int offset = NAME_LENGTH+40;
+#endif
 	int fd;
 	int i,c;
 	struct guild *g;
@@ -7048,18 +7053,22 @@ int clif_guild_expulsionlist(struct map_session_data *sd)
 		return 0;
 
 	fd = sd->fd;
-	WFIFOHEAD(fd,4 + MAX_GUILDEXPULSION * 88);
+	WFIFOHEAD(fd,4 + MAX_GUILDEXPULSION * offset);
 	WFIFOW(fd,0)=0x163;
 	for(i=c=0;i<MAX_GUILDEXPULSION;i++){
 		struct guild_expulsion *e=&g->expulsion[i];
 		if(e->account_id>0){
-			safestrncpy((char*)WFIFOP(fd,4 + c*88),e->name,NAME_LENGTH);
-			safestrncpy((char*)WFIFOP(fd,4 + c*88+24),"",24); // account name (not used for security reasons)
-			safestrncpy((char*)WFIFOP(fd,4 + c*88+48),e->mes,40);
+			safestrncpy((char*)WFIFOP(fd,4 + c*offset),e->name,NAME_LENGTH);
+#if PACKETVER < 20100803
+			safestrncpy((char*)WFIFOP(fd,4 + c*offset+24),"",24); // account name (not used for security reasons)
+			safestrncpy((char*)WFIFOP(fd,4 + c*offset+48),e->mes,40);
+#else
+			safestrncpy((char*)WFIFOP(fd,4 + c*offset+24),e->mes,40);
+#endif
 			c++;
 		}
 	}
-	WFIFOW(fd,2) = 4 + c*88;
+	WFIFOW(fd,2) = 4 + c*offset;
 	WFIFOSET(fd,WFIFOW(fd,2));
 	return 0;
 }