67 lines
2.2 KiB
C++
67 lines
2.2 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "LogicDataProvider.h"
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
|
|||
|
|
bool CLogicDataProvider::LoadMonsterConfig(LPCTSTR sFilePath)
|
|||
|
|
{
|
|||
|
|
if (!openGlobalTable("Monster"))
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
m_vMonsterList.nCount = lua_objlen(m_pLua, -1);
|
|||
|
|
if (m_vMonsterList.nCount > 0)
|
|||
|
|
{
|
|||
|
|
int nSize = sizeof(MONSTERCONFIG)*m_vMonsterList.nCount;
|
|||
|
|
m_vMonsterList.pList = (MONSTERCONFIG*)m_DataAllocator.allocObjects(nSize);
|
|||
|
|
ZeroMemory(m_vMonsterList.pList,nSize);
|
|||
|
|
}
|
|||
|
|
int nId = 0;
|
|||
|
|
if (enumTableFirst())
|
|||
|
|
{
|
|||
|
|
do
|
|||
|
|
{
|
|||
|
|
MONSTERCONFIG* config = m_vMonsterList.pList + nId;
|
|||
|
|
config->nEntityId = getFieldInt("entityid");
|
|||
|
|
if (nId != config->nEntityId)
|
|||
|
|
{
|
|||
|
|
OutputMsg(rmError,_T("非期待的实体ID配置值,应为%d却配置为%d"), nId, config->nEntityId);
|
|||
|
|
delete config;
|
|||
|
|
return FALSE;
|
|||
|
|
}
|
|||
|
|
config->nLevel = getFieldInt("level");
|
|||
|
|
getFieldStringBuffer("name",config->szName,ArrayCount(config->szName));
|
|||
|
|
//config->nIcon = getFieldInt("icon");
|
|||
|
|
config->cal.reset(); //重置计算器
|
|||
|
|
CREATUREDATA data;
|
|||
|
|
data.nMaxHp = getFieldInt("maxhp");
|
|||
|
|
data.nMaxMp = getFieldInt("maxmp");
|
|||
|
|
data.nInnerAttack = getFieldInt("innerattack");
|
|||
|
|
data.nOutAttack = getFieldInt("outattack");
|
|||
|
|
data.fOutCriticalStrikesRate = (float)getFieldNumber("outcriticalstrikesrate");
|
|||
|
|
data.fOutDodgeRate = (float)getFieldNumber("outdodgerate");
|
|||
|
|
data.fOutHitRate = (float)getFieldNumber("outhitrate");
|
|||
|
|
data.nOutDefence = getFieldInt("outdefence");
|
|||
|
|
data.nInnerDefence = getFieldInt("innerdefence");
|
|||
|
|
data.fInnerCriticalStrikesRate = (float)getFieldNumber("innercriticalstrikesrate");
|
|||
|
|
data.fInnerDodgeRate = (float)getFieldNumber("innerdodgerate");
|
|||
|
|
data.fInnerHitRate = (float)getFieldNumber("innerhitrate");
|
|||
|
|
data.nCure = getFieldInt("cure");
|
|||
|
|
data.nHpRateRenew = (float)getFieldNumber("hprenew");
|
|||
|
|
data.nMpRateRenew = (float)getFieldNumber("mprenew");
|
|||
|
|
data.nMoveOneSlotTime = getFieldInt("moveoneslottime");
|
|||
|
|
CPropertySystem::InitMonsterCalculator(data,config->cal);
|
|||
|
|
|
|||
|
|
config->nModelId = getFieldInt("modelid");
|
|||
|
|
int nDef = 10;//默认值
|
|||
|
|
config->nAttackSpeed = getFieldInt("attackSpeed",&nDef);
|
|||
|
|
nId++;
|
|||
|
|
} while (enumTableNext());
|
|||
|
|
}
|
|||
|
|
closeTable();//close Monster
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
*/
|