Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
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 пользователей онлайн

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

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

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };