No more Work in Progress, Please report if there are any bug
Download: 1.0a [Complete]
plugin
What is `@packetfilter` ?
`@packetfilter` is a custom mod originate from eamod
https://github.com/zephyrus-cr/eamod/blob/master/Servers/rAthena/conf/groups.conf#L418-L422
it can actually reduce lag on your live server during woe depends on how many players activate it
it totally depends on the player's side, community effort that every player should together turn on the `@packetfilter` to reduce massive lag during woe
this modification is actually very famous and there are members willingly to pay for it
https://rathena.org/board/topic/121200-packetfilter-battleinfo/
https://rathena.org/board/topic/123203-battleinfo-packetfilter/
https://rathena.org/board/topic/111797-packetfilter-zepyhrus-ramod/
https://rathena.org/board/topic/79995-buy-noactnodelay-partybuff-src-as-it-was-on-pro-ro-or-packetfilter/
this `@packetfilter` is unlike the one you are having, or that is circulating on rathena forum
this one has been written entirely from scratch and added some other flags that the original don't
for example,
`@packetfilter COHM EOHM`
allow block normal chat and emotion from non-related players, pets, homunculus and monsters
but this doesn't block normal chat from party/guild members
a full list of flags are
C = ignore normal Chat, including Dancer's scream, Bard's frost joke, and pet's talk (pet start to talk when intimacy > 900)
E = ignore emotion, including monster and pet emotion (but NOT pet performance)
I = ignore Item use effect
A = ignore normal Attack animation (based on receiving side), your own attack animation are always shown
B = Buffing skill animations (based on receiving side), your own casting animation are always shown
S = Status effect
T = offensive single Target skill/spell animations (based on receiving side), your own casting animation are always shown
G = Ground based skills (eg:storm gust), your own casting animation are always shown
M = Music dance/songs from Bard/Dancer
D = Direction. Recommend filter on Party/Guild type and not enemies. Highly Recommend for supportive type Class.
after the Main type, also support additional flags
S = Self
P = Party
G = Guild
B = Battleground
C = Clan
O = Other players, none of the above
H = Homunculus/pets/elementals/mercenary and player's @summon
M = Monsters
Why This plugin doesn't block Kaite or Energy Coat ?
2 reasons
No.1 - currently there is a bug with plugin,
struct packet_spawn_unit *p = (struct packet_spawn_unit*)RBUFP(buf, 0);
this line will throw error on Linux
so no choice, maybe I'll make a bug report
this bug also has been reported on Dastgir's `@noview`
No.2 - just set p->virtue = 0; isn't really blocking the packet
this goes against the very principle of this plugin, which is NOT send certain packet to the client
OPT3 (including OPT3_KAITE | OPT3_ENERGYCOAT | OPT3_SOULLINK) is part of the idle_unitType, unit_walkingType and spawn_unitType function
and blocking those 3 packet entirely is stupid
in case you don't understand, look under clif_set_unit_walking and clif_set_unit_idle function inside src\map\clif.c file
p.GUID = g_id;
p.GEmblemVer = status->get_emblem_id(bl);
p.honor = (sd) ? sd->status.manner : 0;
// p.virtue = (sc) ? sc->opt3 : 0; <-- change this line
p.virtue = 0;
p.isPKModeON = (sd && sd->status.karma) ? 1 : 0;
p.sex = vd->sex;
Note: about [D]irection type packet
try add a ShowDebug inside clif->send
src/map/clif.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/map/clif.c b/src/map/clif.c
index ab3c4422a..9e245f335 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -450,6 +450,7 @@ static bool clif_send(const void *buf, int len, struct block_list *bl, enum send
return true;
}
+ShowDebug("source:%s buf:0x%x send_target:%d\n", (sd != NULL)? sd->status.name : "NULL", RBUFW(buf, 0), type);
switch(type) {
case ALL_CLIENT: //All player clients.
iter = mapit_getallusers();
you will find 0x9c is being send repeatedly on every attack and every skill cast , getting attack etc
this direction update packet isn't just send by Shift-click, but also including all the actions above
this packet is very spam-able and I think can be safely block on party/guild/clan/bg flags
for supportive class, I also think can block all of them since supportive class doesn't need information from enemies