Перейти к содержанию
Авторизация  
An2d1s

TextDraw по команде...

Рекомендуемые сообщения

An2d1s

Доброе утро уважаемые форумчане. Хотел попросить ответить на вопрос один. Как сделать возможность показывать TextDraw командой другому игроку. К примеру.  Пользователь 1, ввел команду /signal ID персонажа, которому отсылает сигнал. И в этот момент должен появиться TexDraw у персонажа, которому прописали этот /signal. Как это реализовать, кто может подсказать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lefist

Не знаю в чем у вас проблема, вроде все расписали правильно...

 

Думаю, что необходимо:

  1. Иметь готовый TextDraw
  2. Отловить ID игрока при вводе необходимой команды
  3. Создать и показать TextDraw игроку, по ID, которому указали в команде

 

1. Иметь готовый TextDraw

  • При помощи [FS] iPLEOMAX или другим способом создаем наш TextDraw и получаем исходный код (есть много уроков по этому поводу)

Например у в результате получается TextDraw:

// Переменная TextDraw
new Text:td_example; 

// Создание TextDraw
stock CreateExample() {
    td_example = TextDrawCreate(50.000, 50.000, "TextDraw Example");
    ...
}

// Показ TextDraw
stock ShowExample(playerid) {
    ...
    TextDrawShowForPlayer(playerid, td_example);
}

// Сокрытие TextDraw
stock HideExample(playerid) {
    ...
    TextDrawHideForPlayer(playerid, td_example);
}

// Удаление TextDraw
stock DestroyExample() {
    ...
    TextDrawDestroy(td_example);
}

Создаем и удаляем наш TextDraw например при старте и выключении мода соответственно:

public OnGameModeInit()
{
    ...
    CreateExample();
    ...
}

public OnGameModeExit()
{
    ...
    DestroyExample();
    ...
} 

Или же, для PlayerText:

// Переменная TextDraw
new PlayerText:td_example[MAX_PLAYERS]; 

// Создание TextDraw
stock CreateExample(playerid) {
    td_example[playerid] = CreatePlayerTextDraw(playerid, 50.000, 50.000, "TextDraw Example");
    ...
}

// Показ TextDraw
stock ShowExample(playerid) {
    ...
    PlayerTextDrawShow(playerid, td_example[playerid]);
}

// Сокрытие TextDraw
stock HideExample(playerid) {
    ...
    PlayerTextDrawHide(playerid, td_example[playerid]);
}

// Удаление TextDraw
stock DestroyExample(playerid) {
    ...
    PlayerTextDrawDestroy(playerid, td_example[playerid]);
}

 

2. Отловить ID игрока при вводе необходимой команды

  • При помощи командного плагина, плагина sscanf, функции strtok (есть много уроков)

Например у нас используется плагин Pawn.CMD:

// Команда для показа TextDraw
cmd:signal(playerid, params[]) 
{ 
    // id игрока, введенный из командной строки
    new id = strval(params);
    ...
} 

Для sscanf будет что-то типо такой конструкции:

new id;
if (!sscanf(params, "u", id)) {
    ...
}

Подробнее поищите на форуме или в интернете.

 

3. Создать и показать TextDraw игроку, по ID, которому указали в команде

  • Просто вызвать создание (если необходимо) и показ TextDraw по ID игрока

Получается что-то типо этого:

// Команда для показа TextDraw
cmd:signal(playerid, params[]) 
{ 
    // id игрока, введенный из командной строки
    new id = strval(params);
    ...
    // CreateExample(id); - Если используется PlayerText
    ShowExample(id);
    return 1; 
} 

и sscanf:

new id;
if (!sscanf(params, "u", id)) {
    // CreateExample(id); - Если используется PlayerText
    ShowExample(id);
}

Также необходимо будет скрывать TextDraw, чтобы игроку он не мешался, это нужно будет вызывать:

HideExample(/* id игрока */);

И удалять:

DestroyExample(/* id игрока, если PlayerText*/);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.