Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±

    Камера при входе.

    Здравствуйте. Уже не первый день меня мучает камера при входе на сервер.
    Дело в том, что когда я добавляю две функции RemovePlayerObjects(playerid) и TextDrawShowForPlayer(playerid, URL) камера перестаёт работать. Без них она работает замечательно. Я и вверх добавлял и вниз, но камера все равно не работает. Без этих функций работает хорошо, но без них мне ни куда. Вот код колбэка OnPlayerConnect(playerid);
    PHP код:
    public OnPlayerConnect(playerid)
    {
        new 
    userip[16], string[80];
        
    RemovePlayerInfo(playerid);
        
    GetPlayerName(playerid,pInfo[playerid][pName],MAX_PLAYER_NAME);
        
    SendClientMessage(playeridCOLOR_NEWS"Добро пожаловать на сервер!");
        
    GetPlayerIp(playerid,userip,sizeof(userip));
        
    format(string,sizeof(string), "Игрок %s[%d] заходит на сервер. IP: %s",pNick(playerid),playerid,userip);
        
    SendAdminMessage(COLOR_YELLOW,string);
        
    // TextDraw.
        
    VehicleHealth[playerid] = CreatePlayerTextDraw(playerid512.245912314.000000" ");
        
    PlayerTextDrawLetterSize(playeridVehicleHealth[playerid], 1.2618082.151998);
        
    PlayerTextDrawAlignment(playeridVehicleHealth[playerid], 1);
        
    PlayerTextDrawColor(playeridVehicleHealth[playerid], -1);
        
    PlayerTextDrawSetShadow(playeridVehicleHealth[playerid], 0);
        
    PlayerTextDrawSetOutline(playeridVehicleHealth[playerid], 1);
        
    PlayerTextDrawBackgroundColor(playeridVehicleHealth[playerid], 51);
        
    PlayerTextDrawFont(playeridVehicleHealth[playerid], 2);
        
    PlayerTextDrawSetProportional(playeridVehicleHealth[playerid], 1);
        
    //--------------------------------------------------------------------------
        
    Speed[playerid] = CreatePlayerTextDraw(playerid512.3421421.12321" ");
        
    PlayerTextDrawLetterSize(playeridSpeed[playerid], 0.4351412.909866);
        
    PlayerTextDrawAlignment(playeridSpeed[playerid], 1);
        
    PlayerTextDrawColor(playeridSpeed[playerid], -1);
        
    PlayerTextDrawSetShadow(playeridSpeed[playerid], 0);
        
    PlayerTextDrawSetOutline(playeridSpeed[playerid], 1);
        
    PlayerTextDrawBackgroundColor(playeridSpeed[playerid], 51);
        
    PlayerTextDrawFont(playeridSpeed[playerid], 2);
        
    PlayerTextDrawSetProportional(playeridSpeed[playerid], 1);
        
    //--------------------------------------------------------------------------
        
    Fuels[playerid] = CreatePlayerTextDraw(playerid523.284912345.00000" ");
        
    PlayerTextDrawLetterSize(playeridFuels[playerid], 0.2618081.151998);
        
    PlayerTextDrawAlignment(playeridFuels[playerid], 1);
        
    PlayerTextDrawColor(playeridFuels[playerid], -1);
        
    PlayerTextDrawSetShadow(playeridFuels[playerid], 0);
        
    PlayerTextDrawSetOutline(playeridFuels[playerid], 1);
        
    PlayerTextDrawBackgroundColor(playeridFuels[playerid], 51);
        
    PlayerTextDrawFont(playeridFuels[playerid], 2);
        
    PlayerTextDrawSetProportional(playeridFuels[playerid], 1);
        
    //--------------------------------------------------------------------------
        
    ZamokVeh[playerid] = CreatePlayerTextDraw(playerid542.541912423.40500" ");
        
    PlayerTextDrawLetterSize(playeridZamokVeh[playerid], 0.2618081.151998);
        
    PlayerTextDrawAlignment(playeridZamokVeh[playerid], 1);
        
    PlayerTextDrawColor(playeridZamokVeh[playerid], -1);
        
    PlayerTextDrawSetShadow(playeridZamokVeh[playerid], 0);
        
    PlayerTextDrawSetOutline(playeridZamokVeh[playerid], 1);
        
    PlayerTextDrawBackgroundColor(playeridZamokVeh[playerid], 51);
        
    PlayerTextDrawFont(playeridZamokVeh[playerid], 2);
        
    PlayerTextDrawSetProportional(playeridZamokVeh[playerid], 1);
        
    //--------------------------------------------------------------------------
        
    VehicleName[playerid] = CreatePlayerTextDraw(playerid522.21121316.240000" ");
        
    PlayerTextDrawLetterSize(playeridVehicleName[playerid], 0.2069521.130664);
        
    PlayerTextDrawAlignment(playeridVehicleName[playerid], 1);
        
    PlayerTextDrawColor(playeridVehicleName[playerid], 0x007FFFFF);
        
    PlayerTextDrawSetShadow(playeridVehicleName[playerid], 0);
        
    PlayerTextDrawSetOutline(playeridVehicleName[playerid], 1);
        
    PlayerTextDrawBackgroundColor(playeridVehicleName[playerid], 51);
        
    PlayerTextDrawFont(playeridVehicleName[playerid], 2);
        
    PlayerTextDrawSetProportional(playeridVehicleName[playerid], 1);
        
    //--------------------------------------------------------------------------
        
    new account[37];
        
    format(account,sizeof(account),"users/%s.ini",pNick(playerid));
        if(!
    fexist(account)) ShowRegisterDialog(playerid);
        else if(
    fexist(account)) ShowLoginDialog(playerid);
        
    SetPlayerFacingAngle(playerid270);
        
    SetPlayerCameraPos(playerid1688.4673, -1484.924697.7186);
        
    SetPlayerCameraLookAt(playerid1687.9570, -1485.787797.5284);
        
    //RemovePlayerObjects(playerid);
        //TextDrawShowForPlayer(playerid, URL);
        
    return true;

    Если знаете подскажите пожалуйста удобные способы присобачить камеру при входе, чтобы было эффективно и без всяких сбоев.

  2. #2
    Аватар для KakbeYura
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    Почему так - незнаю.
    У меня смена камеры в
    PHP код:
    public OnPlayerRequestSkin(playerid
    Можешь попробовать удалить с коннекта и поставить в него.

    Но можно сделать так:
    PHP код:
    new ConnectCameraTimer
    PHP код:
    public OnPlayerConnect(playerid)
    {
        ...
        
    SetTimerEx("ConnectCamera",1000,false,"d",playerid);
        return 
    1;

    PHP код:
    forward ConnectCamera(playerid);
    public 
    ConnectCamera(playerid)
    {
        
    SetPlayerFacingAngle(playerid270);
        
    SetPlayerCameraPos(playerid1688.4673, -1484.924697.7186);
        
    SetPlayerCameraLookAt(playerid1687.9570, -1485.787797.5284);
        return 
    1;


    И зачем два раза проверять файл?
    PHP код:
        if(!fexist(account)) ShowRegisterDialog(playerid);
        else 
    ShowLoginDialog(playerid); 

  3. Пользователь сказал cпасибо:
    Just_Fenix (24.05.2014)
  4. #3
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Цитата Сообщение от KakbeYura Посмотреть сообщение
    Почему так - незнаю.
    У меня смена камеры в
    PHP код:
    public OnPlayerRequestSkin(playerid
    Можешь попробовать удалить с коннекта и поставить в него.

    Но можно сделать так:
    PHP код:
    new ConnectCameraTimer
    PHP код:
    public OnPlayerConnect(playerid)
    {
        ...
        
    SetTimerEx("ConnectCamera",1000,false,"d",playerid);
        return 
    1;

    PHP код:
    forward ConnectCamera(playerid);
    public 
    ConnectCamera(playerid)
    {
        
    SetPlayerFacingAngle(playerid270);
        
    SetPlayerCameraPos(playerid1688.4673, -1484.924697.7186);
        
    SetPlayerCameraLookAt(playerid1687.9570, -1485.787797.5284);
        return 
    1;


    И зачем два раза проверять файл?
    PHP код:
        if(!fexist(account)) ShowRegisterDialog(playerid);
        else 
    ShowLoginDialog(playerid); 
    Ну как бы :) Интересно, и где же я его два раза проверяю?
    Проверка стоит на существование файла игрока, если файла нет - регистрируем. Если есть - посылаем на авторизацию.
    На счёт OnPlayerRequestClass (что за OnPlayerRequestSkin я так и не понял). Он не вызывается при коннекте игрока, только при выборе класса. Смысла мне его использовать нет. Хотелось также бы обойтись без таймера.

    - - - Добавлено - - -

    Я вот тут подумал. В колбэке OnPlayerConnect стоит функция RemovePlayerInfo. С ней всё хорошо работает, может RemoveObjects и TextDrawShowForPlayer засунуть в неё? При входе/выходе правда будет обновляться. Или лучше не надо?

  5. #4
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Поднимаю тему вверх.

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от Just_Fenix Посмотреть сообщение
    Я вот тут подумал. В колбэке OnPlayerConnect стоит функция RemovePlayerInfo. С ней всё хорошо работает, может RemoveObjects и TextDrawShowForPlayer засунуть в неё? При входе/выходе правда будет обновляться. Или лучше не надо?
    Легче тогда сделать отдельный stock, в который и поместить нужный код. Но вряд ли это даст какой-то результат
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Just_Fenix (24.05.2014)
  8. #6
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Сделал как все делают. В колбэк OnPlayerConnect поставил проверку на существование аккаунта.
    Если аккаунта нет - присваиваем значение false переменной gPlayerAccount. Если аккаунт есть - присваиваем значение true переменной gPlayerAccount. Далее в колбэке OnPlayerRequestClass ставим проверку с этой переменной.
    PHP код:
        if(gPlayerAccount[playerid] == falseShowRegisterDialog(playerid);
        else if(
    gPlayerAccount[playerid] == trueShowLoginDialog(playerid); 
    Если значение переменной gPlayerAccount равно false, то отправляем игрока на регистрацию.
    Если значение переменной gPlayerAccount равно true, то отправляем игрока на авторизацию.
    Выше этой проверки я поставил координаты камеры, и всё прекрасно работает. Только внизу появились << >> и кнопка spawn.
    Придётся не обращать на них внимания :) Спасибо всем, кто попытался помочь. Тему можно закрывать.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •