Question

heazych
Освоившийся

Приветствую всех. Пишу мод с нуля на Pawn.CMD 3.3.6 и столкнулся с следующей проблемой. Написал команды /s /me /do /try, мод при компиляции ошибки не выдаёт, но при попытке задействовать данные команды в игре ничего не происходит. Что мне делать? :(

 

Спойлер

//================================[Ôëàãè]=======================================
flags:s(CMD_CHAT)
flags:me(CMD_CHAT)
flags:do(CMD_CHAT)
flags:try(CMD_CHAT)
//===========================[Êîìàíäû ñåðâåðà]==================================
cmd:s(playerid, params[])
{
    new string[MAX_CHATBUBBLE_LENGTH];
    format(string, sizeof string, "%s êðè÷èò: %s", GN(playerid), params);
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) ApplyAnimation(playerid,"RIOT","RIOT_shout",4.1,0,0,0,0,1);
    ProxDetector(playerid, 30.0, string);
    return 1;
}

cmd:me(playerid, params[])
{
    new string[MAX_CHATBUBBLE_LENGTH];
    format(string, sizeof string, "%s %s", GN(playerid), params);
    ProxDetector(playerid, 20.0, string, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
}

cmd:do(playerid, params[])
{
    new string[MAX_CHATBUBBLE_LENGTH];
    format(string, sizeof string, "%s (( %s ))", params, GN(playerid));
    ProxDetector(playerid, 20.0, string, COLOR_LIGHTBLUE, COLOR_LIGHTBLUE);
    return 1;
}

cmd:try(playerid, params[])
{
    new string[MAX_CHATBUBBLE_LENGTH];
    if(random(2) == 1) format(string, sizeof(string), "%s %s - {00800}óäà÷íî", GN(playerid), params);
    else format(string, sizeof(string), "%s %s - {FF0000}íåóäà÷íî", GN(playerid), params);
    ProxDetector(playerid, 20.0, string, -1, -1);
    return 1;
}

 

Share this post


Link to post

6 answers to this question

  • 0
Cawfee
Великий Гуру

@heazych, в OnPlayerCommandReceived с помощью флагов вы должны определять категорию команды, а потом, с помощью дополнительных условий, проверять, может ли игрок пользоваться этой категорией команд. В данный момент в OnPlayerCommandReceived написано, что если команда относится к CMD_CHAT, значит она не должна выполняться. Все остальные команды - выполняются. Ибо возврат 1 указывает на то, что следом будет вызвана требуемая команда, а возврат 0 - прерывание цепочки вызовов. Стоит сделать наоборот: если выполнились условия, вызываем команду. Нет? Прерываем цепь.

public OnPlayerCommandReceived(playerid, cmd[], params[], flags) {
	if(flags & CMD_CHAT) {
		return 1;
	}
	
	return 0;
}

Ну, и для того, чтобы эти флаги имели хоть какой-то смысл, вдобавок уже накручивать условия вида "Игроку не ограничена отправка сообщений в чат?" и "Игрок авторизован?".

public OnPlayerCommandReceived(playerid, cmd[], params[], flags) {
	if ((flags & CMD_CHAT) && isAuthorized(playerid) && !isMuted(playerid)) {
		return 1;
	}
	
	return 0;
}

 

Share this post


Link to post
  • 0
Cawfee
Великий Гуру

@heazych, в OnPlayerCommandText какое возвращаемое значение стоит? И попробуйте уж заодно написать команду без флагов, быть может флаг неправильно задан.

Share this post


Link to post
  • 0
heazych
Освоившийся
24 минуты назад, Jawn сказал:

@heazych, в OnPlayerCommandText какое возвращаемое значение стоит? И попробуйте уж заодно написать команду без флагов, быть может флаг неправильно задан.

public OnPlayerCommandText(playerid, cmdtext[]) return true;

 

 

@Jawn также при отключении флагов с помощью /* */ команды не работают. :(

 

Share this post


Link to post
  • 0
Cawfee
Великий Гуру

@heazych, стало быть попробуйте сделать возврат нуля в OnPlayerCommandText. Что в OnPlayerCommandReceived?

Share this post


Link to post
  • 0
heazych
Освоившийся

@Jawn 

public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
    if(flags & CMD_CHAT) return 0;
	return 1;
}

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • tgfoscar
      By tgfoscar
      Требуется свободное владение C++. Античит, новый способ добавления техники на сервер, совместимость с CEF и возможность добавления полезных функций. За дополнительной информацией обращайтесь к wayne_gm в Discord.
    • enotplaysupptor
      By enotplaysupptor
      Основа для мода Samp для начинающих
      Скачать файл ╔══════════════════════════════════════════════════╗
      ║               Test-RolePlay v0.1           ║
      ║       Современная основа для SA-MP серверов      ║
      ╚══════════════════════════════════════════════════╝
      ✦ О ПРОЕКТЕ:
         Добро пожаловать в Test-RolePlay - мод с нуля, 
         созданный как универсальная основа для SA-MP проектов.
         Проект был создан для тех кто не знает с чего начать и начинающих разработчиков
         Версия: T-RP v0.1 [Актуальная]
      ✦ ОСНОВНЫЕ ПЛАГИНЫ:
         ▸ CrashDetect    - отладка ошибок
         ▸ MySQL R41+     - работа с базой данных
         ▸ Pawn.CMD       - система команд
         ▸ Pawn.Regex     - регулярные выражения
         ▸ SKY            - улучшенные игровые функции
         ▸ sscanf2        - парсинг параметров
         ▸ Streamer       - динамические объекты
         ▸ TOTP           - двухфакторная аутентификация
      ✦ КЛЮЧЕВЫЕ СИСТЕМЫ:
         ┌──────────────────────────────────────────────┐
         │ 🔹 Умная регистрация/авторизация:            │
         │    - Хеширование паролей                     │
         │    - Привязка Email                          │
         │    - Выбор пола и расы персонажа             │
         ├──────────────────────────────────────────────┤
         │ 🔹 Командная система:                        │
         │    - Полный набор РП-команд                  │
         │    - Расширенные админ-команды               │
         ├──────────────────────────────────────────────┤
         │ 🔹 Игровое меню:                             │
         │    - Персональная статистика                 │
         │    - Настройки аккаунта                      │
         │    - Система жалоб и вопросов                │
         ├──────────────────────────────────────────────┤
         │ 🔹 Дополнительные системы:                   │
         │    - АФК-режим с автоматическим детектом      │
         │    - Интегрированный античит (Nex-AC)        │
         └──────────────────────────────────────────────┘
      ✦ ПЛАНЫ РАЗРАБОТКИ:
         » Добавление новых игровых систем
         » Оптимизация существующего кода
         » Расширение возможностей для администраторов
         » Улучшение пользовательского интерфейса
      Если увижу что вы хотите что бы я продолжил разработку данного мода пишите или можете проявиться большую активность










      Добавил enotplaysupptor Добавлено 09.07.2025 Категория Моды Автор Я  
    • Nekit2019
      By Nekit2019
      Добрый день, имеется сервер в CRMP 0.3е (старичок, знаю, решил поностальгировать) . меняю погоду через ркон, но она скипается через пару минут на нулевую! Не пойму от чего, скриптом отдельно на погоду нет. Пожскажите, может в gamemod0 или где еще и куда прописать можно погоду? либо чтоб менялась сама, либо статическую. Вставлял из инета код в гейммод на рандомную погоду через пол часа с уведомлениями - результат такой же, меняется на 1-20 ,но сама сбрасывается на 0 через минуту.