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; }
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)); }
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; }
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); } } } }