⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 petutil.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
#include "PetUtil.h"#include "PetInfo.h"#include "PetExpInfo.h"#include "item/PetItem.h"#include "PetTypeInfo.h"#include "PetAttrInfo.h"#include "ModifyInfo.h"#include "GamePlayer.h"#include "VariableManager.h"#include <cstdio>bool increasePetExp( PetInfo* pPetInfo, PetExp_t exp, ModifyInfo* pMI ){	PetExp_t petExp = pPetInfo->getPetExp();	petExp += exp;	pPetInfo->setPetExp(petExp);	PetLevel_t lastLevel, nextLevel;	lastLevel = pPetInfo->getPetLevel();	nextLevel = lastLevel + 1;	cout << pPetInfo->getPetType() << " 脐俊 版氰摹甫 凛聪促. : " << exp << endl;		if ( pMI != NULL ) pMI->addLongData( MODIFY_PET_EXP, petExp );	if ( PetExpInfoManager::Instance().canLevelUp( lastLevel, petExp ) )	{		if ( nextLevel > 10 && pPetInfo->getPetAttr() == 0xff )		{			petExp -= exp;			pPetInfo->setPetExp(petExp);			if ( pMI != NULL ) pMI->clearList();			return false;		}		pPetInfo->setPetLevel( nextLevel );		pPetInfo->setPetCreatureType(PetTypeInfoManager::getInstance()->getPetTypeInfo( pPetInfo->getPetType() )->getPetCreatureType(pPetInfo->getPetLevel()) );//		cout << (int)pPetInfo->getPetLevel() << "饭骇诀茄 脐狼 农府媚 鸥涝 " << (int)pPetInfo->getPetCreatureType() << endl;		if ( pPetInfo->getPetAttr() != 0xff )		{			PetAttrInfo* pPetAttrInfo = PetAttrInfoManager::Instance().getPetAttrInfo( pPetInfo->getPetAttr() );			if ( pPetAttrInfo != NULL )			{				pPetInfo->setPetAttrLevel( pPetAttrInfo->getPetAttrLevel( pPetInfo->getPetLevel() ) );			}		}		PetItem* pPetItem = pPetInfo->getPetItem();		if ( nextLevel>10 && !pPetInfo->canCutHead() ) pPetInfo->setGamble(1);		else if ( nextLevel>=30 && !pPetInfo->canAttack() ) pPetInfo->setGamble(1);		else pPetInfo->setGamble(0);		pPetItem->savePetInfo();		return true;	}	return false;}PetExp_t computePetExp( Level_t myLevel, Level_t monsterLevel, PetInfo* pPetInfo, GamePlayer* pGamePlayer ){	if ( myLevel > 120 ) myLevel = 120;	int x = monsterLevel - myLevel;	PetExp_t min = 7, range = 7;	if ( pPetInfo->getPetType() > 2 )	{		min = 5; range = 6;	}	PetExp_t ret = min + (rand()%range);	if ( pGamePlayer == NULL || !pGamePlayer->isPayPlaying() )	{		ret /= 2;	}	if ( pPetInfo == NULL || pPetInfo->getPetType() > 2 )	{		ret /= 2;	}	if ( x > 20 ) ret = ret * 10 / 7;	else if ( x < -20 ) ret = max( 1, (int)ret/10 );	ret = getPercentValue( ret, g_pVariableManager->getPetExpRatio() );	return ret;}void refreshHP( PetInfo* pPetInfo, uint Ratio ){	VSDateTime current = VSDateTime::currentDateTime();	int lastSec = pPetInfo->getLastFeedTime().secsTo( current );//	cout << "逛冈篮瘤 " << lastSec << "檬 瘤车嚼聪促." << endl;	if ( lastSec <= 0 ) return;	int lastMin = (lastSec/60)+1;	int spendFood = getPercentValue(lastMin,Ratio);	if ( pPetInfo->getPetLevel() == 50 ) spendFood = max(1, spendFood/10);	if ( pPetInfo->getPetHP() < spendFood ) spendFood = pPetInfo->getPetHP();	if ( spendFood == 0 )	{//		cout << "磷绢辑 逛 给冈嚼聪促. -_-" << endl;		return;	}//	cout << spendFood << "父怒 逛冈嚼聪促." << endl;	pPetInfo->setPetHP( pPetInfo->getPetHP() - spendFood );	pPetInfo->setFeedTime( pPetInfo->getLastFeedTime().addDays( spendFood / 1440 ).addSecs( ( spendFood % 1440  ) * 60 ) );	pPetInfo->getPetItem()->savePetInfo();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -