BOOL MonsterHerd::SetTotalInfo(int iMapNumber, int iRadius, int iStartX, int iStartY) { if ( MAX_MAP_RANGE(iMapNumber) == FALSE ) { return FALSE; } if ( ((iStartX < 0)? FALSE : (iStartX > 254 )? FALSE : TRUE ) == FALSE || ( ( iStartY < 0)?FALSE : (iStartY > 254)? FALSE : TRUE) == FALSE) { return FALSE; } BYTE btMapAttr = MapC[iMapNumber].GetAttr(iStartX, iStartY); if ( ( btMapAttr & 1) == 1 || (btMapAttr & 4) == 4 || (btMapAttr&8)==8) { return FALSE; } if ( ( ( iRadius < 0 )? FALSE : ( iRadius > 15 )? FALSE : TRUE ) == FALSE ) { return FALSE; } this->m_iMapNumber = iMapNumber; this->m_iCUR_X = iStartX; this->m_iCUR_Y = iStartY; this->m_iRADIUS = iRadius; this->m_bHasInfo = 1; return TRUE; }
// ----------------------------------------------------------------------------------------------------------------------------------------- void CItemBagEx::Load(const char* szFileName) { int Token; int n = 0; this->m_IBLoad = FALSE; if( (SMDFile = fopen(szFileName, "r")) == NULL ) { CLog.LogAddC(TColor.DarkRed(), EVENT_ITEM_MODULE, "Error() Loading EventItemBagEx: [%s].", szFileName); return ; } while ( true ) { Token = GetToken(); if ( Token == 2 ) break; if ( Token == 1 ) { int szLine = TokenNumber; if ( szLine == 0 ) { while(true) { Token = GetToken(); if ( Token == 0 ) { if ( strcmp("end", TokenString) == 0 ) break; } int Map = (int)TokenNumber; if ( MAX_MAP_RANGE(Map) == FALSE ) { CLog.MsgBox("EventItemBagEx Loaded Wrong Data in: [%s]", szFileName); return; } Token = GetToken(); this->DropMapInfo[Map].m_bIsDrop = (BYTE)TokenNumber; Token = GetToken(); this->DropMapInfo[Map].m_MinMonsterLevel = (BYTE)TokenNumber; Token = GetToken(); this->DropMapInfo[Map].m_MaxMonsterLevel = (BYTE)TokenNumber; } } else if ( szLine == 1 ) { while ( true ) { Token = GetToken(); if ( Token == 0 ) { if ( strcmp("end", TokenString) == 0 ) break; } strcpy(this->m_IBEventName, TokenString); Token = GetToken(); this->m_IBDropZen = (int)TokenNumber; Token = GetToken(); int ItemType = (int)TokenNumber; Token = GetToken(); int ItemIndex = (int)TokenNumber; this->m_IBEventItemType = ITEMGET(ItemType, ItemIndex); Token = GetToken(); this->m_IBEventItemLevel = (int)TokenNumber; Token = GetToken(); this->m_IBDropRate = (int)TokenNumber; Token = GetToken(); this->m_IBItemDropRate = (int)TokenNumber; Token = GetToken(); this->m_IBExcItemDropRate = (int)TokenNumber; CLog.LogAddC(TColor.AliceBlue(), "[%s Event] Item = %d,Level = %d, EventDropRate = %d, ItemDropRate = %d, ExItemDropRate = %d", this->m_IBEventName, this->m_IBEventItemType, this->m_IBEventItemLevel, this->m_IBDropRate, this->m_IBItemDropRate, this->m_IBExcItemDropRate); } } else if ( szLine == 2 ) { while ( true ) { Token = GetToken(); if ( Token == 0 ) { if ( strcmp("end", TokenString) == 0 ) break; } this->EventBagObject[n].m_Type = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_Index = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_MinLevel = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_MaxLevel = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_IsSkill = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_IsLuck = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_IsOption = (BYTE)TokenNumber; Token = GetToken(); this->EventBagObject[n].m_IsExcItem = (BYTE)TokenNumber; n++; this->m_IBBagObjectCount++; if ( this->m_IBBagObjectCount > MAX_ITEMBAG_ATTR-1 ) { break; } } } } } fclose(SMDFile); CLog.LogAddC(TColor.Green(), EVENT_ITEM_MODULE, "EventItemBagEx: [%s] Loaded Successfully.", szFileName); this->m_IBLoad = TRUE; }