Mobstatus tooltip update on controller interchanges

Fixed mob statuses being unexpectedly revoked for the new controller at transition time.
This commit is contained in:
ronancpl
2019-05-04 19:40:09 -03:00
parent e70215eb9d
commit 402d7b359d
2 changed files with 15 additions and 6 deletions

View File

@@ -1850,3 +1850,6 @@ Adicionado sistema de "qualquer NPC scriptável", com apoio do GabrielSin.
Adicionado server flag para checagem de IP's ao logar jogadores.
Corrigido mobskills não sendo devidamente aplicados devido a um deslize anterior que tentaria aplicar indevidamente 2x "uso de skill" (uma das vezes deveria ser somente checagem de rotina).
Corrigido puppets de arqueiros interrompendo mob statuses para o dono ao serem lançados em campo.
04 Maio 2019,
Corrigido visão de mob statuses sendo interrompido para o novo controlador ao realizar troca de controladores.

View File

@@ -1886,7 +1886,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
}
this.aggroUpdatePuppetVisibility();
newController.announce(MaplePacketCreator.controlMonster(this, false, immediateAggro));
aggroMonsterControl(newController.getClient(), this, immediateAggro);
newController.controlMonster(this);
}
}
@@ -2054,7 +2054,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
else if (chrController != null) {
chrController.announce(MaplePacketCreator.stopControllingMonster(this.getObjectId()));
chrController.announce(MaplePacketCreator.controlMonster(this, false, true));
aggroMonsterControl(chrController.getClient(), this, true);
}
*/
} else {
@@ -2063,6 +2063,13 @@ public class MapleMonster extends AbstractLoadedMapleLife {
}
}
private static void aggroMonsterControl(MapleClient c, MapleMonster mob, boolean immediateAggro) {
c.announce(MaplePacketCreator.controlMonster(mob, false, immediateAggro));
// thanks BHB for noticing puppets disrupting mobstatuses for bowmans
mob.announceMonsterStatus(c);
}
private void aggroRefreshPuppetVisibility(MapleCharacter chrController, MapleSummon puppet) {
// lame patch for client to redirect all aggro to the puppet
@@ -2080,8 +2087,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
MapleClient c = chrController.getClient();
for (MapleMonster mob : puppetControlled) {
chrController.announce(MaplePacketCreator.controlMonster(mob, false, mob.isControllerHasAggro()));
mob.announceMonsterStatus(c); // thanks BHB for noticing puppets disrupting mobstatuses for bowmans
aggroMonsterControl(c, mob, mob.isControllerKnowsAboutAggro());
}
chrController.announce(MaplePacketCreator.spawnSummon(puppet, false));
}
@@ -2116,7 +2122,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
controllerHasPuppet = false;
chrController.announce(MaplePacketCreator.stopControllingMonster(MapleMonster.this.getObjectId()));
chrController.announce(MaplePacketCreator.controlMonster(MapleMonster.this, false, MapleMonster.this.isControllerHasAggro()));
aggroMonsterControl(chrController.getClient(), MapleMonster.this, MapleMonster.this.isControllerHasAggro());
}
} finally {
availablePuppetUpdate = true;