mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2025-12-11 16:30:05 +00:00
Implemented player tick (health/nano stamina).
* The player now heals while not in combat * Nanos lose stamina while active, regain it while resting * Using active nano powers drains stamina * Standing in FM patches/lakes now deals damage * Fixed a memory error in npcAttackPc() * Mobs now aggro when a player gets close * Mobs now give up the chase if the player gets out of the combat zone; they no longer try chasing until they themselves have left it * Added a few missing break statements in the loops in BuddyManager Other players are not yet instantly notified of health/stamina updates, as finding the correct way to do this has proven tricky. FM patch damage updates other player's views just fine, though.
This commit is contained in:
@@ -517,11 +517,13 @@ void activePower(CNSocket *sock, CNPacketData *data,
|
||||
sPAYLOAD *respdata = (sPAYLOAD*)(respbuf+sizeof(sP_FE2CL_NANO_SKILL_USE_SUCC));
|
||||
|
||||
Player *plr = PlayerManager::getPlayer(sock);
|
||||
|
||||
plr->Nanos[plr->activeNano].iStamina -= 40;
|
||||
|
||||
resp->iPC_ID = plr->iID;
|
||||
resp->iSkillID = skillId;
|
||||
resp->iNanoID = nanoId;
|
||||
resp->iNanoStamina = 150;
|
||||
resp->iNanoStamina = plr->Nanos[plr->activeNano].iStamina;
|
||||
resp->eST = eSkillType;
|
||||
resp->iTargetCnt = pkt->iTargetCnt;
|
||||
|
||||
@@ -570,7 +572,7 @@ void NanoManager::nanoBuff(CNSocket* sock, int16_t nanoId, int skillId, int16_t
|
||||
resp->iPC_ID = plr->iID;
|
||||
resp->iSkillID = skillId;
|
||||
resp->iNanoID = nanoId;
|
||||
resp->iNanoStamina = 150;
|
||||
resp->iNanoStamina = plr->Nanos[plr->activeNano].iStamina;
|
||||
resp->eST = eSkillType;
|
||||
resp->iTargetCnt = 1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user