• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Нахождение в массиве чего-то

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

Steve_Stage

Начинающий
Пользователь
Регистрация
12 Июл 2019
Сообщения
35
Лучшие ответы
0
Репутация
2
PHP:
enum pInfo {
	pPass[50+1], pMail[60+1], pMoney, pLevel, pAge, pNational, pSkin, pSex, pID, pReferal[MAX_PLAYER_NAME+1], pDateReg[10+1], pExp, pDeath, pNockout, pItem1,
	pItem2, pItem3, pItemAmmo1, pItemAmmo2, pItemAmmo3, pItemSelect, pAdmin, pBan, pBanTime, pBanReason, pBanGiver
}
new
	player[MAX_PLAYERS][pInfo];
PHP:
public OnPlayerConnect(playerid)
{
 	GetPlayerName(playerid, player_name[playerid], MAX_PLAYER_NAME);
	static
	    fmt_str[] = "SELECT * FROM `accounts` WHERE `Nickname` = '%s' LIMIT 1";
	new
		string[sizeof(fmt_str)+MAX_PLAYER_NAME-1];
		
	mysql_format(connect_mysql, string, sizeof(string), fmt_str, GetName(playerid));
	mysql_function_query(connect_mysql, string, true, "@_PlayerCheck", "d", playerid);
	Clear(playerid);
	return true;
}
PHP:
CMD:ban(playerid, params[]) // [0] - id, [1] time, [2] - reason
{
	if(player[playerid][pAdmin] == 0)
	{
	    SCM(playerid, COLOR_RED, !"Вы не Администратор!");
	    return false;
	}
	if(player[playerid][pAdmin] == 1 && player[playerid][pAdmin] == 2)
	{
	    SCM(playerid, COLOR_RED, !"Ваш уровень админ-доступа слишком мал для бана игроков!");
	    return false;
	}
	if(player[playerid][pAdmin] >= 3)
	{
	    new len_reason = strlen(params[2]),
	        len_time = strlen(params[1]);
	    if(len_reason < 1 || len_reason > 50)
		{
	 		SendClientMessage(playerid, COLOR_YELLOW, !"{00C0FF}Длина причины бана не должна быть {F81414}меньше 1 и больше 50 символов!");
	 		return true;
		}
	    if(len_time < 1 || len_time > 30)
		{
	 		SendClientMessage(playerid, COLOR_YELLOW, !"{00C0FF}Максимальный срок бана - 1 месяц (30 дней)!");
	 		return true;
	 	}
	    if(sscanf(params,"dds", params[0], params[1], params[2]))
		{
			SendClientMessage(playerid, COLOR_YELLOW, !"Вы ничего не ввели!");
			return false;
		}
	    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_YELLOW, !"Игрок не в сети!");
	    player[params[0]][pBan] = 1;
	    player[params[0]][pBanTime] = params[1];
	    player[params[0]][pBanReason] = params[2];
	    player[params[0]][pBanGiver] = GetName(playerid); // Проблемная строчка
	    SavePlayer(params[0], "Ban", player[playerid][pBan], "d");
	    SavePlayer(params[0], "BanTime", player[playerid][pBanTime], "d");
	    SavePlayer(params[0], "BanReason", player[playerid][pBanReason], "s");
	    SavePlayer(params[0], "BanGiver", player[playerid][pBanGiver], "s");
    }
    return true;
}
И выводит ошибку о том, что в проблемной строке что-то должно находиться в массиве. Объясните, почему я не могу использовать данную конструкцию прямо так?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу