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. {