*** You do not receive any PM ***
CMD:pm(playerid, params[])
{
new id, msg[128], str[128];
if(pData[playerid][Login] == 0) return SendClientMessage(playerid, COLOR_RED, "*** Please login first! ***");
if(sscanf(params, "us[128]", id, msg)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /pm [playerid] [msg]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "*** Player not connected ***");
if(pData[id][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, "*** This player has disable his PM Recieving System! ***");
PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
format(str, sizeof(str), "PM to %s(%d): %s", GetpName(id), id, msg);
SendClientMessage(playerid, COLOR_YELLOW, str);
SetPVarInt(id, "LastPM", playerid);
format(str, sizeof(str), "PM from %s(%d): %s", GetpName(playerid), playerid, msg);
SendClientMessage(id, COLOR_YELLOW, str);
SendClientMessage(id, COLOR_YELLOW, "*** Use /r to reply in PM ***");
return 1;
}
CMD:r(playerid, params[])
{
new str[128], id;
if(GetPVarInt(playerid, "LastPM"))
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /r [msg]");
PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
format(str, sizeof(str), "Reply PM to %s(%d): %s", GetpName(id), id, params);
SendClientMessage(playerid, COLOR_YELLOW, str);
format(str, sizeof(str), "%s(%d) has reply your PM: %s", GetpName(playerid), playerid, params);
SendClientMessage(id, COLOR_YELLOW, str);
SendClientMessage(id, COLOR_YELLOW, "*** Use /r to reply in PM ***");
}
else return SendClientMessage(playerid, COLOR_RED, "*** You don't have receive any PM! ***");
return 1;
}
//Add this to your pData enum - LastPM
public OnPlayerConnect(playerid, params[])
{
pData[playerid][LastPM] = -1; //add this under onplayerconnect
}
CMD:r(playerid, params[])
{
new str[128], id = pData[playerid][LastPM];
if(id == -1) return SendClientMessage(playerid, COLOR_RED, "*** You haven't received any PM! ***");
if(IsPlayerConnected(id))
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /r [msg]");
PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
format(str, sizeof(str), "Reply PM to %s(%d): %s", GetpName(id), id, params);
SendClientMessage(playerid, COLOR_YELLOW, str);
format(str, sizeof(str), "%s(%d) has reply your PM: %s", GetpName(playerid), playerid, params);
SendClientMessage(id, COLOR_YELLOW, str);
SendClientMessage(id, COLOR_YELLOW, "*** Use /r to reply in PM ***");
}
else return SendClientMessage(playerid, COLOR_RED, "*** Player not connected! ***");
return 1;
}
CMD:pm(playerid, params[])
{
new id, msg[128], str[128];
if(pData[playerid][Login] == 0) return SendClientMessage(playerid, COLOR_RED, "*** Please login first! ***");
if(sscanf(params, "us[128]", id, msg)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /pm [playerid] [msg]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "*** Player not connected ***");
if(pData[id][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, "*** This player has disable his PM Recieving System! ***");
PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
format(str, sizeof(str), "PM to %s(%d): %s", GetpName(id), id, msg);
SendClientMessage(playerid, COLOR_YELLOW, str);
format(str, sizeof(str), "PM from %s(%d): %s", GetpName(playerid), playerid, msg);
SendClientMessage(id, COLOR_YELLOW, str);
SendClientMessage(id, COLOR_YELLOW, "*** Use /r to reply in PM ***");
pData[id][LastPM] = id;
return 1;
}
Thx for your help.
Anyway Do you have any idea how to prevent Reconnect when Kick(playerid); is use OnPlayerConnect? |
pData[id][LastPM] = id;
pData[playerid][LastPM] = id;
PVars are automatically deleted when a player leaves the server (after OnPlayerDisconnect), meaning you don't have to manually reset variables for the next player who joins. |