dphome
Well-known member
All in one.
RPC_ServerJoin
RPC_ServerQuit
RPC_SetPlayerName
RPC_WorldPlayerDeath
RPC_ShowTextDraw
RPC_ShowDialog
RPC_ServerJoin
RPC_ServerQuit
RPC_SetPlayerName
RPC_WorldPlayerDeath
RPC_ShowTextDraw
RPC_ShowDialog
Code:
case RPC_ServerJoin:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
short int p_id;
D3DCOLOR p_color;
byte p_nameLen, p_isNPC;
char p_szPlayerName[25];
bsData.Read(p_id);
bsData.Read(p_color);
bsData.Read(p_isNPC);
bsData.Read(p_nameLen);
bsData.Read(p_szPlayerName, p_nameLen);
p_szPlayerName[p_nameLen] = '\0';
if(set.serverjoin)
{
if (!p_isNPC)
{
addMessageToChatWindow("%s[%d] connected.", p_szPlayerName, p_id);
}
}
break;
}
case RPC_ServerQuit:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
short int p_id;
byte reasonID;
bsData.Read(p_id);
bsData.Read(reasonID);
if (set.serverquit)
{
char szDisconnectReason[3][14] =
{
"timeout",
"/q",
"kick"
};
if (g_Players->iIsListed[p_id] != 1)
break;
if (g_Players->pRemotePlayer[p_id] == NULL)
break;
const char *p_szPlayerName = getPlayerName(p_id);
addMessageToChatWindow("%s[%d] disconnected. Reason: %s", p_szPlayerName, p_id, szDisconnectReason[reasonID]
}
break;
}
case RPC_SetPlayerName:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
short int p_id;
byte p_nameLen;
char p_name[25];
bsData.Read(p_id);
bsData.Read(p_nameLen);
bsData.Read(p_name, p_nameLen);
p_name[p_nameLen] = '\0';
if (set.setplayername)
{
const char *p_szPlayerName = getPlayerName(p_id);
addMessageToChatWindow("%s[%d] -> %s", p_szPlayerName, p_id, p_name);
}
break;
}
case RPC_WorldPlayerDeath:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
short int playerId;
bsData.Read(playerId);
if (playerId < 0 || playerId >= SAMP_MAX_PLAYERS) return;
if (set.worldplayerdeath)
{
const char *p_szPlayerName = getPlayerName(playerId);
addMessageToChatWindow("%s[%d] death.", p_szPlayerName, playerId);
}
break;
}
case RPC_ShowTextDraw:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
WORD wTextID;
stTextDrawTransmit TextDrawTransmit;
CHAR cText[1024];
unsigned short cTextLen = 0;
bsData.Read(wTextID);
bsData.Read((PCHAR)&TextDrawTransmit, sizeof(stTextDrawTransmit));
bsData.Read(cTextLen);
bsData.Read(cText, cTextLen);
cText[cTextLen] = '\0';
if(set.showtextdraw)
{
addMessageToChatWindow("ID: [%d] Text: [%s]", wTextID, cText);
}
break;
}
case RPC_ShowDialog:
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
stSAMPDialog sampDialog;
bsData.Read(sampDialog.wDialogID);
bsData.Read(sampDialog.bDialogStyle);
bsData.Read(sampDialog.bTitleLength);
bsData.Read(sampDialog.szTitle, sampDialog.bTitleLength);
sampDialog.szTitle[sampDialog.bTitleLength] = 0;
bsData.Read(sampDialog.bButton1Len);
bsData.Read(sampDialog.szButton1, sampDialog.bButton1Len);
sampDialog.szButton1[sampDialog.bButton1Len] = 0;
bsData.Read(sampDialog.bButton2Len);
bsData.Read(sampDialog.szButton2, sampDialog.bButton2Len);
sampDialog.szButton2[sampDialog.bButton2Len] = 0;
//stringCompressor->DecodeString(sampDialog.szInfo, 256, &bsData);
if(set.showdialog)
{
addMessageToChatWindow("ID: [%d] Title: [%s]", sampDialog.wDialogID, sampDialog.szTitle);
}
break;
}