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

    • MetaLife Online
      By MetaLife Online
      Привествую! писал код. проверил работу, в БД отправилось информация криво 
      потом добавил к P_NICK[MAX_PLAYER_NAME] для того чтобы все было окей. Но после этого данные вообще не отпровляються и не показываеться %s. пару раз удалял и не помогло не чего 
      enum PLAYER_INFO {     P_ID,     P_NICK[MAX_PLAYER_NAME],     P_PASS,     P_GENDER,     P_SKIN,     P_LVL, };