Вопросы

Здравствуйте! У меня тут одна проблема возникла, когда я написал RP команды такие как /me /ame /do /try /todo /n /s решил их протестировать но они не работали как будто я их и не добавлял. Пожалуйста, попытайтесь найти ошибочку.

 

Код:

Спойлер

CMD:me(playerid, params[])
{
    if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /me [текст]");
    new string[144];
    format(string, sizeof(string), "%s %s", player_info[playerid][NAME], params[0]);
    ProxDetector(20.0, playerid, string, 0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF);
    SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF207500);
    return 1;
}

CMD:ame(playerid, params[])
{
    if(sscanf(params, "s[144]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /ame [текст]");
    SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF207500);
    return 1;
}

CMD:do(playerid, params[])
{
    if(sscanf(params, "s[116]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /do [текст]");
    new string[144];
    format(string, sizeof(string), "%s (%s)", params[0], player_info[playerid][NAME]);
    ProxDetector(20.0, playerid, string, 0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF);
    SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF207500);
    return 1;
}

CMD:try(playerid, params[])
{
    if(sscanf(params, "s[99]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /try [текст]");
    new string[144];
    switch(random(2))
    {
        case 0: format(string, sizeof(string), "%s %s | {FF0000}Неудачно", player_info[playerid][NAME], params[0]);
        case 1: format(string, sizeof(string), "%s %s | {32CD32}Удачно", player_info[playerid][NAME], params[0]);
    }
    ProxDetector(20.0, playerid, string, 0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF0xDE92FFFF);
    return 1;
}

CMD:todo(playerid, params[])
{
    if(sscanf(params, "s[95]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /todo [текст*действие]");
    if(strlen(params) > 95return SCM(playerid, COLOR_GRAY, "Вы ввели слишкой длинный текст и действие!");
    new message[96];
    strmid(message, params, 0sizeof(message));
    new regex:rg_todocheck = regex_new("^[a-zA-Zа-яА-Я.-_,\\s]{2,48}\\*[a-zA-Zа-яА-Я.-_,\\s]{2,48}$");
    if(regex_check(message, rg_todocheck))
    {
        new star = strfind(message, "*");
        new action[50];
        strmid(action, message, star+1sizeof(message));
        strdel(message, star, sizeof(message));
        new string[144];
        format(string, sizeof(string), "- '%s' - {de92ff}сказал%s %s, %s", message, (player_info[playerid][SEX] == 1) ? ("") : ("a"), player_info[playerid][NAME], action);
        ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
    }
    else SCM(playerid, COLOR_GRAY, "Используйте /todo [текст*действие]");
    regex_delete(rg_todocheck);
    return 1;
}

CMD:n(playerid, params[])
{
    if(sscanf(params, "s[107]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /n [текст]");
    new string[144];
    format(string, sizeof(string), "(( %s[%d]: %s ))", player_info[playerid][NAME], playerid, params[0]);
    ProxDetector(20.0, playerid, string, 0xCCCC99FF0xCCCC99FF0xCCCC99FF0xCCCC99FF0xCCCC99FF);
    return 1;
}

CMD:s(playerid, params[])
{
    if(sscanf(params, "s[105]", params[0])) return SCM(playerid, COLOR_GRAY, "Используйте /s [текст]");
    new string[144];
    format(string, sizeof(string), "%s[%d] крикнул: %s", player_info[playerid][NAME], playerid, params[0]);
    ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        ApplyAnimation(playerid, "ON_LOOKERS""shout_01"4.1,0,0,0,0,0);
    }
    SetPlayerChatBubble(playerid, params[0], COLOR_WHITE, 257500);
    return 1;
}

 

С нетерпением жду ответа!

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


Ссылка на сообщение

17 ответов на этот вопрос

  • 0

@Ruman , а вообще, помимо этих команд, есть у тебя в моде ещё? Проверь, подключен ли плагин.

(#include <Pawn.CMD>

cmd:help(playerid, params[])
{
    SendClientMessage(playerid, -1, "Работает!");
    return 1;
} )

Как вариант... Попробуй поставить вместо pawn cmd -> dc_cmd если заработает, то будем решать проблему, чтобы заработали на pawn.cmd. Еще интересует, есть ли у вас плагин sscanf

Отредактировано пользователем Maks_Fabions

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


Ссылка на сообщение
  • 0

@Ruman, что вы под этим подразумеваете?

 

29 минут назад, Ruman сказал:

они не работали как будто я их и не добавлял

 

Вообще ничего не происходит, либо инструкции по использованию команды работают, а остальное – нет. Работают ли другие команды?

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


Ссылка на сообщение
  • 0

@Cawfee Вообще ничего не происходит, даже инструкция по использованию тоже не работает.

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


Ссылка на сообщение
  • 0

@Ruman а на каком командном процессоре у вас мод? Команды вроде бы на dc_cmd. У вас установлен этот плагин и прописан в моде?

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


Ссылка на сообщение
  • 0

@Maks_Fabions У меня Pawn.CMD¬¬

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


Ссылка на сообщение
  • 0

@Ruman, другие команды у вас работают? И на всякий случай уточню: вы точно не забыли скомпилировать игровой мод и перезапустить сервер?

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


Ссылка на сообщение
  • 0

@Cawfee Я и компилировал, и перезапускал сервер, но не одна из команд не работала:(

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


Ссылка на сообщение
  • 0

@Ruman, третий раз спрашиваю: работают ли другие команды в вашем игровом моде (какие-нибудь команды кроме /me, /ame, /do, /todo, /try, /n, /s).

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


Ссылка на сообщение
  • 0

@Ruman, покажите функцию OnPlayerCommandText, если она есть в вашем моде.

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


Ссылка на сообщение
  • 0

@Cawfee Я эти команды написал в самом низу кода. Решил написать для теста в низу кода:

CMD:test(playerid)
{
    SCM(playerid, COLOR_WHITE, "Работает");
}

Вообще не работает!

Отредактировано пользователем Ruman

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


Ссылка на сообщение
  • 0

@Ruman все равно придется показать public OnPlayerCommandText, если он не пустой, то есть вероятность, что другой командный процессор работать не будет 

Отредактировано пользователем Maks_Fabions

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


Ссылка на сообщение
  • 0

@Maks_Fabions public OnPlayerCommandText у меня пустой полностью:

public OnPlayerCommandText(playerid, cmdtext[])
{
    return 1;
}

Я эти команды писал в самом низу кода.

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


Ссылка на сообщение
  • 0

@Ruman смени в этом паблике return 1; на return 0;

Отредактировано пользователем Maks_Fabions

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


Ссылка на сообщение
  • 0

@Maks_Fabions Если ты говоришь про 

public OnPlayerCommandText

То я именно в конце я сделал return 1; на return 0;

 

Теперь если я пишу эти же самые RP команды, то в чат выдает SERVER: Unknown Command (именно в игре в чате).

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


Ссылка на сообщение
  • 0

Покажите инклуды подключённые к моду, сервер кфг и сервер лог

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


Ссылка на сообщение
  • 0

@Maks_Fabions Я поставил dc_cmd и проблема решена! Спасибо все тем, кто пытался помочь мне, и я думаю что все заслужили по плюсику :)

 

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


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

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

  • Похожий контент

    • Артём Профиков
      От Артём Профиков
      У меня есть система подсказок вот так она выглядет
      ShowNotification(playerid, тип, "текст", время, "команда через /", "текст кнопки");
      Только есть вопрос как сделать так чтоб она активировалась в определенном радиусе? Заранее спасибо