http://www.helbreathx.net/forum/inde...showtopic=2676
for the full post. will let you display damage over 127.
As for pointers, you ain't seen nothin' yet.
These are pointers in their true form.
Code:
uchar ** m_cEntityCount;
uchar ** m_cItemCount;
class CItem **** m_Item;
WORD ** m_iNPCID;
WORD *** m_iEntityID;
uchar *** m_cEntityType;
Code:
m_iEntityID = new WORD**[G_pGame->m_iServerCount];
m_cEntityType = new uchar**[G_pGame->m_iServerCount];
m_Item = new class CItem***[G_pGame->m_iServerCount];
m_iNPCID = new WORD*[G_pGame->m_iServerCount];
m_cEntityCount = new unsigned char*[G_pGame->m_iServerCount];
m_cItemCount = new unsigned char*[G_pGame->m_iServerCount];
for (int i = 0; i < G_pGame->m_iServerCount; i++)
{
m_iEntityID[i] = new WORD*[m_iSizeX*m_iSizeY];
m_cEntityType[i] = new uchar*[m_iSizeX*m_iSizeY];
m_Item[i] = new class CItem**[m_iSizeX*m_iSizeY];
m_iNPCID[i] = new WORD[m_iSizeX*m_iSizeY];
memset(m_iEntityID[i], 0, m_iSizeX*m_iSizeY*2);
memset(m_cEntityType[i], 0, m_iSizeX*m_iSizeY);
memset(m_Item[i], 0, m_iSizeX*m_iSizeY*sizeof(CItem*));
memset(m_iNPCID[i], 0, m_iSizeX*m_iSizeY*2);
m_cEntityCount[i] = new unsigned char[m_iSizeX*m_iSizeY];
m_cItemCount[i] = new unsigned char[m_iSizeX*m_iSizeY];
memset(m_cEntityCount[i], 0, m_iSizeX*m_iSizeY);
memset(m_cItemCount[i], 0, m_iSizeX*m_iSizeY);
}
Code:
if (m_cItemCount[sid][x + y*m_iSizeY] == null)
{
m_Item[sid][x + y*m_iSizeY] = new CItem*[10];
for (int i = 0; i < 10; i++)
m_Item[sid][x + y*m_iSizeY][i] = null;
}
else if (m_cItemCount[sid][x + y*m_iSizeY] > DEF_TILE_MAXITEMS)
{
return false;
}
else
{
for (int i = m_cItemCount[sid][x + y*m_iSizeY]; i >= 0; i--)
m_Item[sid][x + y*m_iSizeY][i+1] = m_Item[sid][x + y*m_iSizeY][i];
}
m_Item[sid][x + y*m_iSizeY][0] = pItem;
m_cItemCount[sid][x + y*m_iSizeY]++;