narkk3
Умник
Приветствую, уважаемые пользователи Pawno-Info!
Суть темы будет покупка определенных команд администраторами. Да, большинству это кажется полным бредом (собственно как и мне), но как показал опыт, всё же ею пользуются и ищет множество владельцев своих "пуперских" проектов.
В данной теме я расскажу как можно вшить её в свой мод.
Суть темы будет покупка определенных команд администраторами. Да, большинству это кажется полным бредом (собственно как и мне), но как показал опыт, всё же ею пользуются и ищет множество владельцев своих "пуперских" проектов.
В данной теме я расскажу как можно вшить её в свой мод.
1. Ищем свой калбэк (enum pInfo/PlayerInfo и т.п) в котором хранятся все данные игрока (pLvl, pAdmin, pSkin и т.д) после чего вставляем туда это:
Код:
pBan,
pBanIP,
pCanOffban,
pCanAdminWarn,
pCanFrak,
pCanCheat,
pCanMakeHelper
Код:
PlayerInfo[playerid][pBan] = cache_get_field_content_int(0, "pBan", connects);
PlayerInfo[playerid][pBanIP] = cache_get_field_content_int(0, "pBanIP", connects);
PlayerInfo[playerid][pCanOffban] = cache_get_field_content_int(0, "pCanOffban", connects);
PlayerInfo[playerid][pCanAdminWarn] = cache_get_field_content_int(0, "pCanAdminWarn", connects);
PlayerInfo[playerid][pCanFrak] = cache_get_field_content_int(0, "pCanFrak", connects);
PlayerInfo[playerid][pCanCheat] = cache_get_field_content_int(0, "pCanCheat", connects);
PlayerInfo[playerid][pCanMakeHelper] = cache_get_field_content_int(0, "pCanMakeHelper", connects);
Код:
case 9898:
{
new string[256];
if(!response) return 1;
switch(listitem)
{
case 0:
{
if (!PlayerInfo[playerid][pBan])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к команде {B22222}/ban{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к команде {B22222}/ban{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pBan] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(issuerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pBan", PlayerInfo[playerid][pBan]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 1:
{
if (!PlayerInfo[playerid][pCanOffban])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к команде {B22222}/offban{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к команде {B22222}/offban{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pCanOffban] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pCanOffban", PlayerInfo[playerid][pCanOffban]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 2:
{
if (!PlayerInfo[playerid][pBanIP])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к команде {B22222}/banip{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к команде {B22222}/banip{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pBanIP] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pBanIP", PlayerInfo[playerid][pBanIP]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 3:
{
if (!PlayerInfo[playerid][pCanAdminWarn])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к команде {B22222}/awarn{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к команде {B22222}/awarn{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pCanAdminWarn] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pCanAdminWarn", PlayerInfo[playerid][pCanAdminWarn]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 4:
{
if (!PlayerInfo[playerid][pCanFrak])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к{B22222} вступлению в орг{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к {B22222}вступлению в орг{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pCanFrak] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pCanFrak", PlayerInfo[playerid][pCanFrak]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 5:
{
if (!PlayerInfo[playerid][pCanCheat])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к{B22222} использованию читов{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к {B22222}использованию читов{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pCanCheat] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pCanCheat", PlayerInfo[playerid][pCanCheat]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
case 6:
{
if (!PlayerInfo[playerid][pCanMakeHelper])
{
SendClientMessage(playerid, COLOR_WHITE, "Вы {73B461}успешно{FFFFFF} приобрели доступ к команде {B22222}/makehelper{FFFFFF} :)");
format(string, sizeof(string), "[A]{FFFFFF} %s[%d] приобрел доступ к команде {B22222}/makehelper{FFFFFF}", PlayerInfo[playerid][pNames]);
SendAdminMessage(0xB22222FF, string);
PlayerInfo[playerid][pCanMakeHelper] = 1;
PlayerInfo[playerid][pRub] -= 100;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас уже куплена эта команда!");
}
UpdatePlayerDataEx(playerid, "pCanMakeHelper", PlayerInfo[playerid][pCanMakeHelper]);
UpdatePlayerDataEx(playerid, "pRub", PlayerInfo[playerid][pRub]);
ShowDonateDostup(playerid);
}
}
return 1;
}
Код:
CMD: ban вставить: if(!PlayerInfo[playerid][pBan]) return SendClientMessage(playerid, COLOR_GREY, "Вам недоступна эта функция!");
CMD: offban вставить: if(!PlayerInfo[playerid][pCanOffban]) return SendClientMessage(playerid, COLOR_GREY, "Вам недоступна эта функция!");
CMD: banip вставить: if(!PlayerInfo[playerid][pBanIP]) return SendClientMessage(playerid, COLOR_GREY, "Вам недоступна эта функция!");
CMD: warn вставить: if(!PlayerInfo[playerid][pCanAdminWarn]) return SendClientMessage(playerid, COLOR_GREY, "Вам недоступна эта функция!");
CMD: makehelper вставить: if(!PlayerInfo[playerid][pCanMakeHelper]) return SendClientMessage(playerid, COLOR_GREY, "Вам недоступна эта функция!");
Код:
if(!PlayerInfo[playerid][pCanFrak]) return SendClientMessage(playerid, COLOR_GREY, "Администратор не может вступить в фракцию! (/donate)");
Код:
CMD:admdonate(playerid)
{
if(PlayerInfo[playerid][pAdmin] < 1) return 1;
ShowDonateDostup(playerid);
return 1;
}
Код:
stock ShowDonateDostup(playerid)
{
new nickdostup[50];
format(string, 500, "{ffffff}\
/ban\t\t\t\t\t%s\n\
/offfban\t\t\t\t%s\n\
/banip\t\t\t\t%s\n\
/warn\t\t\t\t%s\n\
Разр. на фраку\t\t\t\t%s\n\
Разр. на читы\t\t\t\t%s\n\
/makehelper\t\t\t\t%s",
(!PlayerInfo[playerid][pBan]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pCanOffban]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pBanIP]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pCanAdminWarn]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pCanFrak]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pCanCheat]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"),
(!PlayerInfo[playerid][pCanMakeHelper]) ? ("{ff0000}100 рублей") : ("{11FF00}Куплено"));
format(nickdostup, 50, "{11FF00}%s", PlayerInfo[playerid][pNames]);
ShowPlayerDialog(playerid, 9898, 2, nickdostup, string, "Выбрать", "Назад");
return 1;
}
Не скажу что эта сложная команда, т.к основную роль играют проверки. У кого есть хоть небольшой опыт в сфере Pawn и MySQL, с легкостью вошьют эту команду себе в мод.
Переменные:
Код:
PlayerInfo - заменить на свою (pInfo,pData,player и т.д)
pAdmin - доступ администратору
SendAdminMessage - вывод сообщения администраторам (замените на своё)
pRub - валюта на сервере (проще говоря донат, у вас может быть pDonate, pDonateMoney и т.д)
UpdatePlayerDataEx - обновление переменной в БД (у вас тоже будет другое)
cache_get_field_content_int - у вас может быть cache_get_value_name_int (в зависимости от версии MySQL)
connects - у вас может быть dbHandle и т.п
Спасибо за просмотр :ay:
