Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    245

Posts posted by AnnieRuru


  1. ok I tested,

    /**
     * Renewal full toggle switch.
     *
     * Uncomment this line to disable all of the below settings at once.
     * Note: in UNIX builds, this can be easily done without touching this
     * line, by passing --disable-renewal to the configure script:
     * ./configure --disable-renewal
     */
    #define DISABLE_RENEWAL

     

    the first video you posted is the same behavior when my test server compile with Renewal flag

    the second video you posted is the same behavior when my server compile with DISABLE_RENEWAL aka pre-renewal server

     

    AND YES I'm using Renewal client, when my test server compile with pre-renewal behavior, my client DOES behave weirdly
    the character sprite stand still for about 3 seconds, then returning to normal

    when server compile with Renewal behavior, this doesn't happen

     

    now I am assuming your server is pre-renewal and want a renewal behavior asura strike ?

    if your server using pre-renewal you have to tell where and which client you download,

    there's a glitch like I mentioned when using asura strike when server compile with pre-re and using re client


  2. 37 minutes ago, evilpuncker said:

    something like this:

    https://pastebin.com/raw/kQXRG1yq

    	if(Class==Job_Novice || Class==Job_Novice_High) {
    		mes "[ ^C6A518Linker^000000 ]";		
    		mes "Sorry, not available to novice.";
    		close;
    	}

    what what ??

    Rebirth Spirit CAN be use on Novice High

    I just tested a soul linker can use Rebirth Spirit on a Level 40 Rebirth Novice, all stats adds +29

     

    it should be

    if (Class == Job_Novice || Class == Job_Baby) {

     


  3. https://rathena.org/board/topic/124591-asura-movement/

    https://rathena.org/board/topic/119177-src-code-old-asura-spam/?do=findComment&comment=361337

     

    ok from what I understand, asura strike old behavior was teleporting to the target
    and the new behavior was moving across the target

     

    you want the behavior of teleporting, which I think might cause the client to behave weirdly ....

     

    searching for related code from your posted one ...

    wait where this code comes from ?
    I search both hercules and rathena, couldn't find them in my src folder for both emulators

    at least please tell this code is from which function, and which emulator you are using


  4. 20 minutes ago, Sikdope said:

    last question mam! hehe  how to remove it announce when buying at point shop thank you very very much!

    nice.png

    I dual client to check, this is an announcement with bc_self flag
    means only the player talk to this npc gets this blue announcement, surrounding player couldn't see them

     

    I don't think its a good idea to disable it


  5. prontera,155,185,5	script	PvP_Points	1_F_MARIA,{
    	callshop "pvpshop", 1;
    	end;
    OnPCKillEvent:
    	.@map$ = strcharinfo(3);
    	if (getmapflag(.@map$,mf_pvp) && killedrid != getcharid(3)) {
    		if(++#pvp_points % 1 == 0)
    			dispbottom "Current amount of PvP Points: "+#pvp_points;
    	}
    	end;
    }
    //-	pointshop	pvpshop	#pvp_points-1,14533:3,14545:5,12210:10,7776:40 // wrong
    -	pointshop	pvpshop	-1,#pvp_points,14533:3,14545:5,12210:10,7776:40 

    shouldn't your rathena's map-server.exe spit error about ... WOW !! doesn't throw error !! what a great emulator they have

    anyway I tested this one working fine


  6. ZZZZZZzzzzzz......
    talk to this npc... then talk to that npc... then go here kill monster, then help this npc in trouble ...

    what ... you think is rpg game or something ?

    insert keima meme here from the world gods only knows episode 4 18:12

    keima_rpg.png

     

    ok joke aside, I don't like doing this kind of stuffs, unless you want to pay me of course

    but if you want to do it yourself, there are 2 ways I can think of

    1. create a new bindatcmd "@checktokenquest" and script all the description yourself, this new npc will have a very long lines to code

    2. use quest log system like my sample here ->

    either way good luck

     

     

    I think gravity will eventually put this onto quest log or something...


  7. that's because the monster with event labels doesn't trigger OnNPCKillEvent

    this has been discuss for years and there are no perfect solution to solve this issue

    EDIT: it seems there is, Kenpachi suggest we add another flag to monster spawn with or without event labels

    anyway this is developer talk ...

     

    to fix your problem just need to remove the OnNPCKillEvent label and incorporate it into OnKill label

     

    by the way I have no idea why your screenshot shows so many kills, the `gold_rank` field has been default to 0 in the SQL syntax...

    try create another table to solve those incorrect value kills then

     

    I don't think its a good idea to run query_sql inside OnNPCKillEvent label, since this script is made for high rate server and players can kill peco fast

    so I made minor changes

     

    https://gist.github.com/AnnieRuru/6f41d54b03417a768167820ee6f1f037


  8. and what is token quest exactly ?

     

    this kind of topic .... I usually lock them up immediately because there are not enough explanation ...

     

     

    https://rathena.org/board/topic/124678-treasure-hunter-quests-regarding-the-taken-quest/

    I went over to rathena forum, you also just say "gimme your token quest script I saw on other server pls help" but you never say how your players gonna get token in the first place


  9. /*
    	alter table `char` add `gold_rank` int(11) unsigned default 0 after unban_time, add index (gold_rank);
    */
    prontera,155,185,5	script	kjdshfksfh	1_F_MARIA,{	
    	mes "[ ^C6A518Top 30 Gold Hunters^000000 ]";    
    	.@nb = query_sql( "select name, gold_rank from `char` where gold_rank > 0 order by gold_rank desc limit 2", .@name$, .@gold );
    	if ( !.@nb ) {
    		mes "No ranking yet";
    		close;
    	}
    	for ( .@i = 0; .@i < .@nb; .@i++ )
    		mes .@name$[.@i] +" killed "+ .@gold[.@i] +" Golden Peco";
    	close;
    OnNPCKillEvent:
    	if ( strcharinfo(3) == "ordeal_1-2" && killedrid == 1369 )
    		query_sql "update `char` set gold_rank = gold_rank +1 where char_id = "+ getcharid(0);
    	end; 
    }

     

    it is working fine, tested

     

    screen2020Hercules004.jpg


  10. {
    	Id: 12103
    	AegisName: "Bloody_Dead_Branch"
    	Name: "Bloody Branch"
    	Type: "IT_USABLE"
    	Buy: 10000
    	Weight: 200
    	BuyingStore: true
    	Script: <" monster "this",-1,-1,"--ja--",-3,1,""; ">
    },

    bloody branch can drop thanatos card ??????

    am I reading this properly ?????

     

    if you mean remove thanatos monster spawn, then remove the line in db/re/mob_boss.txt

    1708,Thanatos Phantom,1000000

    I hope I don't need to remind the difference for re/pre-re folder

     

    1 hour ago, Kuroyama said:

    Since mob_avail isn't available to duplicate mobs for hercules

    its in the db\re\mob_db.conf

     


  11. 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

     

    13 hours ago, raPalooza~ said:

    Do you think It would improve performance?

    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)

     

     


  12. 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


  13. {
    	Id: 1132
    	AegisName: "Edge"
    	Name: "Edge"
    	Type: "IT_WEAPON"
    	Buy: 20
    	Weight: 700
    	Atk: 115
    	Range: 1
    	Job: {
    		Swordsman: true
    		Merchant: true
    		Thief: true
    		Knight: true
    		Blacksmith: true
    		Assassin: true
    		Crusader: true
    		Rogue: true
    		Alchemist: true
    	}
    	Loc: "EQP_WEAPON"
    	WeaponLv: 4
    	EquipLv: 40
    	Subtype: "W_1HSWORD"
    	Script: <"
    		bonus2 bAddEff,Eff_Curse,30;
    		bonus2 bWeaponComaRace,RC_NonBoss,10;
    	">
    },

    I am scratching my head or did I misunderstood your question ?

    	bonus2 bWeaponComaRace,RC_NonBoss,10;
    	sc_start SC_COMA, 1,1;

     


  14. 3 hours ago, raPalooza~ said:

    I've never seen this kinda of modification and i think its very neat one to maybe put as a forced settings via mapflag.

    Maybe the ability to only see the damage you deal and recieve, the packet would still be sent anyway because I think it's bounded to "receive damage" animaiton effect, but might reduce image cluster when maps are crowded. Maybe if passing it as 0 would reduce memory? noidea

    mf_gvg mapflag and mf_gvg_castle mapflag with `@agitstart` on will disallow showing the damage packet already ? I think they sent as 1 damage or something

     

    https://github.com/HerculesWS/Hercules/blob/1354b01c7a24e9ffd9ea570cbaec668721fc2a6c/conf/map/battle/client.conf#L55-L58

    Quote

    // When set to true, the damage field in packets sent from woe maps will be set
    // to -1, making it impossible for GMs, Bots and Hexed clients to know the
    // actual damage caused by attacks. (Note 1)
    hide_woe_damage: true

    search hide_woe_damage in clif.c, the packet indeed altered to become if (skill is multiple hit)? number of hits : 0;

    	if( battle_config.hide_woe_damage && map_flag_gvg2(src->m) ) {
    		p.damage = damage?div:0;
    		p.leftDamage = damage2?div:0;
    	} else {
    		p.damage = damage;
    		p.leftDamage = damage2;
    	}

     

    and yes, this modification is indeed REMOVE certain packet send to reduce server bandwidth

    this can only stays as plugin, and could never get into our emulator, despite how popular it is


  15. hmm ........ already 2 people getting the same error message

    I just tested on my test server, compile with visual studio 2019, no problem everything green though

    noviewon.png

     

    if you get this error does it means you also get disable view for whole server instead of individual player ?


  16. 3 hours ago, Samuel said:

    The status changes I'm saying was the buffs itself, so when the buff is applied, you could see the [BASFD] added strings + character name in the chat box.

    I also think its client side stuff hahaha

     

    screen2020Hercules002.jpg

    click on this small little icon and select Party member's abnormal status, turn it off


  17. 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

    Quote

    -Activates a mode to ignore some packets on WoE, comming from other users

    -This reduce the bandwith a little bit on WoE, reducing LAG.

    -C = Ignore jokes and global chat messages from others.

    -I = Ignores Item usage from others.

    packetfilter: true

    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

     

     

    Spoiler

    0.1 - plugin

    - proof of concept

     

    0.2 - plugin

    - add sub-type flags (Self/Party/Guild/Bg/Other/Homun/Mob)

    - add emotion filter

    - fix compiler warning that doesn't display on visual studio

     

    0.3 - plugin

    - add missing FILTER_CLAN flag

    - implement block_item type 'I' flag

    - fix FILTER_OTHER not working properly when the player doesn't have a party or guild

    - fix [C]hat type shouldn't able to filter self, since the client always shows you are talking anyway

    - and attempt to fix the above stupid error that doesn't show on Visual Studio

     

    0.4 - plugin

    - if its not BL_PC|BL_PET|BL_HOM|BL_MER|BL_ELEM|BL_MOB immediately jump out of function for faster processing

    - fix sd->status.clan_id

    - implement block attack [A] and buff [B ] flag

    - don't need to use snprintf needlessly when print out the flags

    - just unset the flag if the SELF flag isn't supported

     

    0.5 - plugin

    - fix linux compile warning `type` not being use

    - change useItemAckType into 0x1c8 ... hopefully no more nullpo ?

    - allow blocking casting animation, save more bandwidth

    - implement [T], [G], [D] type respectively

     

    1.0 - plugin

    - introduce type [D], direction packet, and existing Dance/songs move to type `[M]usic`

    - no longer use nested IF-ELSE, use switch statement on the packet header for faster read speed

    - fix [I.]tem type throw nullpo error on 2018 client

    - add Caution as a warning that certain packet filter wont work correctly

     

×
×
  • Create New...

Important Information

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