Доступ к архиву

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

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

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

Новый вид команд (PCMD) на командном процессоре OnPlayerCommandText

Статус
В этой теме нельзя размещать новые ответы.

Пельмень

Компетентный
Всем привет сегодня в свободное время, а точнее на паре по информатике от безделия решил написать новый вид команд, а точнее узнаете далее!

И так думаю всем-бы хотелось чтобы на вашем сервере все команды начинались не со слеша( / ) а допустим с ! или # не так ли?

Начнём:

1.Создадим командную функцию (В конце вашего скрипта)
PHP:
OnPlayerPelmenCommand(playerid, cmdtext[])
{ //Сюда вставляем сами команды, сейчас покажу пример:
    if(strcmp(cmdtext, "!dead", true) == 0) {
        SetPlayerHealth(playerid,0b0);
        SendClientMessage(playerid,-1,"Вы совершили самоубийство!");
        return false;
    }
    if(strcmp(cmdtext, "$heal", true) == 0) {
        SetPlayerHealth(playerid,100);
        SendClientMessage(playerid,-1,"Вы полностью востановили здоровье!");
        return false;
	}
	
	//Эта функция будет вызываться если игрок ввёл неверную команду, вместо return false; можем поставить вывод сообщения игроку.
    for(new i = 0; i < sizeof(PelmenPrefix); i++) if(cmdtext[0] == PelmenPrefix[i]) return false;
    return true;
}
2. Теперь понадобится переместить все команды из public OnPlayerCommandText в нашу новую командную функцию.
3. Теперь ко всем new добавим
PHP:
static const PelmenPrefix[] = { //Префиксы перед командами (Можете добавить свои)
		"/",
		"#",
		"!",
		"$"
};
4. После того как мы полностью освободили public OnPlayerCommandText добавляем в него строчку
PHP:
OnPlayerPelmenCommand(playerid, cmdtext);
Должно получиться примерно так:

PHP:
public OnPlayerCommandText(playerid, cmdtext[]) return OnPlayerPelmenCommand(playerid, cmdtext);
5.В public OnPlayerText добавим строчку
PHP:
if(OnPlayerPelmenCommand(playerid, text) == 0b0) return false;
Вот и всё, наша система готова.

ВАЖНО:
1.После каждой команды ставим return false; а не return true;
2.С помощью этой функции вы не получите дополнительной оптимизации работы скрипта.
3.Если вы хотите добавить свой префикс перед командой то добавьте его в массив PelmenPrefix, без этого команда с вашим префиксом работать не будет.

Всем спасибо за прочтение данной темы.

System by Пельмень

Копирование статьи без указания автора строго запрещено!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу