Exemplo n.º 1
0
void CItem::RemoveMe()
{
	LPIObject PTemp = self.lock();

	if (m_pParentArea)
	{
		SADelObjectMsg msg;
		msg.dwGlobalID = GetGID();
		m_pParentArea->SendAdj(&msg, sizeof(msg), -1);

		m_pParentArea->DelObject(PTemp);
	}

	for (std::set<CPlayer *>::iterator it = m_Checker.begin(); it != m_Checker.end(); ++it)
		(*it)->m_pCheckItem = 0;
	
	m_Checker.clear();

	if (m_ChanceItems.size())
	{
		CGroundItemWinner::GetInstance().GroundItemGone(this);
		m_ChanceItems.clear();
	}

    m_bValid = false;
}
Exemplo n.º 2
0
void CItem::UpdateItemPicked(WORD index)
{
	SAUpdateGroundItemMsg updateMsg;
	updateMsg.dwGlobalID = GetGID();
	updateMsg.wIndex	 = index;

	// 通知查看的人
	for (std::set<CPlayer *>::iterator it = m_Checker.begin(); it != m_Checker.end(); ++it)
		g_StoreMessage((*it)->m_ClientIndex, &updateMsg, sizeof(updateMsg));
}
Exemplo n.º 3
0
SAAddGroundItemMsg *CItem::GetStateMsg()
{
	static SAAddGroundItemMsg msg;
	msg.ItemID = m_GroundItem[0].wIndex ? m_GroundItem[0].wIndex : 0 ;
	msg.dwGlobalID  = GetGID();
	msg.PackageMode = m_PackageModel;
	msg.wTileX		= m_xTile;
	msg.wTileY		= m_yTile;

	return &msg;
}
Exemplo n.º 4
0
void GUIcontrol::Process()
{
	if(visible)
	{
		if(GetChildCount() == 0)
		{
			if(PointInBox(mouseX, mouseY, GetPosX(), GetPosY(), GetPatternWidth(), GetPatternHeight()))
			{
				GUIMessage temp_message;
							
				if(GetPatternCount() > 1)
					SetCurrentPattern(1);

				//temp_message.from = GetGID();
				//temp_message.a1 = MOUSE_OVER;
				//temp_message.a2 = 0;

				if(mouse[0])
				{
					_pressed = true;
					//mouse[0] = false;

					
					if(GetPatternCount() > 1)
					{
						SetCurrentPattern(2);
						_pos_dx = 1;
						_pos_dy = 1;
						if(_caption)
						{
							_caption_dx = 1;
							_caption_dy = 1;
						}
					}
				}
				else
				{
					_pos_dx = 0;
					_pos_dy = 0;
					if(_caption)
					{
						_caption_dx = 0;
						_caption_dy = 0;
					}

					if(_pressed)
					{
						_pressed = false;

						temp_message.from = GetGID();
						temp_message.a1 = MOUSE_LEFT_CLICKED;
						temp_message.a2 = 0;
						temp_message.solved = false;

						SendMessage(temp_message);

					}

				}

			}

			else
			{
				if(GetCurrentPattern() != 0) SetCurrentPattern(0);
			}
		}
	}

}