- if(IsPlayer() || IsSummon())
- {
- //monsters.
- for(UINT i=0;i<map->MonsterList.size();i++)
- {
- CMonster* monster = map->MonsterList.at(i);
- if(monster->clientid == clientid) continue;
- if(monster->IsSummon( ) && (map->allowpvp == 0 || monster->owner == clientid)) continue;
- if(GServer->IsMonInCircle( goodtarget,monster->Position->current,(float)skill->aoeradius+1))
- {
- if(GServer->ServerDebug)
- Log(MSG_INFO,"AOE Attack (1) player attacks monster %i (clientID %u) radius %.2f",monster->montype,monster->clientid,(float)skill->aoeradius+1);
- //LMA: we have to since AOE doesn't have a specific target and atkskil resets some values.
- Battle->skilltarget=monster->clientid;
- Battle->skillid=skill->id;
- Battle->atktype = save_atktype;
- UseAtkSkill( (CCharacter*) monster, skill );
Hello OsRose.
We have a problem again - and hopefully someone here could help us out.
Whenever a player casts' an AOE skill, disregarded whether its targeted AOE(Icy Hailstorm) or staystill (Tornado, Windstorm) the players MP drops to zero.
But this happens only when MANY mobs are attacking.
See here, I used a windstorm in one enemy:
-seems fine.
And here, when mobs are attacking:
-there it goes.
When mobs are still far out tho,
-it does not mess the MP
And again this happens when mobs started attacking:
I don't think this is any packet issue, seems to be that when mobs attack during the time the player is CASTING an AOE skill, the MP is DAMAGED in return. (I'm assuming here.)
See screenshot number three, a few mobs are already attacking, and as I was casting ICY HAILSTORM, my MP drops to half. So I think, the damage of the mobs is what messing with the MP.
I've also thought that the MP required to use a certain AOE skill is CALCULATED as damage to a single mob - meaning if AOE-ing, the server calculates an MP minus to each mob a player is attacking.
Okay, enough assumptions for today.
I've looked into charfunctions and battle cpp - but, dnt know where to look .
Hopefully someone can point me somewhere. Thank you.