Fix #205 - if a player times out a race, warp them back to the start

This commit is contained in:
CakeLancelot
2021-04-25 02:40:36 -05:00
parent f0e21b5051
commit aa028392f0
3 changed files with 21 additions and 15 deletions

View File

@@ -58,10 +58,15 @@ static void racingCancel(CNSocket* sock, CNPacketData* data) {
if (EPRaces.find(sock) == EPRaces.end())
return; // race not found
Player* plr = PlayerManager::getPlayer(sock);
EPRaces.erase(sock);
INITSTRUCT(sP_FE2CL_REP_EP_RACE_CANCEL_SUCC, resp);
sock->sendPacket(resp, P_FE2CL_REP_EP_RACE_CANCEL_SUCC);
// we have to teleport the player back after this, otherwise they are unable to move
WarpLocation* respawnLoc = PlayerManager::getRespawnPoint(plr);
PlayerManager::sendPlayerTo(sock, respawnLoc->x, respawnLoc->y, respawnLoc->z, respawnLoc->instanceID);
}
static void racingEnd(CNSocket* sock, CNPacketData* data) {