mirror of
				https://github.com/OpenFusionProject/OpenFusion.git
				synced 2025-11-04 10:30:57 +00:00 
			
		
		
		
	@@ -175,8 +175,8 @@ void NanoManager::summonNano(CNSocket *sock, int slot) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    std::cout << "summon nano\n";
 | 
					    std::cout << "summon nano\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (slot > 2 || slot < 0)
 | 
					    if (slot > 2 || slot < 0) // TODO: implement proper way to dismiss nano if slot = -1
 | 
				
			||||||
        return; //sanity check
 | 
					        return; // sanity check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int nanoId = plr->equippedNanos[slot];
 | 
					    int nanoId = plr->equippedNanos[slot];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -619,12 +619,37 @@ void PlayerManager::revivePlayer(CNSocket* sock, CNPacketData* data) {
 | 
				
			|||||||
    // players respawn at same spot they died at for now...
 | 
					    // players respawn at same spot they died at for now...
 | 
				
			||||||
    sP_CL2FE_REQ_PC_REGEN* reviveData = (sP_CL2FE_REQ_PC_REGEN*)data->buf;
 | 
					    sP_CL2FE_REQ_PC_REGEN* reviveData = (sP_CL2FE_REQ_PC_REGEN*)data->buf;
 | 
				
			||||||
    INITSTRUCT(sP_FE2CL_REP_PC_REGEN_SUCC, response);
 | 
					    INITSTRUCT(sP_FE2CL_REP_PC_REGEN_SUCC, response);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					    * Update player state
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					    // Nanos
 | 
				
			||||||
 | 
					    for (int n = 0; n < 3; n++) {
 | 
				
			||||||
 | 
					        int nanoID = plr->equippedNanos[n];
 | 
				
			||||||
 | 
					        if (nanoID > 0 && nanoID < 37) { // sanity check
 | 
				
			||||||
 | 
					            plr->Nanos[nanoID].iStamina = 75; // max is 150, so 75 is half
 | 
				
			||||||
 | 
					            response.PCRegenData.Nanos[n] = plr->Nanos[nanoID];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    plr->activeNano = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Position
 | 
				
			||||||
 | 
					    plr->x = target.x;
 | 
				
			||||||
 | 
					    plr->y = target.y;
 | 
				
			||||||
 | 
					    plr->z = target.z;
 | 
				
			||||||
 | 
					    // HP and FM
 | 
				
			||||||
 | 
					    plr->HP = 1000 * plr->level;
 | 
				
			||||||
 | 
					    plr->fusionmatter = plr->fusionmatter; // TODO: does this actually change?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Response parameters
 | 
				
			||||||
 | 
					    response.PCRegenData.iActiveNanoSlotNum = plr->activeNano;
 | 
				
			||||||
 | 
					    response.PCRegenData.iX = plr->x;
 | 
				
			||||||
 | 
					    response.PCRegenData.iY = plr->y;
 | 
				
			||||||
 | 
					    response.PCRegenData.iZ = plr->z;
 | 
				
			||||||
 | 
					    response.PCRegenData.iHP = plr->HP;
 | 
				
			||||||
 | 
					    response.iFusionMatter = plr->fusionmatter;
 | 
				
			||||||
    response.bMoveLocation = reviveData->eIL;
 | 
					    response.bMoveLocation = reviveData->eIL;
 | 
				
			||||||
    response.PCRegenData.iMapNum = reviveData->iIndex;
 | 
					    response.PCRegenData.iMapNum = reviveData->iIndex;
 | 
				
			||||||
    response.PCRegenData.iHP = 1000 * plr->level;
 | 
					 | 
				
			||||||
    response.PCRegenData.iX = target.x;
 | 
					 | 
				
			||||||
    response.PCRegenData.iY = target.y;
 | 
					 | 
				
			||||||
    response.PCRegenData.iZ = target.z;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sock->sendPacket((void*)&response, P_FE2CL_REP_PC_REGEN_SUCC, sizeof(sP_FE2CL_REP_PC_REGEN_SUCC));
 | 
					    sock->sendPacket((void*)&response, P_FE2CL_REP_PC_REGEN_SUCC, sizeof(sP_FE2CL_REP_PC_REGEN_SUCC));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user