コード例 #1
0
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;
}
コード例 #2
0
// -----------------------------------------------------------------------------------------------------------------------------------------
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;
}