Sting0r Posted Wednesday at 04:41 AM Posted Wednesday at 04:41 AM Hey guys, does anyone can explain why the packets have to be changed when casting spells while disguised? For example in clif_skill_poseffect void clif_skill_poseffect( block_list& bl, uint16 skill_id, uint16 skill_lv, uint16 x, uint16 y, t_tick tick ){ PACKET_ZC_NOTIFY_GROUNDSKILL packet{}; packet.PacketType = HEADER_ZC_NOTIFY_GROUNDSKILL; packet.SKID = skill_id; packet.AID = bl.id; packet.level = skill_lv; packet.xPos = x; packet.yPos = y; packet.startTime = client_tick( tick ); if (disguised(&bl)) { clif_send( &packet, sizeof( packet ), &bl, AREA_WOS ); packet.AID = disguised_bl_id( bl.id ); clif_send( &packet, sizeof( packet ), &bl, SELF ); } else { clif_send( &packet, sizeof( packet ), &bl, AREA ); } } why the packet.AID is changed to basically -bl.id ? for the disguised player, how does that effect the client? and why when i tried to just yet the code, i changed nothing ? (just keeping clif_send( &packet, sizeof( packet ), &bl, AREA );) Quote
0 StiveRO Posted 18 hours ago Posted 18 hours ago There has been a complete structural change to the blocklist system, which has impacted the entire server—even though such a change was unnecessary. This has caused issues for many scripts, including those developed from the beginning. Actions like this are generally avoided in professional practice. For example, platforms like Windows, Android, Apple, Linux, and others do not make changes to core structures lightly. Doing so would immediately cause problems for all developers relying on those structures. Even fundamental server commands have been affected, and there may still be other issues that have yet to be discovered. Quote
Question
Sting0r
Hey guys, does anyone can explain why the packets have to be changed when casting spells while disguised?
For example in clif_skill_poseffect
void clif_skill_poseffect( block_list& bl, uint16 skill_id, uint16 skill_lv, uint16 x, uint16 y, t_tick tick ){ PACKET_ZC_NOTIFY_GROUNDSKILL packet{}; packet.PacketType = HEADER_ZC_NOTIFY_GROUNDSKILL; packet.SKID = skill_id; packet.AID = bl.id; packet.level = skill_lv; packet.xPos = x; packet.yPos = y; packet.startTime = client_tick( tick ); if (disguised(&bl)) { clif_send( &packet, sizeof( packet ), &bl, AREA_WOS ); packet.AID = disguised_bl_id( bl.id ); clif_send( &packet, sizeof( packet ), &bl, SELF ); } else { clif_send( &packet, sizeof( packet ), &bl, AREA ); } }
why the packet.AID is changed to basically -bl.id ? for the disguised player, how does that effect the client? and why when i tried to just yet the code, i changed nothing ? (just keeping clif_send( &packet, sizeof( packet ), &bl, AREA );)
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.