Форум Pawn.Wiki - Воплоти мечту в реальность!: Сломанная проверка на уровень админки - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Сломанная проверка на уровень админки Проверка на уровень админки игрока работает некаректно

#1
Пользователь офлайн   Maksim_String(5000) 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Доброго вечера уважаемые участники Pawn Wiki. У меня к вам есть небольшой вопрос

Дело в том то что в моем моде проверка на администратора работает не совсем корректно,
а точнее проверка на уровень админки.

Код:
CMD:createmp(playerid, params[])
{
    if(!IsPlayerConnected(playerid)) return 1;
    if(player_info[playerid][ADMIN] >= 4) return 1;
    ... ну и так далее по команде


Вот именно здесь найдена ошибка, то-есть когда у меня стоит уровень админки 4, я все равно не могу воспользоваться этой командой
хотя >= означает больше или равно.
Кто может подсказать в чем причина не работоспособности жду вас в комментариях
P:S: в самой команде нету ошибок, только в проверке
0

#2
Пользователь офлайн   R.SHAD0W 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMaksim_String(5000) (03 июля 2025 - 18:49) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Ты логику перепутал. У тебя проверка работает если уровень равен или больше 4, то командой нельзя воспользоваться. Правильно будет вот так
if(player_info[playerid][ADMIN] < 4) return 1;

0

#3
Пользователь офлайн   Hunter-Killer 

  • Проходимец
  • Вставить ник
  • Раскрыть информацию
Ну так тебе надо "< 4" что означает - команда будет доступна с 4 и выше уровня.

Сообщение отредактировал Hunter-Killer: 03 июля 2025 - 19:13

0

#4
Пользователь офлайн   Maksim_String(5000) 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияR.SHAD0W (03 июля 2025 - 19:12) писал:

Ты логику перепутал. У тебя проверка работает если уровень равен или больше 4, то командой нельзя воспользоваться. Правильно будет вот так
if(player_info[playerid][ADMIN] < 4) return 1;


Извините, всегда путался в этой теме. Благодарю что разъяснили
0

#5
Пользователь офлайн   NeCezar 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMaksim_String(5000) (03 июля 2025 - 19:23) писал:

Извините, всегда путался в этой теме. Благодарю что разъяснили

если путаешься в знаках то просто используй return 0; Это прервёт выполнение команды
-1

#6
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNeCezar (03 июля 2025 - 23:07) писал:

если путаешься в знаках то просто используй return 0; Это прервёт выполнение команды


Так и "return 1;" прерывает :)

Если же подразумевается прекращение поиска команды в других скриптах, то наоборот только возврат единицы останавливает поиск команды в других скриптах (речь как о командах, созданных через макрос "CMD:", так и о командах, прописанных в OnPlayerCommandText). Все остальные (любые) значения (в том числе 0) позволяют серверу продолжать искать команду в других скриптах.
Ну и, в любом случае, команда сначала ищется в FS и только потом в моде.

Сообщение отредактировал DeimoS: 05 июля 2025 - 00:46

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика