Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

Вопросы

Суть такова что есть команда у меня /makeleader ID, а я хочу что бы было /makeleader Nick_Name
 

Спойлер

CMD:makeleader(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE) || GetString(GetName(playerid), NAME_DEVELOPER_TWO) || GetString(GetName(playerid), NAME_LEADERS_ONE) || GetString(GetName(playerid), NAME_LEADERS_TWO))
    {
        if(PI[playerid][pAdmin] < 7) return 1;
        else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        else if(sscanf(params, "u", params[0])) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /makeleader [id игрока]");
        else if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, PlayerIsNotOnline);
        else if(PlayerLogged[params[0]] == false) return SCM(playerid, COLOR_GREY, PlayerIsNotAuthorized);
        else if(IsPlayerInAnyVehicle(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не должен находиться в транспорте!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 7) && PI[playerid][pAdmin] != 8) return SCM(playerid, COLOR_GREY, "Администратора нельзя ставить на пост лидера!");
        else if(PI[params[0]][pLevel] < 10) return SCM(playerid, COLOR_GREY, "У игрока меньше чем 10 уровень!");
        else if(PI[params[0]][pTempLeader]) return SCM(playerid, COLOR_GREY, "Сначала снимите с себя права временного лидера!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            SendMes(playerid, COLOR_BLUE, "Вы сняли %s с должности лидера организации",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Администратор %s снял вас с должности лидера организации", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0) return SCM(playerid, COLOR_GREY, "Игрок лидер другой организации!");
            else if(PI[params[0]][pMember] > 0) return SCM(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
            new str[64], str2[712];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "№%i - %s\n", i, Fraction_Name);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2, "{ffcc00}Организации", str2, "Принять", "Отмена");
        }
    }
    return 1;
}

 

 

Заметка от Гость , создано

Последнее устное предупреждение.
Делайте название темы информативным, а не "Помогите", "Как решить" и пр.

Поделиться сообщением


Ссылка на сообщение

9 ответов на этот вопрос

  • 0

Ко всем командам (выдача лидерки в оффлайне): 
 

Спойлер

CMD:setoffleader(playerid, params[])
{
	//проверка на админа
	if(sscanf(params, "s[24]", params[0])) return SendClientMessage(playerid, -1, "Используйте: /setoffleader [Nick-Name]");
	new query[100];
	mysql_format(dbHandle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%s'", params[0]); 
	mysql_tquery(dbHandle, query, "SetOffLeader", "ds", playerid, name); 

	return true;
}

 

В конец мода: 

Спойлер

forward SetOffLeader(playerid, name[])
public SetOffLeader(playerid, name[])
{
	new rows, fields, leaderid, str[30], str2[150];
	cache_get_data(rows, fields);
	if(!rows) return SCM(playerid, -1, !"Игрока с таким ником не существует!");
	
	leaderid = cache_get_field_content_int(0, "leader");
	if(0 != leaderid)
	{
		new query[150];
		mysql_format(dbHandle, query, sizeof(query), "UPDATE `accounts` SET `leader` = '0', `member` = '0', 'rank' = '0' WHERE `name` = '%s'", name);
		mysql_tquery(dbHandle, query, "", "");
		format(query, sizeof(query), "Вы сняли игрока %s с лидерки %s", name, Fraction_Name[leaderid]);
		SCM(playerid, -1, query); 
		return true;
	}
	
	for(new i = 1; i < MAX_FRACTIONS; i++)
	{
		format(str, sizeof(str), "№%i - %s\n", i, Fraction_Name);
		strcat(str2, str);
	}
	
	SetPVarString(playerid, "name", name);
	ShowPlayerDialog(playerid, 5726, DIALOG_STYLE_LISG, "Выбор огранизации", str2, "Выбрать", "Отмена");
	
	return true;
}

 

Ко всем диалогам: 

Спойлер

		case 5726:
		{
		    if(!response) return true;
		    
		    new name[MAX_PLAYER_NAME], rank;
		    GetPVarString(playerid, "name", name, sizeof(name));
			switch(listitem+1)
			{
				case TEAM_ARMIYA: rank = 12;
				case TEAM_FBI: rank = 16;
				case TEAM_POLICIA,TEAM_DPS,TEAM_MERIA,TEAM_BOLNICA,TEAM_ITALYM,TEAM_RM,TEAM_OPG1,TEAM_OPG2,TEAM_SMI: rank = 10;
				case TEAM_AUTOSCHOOL: rank = 8;
			}
		    new query[150];
			mysql_format(dbHandle, query, sizeof(query), "UPDATE `accounts` SET `leader` = '%d', `member` = '%d', `rank` = '%d' WHERE `name` = '%s'", listitem+1, listitem+1, rank,name);
			mysql_tquery(dbHandle, query, "", "");
			format(query, sizeof(query), "Вы оффлайн назначили на лидерство %s игрока %s", Fraction_Name[listitem+1], name);
			SCM(playerid, -1, query);
			return true;
		}

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs 

Спойлер

        


case D_FRACMENU:
        {
            if(!response) return DeletePVar(playerid, "actplayerid");
            SetPVarInt(playerid, "actfraction", listitem+1);
            new fractionid = GetPVarInt(playerid, "actfraction");
            new mes[128];
            for(new i; i < 8; i++)
            {
                new skinid = Fraction_Skin[fractionid];
                if(!skinid) break;
                if(!i) format(mes, sizeof(mes), "Ñêèí %d [%d]", i+1, skinid);
                else format(mes, sizeof(mes), "%s\nÑêèí %d [%d]", mes, i+1, skinid);
            }
            ShowPlayerDialog(playerid, D_LEADERSKIN, 2, "{ffa500}Âûáîð ñêèíà", mes, "Ïðèíÿòü", "Îòìåíà");
        }

        case D_LEADERSKIN:
        {
            if(!response)
            {
                DeletePVar(playerid, "actplayerid");
                DeletePVar(playerid, "actfraction");
                return 1;
            }
            new actplayerid = GetPVarInt(playerid, "actplayerid");
            new fractionid = GetPVarInt(playerid, "actfraction");
            new skinid = Fraction_Skin[fractionid][listitem];
            if(!IsPlayerConnected(actplayerid)) return SCM(playerid, COLOR_GREY, PlayerIsNotOnline);
            else if(!PlayerLogged[actplayerid]) return SCM(playerid, COLOR_GREY, PlayerIsNotAuthorized);
            switch(fractionid)
            {
                case TEAM_ARMIYA: PI[actplayerid][pRank] = 12;
                case TEAM_FBI: PI[actplayerid][pRank] = 16;
                case TEAM_POLICIA,TEAM_DPS,TEAM_MERIA,TEAM_BOLNICA,TEAM_ITALYM,TEAM_RM,TEAM_OPG1,TEAM_OPG2,TEAM_SMI: PI[actplayerid][pRank] = 10;
                case TEAM_AUTOSCHOOL: PI[actplayerid][pRank] = 8;
            }
            PI[actplayerid][pLeader] = PI[actplayerid][pMember] = fractionid;
            PI[actplayerid][pJob] = 0;
            PI[actplayerid][pMemberSkin] = skinid;
            SetPlayerSkin(actplayerid, PI[actplayerid][pMemberSkin]);
            new string[128];
            format(string, sizeof(string), "Âû íàçíà÷èëè %s ëèäåðîì îðãàíèçàöèè: %s", GetName(actplayerid), Fraction_Name[fractionid]);
            SCM(playerid, COLOR_LIME, string);
            format(string, sizeof(string), "Àäìèíèñòðàòîð %s íàçíà÷èë Âàñ ëèäåðîì îðãàíèçàöèè: %s", GetName(playerid), Fraction_Name[fractionid]);
            SCM(actplayerid, COLOR_BLUE, string);
            format(string, sizeof(string), "[A] %s íàçíà÷èë %s ëèäåðîì îðãàíèçàöèè \"%s\"", GetName(playerid), GetName(actplayerid), Fraction_Name[fractionid]);
            SendAdminMessage(COLOR_GREY, string);
            SendLog("SetLeader", string);
            ResetPlayerWeaponsAC(actplayerid);
            SetPlayerColorEx(actplayerid, TeamColors[GetTeamID(actplayerid)]);
            DeletePVar(playerid, "actplayerid");
            DeletePVar(playerid, "actfraction");
        }

 

 

Заметка от Гость , создано

Код необходимо брать под спойлер и под тег "Код".
Как это сделать?

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs 

Спойлер

J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2874) : error 017: undefined symbol "DIALOG_STYLE_LISG"
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(22081) : error 017: undefined symbol "name"
Pawn compiler 3.10.20150531     Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.

Спойлер

2874:    ShowPlayerDialog(playerid, 5726, DIALOG_STYLE_LISG, "Âûáîð îãðàíèçàöèè", str2, "Âûáðàòü", "Îòìåíà");
22081:     mysql_tquery(dbHandle, query, "SetOffLeader", "ds", playerid, name);

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Команду заменить: 

CMD:setoffleader(playerid, params[])
{
	//проверка на админа
	if(sscanf(params, "s[24]", params[0])) return SendClientMessage(playerid, -1, "Используйте: /setoffleader [Nick-Name]");
	new query[100];
	mysql_format(dbHandle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `name` = '%s'", params[0]); 
	mysql_tquery(dbHandle, query, "SetOffLeader", "ds", playerid, params[0]); 

	return true;
}

Вместо DIALOG_STYLE_LISG

напишите DIALOG_STYLE_LIST

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs

Спойлер

J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(22081) : error 017: undefined symbol "name"
Pawn compiler 3.10.20150531              Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
 

	mysql_tquery(dbHandle, query, "SetOffLeader", "ds", playerid, name);

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Daniil Roslyakov ошибка исчезла по другому поводу. Значит, вы не то скопировали. Там вместо name должно быть params[0]. Я думаю, что заменить команду не так уж и сложно. Удалить старую и вставить новую. А не просто добавить еще одну. 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От 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

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.