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

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

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

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

Мануал Репутация лидерства

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

#foreach

Ученик
Доброго дня, пользователи Pawno-Info.ru
Решил написать скромненькую систему для лидеров, мб кому-нибудь да пригодиться.
Командный процессор DCMD.
Скриншоты:
Преступим же.
Ищем pInfo и добавляем в самый конец строчку:
PHP:
pRepleader
Далее ищем public OnPlayerConnect и добавляем в конец:
PHP:
PlayerInfo[playerid][pRepleader] = 0;
Далее ищем stock/public OnPlayerRegister(playerid, Password[]) и вставляем туда:
PHP:
ini_setInteger(File,"Repleader",PlayerInfo[playerid][pRepleader]);
Далее ищем public OnPlayerLogin(playerid, Password[]) и туда
PHP:
ini_setInteger(File,"Repleader",PlayerInfo[playerid][pRepleader]);
Далее ищем свой паблик сохранения и вставляем туда:
PHP:
ini_setInteger(File,"Repleader",PlayerInfo[playerid][pRepleader]);
Сама команда

PHP:
CMD:setrepleader(playerid, params[])
{
	new inputtext[10];
	if(PlayerInfo[playerid][pAdmin] < 6) return true;
	if(sscanf(params, "dis[10]", params[0],params[1], inputtext)) return SendClientMessage(playerid, COLOR_LIGHTGREEN, "Введите: /setrepleader [ид] [кол-во] [действие] (up / down)");
	if(params[1] < 0 || params[1] > 5) return SendClientMessage(playerid, COLOR_GRAD1, "Количество повышаемых/понижаемых очков должно быть не меньше 1 и не больше 5.");
	if(strcmp(inputtext, "up", true) == 0)
	{
	    SendMes(params[0], COLOR_LIGHTRED, "Администратор %s повысил ваш навык лидерства на %i единиц(у).", Name(playerid),params[1]);
	    format(DCMDstr, 256, "[A]Администратор %s повысил навык лидерства игроку %s на %i единиц.", Name(playerid), Name(params[0]),params[1]);
	    ABroadCast(COLOR_LIGHTRED,DCMDstr,1);
		SendClientMessage(params[0], COLOR_WHITE, "Для просмотра вашей репутации лидерства введите /myrepleader");
	    PlayerInfo[params[0]][pRepleader] += params[1];
	}
	if(strcmp(inputtext, "down", true) == 0)
	{
	    SendMes(params[0], COLOR_LIGHTRED, "Администратор %s понизил ваш навык лидерства на %i единиц(у).", Name(playerid),params[1]);
	    format(DCMDstr, 256, "[A]Администратор %s понизил навык лидерства игроку %s на %i единиц.", Name(playerid), Name(params[0]),params[1]);
	    ABroadCast(COLOR_LIGHTRED,DCMDstr,1);
	    PlayerInfo[params[0]][pRepleader] -= params[1];
	}
	return true;
}
В команду /makeleader добавим следующие:
PHP:
if(PlayerInfo[params[0]][pRepleader] < 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "[WARNING]Игрок имеет ОТРИЦАТЕЛЬНУЮ репутация лидерства!");
И сама команда для просмотра статистики. (Изначально я хотел совместить её с /myskill, но позже решил сделать отдельную команду:)
PHP:
CMD:myrepleader(playerid, params[])
{
	new text[32];
	if(PlayerInfo[playerid][pRepleader] < 0) text = "{ff0000}Отрицательная{ffffff}";
	else if(PlayerInfo[playerid][pRepleader] >= 0) text = "{00a86b}Положительная{ffffff}";
	format(DCMDstr, 256,"{ffffff}Ваш Ник: {00a86b}%s\n{ffffff}Репутация вашего лидерства: %s\nКоличество очков: {00a86b}%d\n\n{ff0000}Внимание!С отрицательной репутацией лидерства-\nвы больше никогда не сможете стать лидером организации!.",Name(playerid), text, PlayerInfo[playerid][pRepleader]);
	ShowPlayerDialog(playerid,8888,DIALOG_STYLE_MSGBOX,"{FFFFFF}Статистика лидерства", DCMDstr, "WAIT", "");
}
Команда для просмотра администратором статистики игрока:
PHP:
CMD:getrepleader(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 6) return true;
    if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_LIGHTGREEN, "Введите: /getrepleader [ид лидера]");
    new text[32];
    if(PlayerInfo[params[0]][pRepleader] < 0) text = "{ff0000}Отрицательная{ffffff}";
	else if(PlayerInfo[params[0]][pRepleader] >= 0) text = "{00a86b}Положительная{ffffff}";
	format(DCMDstr, 256, "{ffffff}Ник лидера: {00a86b}%s\n{ffffff}Репутация лидерства: %s\nКоличество полученных очков: {00a86b}%d\n\n{ffffff}В данный момент контролирует фракцию: {00a86b}%s",Name(params[0]), text, PlayerInfo[params[0]][pRepleader], GetFrakName(PlayerInfo[params[0]][pMember]));
	ShowPlayerDialog(playerid, 8888, DIALOG_STYLE_MSGBOX, "{FFFFFF}Статистика лидера", DCMDstr, "WAIT", "");
	return true;
}
P.S У для тех у кого нету данного макроса:
Ищем pInfo и туда добавляем
PHP:
pName[MAX_PLAYER_NAME]
В public OnPlayerConnect(playerid) добавляем строчку:
PHP:
GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
И где-нибудь в конце мода
PHP:
stock Name(i) return true;
#define Name(%1) PlayerInfo[%1][pName]
И вот это(Если нету):
PHP:
stock GetFrakName(fnumbwer)
{
	new string[32];
	switch(fnumbwer)
	{
	    case 0: format(string,sizeof(string),"NONE");
	    case 1: format(string,sizeof(string),"The Groove Street Gang");
	    case 2: format(string,sizeof(string),"Varios Aztecas Gang");
	    case 3: format(string,sizeof(string),"The Rifa Gang");
	    case 4: format(string,sizeof(string),"Los-Santos Vagos Gang");
	    case 5: format(string,sizeof(string),"The Ballas Gang");
	    case 6: format(string,sizeof(string),"Правительство");
	}
	return string;
}
Спасибо за внимание, думаю вам понравится.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу