PDA

Просмотр полной версии : [Вопрос] Как пропустить OnPlayerRequestClass



qwezert
20.06.2016, 14:42
Доброго времени суток! Столкнулся с такой проблемой: У меня при коннекте игрока на сервер идет проверка зареган он или нет и выдается диалоговое окно с авторизацией или регистрацией. Так вот при авторизации когда диалог закрывается у меня остается висеть камера и стрелочки с кнопкой Spawn. Если сам диалог вызывать уже в OnPlayerRequestClass - все хорошо но при этом спавн игрока вызывается дважды, тоесть у меня после проверки в диалоге на верность пароля стоит SpawnPlayer и если сам диалог вызван в OnPlayerRequest - спавнится игрок дважды, если убрать в диалоге SpawnPlayer - игрок не спавнится вообще и остается экран с стрелочками и кнопкой Spawn. Как этот паблик работает и почему он не пропускается я не могу понять, я уже там и return 1 и return 0 ставил и пытался вызывать пустые функции с ретурнами и пустые диалоги и SpawnPlayer в нем же вызывал.

UPD!
Разобрался - можно вызвать диалоги регистрации и авторизации в OnPlayerRequest - но обязательно в диалоге после проверки ставить return 1; и тогда - вас автоматически заспавнит OnPlayerRequest.
Тему можно закрыть

Роуди.
20.06.2016, 14:53
Ну, или так:

public OnPlayerRequestClass(playerid, classid)
{
SetTimerEx("_Skip_OnPlayerRequestClass", 250, false, "i", playerid);

#if defined Skip_OnPlayerRequestClass
Skip_OnPlayerRequestClass(playerid, classid);
#endif
return true;
}

#if defined _ALS_OnPlayerRequestClass
#undef OnPlayerRequestClass
#else
#define _ALS_OnPlayerRequestClass
#endif

#define OnPlayerRequestClass Skip_OnPlayerRequestClass
#if defined Skip_OnPlayerRequestClass
forward Skip_OnPlayerRequestClass(playerid, classid);
#endif
forward _Skip_OnPlayerRequestClass(playerid, classid);
public _Skip_OnPlayerRequestClass(playerid, classid)
{
SpawnPlayer(playerid);
SetPlayerPos(playerid, ...,....,...);
}