Selaa lähdekoodia

- Fixed pc_setpos ignoring the clrtype sent to it.
- unit_free will now use clear type 3 for players (warping out effect)
- You can't invite someone to a guild now within Guild Castles.


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

skotlex 19 vuotta sitten
vanhempi
commit
4dc9cb89ad
4 muutettua tiedostoa jossa 16 lisäystä ja 8 poistoa
  1. 5 0
      Changelog-Trunk.txt
  2. 5 2
      src/map/guild.c
  3. 4 4
      src/map/pc.c
  4. 2 2
      src/map/unit.c

+ 5 - 0
Changelog-Trunk.txt

@@ -3,6 +3,11 @@ 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.
 
+2006/04/07
+	* Fixed pc_setpos ignoring the clrtype sent to it. [Skotlex]
+	* unit_free will now use clear type 3 for players (warping out effect)
+	  [Skotlex]
+	* You can't invite someone to a guild now within Guild Castles. [Skotlex]
 2006/04/06
 	* Hopefully fixed the wedding item-trade restriction. [Skotlex]
 	* Fixed status_clear_buffs making SC_BERSERK's end send you to 100hp.

+ 5 - 2
src/map/guild.c

@@ -641,11 +641,14 @@ int guild_invite(struct map_session_data *sd,int account_id)
 			return 0;
 		}
 	}
-	if( tsd->status.guild_id>0 || tsd->guild_invite>0 ){	// 相手の所属確認
+	if(tsd->status.guild_id>0 ||
+		tsd->guild_invite>0 ||
+		map[tsd->bl.m].flag.gvg_castle)
+	{	//Can't invite people inside castles. [Skotlex]
 		clif_guild_inviteack(sd,0);
 		return 0;
 	}
-
+	
 	// 定員確認
 	for(i=0;i<g->max_member;i++)
 		if(g->member[i].account_id==0)

+ 4 - 4
src/map/pc.c

@@ -3044,14 +3044,14 @@ int pc_setpos(struct map_session_data *sd,unsigned short mapindex,int x,int y,in
 		if(sd->mapindex){
 			int ip,port;
 			if(map_mapname2ipport(mapindex,&ip,&port)==0){
-				unit_remove_map(&sd->bl,3);
+				unit_remove_map(&sd->bl,clrtype);
 				sd->mapindex = mapindex;
 				sd->bl.x=x;
 				sd->bl.y=y;
 				sd->state.waitingdisconnect=1;
 				pc_clean_skilltree(sd);
 				if(sd->status.pet_id > 0 && sd->pd) {
-					unit_remove_map(&sd->pd->bl, 0);
+					unit_remove_map(&sd->pd->bl, clrtype);
 					intif_save_petdata(sd->status.account_id,&sd->pet);
 				}
 				chrif_save(sd,1);
@@ -3083,9 +3083,9 @@ int pc_setpos(struct map_session_data *sd,unsigned short mapindex,int x,int y,in
 	}
 
 	if(sd->bl.prev != NULL){
-		unit_remove_map(&sd->bl, 3);
+		unit_remove_map(&sd->bl, clrtype);
 		if(sd->status.pet_id > 0 && sd->pd)
-			unit_remove_map(&sd->pd->bl, 3);
+			unit_remove_map(&sd->pd->bl, clrtype);
 		clif_changemap(sd,map[m].index,x,y); // [MouseJstr]
 	}
 		

+ 2 - 2
src/map/unit.c

@@ -1476,8 +1476,8 @@ int unit_free(struct block_list *bl) {
 	nullpo_retr(0, ud);
 
 	map_freeblock_lock();
-	if( bl->prev )
-		unit_remove_map(bl, 0);
+	if( bl->prev )	//Players are supposed to logout with a "warp" effect.
+		unit_remove_map(bl, bl->type==BL_PC?3:0);
 
 	if( bl->type == BL_PC ) {
 		struct map_session_data *sd = (struct map_session_data*)bl;