/gm (С полной информацией в диалоге)

Статус
В этой теме нельзя размещать новые ответы.

Batka1337

Новичок
Автор темы
21
9
Всем привет.
С вами 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]);
        }
 

kaZax

samp.work
Проверенный
150
23
PHP:
case 888:
{
    GKick(AdmGMID[playerid]);
}
Не все используют switch внутри OnDialogResponse.
Где функция GKick ?
 

ynhhoJ

Известный
102
6
1. Кто автор темы?
2. Коанда полезная для мода пойдёт.
 
Последнее редактирование:

ynhhoJ

Известный
102
6
Добавь эту функцию в эту тему.
Код:
stock GKick(playerid, time = 150)
{
    if(GetPVarInt(playerid, "Kick") == -1) Kick(playerid);
    else if(!GetPVarInt(playerid, "Kick")) SetPVarInt(playerid, "Kick", SetTimerEx("KickTimer", time, 0, "d", playerid));
    else
    {
        KillTimer(GetPVarInt(playerid, "Kick"));
        SetPVarInt(playerid, "Kick", -1);
        GKick(playerid);
    }
    return true;
}
 

ynhhoJ

Известный
102
6
Сделайте пожалуйста комманду /gm на sscanf или както так. Ибо нужна комманда но не на CMD
 

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
PHP:
if(strcmp(cmd, "/gm", true) == 0) 
{
if(PlayerInfo[playerid][pAdmin] < 1) return 1;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "/gm [id ]");
giveplayerid = strval(tmp);
new Float:boomx, Float:boomy, Float:boomz;
GetPlayerPos(giveplayerid,boomx, boomy, boomz);
GetPlayerHealth(giveplayerid,AdmGMHP[giveplayerid]);
AdmGM[playerid] = 1;
AdmGMID[playerid] = giveplayerid;
CreateExplosion(boomx, boomy , boomz+7.5, 5, 0.5);
GmtestTimer[playerid] = SetTimerEx("Gmtest",1000,true,"d",playerid);
return 1;
}
 
  • Нравится
Реакции: ynhhoJ

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Статус
В этой теме нельзя размещать новые ответы.