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;
|
||
}
|
||
|
||
*/
|