• 0
Profile

Devotion magic reflect issue

Question

Posted (edited)

Hi all, WoE has just started in my server and I have noticed a big problem with magic reflect damage when the damage dealer is protected with Devotion.

The damage dealer (with devotion) does damage to enemy and for some reason, an attack animation happens to the damage dealer (he aims at the current location of Devotion caster and attacks).

This is a problem, because it "pauses" the constant cast of skills by the damage dealer. This also happens if the enemy is buffed with "Kaite" and gets damaged by "Meteor shower".

Below is a video showing what happens:

https://www.youtube.com/watch?v=6ENAp2a8VNw&feature=youtu.be

 

Could someone help me solve this issue?

I believe this has been caused due to a src modification made to my server, there has been many and I can't recall which has caused it.

Willing to pay for the changes.

Edited by Profile

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Okay, I have been looking into this but unfortunately could not find the issue. Wondering if this has anything to do with the hexed...

I don't see anything that could be affecting this in the code below.

static int skill_magic_reflect(struct block_list* src, struct block_list* bl, int type)
{
	struct status_change *sc = status_get_sc(bl);
	struct map_session_data* sd = BL_CAST(BL_PC, bl);

	if (!sc || !sc->data[SC_KYOMU]) { // Kyomu doesn't reflect
		// Item-based reflection - Bypasses Boss check
		if (sd && sd->bonus.magic_damage_return && type && rnd()%100 < sd->bonus.magic_damage_return)
			return 1;
	}

	// Magic Mirror reflection - Bypasses Boss check
	if (sc && sc->data[SC_MAGICMIRROR] && rnd()%100 < sc->data[SC_MAGICMIRROR]->val2)
		return 1;

	if( status_get_class_(src) == CLASS_BOSS )
		return 0;

	// status-based reflection
	if( !sc || sc->count == 0 )
		return 0;

	// Kaite reflection - Does not bypass Boss check
	if( sc->data[SC_KAITE] && (src->type == BL_PC || status_get_lv(src) <= 80) ) {
		// Kaite only works against non-players if they are low-level.
		// Kyomu doesn't disable Kaite, but the "skill fail chance" part of Kyomu applies to it.
		clif_specialeffect(bl, 438, AREA);
		if( --sc->data[SC_KAITE]->val2 <= 0 )
			status_change_end(bl, SC_KAITE, INVALID_TIMER);
		return 2;
	}

	return 0;
}

Maybe it is related to the devotion formula in battle.c?

Still trying to find out the issue here...

Share this post


Link to post
Share on other sites
  • 0

I have further looked into this and manually removed all source related modifications I have made into the server. I ran a clean version of the emulator and the bug is still there.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...