Reworked leave olympiad observer mode.

This commit is contained in:
MobiusDevelopment
2022-01-19 22:46:13 +00:00
parent 0723e0e365
commit 173223bc61
6 changed files with 32 additions and 54 deletions

View File

@@ -127,7 +127,7 @@ public class AdminTest implements IAdminCommandHandler
} }
else else
{ {
activeChar.leaveOlympiadObserverMode(); activeChar.leaveOlympiadObserverMode(true);
} }
} }
else if (command.startsWith("admin_obs_mode")) else if (command.startsWith("admin_obs_mode"))

View File

@@ -10489,30 +10489,6 @@ public class Player extends Playable
} }
} }
/**
* Leave olympiad observer mode.
*/
public void leaveOlympiadObserverMode()
{
setTarget(null);
sendPacket(new ExOlympiadMode(0, this));
teleToLocation(_obsX, _obsY, _obsZ, true);
getAppearance().setVisible();
setInvul(false);
if (getAI() != null)
{
getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
}
Olympiad.getInstance();
Olympiad.removeSpectator(_olympiadGameId, this);
_olympiadGameId = -1;
_observerMode = false;
if (!_wasInvisible)
{
broadcastUserInfo();
}
}
/** /**
* Update name title color. * Update name title color.
*/ */
@@ -15211,6 +15187,11 @@ public class Player extends Playable
public void leaveOlympiadObserverMode(boolean olymp) public void leaveOlympiadObserverMode(boolean olymp)
{ {
if (_olympiadGameId == -1)
{
return;
}
setTarget(null); setTarget(null);
sendPacket(new ExOlympiadMode(0, this)); sendPacket(new ExOlympiadMode(0, this));
teleToLocation(_obsX, _obsY, _obsZ, true); teleToLocation(_obsX, _obsY, _obsZ, true);
@@ -15230,9 +15211,17 @@ public class Player extends Playable
{ {
Olympiad.removeSpectator(_olympiadGameId, this); Olympiad.removeSpectator(_olympiadGameId, this);
} }
_olympiadGameId = -1; _olympiadGameId = -1;
_observerMode = false; _observerMode = false;
broadcastUserInfo(); _obsX = getX();
_obsY = getY();
_obsZ = getZ();
if (!_wasInvisible)
{
broadcastUserInfo();
}
} }
public void setHero(boolean hero) public void setHero(boolean hero)

View File

@@ -43,7 +43,7 @@ public class RequestOlympiadObserverEnd implements IClientIncomingPacket
if (player.inObserverMode()) if (player.inObserverMode())
{ {
player.leaveOlympiadObserverMode(); player.leaveOlympiadObserverMode(false);
} }
} }
} }

View File

@@ -127,7 +127,7 @@ public class AdminTest implements IAdminCommandHandler
} }
else else
{ {
activeChar.leaveOlympiadObserverMode(); activeChar.leaveOlympiadObserverMode(true);
} }
} }
else if (command.startsWith("admin_obs_mode")) else if (command.startsWith("admin_obs_mode"))

View File

@@ -10656,30 +10656,6 @@ public class Player extends Playable
} }
} }
/**
* Leave olympiad observer mode.
*/
public void leaveOlympiadObserverMode()
{
setTarget(null);
sendPacket(new ExOlympiadMode(0, this));
teleToLocation(_obsX, _obsY, _obsZ, true);
getAppearance().setVisible();
setInvul(false);
if (getAI() != null)
{
getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
}
Olympiad.getInstance();
Olympiad.removeSpectator(_olympiadGameId, this);
_olympiadGameId = -1;
_observerMode = false;
if (!_wasInvisible)
{
broadcastUserInfo();
}
}
/** /**
* Update name title color. * Update name title color.
*/ */
@@ -15579,6 +15555,11 @@ public class Player extends Playable
public void leaveOlympiadObserverMode(boolean olymp) public void leaveOlympiadObserverMode(boolean olymp)
{ {
if (_olympiadGameId == -1)
{
return;
}
setTarget(null); setTarget(null);
sendPacket(new ExOlympiadMode(0, this)); sendPacket(new ExOlympiadMode(0, this));
teleToLocation(_obsX, _obsY, _obsZ, true); teleToLocation(_obsX, _obsY, _obsZ, true);
@@ -15598,9 +15579,17 @@ public class Player extends Playable
{ {
Olympiad.removeSpectator(_olympiadGameId, this); Olympiad.removeSpectator(_olympiadGameId, this);
} }
_olympiadGameId = -1; _olympiadGameId = -1;
_observerMode = false; _observerMode = false;
broadcastUserInfo(); _obsX = getX();
_obsY = getY();
_obsZ = getZ();
if (!_wasInvisible)
{
broadcastUserInfo();
}
} }
public void setHero(boolean hero) public void setHero(boolean hero)

View File

@@ -43,7 +43,7 @@ public class RequestOlympiadObserverEnd implements IClientIncomingPacket
if (player.inObserverMode()) if (player.inObserverMode())
{ {
player.leaveOlympiadObserverMode(); player.leaveOlympiadObserverMode(false);
} }
} }
} }