Question

Добрый вечер! Подсмотрел на одном из SAMP серверов такую штуку, что сначала происходит проверка, есть ли в базе аккаунт c именем, а уже через, буквально, 2-3 секунды игрок коннектится и вызывается, как я думаю, событие с выбором класса игрока, то бишь регистрация/авторизация аккаунта. Вроде в таком порядке и происходит подключение игрока, если нет и есть какие-нибудь советы, обязательно учту) А так... Что я написал в своём моде, происходит всё моментально

cr-mp-000.jpg

Share this post


Link to post

5 answers to this question

  • 0

@Maks_Fabions,

 

Спойлер

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, -1"OnPlayerConnect: начало вызова");

    SetTimerEx("OnPlayerRequestClass"1000false"dd", playerid, -1);
    
    SendClientMessage(playerid, -1"OnPlayerConnect: конец вызова");
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SendClientMessage(playerid, -1"OnPlayerRequestClass: начало вызова");
    
    if (classid == -1) {
        SendClientMessage(playerid, -1"OnPlayerRequestClass: вызов по таймеру");
    }
    
    SendClientMessage(playerid, -1"OnPlayerRequestClass: конец вызова");
    return 1;
}

 

 

Спойлер

изображение_2022-08-11_123127362.png

 

Так что OnPlayerRequestClass можно искусственно вызвать по таймеру, но зачем? Пока не будет выполнен весь код, написанный в OnPlayerConnect, вызов OnPlayerRequestClass не произойдет (ввиду однопоточности SAMP/CRMP). Поэтому реализация поиска аккаунта в базе данных в OnPlayerConnect должна заставить сервер "виснуть", пока не будет ответ от сервера с базой данных.

Share this post


Link to post
  • 0
SetTimerEx (funcname[], interval, repeating, const format[], {Float,_})

 

Share this post


Link to post
  • 0

@Раксон Фаркрай , хорошая погоня за репутацией, а если проверить??? Делал я уже таймер на OnPlayerRequestClass в паблик OnPlayerConnect. Не работает!

Share this post


Link to post
  • 0

Вообще, я не понимаю, а смысл от этой проверки заранее?) 

 

Этот текст можно сделать и при коннекте игрока. Вызывать паблик проверки на аккаунт и при разных условиях, найден ли игрок, выводить разный текст

Share this post


Link to post
  • 0

@Maks_Fabions Я сам так делал не знаю как у вас это не получается

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • vernettoalex
      By vernettoalex
      Приветствую, у меня возникла проблема, мне для работы с диалогом который будет выводить информацию о тексте написанным в окне в базу данных нужен inputext, когда я его вписал рядом с ShowPlayerDialog, у меня не появляется диалог и не идёт процесс, но если я его уберу, то функция станет бесполезной. Помогите пожалуйста
       
      p.s - if(sscanf(inputtext, "s[90]", surname)) return SPD