Вопросы

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

cr-mp-000.jpg

Поделиться сообщением


Ссылка на сообщение

5 ответов на этот вопрос

  • 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 должна заставить сервер "виснуть", пока не будет ответ от сервера с базой данных.

Поделиться сообщением


Ссылка на сообщение
  • 0
SetTimerEx (funcname[], interval, repeating, const format[], {Float,_})

 

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

 

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Redmondd
      От Redmondd
      При запуске сервера в консоли пишет: Started server on port: 7777, with maxplayers: 500 lanmode is OFF.
      И когда захожу на сервер пишет server didnt respond
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team filterscripts = ""  (string) Server Plugins --------------  Loading plugin: mysql   > MySQL plugin R7-2 successfully loaded.   Loaded.  Loading plugin: sscanf  ===============================       sscanf plugin loaded.          Version:  2.8.1    (c) 2012 Alex "Y_Less" Cole  ===============================   Loaded.  Loading plugin: dc_cmd   Daniel's CMD plugin v2.8     (c) 2014 Daniel_Cortez         www.pro-pawn.ru   Loaded.  Loading plugin: streamer *** Streamer Plugin v2.7.9 by Incognito loaded ***   Loaded.  Loaded 4 plugins. Started server on port: 7777, with maxplayers: 500 lanmode is OFF. Filterscripts ---------------   Loaded 0 filterscripts. Подключение к базе данных MYSQL успешно ---------------------------------- --------Redmond RP 01-------- ---------------------------------- Number of vehicle models: 5 Склады загружены успешно Дома (15 шт) загружены успешно