Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

[FS] Система личных вербальных сообщений через диалоговые окна.

OKStyle

Адвокат по делам семейным
Administrator
Wiki Team
Регистрация
4 Мар 2011
Сообщения
7,094
Лучшие ответы
226
Репутация
2,455
Награды
11
Система личных вербальных сообщений через диалоговые окна.

PHP:
#include <a_samp>
// Target Message System by O.K.Style™
#define DIALOG_ID_TMS 1000
#define USE_CHAT 1
#define COLOR_SENDER 0xFDE39DFF
#define COLOR_RECEIVER 0xFCFF1DFF
public OnPlayerConnect(playerid)
{
    SetPVarInt(playerid, "TargetID", INVALID_PLAYER_ID);
    return 1;
}
public OnPlayerUpdate(playerid)
{
    new targetplayer = GetPlayerTargetPlayer(playerid);
    if(IsPlayerConnected(targetplayer) && targetplayer != INVALID_PLAYER_ID) SetPVarInt(playerid, "TargetID", targetplayer);
    return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
        if(IsPlayerConnected(GetPVarInt(playerid, "TargetID")) && GetPVarInt(playerid, "TargetID") != INVALID_PLAYER_ID)
        {
            ClearAnimations(playerid);
            new dlg_str[128], PlayerName[MAX_PLAYER_NAME];
            GetPlayerName(GetPVarInt(playerid, "TargetID"), PlayerName, sizeof(PlayerName));
            SetPVarInt(GetPVarInt(playerid, "TargetID"), "TargetID", playerid);
            format(dlg_str, sizeof(dlg_str), "Обращение к %s\n\nВведите текст сообщения:", PlayerName);
            ShowPlayerDialog(playerid, DIALOG_ID_TMS, DIALOG_STYLE_INPUT, "TM System", dlg_str, "Отправить", "Отмена");
            return 1;
        }
    }
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_ID_TMS)
    {
        if(!response)
        {
                SetPVarInt(GetPVarInt(playerid, "TargetID"), "TargetID", INVALID_PLAYER_ID);
                SetPVarInt(playerid, "TargetID", INVALID_PLAYER_ID);
                return 1;
        }
        new dlg_str[128], PlayerName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
        format(dlg_str, sizeof(dlg_str), "Сообщение от %s:\n\n%s", PlayerName, inputtext);
        SetPVarInt(GetPVarInt(playerid, "TargetID"), "TargetID", playerid);
        ShowPlayerDialog(GetPVarInt(playerid, "TargetID"), DIALOG_ID_TMS + 1, DIALOG_STYLE_INPUT, "TM System", dlg_str, "Ответить", "Закрыть");
#if USE_CHAT == 1
        format(dlg_str, sizeof(dlg_str), ">> %s", inputtext);
        SendClientMessage(playerid, COLOR_SENDER, dlg_str);
        format(dlg_str, sizeof(dlg_str), "<< %s", inputtext);
        SendClientMessage(GetPVarInt(playerid, "TargetID"), COLOR_RECEIVER, dlg_str);
#endif
    }
    else if(dialogid == DIALOG_ID_TMS + 1)
    {
        if(!response)
        {
                SetPVarInt(GetPVarInt(playerid, "TargetID"), "TargetID", INVALID_PLAYER_ID);
                SetPVarInt(playerid, "TargetID", INVALID_PLAYER_ID);
                return 1;
        }
        new dlg_str[128], PlayerName[MAX_PLAYER_NAME];
        GetPlayerName(GetPVarInt(playerid, "TargetID"), PlayerName, sizeof(PlayerName));
        SetPVarInt(GetPVarInt(playerid, "TargetID"), "TargetID", playerid);
        format(dlg_str, sizeof(dlg_str), "Обращение к %s\n\nВведите текст сообщения:", PlayerName);
        ShowPlayerDialog(playerid, DIALOG_ID_TMS, DIALOG_STYLE_INPUT, "TM System", dlg_str, "Отправить", "Отмена");
#if USE_CHAT == 1
        format(dlg_str, sizeof(dlg_str), ">> %s", inputtext);
        SendClientMessage(playerid, COLOR_SENDER, dlg_str);
        format(dlg_str, sizeof(dlg_str), "<< %s", inputtext);
        SendClientMessage(GetPVarInt(playerid, "TargetID"), COLOR_RECEIVER, dlg_str);
#endif
    }
    return 0;
}
Автор: OKStyle
 
Последнее редактирование:
  • Нравится
Реакции: PIRU
Сверху Снизу