私は mmorpg を使用しており、chatlink という名前のシステムを作成しています。このシステムでは、プレイヤーがアイテムの上で Ctrl キーを押すと、アイテムがチャット上でリンクされるため、チャット メッセージを受信したすべてのプレイヤーは、送信時に文のその部分をクリックすることができ、アイテムの仕様を示すウィンドウが表示されます。上。
次のことを考慮してください。
プレーヤー : ねえ、私は と を売っ<ItemA>
て<Scale Boots>
います。
次の ( <
position start )、( >
position end )、 item name color、item ( item は void* ポインターを介して格納されます) をクラスに格納する必要があります。私は次のクラスを持っています:
class chatitem
{
public:
chatitem();
~chatitem();
u_long m_uStartPos;
u_long m_uEndPos;
DWORD m_dwColor;
void* m_pItemElem;
};
私はそれをマップに保存したい:
map<unsigned int, chatitem*>m_chatItem
which unsigned は、それが入力されたチャット ラインの ID です。問題は、各文に最大 3 つのアイテムを格納できることです。私は次のことを検討しました:
class CChatItem
{
public:
CChatItem();
~CChatItem();
u_long m_uStartPos[3];
u_long m_uEndPos[3];
DWORD m_dwColor[3];
void* m_pItemElem[3];
};
または次のように複製します:
u_long m_uStartPos, u_long m_uStartPos2, u_long m_uStartPos3;
でも、両方とも使いたくないので、何かヒントはありますか?