Mobstatus tooltip update on controller interchanges
Fixed mob statuses being unexpectedly revoked for the new controller at transition time.
This commit is contained in:
@@ -1849,4 +1849,7 @@ Corrigido caso de dupe com itens ao serem colocados no storage.
|
|||||||
Adicionado sistema de "qualquer NPC scriptável", com apoio do GabrielSin.
|
Adicionado sistema de "qualquer NPC scriptável", com apoio do GabrielSin.
|
||||||
Adicionado server flag para checagem de IP's ao logar jogadores.
|
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 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.
|
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.
|
||||||
@@ -1886,7 +1886,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.aggroUpdatePuppetVisibility();
|
this.aggroUpdatePuppetVisibility();
|
||||||
newController.announce(MaplePacketCreator.controlMonster(this, false, immediateAggro));
|
aggroMonsterControl(newController.getClient(), this, immediateAggro);
|
||||||
newController.controlMonster(this);
|
newController.controlMonster(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2054,7 +2054,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
|||||||
|
|
||||||
else if (chrController != null) {
|
else if (chrController != null) {
|
||||||
chrController.announce(MaplePacketCreator.stopControllingMonster(this.getObjectId()));
|
chrController.announce(MaplePacketCreator.stopControllingMonster(this.getObjectId()));
|
||||||
chrController.announce(MaplePacketCreator.controlMonster(this, false, true));
|
aggroMonsterControl(chrController.getClient(), this, true);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
} else {
|
} 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) {
|
private void aggroRefreshPuppetVisibility(MapleCharacter chrController, MapleSummon puppet) {
|
||||||
// lame patch for client to redirect all aggro to the 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();
|
MapleClient c = chrController.getClient();
|
||||||
for (MapleMonster mob : puppetControlled) {
|
for (MapleMonster mob : puppetControlled) {
|
||||||
chrController.announce(MaplePacketCreator.controlMonster(mob, false, mob.isControllerHasAggro()));
|
aggroMonsterControl(c, mob, mob.isControllerKnowsAboutAggro());
|
||||||
mob.announceMonsterStatus(c); // thanks BHB for noticing puppets disrupting mobstatuses for bowmans
|
|
||||||
}
|
}
|
||||||
chrController.announce(MaplePacketCreator.spawnSummon(puppet, false));
|
chrController.announce(MaplePacketCreator.spawnSummon(puppet, false));
|
||||||
}
|
}
|
||||||
@@ -2116,7 +2122,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
|||||||
controllerHasPuppet = false;
|
controllerHasPuppet = false;
|
||||||
|
|
||||||
chrController.announce(MaplePacketCreator.stopControllingMonster(MapleMonster.this.getObjectId()));
|
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 {
|
} finally {
|
||||||
availablePuppetUpdate = true;
|
availablePuppetUpdate = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user