Procházet zdrojové kódy

- Fixed a fake nullpo when parsing the reply to a guild alliance request.
- Fixed the position of a nullpo in guild.c


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

skotlex před 18 roky
rodič
revize
23ebb95f4d
1 změnil soubory, kde provedl 7 přidání a 3 odebrání
  1. 7 3
      src/map/guild.c

+ 7 - 3
src/map/guild.c

@@ -1319,7 +1319,11 @@ int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag)
 	struct map_session_data *tsd;
 
 	nullpo_retr(0, sd);
-	nullpo_retr(0, tsd= map_id2sd( account_id ));
+	tsd= map_id2sd( account_id );
+	if (!tsd) { //Character left? Cancel alliance.
+		clif_guild_allianceack(sd,3);
+		return 0;
+	}
 
 	if(sd->guild_alliance!=tsd->status.guild_id)	// 勧誘とギルドIDが違う
 		return 0;
@@ -1370,13 +1374,13 @@ int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag)
 // ギルド関係解消
 int guild_delalliance(struct map_session_data *sd,int guild_id,int flag)
 {
+	nullpo_retr(0, sd);
+
 	if(agit_flag)	{	// Disable alliance breaking during woe [Valaris]
 		clif_displaymessage(sd->fd,"Alliances cannot be broken during Guild Wars!");
 		return 0;
 	}	// end addition [Valaris]
 
-	nullpo_retr(0, sd);
-
 	intif_guild_alliance( sd->status.guild_id,guild_id,
 		sd->status.account_id,0,flag|8 );
 	return 0;