You could do this:
Code:
new Array:g_aMessageArrays;
new g_iMaxPlayers;
public plugin_init()
{
g_aMessageArrays = ArrayCreate(1);
g_iMaxPlayers = get_maxplayers();
for( new i = 0; i <= g_iMaxPlayers; i++ )
{
ArrayPushCell(g_aMessageArrays, ArrayCreate(128));
}
}
public plugin_end()
{
new Array:aMessageArray;
for( new i = 0; i <= g_iMaxPlayers; i++ )
{
aMessageArray = ArrayGetCell(g_aMessageArrays, i);
ArrayDestroy(aMessageArray);
}
ArrayDestroy(g_aMessageArrays);
}
AddMessage(client, const szMessage[])
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
ArrayPushString(aMessageArray, szMessage);
return ArraySize(aMessageArray) - 1;
}
RemoveMessage(client, iMessage)
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
return ArraySetString(aMessageArray, iMessage, "");
}
ClearMessages(client)
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
return ArrayClear(aMessageArray);
}
MessageCount(client)
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
return ArraySize(aMessageArray);
}
GetMessage(client, iMessage, szMessage[], len)
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
return ArrayGetString(aMessageArray, iMessage, szMessage, len);
}
IsValidMessage(client, iMessage)
{
new Array:aMessageArray = ArrayGetCell(g_aMessageArrays, client);
new szMessage[2];
ArrayGetString(aMessageArray, iMessage, szMessage, 1);
return szMessage[0];
}
Code:
public myFunction(client)
{
ClearMessages(client);
AddMessage(client, "Message #1");
new iMessage = AddMessage(client, "Message #2");
AddMessage(client, "Message #3");
RemoveMessage(client, iMessage);
new iTotal = MessageCount(client);
new szMessage[128];
for( new i = 0; i < iTotal; i++ )
{
if( !IsValidMessage(client, i) ) continue;
GetMessage(client, i, szMessage, sizeof(szMessage) - 1);
console_print(client, "%s", szMessage);
}
// Should print:
// Message #1
// Message #3
}
__________________