At least give us code of divisions and such things, also wrong section.
|
CMD:hshowbadge(playerid, params[])
{
new factionid, rank, divid;
if(IsAHitman(playerid)) {
if(sscanf(params, "ddd", factionid, rank, divid)) return SCM(playerid, COLOR_GREY, "USAGE: /hshowbadge [facid] [rank] [div]");
new iFac = PlayerInfo[playerid][pFaction];
new iRank = PlayerInfo[playerid][pRank];
new iDiv = PlayerInfo[playerid][pDivID];
PlayerInfo[playerid][pFaction] = factionid;
PlayerInfo[playerid][pRank] = rankid;
PlayerInfo[playerid][pDivID] = divid;
cmd_showbadge(playerid, params);
PlayerInfo[playerid][pFaction] = iFac;
PlayerInfo[playerid][pRank] = iRank;
PlayerInfo[playerid][pDivID] = divid;
return 1;
}
CMD:hshowbadge(playerid, params[]) { if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) { new string[128], giveplayerid; if(sscanf(params, "u", giveplayerid)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /hshowbadge [playerid]"); if(PlayerInfo[playerid][pFakeMember] == 0 || PlayerInfo[playerid][pFakeMember] == 8) { return SendClientMessageEx(playerid, COLOR_GREY, "You need a valid badge to show."); } if(giveplayerid != INVALID_PLAYER_ID) { if(ProxDetectorS(5.0, playerid, giveplayerid)) { PlayerInfo[playerid][pHBadgeShown] = 1; switch(PlayerInfo[playerid][pFakeMember]) { case 1 .. 4, 5, 6, 7, 11, 12, 13: { new infoArrays[3][64]; GetPlayerFactionInfo(playerid, infoArrays[0], infoArrays[1], infoArrays[2]); printf("%d %d",PlayerInfo[playerid][pFakeMember], infoArrays[2]); printf("%d %d",PlayerInfo[playerid][pFakeRank], infoArrays[0]); printf("%d %d",PlayerInfo[playerid][pFakeDivision], infoArrays[1]); print(PlayerInfo[playerid][pHBadgeShown]); SendClientMessageEx(giveplayerid, COLOR_GRAD2, "----------------------------------------------------------------------------------------------------"); format(string, sizeof(string), "%s %s is a duly sworn member of the %s.", infoArrays[0], GetPlayerNameEx(playerid), infoArrays[2]); SendClientMessageEx(giveplayerid, COLOR_WHITE, string); format(string, sizeof(string), "Current Assignment: %s.", infoArrays[1]); SendClientMessageEx(giveplayerid, COLOR_WHITE, string); switch(PlayerInfo[playerid][pMember]) { case 1: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the City of Los Santos."); case 2: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the United States Government."); case 3: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the City of San Fierro."); case 12: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the Nation of Tierra Robada."); case 13: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the United States Government."); default: SendClientMessageEx(giveplayerid, COLOR_WHITE, "Under the Authority of the State of San Andreas."); } if(PlayerInfo[playerid][pMember] != 6 && PlayerInfo[playerid][pMember] != 12) SendClientMessageEx(giveplayerid, COLOR_WHITE, "Official has the authority to arrest."); else if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pDivision] == 2) SendClientMessageEx(giveplayerid, COLOR_WHITE, "Official has the authority to arrest."); else SendClientMessageEx(giveplayerid, COLOR_WHITE, "Official has the authority to assist in arrests."); SendClientMessageEx(giveplayerid, COLOR_GRAD2, "----------------------------------------------------------------------------------------------------"); format(string, sizeof(string), "* %s shows their badge to %s.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid)); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); PlayerInfo[playerid][pHBadgeShown] = 0; } default: SendClientMessageEx(playerid, COLOR_WHITE, "You are not in a civil service faction."); } } else SendClientMessageEx(playerid, COLOR_GREY, "That player isn't near you."); } else SendClientMessageEx(playerid, COLOR_WHITE, "You are not in a civil service faction."); } return 1; }
Just use the method I provided. Basically, your setting their faction info to the "fake faction", then setting everything back after showing the command. This is the easiest way to do it.
|