Code:
void CAutoEvent::ReadInc()
{
CScanner script;
if( script.Load( "AutoEvent.inc" ) == FALSE )
{
Error("Could not load AutoEvent.inc!");
return ;
}
EventMonster pEventMonster;
BOOL skip = FALSE;
script.GetToken();
while( script.tok != FINISHED )
{
if(script.Token == _T("EventMonster"))
{
script.GetToken();
pEventMonster.dwID = script.GetNumber();
pEventMonster.bIsSpawn = FALSE;
while(script.Token != _T( "}" ))
{
MoverProp * pMoverProp = prj.GetMoverProp(pEventMonster.dwID);
if(!pMoverProp)
{
skip = TRUE;
Error("Invalid Mover ID[%d]",pEventMonster.dwID);
}
script.GetToken();//{
while(script.Token != _T( "}" ))
{
if(script.Token == _T("Intervall"))
{
script.GetToken();//=
pEventMonster.nInterval = script.GetNumber();
}
else if(script.Token == _T("percentage"))
{
script.GetToken();//=
pEventMonster.nPercentage = script.GetNumber();
}
else if(script.Token == _T("Gift"))
{
EventGift pEventGift;
script.GetToken();
int nCount = 0;
while(script.Token != _T("}"))
{
if(script.Token == _T("SetGift"))
{
BOOL bSkip = FALSE;
script.GetToken();//(
pEventGift.dwID = script.GetNumber();
script.GetToken();//,
pEventGift.nCount = script.GetNumber();
script.GetToken();//)
pEventGift.nPercentage = 0;
ItemProp * pItemProp = prj.GetItemProp(pEventGift.dwID);
if(!pItemProp)
{
Error("Error AutoEvent ID [Monster %i] Item[%i]",pEventMonster.dwID,pEventGift.dwID);
bSkip = TRUE;
}
map<DWORD,EventGift>::iterator it = pEventMonster.m_aEventGift.find( pEventGift.dwID );
if( it != pEventMonster.m_aEventGift.end() )
{
Error("Error AutoEvent Duplicatet ItemGift[Monster %i] [ID %i]",pEventMonster.dwID,pEventGift.dwID);
bSkip = TRUE;
}
if(!bSkip)
{
pEventMonster.m_aEventGift.insert(make_pair(nCount,pEventGift));
nCount++;
}
}
script.GetToken();
}
//script.GetToken();
continue;
}
else if(script.Token == _T("Positions"))
{
EventPosition pEventPosition;
int nCount = 0;
script.GetToken();
while(script.Token!=_T("}"))
{
if(script.Token == _T("SetPosition"))
{
script.GetToken();//(
D3DXVECTOR3 vPos;
pEventPosition.dwID= script.GetNumber();
script.GetToken();//,
vPos.x = script.GetNumber();
script.GetToken();//,
vPos.y = script.GetNumber();
script.GetToken();//,
vPos.z = script.GetNumber();
script.GetToken();//,
script.GetToken();//Position Text
pEventPosition.strPosition = script.Token;
script.GetToken();//)
pEventPosition.position = vPos;
pEventMonster.m_aEventPosition.insert(make_pair(nCount,pEventPosition));
nCount++;
}
script.GetToken();
}
//script.GetToken();
//continue;
}
script.GetToken();
//Error(script.Token);
}
if(!skip)
{
pEventMonster.dwTime = GetTickCount();
m_aEventMonster.insert(make_pair(pEventMonster.dwID, pEventMonster));
}
pEventMonster.m_aEventGift.clear();
pEventMonster.m_aEventPosition.clear();
pEventMonster.dwID = script.GetNumber(); // ID;
}
script.GetToken();
}
script.GetToken();
}
#ifdef __AUTO_EVENT_DEBUG
Error("Count %d",m_aEventMonster.size());
for( map<DWORD,EventMonster>::iterator i = m_aEventMonster.begin(); i != m_aEventMonster.end(); i++ )
{
EventMonster* pEvent = &i->second;
if(!pEvent)
continue;
Error("---------Start EventMonster Count");
Error("EventMonster[%d],Interval[%d],Percentage[%d],",pEvent->dwID,pEvent->nInterval,pEvent->nPercentage);
Error("---------Start Gift");
Error("GiftCount %d",pEvent->m_aEventGift.size());
for(map<DWORD,EventGift>::iterator i = pEvent->m_aEventGift.begin(); i != pEvent->m_aEventGift.end(); i++)
{
EventGift* pGift = &i->second;
if(!pGift)
continue;
Error("Gift[%d],Count[%d],Percentage[%d]",pGift->dwID,pGift->nCount,pGift->nPercentage);
}
Error("Posi %d",pEvent->m_aEventPosition.size());
for(map<DWORD,EventPosition>::iterator i = pEvent->m_aEventPosition.begin(); i != pEvent->m_aEventPosition.end(); i++)
{
EventPosition* posi = &i->second;
if(!posi)
continue;
Error("Position[%d],XYZ[%f,%f,%f]",posi->dwID,posi->position.x,posi->position.y,posi->position.z);
}
}
Code:
EventMonster 771 //ID of monster "771"
}
Intervall = 3 //interval or respawn time? this is 3hours?
percentage = 10 //percentage of being respawn? i'm not sure lol.
{
Gift
}
SetGift = ( 2313, 10 ) // id of item, and the amount. ithink
}
Positions
}
SetPosition = ( 1, 1000, 100, 1000, "GG" ) // number of world, x position, y position, z position, i dont know the last one.
{






