Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 09/26/20 in Posts

  1. 1 point
    AnnieRuru

    @packetfilter

    actually normal hit a monster send multiple packets let's put a ShowDebug on clif->send function src/map/clif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map/clif.c b/src/map/clif.c index 54c9869c3..38ac2ea1e 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -449,7 +449,7 @@ static bool clif_send(const void *buf, int len, struct block_list *bl, enum send else if (type == AREA_WOS || type == BG_WOS || type == BG_AREA_WOS) return true; } - +ShowDebug("source:%s buf:%d 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(); `@monster poporing` and hit it once, and here is what I get [Debug]: source:NULL buf:2248 send_target:2 [Debug]: source:AnnieRuru buf:156 send_target:2 [Debug]: source:NULL buf:2557 send_target:2 [Debug]: source:AnnieRuru buf:2248 send_target:2 [Debug]: source:NULL buf:156 send_target:2 [Debug]: source:AnnieRuru buf:2248 send_target:2 [Debug]: source:NULL buf:156 send_target:2 [Debug]: source:AnnieRuru buf:2248 send_target:2 analyze the packet 2248 hex 0x8C8 is ZC_NOTIFY_ACT2 came from clif_damage function /// Sends a 'damage' packet (src performs action on dst) /// 008a <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.W <div>.W <type>.B <damage2>.W (ZC_NOTIFY_ACT) /// 02e1 <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.L <div>.W <type>.B <damage2>.L (ZC_NOTIFY_ACT2) /// 08c8 <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.L <IsSPDamage>.B <div>.W <type>.B <damage2>.L (ZC_NOTIFY_ACT2) /// type: @see enum battle_dmg_type /// for BDT_NORMAL: [ damage: total damage, div: amount of hits, damage2: assassin dual-wield damage ] static int clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, enum battle_dmg_type type, int64 in_damage2) 156 hex 0x9c is ZC_CHANGE_DIRECTION came from clif_changed_dir function /// Updates body and head direction of an object (ZC_CHANGE_DIRECTION). /// 009c <id>.L <head dir>.W <dir>.B /// head dir: /// 0 = straight /// 1 = turned CW /// 2 = turned CCW /// dir: @see enum unit_dir static void clif_changed_dir(struct block_list *bl, enum send_target target) 2557 hex 0x9fd is unit_walkingType (src\map\packet_struct.h) ... couldn't find where this came from ... I rather don't touch this at the moment this means, whenever I attack something, it sends an attack animation and also updates the client to face the attacking source enemy so if we block ZC_CHANGE_DIRECTION for the monster, this will cause rogue's backstab to not function properly the answer is YES, block ZC_NOTIFY_ACT2 here's the plugin `@filterattack` https://github.com/AnnieRuru/Release/blob/master/plugins/packetfilter/filterattack.c after tested it, `@filterattack 63` looks like everyone is standing still facing each other (remember ZC_CHANGE_DIRECTION packet is still sent)
  2. 1 point
    AnnieRuru

    About dead / bloody branches

    wait, I thought I answered this on rathena forum already ? https://rathena.org/board/topic/126009-deadbloody-branch-timer/ same user name, I actually thought I helped a rathena member there if you come here and ask the same question again it means you are actually hercules user ? anyway hercules has plugin system that rathena don't, and rathena still hasn't implement plugin system yet, so here goes https://github.com/AnnieRuru/Release/blob/master/plugins/deadbranch_timerdelete/deadbranch_timerdelete.c
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.