- 0
Войдите для возможности подписаться
Подписчики
0
[закрыто] Не работают команды (/s /me /do /try)
Вопрос от
heazych
,
Вопросы
Лучший ответ
@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;
}
Эта тема закрыта для публикации ответов.
Войдите для возможности подписаться
Подписчики
0
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От Узбек
Всем добрый вечер ребят!
Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
Ловите
-
От nazpol9
Привет всем.
У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.
В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.
Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
#include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>
plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so
Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.
-
Опубликовано · Жалоба
Приветствую всех. Пишу мод с нуля на 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;
}
Поделиться сообщением
Ссылка на сообщение