Доступ к готовым решениям

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

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

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

Мануал Prefix.

PawnWork

Нуль
Регистрация
25 Окт 2017
Сообщения
4
Лучшие ответы
0
Репутация
0
Всем привет! Первая работа, думаю кому-нибудь пригодится. Писал сам лично, не копировал

к переменным игрока
PHP:
data_PREFIX[15]
сама команда
PHP:
CMD:prefix(playerid, params[])
{
    if(antiflood[playerid] > 0) return AntiFlood(playerid);
    antiflood[playerid]++;
    new ssd[15];
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,YouAreNotLoggedInAsAdmin); //заменяете на свое
    if(PLAYER_DATA[playerid][data_ADMLVL] < 6) return true;  //заменяете на свое
    if(sscanf(params,"is[15]", params[0], ssd)) return SendClientMessage(playerid,COLOR_WARNING,!"Используйте: /prefix [ID] [текст]");
    if(!PLAYER_DATA[params[0]][data_ADMLVL]) return SendClientMessage(playerid, COLOR_RED, !"[Ошибка] {FFFFFF}Данный игрок не администратор");  //заменяете на свое
    strmid(PLAYER_DATA[params[0]][data_PREFIX], ssd, 0, 15, 15); SendClientMessage(playerid, COLOR_GREEN, !"[Успешно] {FFFFFF}Вы установили префикс администратору");  //заменяете на свое
    MysqlUpdatePlayerStr(params[0], "prefix", PLAYER_DATA[params[0]][data_PREFIX]);
    return true;
}
MysqlUpdatePlayerStr
PHP:
stock MysqlUpdatePlayerStr(playerid, field[], data[])
{
	new Query[128];
	format(Query, sizeof(Query), "UPDATE `accounts` SET %s = '%s' WHERE id = '%i' LIMIT 1", field, data, PLAYER_DATA[playerid][data_ID]);//заменить на свое
	return mysql_tquery(dbHandle, Query, "", "");
}

stock AntiFlood(для пояснения)
PHP:
stock AntiFlood(playerid)
{
	ShowPlayerDialogFix(playerid, dialog_OK, DIALOG_STYLE_MSGBOX, ""D"АнтиФлуд", "Не флуди! Это против правил сервера. Приятной игры:)", "Выбрать", "");
	return true;
}
теперь можно добавлять в формат, когда администратор выполняет какое-либо действие. Например /a [текст]

PHP:
CMD:a(playerid, params[])
{
    if(antiflood[playerid] > 0) return AntiFlood(playerid);
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,YouAreNotLoggedInAsAdmin);
    if(PLAYER_DATA[playerid][data_ADMLVL] < 2) return true;
    if(admin_ban_time[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING, !"Ваши действия на сервере заблокированы по подозрению во взломе");
    if(sscanf(params, "s[96]", params[0])) return SendClientMessage(playerid, COLOR_LIME, !"Используйте /a [текст]");
    new string[170];
    format(string,sizeof(string),"[A-Chat]%s[%s %d]: %s", PLAYER_DATA[playerid][data_NAME], PLAYER_DATA[playerid][data_PREFIX], playerid, params[0]);
   	SendAdminMessage(COLOR_LIME, string);
    return true;
}
PHP:
В загрузку из БД
cache_get_value_name(0, "prefix", PLAYER_DATA[playerid][data_PREFIX], 15);
PHP:
И обнуление при подключении
PLAYER_DATA[playerid][data_PREFIX] = EOS;
 
Последнее редактирование:
Сверху Снизу