mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2026-01-12 03:30:04 +00:00
Tuned various values.
* The player no longer receives the Blossom nano mission until they've left the future * As a temporary measure for the sake of the public server, Fusions in respawn in their lairs after 2.5 minutes * Changed default player damage value to 150 * Mobs now drop the correct amount of FM, as well as a close approximation of the correct amount of taros * You can no longer break the FM cap in the Future zone * Fixed the updateFusionMatter() bug the right way this time * Completing a nano mission now subtracts FM as it should * Setting a Nano's power no longer reports 0 FM to the client
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "PlayerManager.hpp"
|
||||
#include "NPCManager.hpp"
|
||||
#include "MobManager.hpp"
|
||||
#include "MissionManager.hpp"
|
||||
|
||||
namespace NanoManager {
|
||||
|
||||
@@ -202,7 +203,7 @@ void NanoManager::nanoPotionHandler(CNSocket* sock, CNPacketData* data) {
|
||||
}
|
||||
|
||||
#pragma region Helper methods
|
||||
void NanoManager::addNano(CNSocket* sock, int16_t nanoId, int16_t slot) {
|
||||
void NanoManager::addNano(CNSocket* sock, int16_t nanoId, int16_t slot, bool spendfm) {
|
||||
if (nanoId > 36)
|
||||
return;
|
||||
|
||||
@@ -210,13 +211,21 @@ void NanoManager::addNano(CNSocket* sock, int16_t nanoId, int16_t slot) {
|
||||
|
||||
int level = nanoId < plr->level ? plr->level : nanoId;
|
||||
|
||||
/*
|
||||
* Spend the necessary Fusion Matter.
|
||||
* Note the use of the not-yet-incremented plr->level as opposed to level.
|
||||
* Doing it the other way always leaves the FM at 0. Jade totally called it.
|
||||
*/
|
||||
if (spendfm)
|
||||
MissionManager::updateFusionMatter(sock, -(int)MissionManager::AvatarGrowth[plr->level]["m_iReqBlob_NanoCreate"]);
|
||||
|
||||
// Send to client
|
||||
INITSTRUCT(sP_FE2CL_REP_PC_NANO_CREATE_SUCC, resp);
|
||||
resp.Nano.iID = nanoId;
|
||||
resp.Nano.iStamina = 150;
|
||||
resp.iQuestItemSlotNum = slot;
|
||||
resp.iPC_Level = level;
|
||||
resp.iPC_FusionMatter = plr->fusionmatter; // will decrease in actual nano missions
|
||||
resp.iPC_FusionMatter = plr->fusionmatter;
|
||||
|
||||
// Update player
|
||||
plr->Nanos[nanoId] = resp.Nano;
|
||||
@@ -307,6 +316,7 @@ void NanoManager::setNanoSkill(CNSocket* sock, int16_t nanoId, int16_t skillId)
|
||||
INITSTRUCT(sP_FE2CL_REP_NANO_TUNE_SUCC, resp);
|
||||
resp.iNanoID = nanoId;
|
||||
resp.iSkillID = skillId;
|
||||
resp.iPC_FusionMatter = plr->fusionmatter;
|
||||
resp.aItem[9] = plr->Inven[0]; // temp fix for a bug TODO: Use this for nano power changing later
|
||||
|
||||
sock->sendPacket((void*)&resp, P_FE2CL_REP_NANO_TUNE_SUCC, sizeof(sP_FE2CL_REP_NANO_TUNE_SUCC));
|
||||
|
||||
Reference in New Issue
Block a user