anonimniy
Компетентный
Суть команды: В /members, для законников и хитманов будет приписана строка - Посажено преступников/Выполнено заказов. Это поможет лидерам вести с-му отчётности. Кто сколько работает и так далее. В общем одна строка из /members выглядит так: Имя_Игрока[ID] | Ранг: 6 | Уровень: 999 | осажено преступников/Выполнено заказов: 999.
Если хитман - пишет второй вариант, если законник - пишет первый вариант.
В enum pInfo
В OnPlayerConnect
В if(newstate == PLAYER_STATE_WASTED)
В OnPlayerRegister
В OnPlayerLogin
Сама команда /members (Без диалога)
В конец команды /arrest
В функции где у вас хитман убивает жертву, вставляйте:
И в конец мода
Если у кого есть варианты по оптимизации - просьба выложить.
Если хитман - пишет второй вариант, если законник - пишет первый вариант.
В enum pInfo
Код:
pZkKill,
pZakKill,
Код:
PlayerInfo[playerid][pZkKill] = 0; PlayerInfo[playerid][pZakKill] = 0;
Код:
PlayerInfo[i][pZakKill] += 1;
Код:
dini_IntSet(string, "ZkKill",PlayerInfo[playerid][pZkKill]);
dini_IntSet(string, "ZakKill",PlayerInfo[playerid][pZakKill]);
Код:
PlayerInfo[playerid][pZkKill] = dini_Int(string2,"ZkKill");
PlayerInfo[playerid][pZakKill] = dini_Int(string2,"ZakKill");
Код:
if(strcmp(cmd,"/members",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(!GetFracID(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не состоите во фракции.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "** Члены фракции онлайн **");
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
GetPlayerName(i, sendername, sizeof(sendername));
if(PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pMember] == 8)
{
format(string, sizeof(string),
"%s[%d] | Ранг: %d | Уровень: %d | Выполнено заказов: %d",
sendername,playerid, PlayerInfo[i][pRank],PlayerInfo[i][pLevel], PlayerInfo[i][pZkKill]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
else if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3)
{
format(string, sizeof(string),
"%s[%d] | Ранг: %d | Уровень: %d | Посажено преступников: %d",
sendername,playerid, PlayerInfo[i][pRank],PlayerInfo[i][pLevel], PlayerInfo[i][pZakKill]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
else
{
format(string, sizeof(string),
"%s[%d] | Ранг: %d | Уровень: %d",
sendername,playerid, PlayerInfo[i][pRank],PlayerInfo[i][pLevel]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
}
}
return 1;
}
Код:
PlayerInfo[playerid][pZakKill] += 1;
Код:
PlayerInfo[killerid][pZkKill] += 1;
Код:
stock GetFracID(playerid)
{
if(PlayerInfo[playerid][pLeader] >= 1) return PlayerInfo[playerid][pLeader];
if(PlayerInfo[playerid][pMember] >= 1) return PlayerInfo[playerid][pMember];
return 0;
}
Кому понадобилось - не забываем про плюсики.
