소스 검색

PACKET_ZC_HIGHJUMP (#8588)

AoShinHo 8 달 전
부모
커밋
37bc0f4c10
7개의 변경된 파일24개의 추가작업 그리고 18개의 파일을 삭제
  1. 12 13
      src/map/clif.cpp
  2. 1 1
      src/map/clif.hpp
  3. 0 1
      src/map/clif_packetdb.hpp
  4. 8 0
      src/map/packets.hpp
  5. 1 1
      src/map/skill.cpp
  6. 1 1
      src/map/status.cpp
  7. 1 1
      src/map/unit.cpp

+ 12 - 13
src/map/clif.cpp

@@ -2118,7 +2118,7 @@ void clif_changemapserver( map_session_data& sd, const char* map, uint16 x, uint
 /// This function combines both calls and allows to simplify the calling code
 void clif_blown(struct block_list *bl)
 {
-	clif_slide(bl, bl->x, bl->y);
+	clif_slide(*bl, bl->x, bl->y);
 	clif_fixpos( *bl );
 }
 
@@ -9992,21 +9992,20 @@ void clif_name( struct block_list* src, struct block_list *bl, send_target targe
 /// Visually moves(instant) a character to x,y. The char moves even
 /// when the target cell isn't walkable. If the char is sitting it
 /// stays that way.
-void clif_slide(struct block_list *bl, int x, int y)
-{
-	unsigned char buf[10];
-	nullpo_retv(bl);
+void clif_slide(block_list& bl, int x, int y){
 
-	WBUFW(buf, 0) = 0x01ff;
-	WBUFL(buf, 2) = bl->id;
-	WBUFW(buf, 6) = x;
-	WBUFW(buf, 8) = y;
-	clif_send(buf, packet_len(0x1ff), bl, AREA);
+	PACKET_ZC_HIGHJUMP p{};
 
-	if( disguised(bl) )
+	p.packetType = HEADER_ZC_HIGHJUMP;
+	p.srcId = bl.id;
+	p.x = x;
+	p.y = y;
+	clif_send(&p, sizeof(p), &bl, AREA);
+
+	if( disguised(&bl) )
 	{
-		WBUFL(buf,2) = disguised_bl_id(bl->id);
-		clif_send(buf, packet_len(0x1ff), bl, SELF);
+		p.srcId = disguised_bl_id(bl.id);
+		clif_send(&p, sizeof(p), &bl, SELF);
 	}
 }
 

+ 1 - 1
src/map/clif.hpp

@@ -838,7 +838,7 @@ void clif_move( struct unit_data& ud ); //area
 void clif_changemap( map_session_data& sd, short m, uint16 x, uint16 y );
 void clif_changemapserver( map_session_data& sd, const char* map, uint16 x, uint16 y, uint32 ip, uint16 port );
 void clif_blown(struct block_list *bl); // area
-void clif_slide(struct block_list *bl, int x, int y); // area
+void clif_slide(block_list& bl, int x, int y); // area
 void clif_fixpos( block_list& bl );
 void clif_npcbuysell( map_session_data& sd, npc_data& nd );
 void clif_buylist( map_session_data& sd, npc_data& nd );

+ 0 - 1
src/map/clif_packetdb.hpp

@@ -316,7 +316,6 @@
 	packet(0x01fb,56);
 	packet(0x01fc,-1);
 	parseable_packet( HEADER_CZ_REQ_ITEMREPAIR1, sizeof( struct PACKET_CZ_REQ_ITEMREPAIR1 ), clif_parse_RepairItem, 0 );
-	packet(0x01ff,10);
 	packet(0x0200,26);
 	packet(0x0201,-1);
 	parseable_packet(0x0202,26,clif_parse_FriendsListAdd,2);

+ 8 - 0
src/map/packets.hpp

@@ -996,6 +996,14 @@ struct PACKET_ZC_SKILL_UPDATE {
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(ZC_SKILL_UPDATE, 0x1ac);
 
+struct PACKET_ZC_HIGHJUMP{
+	uint16 packetType;
+	uint32 srcId;
+	uint16 x;
+	uint16 y;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_HIGHJUMP, 0x01ff);
+
 #if PACKETVER >= 20141022
 struct PACKET_ZC_RECOVERY {
 	int16 packetType;

+ 1 - 1
src/map/skill.cpp

@@ -9688,7 +9688,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			if(blew_count > 0)
 				clif_blown(src); // Always blow, otherwise it shows a casting animation. [Lemongrass]
 #else
-			clif_slide(bl, bl->x, bl->y); //Show the casting animation on pre-re
+			clif_slide(*bl, bl->x, bl->y); //Show the casting animation on pre-re
 #endif
 		}
 		break;

+ 1 - 1
src/map/status.cpp

@@ -14790,7 +14790,7 @@ TIMER_FUNC(status_change_timer){
 				uint16 x = sce->val3 >> 16, y = sce->val3 & 0xFFFF;
 
 				if (distance_xy(x, y, bl->x, bl->y) <= skill_get_unit_range(SO_VACUUM_EXTREME, sce->val1) && unit_movepos(bl, x, y, 0, false)) {
-					clif_slide(bl, x, y);
+					clif_slide(*bl, x, y);
 					clif_fixpos( *bl );
 				}
 			}

+ 1 - 1
src/map/unit.cpp

@@ -1132,7 +1132,7 @@ bool unit_movepos(struct block_list *bl, short dst_x, short dst_y, int easy, boo
 
 			if( flag ) {
 				unit_movepos(pbl,sd->bl.x,sd->bl.y, 0, 0);
-				clif_slide(pbl,pbl->x,pbl->y);
+				clif_slide(*pbl,pbl->x,pbl->y);
 			}
 		}
 	}