15 posts in this topic

дать админку. 

Автор команды: TheSeLToN.

Спойлер

#define COLOR_GREEN 0x9EC73DAA

 

Спойлер

CMD:makeadmin(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 5) return true;
        if(sscanf(params, "ui", params[0], params[1])) return
                SCM(playerid, -1, "{FFFF00}[!]{DEDEDE} Используйте: /makeadmin [playerid] [уровень]");
        if(!IsPlayerConnected(params[0])) return
                SCM(playerid, -1, "{FF6347}[X]{DEDEDE} Игрока нет в сети.");
        if(params[1] < 1 || params[1] > 5) return
                SCM(playerid, -1, "{FF6347}[X]{DEDEDE} Уровень должен быть не менее 1 и не более 5!");
        PlayerInfo[params[0]][pAdmin] = params[1];
        static const fmt_str[] = "Вы были назначены администратором %d уровня. Назначил: %s.";
        new string[sizeof(fmt_str)-2+2-2+MAX_PLAYER_NAME];
        format(string, sizeof(string), fmt_str, params[1], PlayerInfo[playerid][pName]);
        SCM(params[0], COLOR_GREEN, string);
        static const fmt_str_2[] = "Вы назначили игрока %s, администратором %d уровня.";
        new string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME-2+2];
        format(string_2, sizeof(string_2), fmt_str_2, PlayerInfo[params[0]][pName], params[1]);
        SCM(playerid, COLOR_GREEN, string_2);
        return true;
}

 

 

Share this post


Link to post
Share on other sites
46 минут назад, Tera HammerYT сказал:

Кто даст чтобы не ID надо было а НИК?

 

Для оффлайн выдачи ? 

Share this post


Link to post
Share on other sites
if(PlayerInfo[params[0]][pAdmin] >= 5)
		return SCM(playerid, -1, "{FF6347}[X]{DEDEDE} Нельзя повышать/понижать Гл.Админа!");

Было бы неплохо добавить такую проверку. А также разнообразить выдачу, типа если админ уже администратор и выдаешь ему ранг выше ,то выводить сообщение "вас повысили в ранге" и шото такое.

Share this post


Link to post
Share on other sites

@Tera HammerYT тут нужно уже будет действия с базой данных производить. Без указания версии mySQL и структуры базы данных не обойтись. Проще будет, если вы назовете основу вашего мода. 

Share this post


Link to post
Share on other sites

C:\Users\qq226\OneDrive\Ðàáî÷èé ñòîë\server\gamemodes\bare.pwn(788) : warning 203: symbol is never used: "makeadmin"

Share this post


Link to post
Share on other sites

@Gamer Boom возможно есть такая же команда, попробуйте изменить

 

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

Вы уже не модератор, поэтому не выполняйте его функции.

Share this post


Link to post
Share on other sites

C:\Users\Ðîñòèê\Desktop\Ñåðâåð Arzamas RP\gamemodes\JRP.pwn(24870) : error 017: undefined symbol "PlayerInfo"
C:\Users\Ðîñòèê\Desktop\Ñåðâåð Arzamas RP\gamemodes\JRP.pwn(24870) : warning 215: expression has no effect
C:\Users\Ðîñòèê\Desktop\Ñåðâåð Arzamas RP\gamemodes\JRP.pwn(24870) : error 001: expected token: ";", but found "]"
C:\Users\Ðîñòèê\Desktop\Ñåðâåð Arzamas RP\gamemodes\JRP.pwn(24870) : error 029: invalid expression, assumed zero
C:\Users\Ðîñòèê\Desktop\Ñåðâåð Arzamas RP\gamemodes\JRP.pwn(24870) : fatal error 107: too many error messages on one line

 

 

Share this post


Link to post
Share on other sites

@Карлос Сименсон PlayerInfo - меняй на свое, например PI, pData, Player.

Share this post


Link to post
Share on other sites

Куда вводить эти команды???Я просто пока что не особо разбираюсь)

 

@Shakoladka Не помогло

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

Объединил сообщения

Share this post


Link to post
Share on other sites
Спойлер

CMD:makeadmin(playerid, params[])
{
	if (PlayerInfo[playerid][pAdmin] < 5)
		return SendClientMessage(playerid, 0xFFFF00FF, !"Команда доступна с 5 уровня администратора");
	extract params -> new id, lvl; else
		return SendClientMessage(playerid, 0xFFFF00FF, !"[!]{DEDEDE} Используйте: /makeadmin [playerid] [уровень]");
	if (!IsPlayerConnected(id))
		return SendClientMessage(playerid, 0xFF6347FF, !"[X]{DEDEDE} Игрока нет в сети.");
	if (!(1 <= lvl <= 5))
		return SendClientMessage(playerid, 0xFF6347FF, !"[X]{DEDEDE} Уровень должен быть не менее 1 и не более 5!");

	PlayerInfo[id][pAdmin] = lvl;

	static const 
		fmt_str[] = "Вы были назначены администратором %d уровня. Назначил: %s.",
		fmt_str_2[] = "Вы назначили игрока %s, администратором %d уровня.";
	static
		string[sizeof fmt_str + MAX_PLAYER_NAME + 2 - 2*2];

	format(string, sizeof string, fmt_str, lvl, PlayerInfo[playerid][pName]);
	SendClientMessage(id, 0x9EC73DAA, string);
	format(string, sizeof string, fmt_str_2, PlayerInfo[id][pName], lvl);
	SendClientMessage(playerid, 0x9EC73DAA, string);

	return 1;
}

 

 

Edited by m1n1vv

Share this post


Link to post
Share on other sites
В 04.01.2018 в 18:56, Гость сказал:

Кто даст чтобы не ID надо было а НИК?

 

Спойлер

CMD:setadmin(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE))
    {
        if(AdminLogged[playerid] == false) return SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        new playername[24], admin_level;
        if(sscanf(params, "s[24]i", playername, admin_level)) return SendClientMessage(playerid, COLOR_WHITE, "{FD3D28}[Ошибка] {FCFDFD}Введите: /setadmin [ник игрока] [уровень админа]");
        new string[128];
        format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", playername);
        mysql_tquery(dbHandle, string, "SetAdmin", "isi", playerid, playername, admin_level);
    }
    return true;
}

 

 

Edited by DEST

Share this post


Link to post
Share on other sites

Как занести это в базу данных?

CMD:makeadmin(playerid, params[])
{
    	if(player_info[playerid][ADMIN] < 5) return true;
        if(sscanf(params, "ui", params[0], params[1])) return
                SCM(playerid, -1, "{FFFF00}[!]{DEDEDE} ???????????: /makeadmin [playerid] [???????]");
        if(!IsPlayerConnected(params[0])) return
                SCM(playerid, -1, "{FF6347}[X]{DEDEDE} ?????? ??? ? ????.");
        if(params[1] < 1 || params[1] > 5) return
                SCM(playerid, -1, "{FF6347}[X]{DEDEDE} ??????? ?????? ???? ?? ????? 1 ? ?? ????? 5!");
        player_info[params[0]][ADMIN] = params[1];
        static const fmt_str[] = "?? ???? ????????? ??????????????? %d ??????. ????????: %s.";
        new string[sizeof(fmt_str)-2+2-2+MAX_PLAYER_NAME];
        format(string, sizeof(string), fmt_str, params[1], player_info[playerid][NAME]);
        SCM(params[0], COLOR_WHITE, string);
        static const fmt_str_2[] = "?? ????????? ?????? %s, ??????????????? %d ??????.";
        new string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME-2+2];
        format(string_2, sizeof(string_2), fmt_str_2, player_info[params[0]][NAME], params[1]);
        SCM(playerid, COLOR_WHITE, string_2);
        return true;
}

вот код такой как у меня нет ошибок 

 

enum player
{
	ID,
	NAME[MAX_PLAYER_NAME],
	PASSWORD[65],
	SALT[11],
	EMAIL[65],
	REF,
	REFMONEY,
	SEX,
	RACE,
	AGE,
	SKIN,
	REGDATA[13],
	REGIP[16],
	ADMIN,
	MONEY,
	LVL,
	EXP,
	MINS,
	PIN[2],
	LASTIP[16],
	tempPINCHECK[4],
	tempENTEREDPIN[4],
	GOOGLEAUTH[17],
	GOOGLEAUTHSETTING,
	tempQUESTION[98],
	LOWWORKSKILL[2],
}

Так выглядит мой enum

 

Мне надо в базе изменить ADMIN 0-8 (у меня 8 лвл адм) так чтобы сохранилось. помогите пожалуйста

База хот пхп май админ через open server

Сделал всё по видео урокам (Мод с нуля SAMP #1 | Первоначальная настройка и MySQL [PAWN/PAWNO] - Мод с нуля SAMP #41 | Оптимизация, фикс багов, доработки [PAWN/PAWNO]

Если вы мне поможете буду благодарен

 

Share this post


Link to post
Share on other sites

@#User6020, ахахах ты по уроку леона делал?

Share this post


Link to post
Share on other sites
В 03.08.2017 в 23:10, RASTAMAN сказал:

CMD:makeadmin(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 5) return true; if(sscanf(params, "ui", params[0], params[1])) return SCM(playerid, -1, "{FFFF00}[!]{DEDEDE} Используйте: /makeadmin [playerid] [уровень]"); if(!IsPlayerConnected(params[0])) return SCM(playerid, -1, "{FF6347}[X]{DEDEDE} Игрока нет в сети."); if(params[1] < 1 || params[1] > 5) return SCM(playerid, -1, "{FF6347}[X]{DEDEDE} Уровень должен быть не менее 1 и не более 5!"); PlayerInfo[params[0]][pAdmin] = params[1]; static const fmt_str[] = "Вы были назначены администратором %d уровня. Назначил: %s."; new string[sizeof(fmt_str)-2+2-2+MAX_PLAYER_NAME]; format(string, sizeof(string), fmt_str, params[1], PlayerInfo[playerid][pName]); SCM(params[0], COLOR_GREEN, string); static const fmt_str_2[] = "Вы назначили игрока %s, администратором %d уровня."; new string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME-2+2]; format(string_2, sizeof(string_2), fmt_str_2, PlayerInfo[params[0]][pName], params[1]); SCM(playerid, COLOR_GREEN, string_2);

 

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Guest Андрей
      By Guest Андрей
      Сделал логи для сервера, но в БД не идет, пишет ошибку #1064 (MySQL), почитал на других форумах, там написано что из за размера, но с размером все хорошо.
       
       
       
       
       
      P/s: В таблицу тоже ничего не записывается