mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-04 22:40:05 +00:00
Add zipline, slide, cannon, and jump pad packets
Cannon still looks wonky from other player's PoV, something's up with the rotation - will investigate later.
This commit is contained in:
parent
af6158fbb2
commit
14d556976d
@ -14,7 +14,11 @@ enum SHARDPACKETID {
|
|||||||
P_CL2FE_REQ_PC_MOVE = 318767107,
|
P_CL2FE_REQ_PC_MOVE = 318767107,
|
||||||
P_CL2FE_REQ_PC_STOP = 318767108,
|
P_CL2FE_REQ_PC_STOP = 318767108,
|
||||||
P_CL2FE_REQ_PC_JUMP = 318767109,
|
P_CL2FE_REQ_PC_JUMP = 318767109,
|
||||||
|
P_CL2FE_REQ_PC_JUMPPAD = 318767165,
|
||||||
|
P_CL2FE_REQ_PC_LAUNCHER = 318767166,
|
||||||
|
P_CL2FE_REQ_PC_ZIPLINE = 318767167,
|
||||||
P_CL2FE_REQ_PC_MOVEPLATFORM = 318767168,
|
P_CL2FE_REQ_PC_MOVEPLATFORM = 318767168,
|
||||||
|
P_CL2FE_REQ_PC_SLOPE = 318767169,
|
||||||
P_CL2FE_REQ_PC_GOTO = 318767124,
|
P_CL2FE_REQ_PC_GOTO = 318767124,
|
||||||
P_CL2FE_GM_REQ_PC_SET_VALUE = 318767211,
|
P_CL2FE_GM_REQ_PC_SET_VALUE = 318767211,
|
||||||
P_CL2FE_REQ_SEND_FREECHAT_MESSAGE = 318767111,
|
P_CL2FE_REQ_SEND_FREECHAT_MESSAGE = 318767111,
|
||||||
@ -31,7 +35,11 @@ enum SHARDPACKETID {
|
|||||||
P_FE2CL_PC_STOP = 822083593,
|
P_FE2CL_PC_STOP = 822083593,
|
||||||
P_FE2CL_PC_JUMP = 822083594,
|
P_FE2CL_PC_JUMP = 822083594,
|
||||||
P_FE2CL_PC_EXIT = 822083590,
|
P_FE2CL_PC_EXIT = 822083590,
|
||||||
|
P_FE2CL_PC_JUMPPAD = 822083701,
|
||||||
|
P_FE2CL_PC_LAUNCHER = 822083702,
|
||||||
|
P_FE2CL_PC_ZIPLINE = 822083703,
|
||||||
P_FE2CL_PC_MOVEPLATFORM = 822083704,
|
P_FE2CL_PC_MOVEPLATFORM = 822083704,
|
||||||
|
P_FE2CL_PC_SLOPE = 822083705,
|
||||||
P_FE2CL_REP_PC_GOTO_SUCC = 822083633,
|
P_FE2CL_REP_PC_GOTO_SUCC = 822083633,
|
||||||
P_FE2CL_GM_REP_PC_SET_VALUE = 822083781,
|
P_FE2CL_GM_REP_PC_SET_VALUE = 822083781,
|
||||||
P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC = 822083602,
|
P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC = 822083602,
|
||||||
|
@ -18,7 +18,11 @@ void PlayerManager::init() {
|
|||||||
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_MOVE, PlayerManager::movePlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_MOVE, PlayerManager::movePlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_STOP, PlayerManager::stopPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_STOP, PlayerManager::stopPlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_JUMP, PlayerManager::jumpPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_JUMP, PlayerManager::jumpPlayer);
|
||||||
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_JUMPPAD, PlayerManager::jumppadPlayer);
|
||||||
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_LAUNCHER, PlayerManager::launchPlayer);
|
||||||
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_ZIPLINE, PlayerManager::ziplinePlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_MOVEPLATFORM, PlayerManager::movePlatformPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_MOVEPLATFORM, PlayerManager::movePlatformPlayer);
|
||||||
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_SLOPE, PlayerManager::moveSlopePlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_GOTO, PlayerManager::gotoPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REQ_PC_GOTO, PlayerManager::gotoPlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_GM_REQ_PC_SET_VALUE, PlayerManager::setSpecialPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_GM_REQ_PC_SET_VALUE, PlayerManager::setSpecialPlayer);
|
||||||
REGISTER_SHARD_PACKET(P_CL2FE_REP_LIVE_CHECK, PlayerManager::heartbeatPlayer);
|
REGISTER_SHARD_PACKET(P_CL2FE_REP_LIVE_CHECK, PlayerManager::heartbeatPlayer);
|
||||||
@ -317,6 +321,103 @@ void PlayerManager::jumpPlayer(CNSocket* sock, CNPacketData* data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlayerManager::jumppadPlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_JUMPPAD))
|
||||||
|
return; // ignore the malformed packet
|
||||||
|
|
||||||
|
sP_CL2FE_REQ_PC_JUMPPAD* jumppadData = (sP_CL2FE_REQ_PC_JUMPPAD*)data->buf;
|
||||||
|
updatePlayerPosition(sock, jumppadData->iX, jumppadData->iY, jumppadData->iZ);
|
||||||
|
|
||||||
|
uint64_t tm = getTime();
|
||||||
|
|
||||||
|
for (CNSocket* otherSock : players[sock].viewable) {
|
||||||
|
sP_FE2CL_PC_JUMPPAD* jumppadResponse = (sP_FE2CL_PC_JUMPPAD*)xmalloc(sizeof(sP_FE2CL_PC_JUMPPAD));
|
||||||
|
|
||||||
|
jumppadResponse->iPC_ID = players[sock].plr.iID;
|
||||||
|
jumppadResponse->cKeyValue = jumppadData->cKeyValue;
|
||||||
|
|
||||||
|
jumppadResponse->iX = jumppadData->iX;
|
||||||
|
jumppadResponse->iY = jumppadData->iY;
|
||||||
|
jumppadResponse->iZ = jumppadData->iZ;
|
||||||
|
jumppadResponse->iVX = jumppadData->iVX;
|
||||||
|
jumppadResponse->iVY = jumppadData->iVY;
|
||||||
|
jumppadResponse->iVZ = jumppadData->iVZ;
|
||||||
|
|
||||||
|
jumppadResponse->iCliTime = jumppadData->iCliTime;
|
||||||
|
jumppadResponse->iSvrTime = tm;
|
||||||
|
|
||||||
|
otherSock->sendPacket(new CNPacketData((void*)jumppadResponse, P_FE2CL_PC_JUMPPAD, sizeof(sP_FE2CL_PC_JUMPPAD), otherSock->getFEKey()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayerManager::launchPlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_LAUNCHER))
|
||||||
|
return; // ignore the malformed packet
|
||||||
|
|
||||||
|
sP_CL2FE_REQ_PC_LAUNCHER* launchData = (sP_CL2FE_REQ_PC_LAUNCHER*)data->buf;
|
||||||
|
updatePlayerPosition(sock, launchData->iX, launchData->iY, launchData->iZ);
|
||||||
|
|
||||||
|
uint64_t tm = getTime();
|
||||||
|
|
||||||
|
for (CNSocket* otherSock : players[sock].viewable) {
|
||||||
|
sP_FE2CL_PC_LAUNCHER* launchResponse = (sP_FE2CL_PC_LAUNCHER*)xmalloc(sizeof(sP_FE2CL_PC_LAUNCHER));
|
||||||
|
|
||||||
|
launchResponse->iPC_ID = players[sock].plr.iID;
|
||||||
|
|
||||||
|
launchResponse->iX = launchData->iX;
|
||||||
|
launchResponse->iY = launchData->iY;
|
||||||
|
launchResponse->iZ = launchData->iZ;
|
||||||
|
launchResponse->iVX = launchData->iVX;
|
||||||
|
launchResponse->iVY = launchData->iVY;
|
||||||
|
launchResponse->iVZ = launchData->iVZ;
|
||||||
|
launchResponse->iSpeed = launchData->iSpeed;
|
||||||
|
launchResponse->iAngle = launchData->iAngle;
|
||||||
|
|
||||||
|
launchResponse->iCliTime = launchData->iCliTime;
|
||||||
|
launchResponse->iSvrTime = tm;
|
||||||
|
|
||||||
|
otherSock->sendPacket(new CNPacketData((void*)launchResponse, P_FE2CL_PC_LAUNCHER, sizeof(sP_FE2CL_PC_LAUNCHER), otherSock->getFEKey()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayerManager::ziplinePlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_ZIPLINE))
|
||||||
|
return; // ignore the malformed packet
|
||||||
|
|
||||||
|
sP_CL2FE_REQ_PC_ZIPLINE* ziplineData = (sP_CL2FE_REQ_PC_ZIPLINE*)data->buf;
|
||||||
|
updatePlayerPosition(sock, ziplineData->iX, ziplineData->iY, ziplineData->iZ);
|
||||||
|
|
||||||
|
uint64_t tm = getTime();
|
||||||
|
|
||||||
|
for (CNSocket* otherSock : players[sock].viewable) {
|
||||||
|
|
||||||
|
sP_FE2CL_PC_ZIPLINE* ziplineResponse = (sP_FE2CL_PC_ZIPLINE*)xmalloc(sizeof(sP_FE2CL_PC_ZIPLINE));
|
||||||
|
|
||||||
|
ziplineResponse->iPC_ID = players[sock].plr.iID;
|
||||||
|
ziplineResponse->iCliTime = ziplineData->iCliTime;
|
||||||
|
ziplineResponse->iSvrTime = tm;
|
||||||
|
ziplineResponse->iX = ziplineData->iX;
|
||||||
|
ziplineResponse->iY = ziplineData->iY;
|
||||||
|
ziplineResponse->iZ = ziplineData->iZ;
|
||||||
|
ziplineResponse->fVX = ziplineData->fVX;
|
||||||
|
ziplineResponse->fVY = ziplineData->fVY;
|
||||||
|
ziplineResponse->fVZ = ziplineData->fVZ;
|
||||||
|
ziplineResponse->fMovDistance = ziplineData->fMovDistance;
|
||||||
|
ziplineResponse->fMaxDistance = ziplineData->fMaxDistance;
|
||||||
|
ziplineResponse->fDummy = ziplineData->fDummy; //wtf is this for?
|
||||||
|
ziplineResponse->iStX = ziplineData->iStX;
|
||||||
|
ziplineResponse->iStY = ziplineData->iStY;
|
||||||
|
ziplineResponse->iStZ = ziplineData->iStZ;
|
||||||
|
ziplineResponse->bDown = ziplineData->bDown;
|
||||||
|
ziplineResponse->iSpeed = ziplineData->iSpeed;
|
||||||
|
ziplineResponse->iAngle = ziplineData->iAngle;
|
||||||
|
ziplineResponse->iRollMax = ziplineData->iRollMax;
|
||||||
|
ziplineResponse->iRoll = ziplineData->iRoll;
|
||||||
|
|
||||||
|
otherSock->sendPacket(new CNPacketData((void*)ziplineResponse, P_FE2CL_PC_ZIPLINE, sizeof(sP_FE2CL_PC_ZIPLINE), otherSock->getFEKey()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PlayerManager::movePlatformPlayer(CNSocket* sock, CNPacketData* data) {
|
void PlayerManager::movePlatformPlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
if (data->size != sizeof(sP_CL2FE_REQ_PC_MOVEPLATFORM))
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_MOVEPLATFORM))
|
||||||
return; // ignore the malformed packet
|
return; // ignore the malformed packet
|
||||||
@ -352,6 +453,37 @@ void PlayerManager::movePlatformPlayer(CNSocket* sock, CNPacketData* data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlayerManager::moveSlopePlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_SLOPE))
|
||||||
|
return; // ignore the malformed packet
|
||||||
|
|
||||||
|
sP_CL2FE_REQ_PC_SLOPE* slopeData = (sP_CL2FE_REQ_PC_SLOPE*)data->buf;
|
||||||
|
updatePlayerPosition(sock, slopeData->iX, slopeData->iY, slopeData->iZ);
|
||||||
|
|
||||||
|
uint64_t tm = getTime();
|
||||||
|
|
||||||
|
for (CNSocket* otherSock : players[sock].viewable) {
|
||||||
|
|
||||||
|
sP_FE2CL_PC_SLOPE* slopeResponse = (sP_FE2CL_PC_SLOPE*)xmalloc(sizeof(sP_FE2CL_PC_SLOPE));
|
||||||
|
|
||||||
|
slopeResponse->iPC_ID = players[sock].plr.iID;
|
||||||
|
slopeResponse->iCliTime = slopeData->iCliTime;
|
||||||
|
slopeResponse->iSvrTime = tm;
|
||||||
|
slopeResponse->iX = slopeData->iX;
|
||||||
|
slopeResponse->iY = slopeData->iY;
|
||||||
|
slopeResponse->iZ = slopeData->iZ;
|
||||||
|
slopeResponse->iAngle = slopeData->iAngle;
|
||||||
|
slopeResponse->fVX = slopeData->fVX;
|
||||||
|
slopeResponse->fVY = slopeData->fVY;
|
||||||
|
slopeResponse->fVZ = slopeData->fVZ;
|
||||||
|
slopeResponse->iSpeed = slopeData->iSpeed;
|
||||||
|
slopeResponse->cKeyValue = slopeData->cKeyValue;
|
||||||
|
slopeResponse->iSlopeID = slopeData->iSlopeID;
|
||||||
|
|
||||||
|
otherSock->sendPacket(new CNPacketData((void*)slopeResponse, P_FE2CL_PC_SLOPE, sizeof(sP_FE2CL_PC_SLOPE), otherSock->getFEKey()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PlayerManager::gotoPlayer(CNSocket* sock, CNPacketData* data) {
|
void PlayerManager::gotoPlayer(CNSocket* sock, CNPacketData* data) {
|
||||||
if (data->size != sizeof(sP_CL2FE_REQ_PC_GOTO))
|
if (data->size != sizeof(sP_CL2FE_REQ_PC_GOTO))
|
||||||
return; // ignore the malformed packet
|
return; // ignore the malformed packet
|
||||||
|
@ -31,7 +31,11 @@ namespace PlayerManager {
|
|||||||
void movePlayer(CNSocket* sock, CNPacketData* data);
|
void movePlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void stopPlayer(CNSocket* sock, CNPacketData* data);
|
void stopPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void jumpPlayer(CNSocket* sock, CNPacketData* data);
|
void jumpPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
|
void jumppadPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
|
void launchPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
|
void ziplinePlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void movePlatformPlayer(CNSocket* sock, CNPacketData* data);
|
void movePlatformPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
|
void moveSlopePlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void gotoPlayer(CNSocket* sock, CNPacketData* data);
|
void gotoPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void setSpecialPlayer(CNSocket* sock, CNPacketData* data);
|
void setSpecialPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
void heartbeatPlayer(CNSocket* sock, CNPacketData* data);
|
void heartbeatPlayer(CNSocket* sock, CNPacketData* data);
|
||||||
|
Loading…
Reference in New Issue
Block a user