Всем привет.
С вами Batka1337.
Сегодня я вам покажу команду /gm для проверки на ГМ, с полной информацией в диалоге.
Добавляем ко всем командам саму команду.
Код:
CMD:gm(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return 1;
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "/gm [id ]");
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(params[0],boomx, boomy, boomz);
GetPlayerHealth(params[0],AdmGMHP[params[0]]);
AdmGM[playerid] = 1;
AdmGMID[playerid] = params[0];
CreateExplosion(boomx, boomy , boomz+7.5, 5, 0.5);
GmtestTimer[playerid] = SetTimerEx("Gmtest",1000,true,"d",playerid);
return 1;
}
Далее создаём паблик информации о провереном игроке
Ко всем new
Код:
new GmtestTimer[MAX_PLAYERS];
new Float:AdmGMHP[MAX_PLAYERS];
new AdmGM[MAX_PLAYERS] = 0;
new AdmGMID[MAX_PLAYERS];
new Float:AdmGMArm[MAX_PLAYERS];
В конец мода
Код:
forward Gmtest(playerid);
public Gmtest(playerid)
{
new string[128], Float:nowhealth[MAX_PLAYERS];
if(AdmGM[AdmGMID[playerid]] == 1)
{
GetPlayerHealth(AdmGMID[playerid],nowhealth[AdmGMID[playerid]]);
}
if((AdmGMHP[AdmGMID[playerid]]-nowhealth[AdmGMID[playerid]]) > 0)
{
format(string, sizeof(string), "До: \t\t\t\t%.0f.0 HP\nПосле: \t\t\t%.0f.0 HP\nHP уменьшилось на: \t\t%.0f.0\n\n{7FB151}ГМ не обнаружено. HP восстановлено âîññòàíîâëåíî.",AdmGMHP[AdmGMID[playerid]],nowhealth[AdmGMID[playerid]],(AdmGMHP[AdmGMID[playerid]]-nowhealth[AdmGMID[playerid]]));
ShowPlayerDialog(playerid,888,DIALOG_STYLE_MSGBOX , "Проверка на God Mode",string, "Закрыть", "");
SetHealth(AdmGMID[playerid], AdmGMHP[AdmGMID[playerid]]);
SetHealth(AdmGMID[playerid], AdmGMHP[AdmGMID[playerid]]);
AdmGM[AdmGMID[playerid]] = 0;
AdmGMHP[AdmGMID[playerid]] = 0;
AdmGMID[playerid] = INVALID_PLAYER_ID;
}
else if((AdmGMHP[AdmGMID[playerid]]-nowhealth[AdmGMID[playerid]]) == 0)
{
format(string, sizeof(string), "До: \t\t\t%.0f.0 HP\nnПосле: \t\t\t%.0f.0 HP\nHP не уменьшилось\n\n{CD5A5A}Возможно у игрока ГМ ÃÌ.",AdmGMHP[AdmGMID[playerid]],nowhealth[AdmGMID[playerid]]);
ShowPlayerDialog(playerid,888,DIALOG_STYLE_MSGBOX , "Проверка на God Mode",string, "Закрыть", "");
AdmGM[AdmGMID[playerid]] = 0;
AdmGMArm[playerid] = 0;
AdmGMHP[AdmGMID[playerid]] = 0;
AdmGMID[playerid] = INVALID_PLAYER_ID;
}
KillTimer(GmtestTimer[playerid]);
}
Теперь добавляем диалог в OnDialogResponse
Код:
case 888:
{
GKick(AdmGMID[playerid]);
}