فهرست منبع

- Removed the equip id from the clif_pet_equip packet as it is not used for anything.
- Corrected the pet-armor field of the pet not being updated on equip/unequip of accessories, making them not show up inmediately.


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

skotlex 19 سال پیش
والد
کامیت
38ead62cea
4فایلهای تغییر یافته به همراه13 افزوده شده و 9 حذف شده
  1. 2 0
      Changelog-Trunk.txt
  2. 2 2
      src/map/clif.c
  3. 1 1
      src/map/clif.h
  4. 8 6
      src/map/pet.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/07/07
+	* Corrected the pet-armor field of the pet not being updated on
+	  equip/unequip of accessories, making them not show up inmediately. [Skotlex]
 	* Status_calc_bl will no longer stop you from attacking/walking when the
 	  mode is changed unless the new mode no longer includes
 	  "can-attack"/"can-move" respectively. [Skotlex]

+ 2 - 2
src/map/clif.c

@@ -6311,7 +6311,7 @@ int clif_pet_performance(struct block_list *bl,int param)
 	return 0;
 }
 
-int clif_pet_equip(struct pet_data *pd,int nameid)
+int clif_pet_equip(struct pet_data *pd)
 {
 	unsigned char buf[16];
 
@@ -7727,7 +7727,7 @@ int clif_charnameack (int fd, struct block_list *bl)
 				WBUFW(buf, 0) = cmd = 0x195;
 				sprintf(mobhp, "HP: %u/%u", md->status.hp, md->status.max_hp);
 				//Even thought mobhp ain't a name, we send it as one so the client
-				//can parse it.
+				//can parse it. [Skotlex]
 				memcpy(WBUFP(buf,30), mobhp, NAME_LENGTH);
 				WBUFB(buf,54) = 0;
 				memcpy(WBUFP(buf,78), mobhp, NAME_LENGTH);

+ 1 - 1
src/map/clif.h

@@ -315,7 +315,7 @@ int clif_send_petdata(struct map_session_data *sd,int type,int param);
 int clif_send_petstatus(struct map_session_data *sd);
 int clif_pet_emotion(struct pet_data *pd,int param);
 int clif_pet_performance(struct block_list *bl,int param);
-int clif_pet_equip(struct pet_data *pd,int nameid);
+int clif_pet_equip(struct pet_data *pd);
 int clif_pet_food(struct map_session_data *sd,int foodid,int fail);
 int clif_send (unsigned char *buf, int len, struct block_list *bl, int type);
 

+ 8 - 6
src/map/pet.c

@@ -402,7 +402,7 @@ int pet_data_init(struct map_session_data *sd)
 	pd->bl.subtype = MONS;
 	pd->bl.type = BL_PET;
 	pd->msd = sd;
-	status_set_viewdata(&pd->bl,pd->class_);
+	status_set_viewdata(&pd->bl, pd->class_);
 	unit_dataset(&pd->bl);
 	pd->ud.dir = sd->ud.dir;
 	pd->last_thinktime = gettick();
@@ -457,7 +457,7 @@ int pet_birth_process(struct map_session_data *sd)
 	clif_spawn(&sd->pd->bl);
 	clif_send_petdata(sd,0,0);
 	clif_send_petdata(sd,5,battle_config.pet_hair_style);
-	clif_pet_equip(sd->pd,sd->pet.equip);
+	clif_pet_equip(sd->pd);
 	clif_send_petstatus(sd);
 
 	Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd); 
@@ -502,7 +502,7 @@ int pet_recv_petdata(int account_id,struct s_pet *p,int flag)
 			clif_spawn(&sd->pd->bl);
 			clif_send_petdata(sd,0,0);
 			clif_send_petdata(sd,5,battle_config.pet_hair_style);
-//			clif_pet_equip(sd->pd,sd->pet.equip);
+//			clif_pet_equip(sd->pd);
 			clif_send_petstatus(sd);
 		}
 	}
@@ -707,7 +707,7 @@ int pet_change_name(struct map_session_data *sd,char *name, int flag) //flag 0 =
 
 	clif_charnameack (0,&sd->pd->bl);
 	sd->pet.rename_flag = 1;
-	clif_pet_equip(sd->pd,sd->pet.equip);
+	clif_pet_equip(sd->pd);
 	clif_send_petstatus(sd);
 
 	return 0;
@@ -731,7 +731,8 @@ int pet_equipitem(struct map_session_data *sd,int index)
 
 	pc_delitem(sd,index,1,0);
 	sd->pet.equip = pd->equip = nameid;
-	clif_pet_equip(pd,nameid);
+	status_set_viewdata(&pd->bl, pd->vd.class_); //Updates view_data.
+	clif_pet_equip(pd);
 	if (battle_config.pet_equip_required)
 	{ 	//Skotlex: start support timers if need
 		unsigned int tick = gettick();
@@ -759,7 +760,8 @@ static int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd)
 
 	nameid = sd->pet.equip;
 	sd->pet.equip = pd->equip = 0;
-	clif_pet_equip(pd,0);
+	status_set_viewdata(&pd->bl, pd->vd.class_);
+	clif_pet_equip(pd);
 	memset(&tmp_item,0,sizeof(tmp_item));
 	tmp_item.nameid = nameid;
 	tmp_item.identify = 1;