Добрый ночи всем!
Прошу не пинать, я первый день на вашем форуме (поиск пробовал, но возможно не правильно что-то, но не нашел ответа)
Как можно убрать кнопки внизу экрана "<< >> ВОЙТИ "
Спасибо заранее...!!!
Добрый ночи всем!
Прошу не пинать, я первый день на вашем форуме (поиск пробовал, но возможно не правильно что-то, но не нашел ответа)
Как можно убрать кнопки внизу экрана "<< >> ВОЙТИ "
Спасибо заранее...!!!
Gogasik (12.02.2016)
Вот, тут учтены некоторые особенности. Координаты спавна лучше задавать в SetSpawnInfo, а не использовать SetPlayerPos в OnPlayerSpawn. Тогда не будет никаких проблем со спавном.
Не забудь IsPlayerLogin заменить на свою функцию.
PHP код:
stock SpawnPlayerEx(playerid, skin, Float:x, Float:y, Float:z, Float:rotation)
{
SetSpawnInfo(playerid, 0, skin, x, y, z, rotation, 0, 0, 0, 0, 0, 0);
TogglePlayerSpectating(playerid, 0);
}
forward SetClassCameraPos(playerid);
public SetClassCameraPos(playerid)
{
SetPlayerCameraPos(playerid, ...);
SetPlayerCameraLookAt(playerid, ...);
}
public OnPlayerRequestClass(playerid, classid)
{
// если игрок нажал F4 и умер, то просто спавним его
if (IsPlayerLogin(playerid)) {
TogglePlayerSpectating(playerid, 1);
// лучше установить действительный скин и координаты спавна
SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
TogglePlayerSpectating(playerid, 0);
return 0;
}
// скрыть кнопки
TogglePlayerSpectating(playerid, 1);
// установить позицию камеры (без задержки после TogglePlayerSpectating не работает)
SetTimerEx("SetClassCameraPos", 200, 0, "i", playerid);
#if defined Spawn_OnPlayerRequestClass
return Spawn_OnPlayerRequestClass(playerid, classid);
#else
return 1;
#endif
}
#if defined _ALS_OnPlayerRequestClass
#undef OnPlayerRequestClass
#else
#define _ALS_OnPlayerRequestClass
#endif
#define OnPlayerRequestClass Spawn_OnPlayerRequestClass
#if defined Spawn_OnPlayerRequestClass
forward Spawn_OnPlayerRequestClass(playerid, classid);
#endif
Последний раз редактировалось ziggi; 17.02.2016 в 16:36.
Спасибо УВАЖАЕМЫЕ ДРУЗЬЯ!
Помог вариант с TogglePlayerSpectating(playerid, 1)
Правда пока искал начитал и использовал вариант типа: TogglePlayerSpectating(playerid, true);
Но в любом случае БОЛЬШОЕ СПАСИБО ЧТО ОТКЛИКНУЛИСЬ!!!!!
Если я сделаю так то это будет хуже?
PHP код:
public OnPlayerConnect(playerid)
{
TogglePlayerSpectating(playerid, true);
SetTimerEx("SetClassCameraPos", 10, 0, "i", playerid);
return 1;
}
public SetClassCameraPos(playerid)
{
SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
}
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerAuthorized(playerid))
{
TogglePlayerSpectating(playerid, true);
SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
TogglePlayerSpectating(playerid, false);
return 0;
}
return 0;
}
Да.
В new.pwn проверял.
Если можешь выложи чистый код.
Я вроде понимаю как это работает.
При подключении игрока вызывается:
public OnPlayerConnect(playerid)
Следом вызывается:
public OnPlayerRequestClass(playerid, classid).
Который должен вернуть classid что бы выйти из режима "Выбора класса"
У тебя же в коде используется return 0; значит после выполнения функции не чего не вернется.
И сервер будет думать что игрок не выбрал класс.
Едем дальше.
Что бы кнопки перестали работать пишем тут вот так:
Хорошо кнопки не работают.PHP код:
public OnPlayerRequestSpawn(playerid)//Вызывается когда игрок нажимает кнопку Spawn.
{
return 0;// Тут ставим 0 что бы отключить кнопку Spawn.
}
Что бы их вообще спрятать нам в этом поможет функция:
TogglePlayerSpectating(playerid, 1);
Работает как то не корректно, если не использовать таймер то не работают вот эти функции:
SetPlayerCameraPos(playerid, ...);
SetPlayerCameraLookAt(playerid, ...);
Ладно хорошо все сделали вроде бы все хорошо, но у нас еще есть несчастная кнопка F4 которая принудительно после смерти игрока вызывает:
public OnPlayerRequestClass(playerid, classid)
И тут начинаются проблемы...
public OnPlayerRequestClass(playerid, classid) вызывается по 3 причинам:
1) При подключении к серверу
2) После смерти игрока
3) После нажатия F4.
Искал смотрел так и не нашел решения, не пишу мод дальше пока не устраню эту проблему уже много чего перепробовал.
Все варианты рабочие но неидеальные, везде есть свои минусы.
Ходил на офф сайт там баг репорт завален рассказами про OnPlayerRequestClass (F4) bug но везде одно и тоже, не чего толкового.
Где то даже ответил сам Кай что это не баг у вас не правильный код.
http://forum.sa-mp.com/showthread.php?t=324137&page=4
Привел бы сам пример как это отключить.
В общем мне уже начинает надоедать это...
Последний раз редактировалось Alexey_Nikiforov; 17.02.2016 в 18:03.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)