Sign in to follow this  
Followers 0
DEST

Убираем стрелочки при регистрации / авторизации: 2 способа

4 posts in this topic

ПЕРВЫЙ СПОСОБ ОТ JoKeR2020


Я на многих серверах видел, как при регистрации/авторизации если нажать на стрелочки или кнопку "Spawn" (или же "Войти") кикает.

 

Как многие кэллбеки, OnPlayerRequestClass имеет возвращаемые значения, такие как 0 и 1. Если вернуть 1, то произойдёт смена класса (AddPlayerClass), если же вернуть 0, то нажатие стрелочек будет просто проигнорировано.

 

Точно так же и с OnPlayerRequestSpawn, если мы вернём 0, то нажатие кнопки "Spawn" ("Войти") будет проигнорировано.

 

Получается, можно сделать так:

public OnPlayerRequestClass(playerid, classid) return 0;
public OnPlayerRequestSpawn(playerid) return 0;

ВАЖНОЕ ПРИМЕЧАНИЕ! Если у вас у моде используются NPC-боты, тогда используйте так:
 

public OnPlayerRequestClass(playerid, classid)
{
    if(IsPlayerNPC(playerid))
        return 1;
    return 0;
}
public OnPlayerRequestSpawn(playerid)
{
    if(IsPlayerNPC(playerid))
        return 1;
    return 0;
}

 


ВТОРОЙ СПОСОБ ОТ AMFY


Некоторые не знаю как убрать стрелочки << >> при регистрации/авторизации. Для тех кто в танке, смотрите скриншот.

Спойлер

e34618487b87.jpg

Перед появлением диалога регистрации или авторизации вставляем:

TogglePlayerSpectating(playerid, true);//Погружаем игрока в режим спектатора

После успешной регистрации или авторизации вставляем:

TogglePlayerSpectating(playerid, false);//Отключаем игроку режим спектатора

1. После выключения режима спектатора игрок автоматически заспавниться. Имейте это ввиду.
2. При погружении игрока в режим спектатора камера сменится на одно из стандартных положений (сквер влюбленных, поле, жд и т.д.). Если вы делаете другой вид, после погружения игрока в режим спектатора его необходимо заново сменить.


Share this post


Link to post
Share on other sites

Юзая способ 1, не вызывается OnPlayerSpawn. Проверено у меня, по крайней мере.

Share this post


Link to post
Share on other sites

@SCRIPTMAN, SpawnPlayer не забыл? :D

Share this post


Link to post
Share on other sites

@odosenok не)) Я из за "return false" 2 дня искал проблему, решил попробовать поменять на "true" и всё норм стало. До этого, после выбора скин, нажимаю кнопку "Выбор", всё происходит, стрелки исчезают, но игрок не спавнится, остается в интерьере. Благодаря консоли понял, что не вызывается OnPlayerSpawn. Теперь не знаю, как выбор класса убрать.. Не успеваю спектатор отключить перед спавном.

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

    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры