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

Тема: Проверка

  1. #1
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±

    Проверка

    Вообщем делаю цент купли-продажи, делаю покупку домов. Смысл заключается в том что когда нажимаешь дом,
    Тебя отправляет камера на первый свободный дом.
    Если свободных домов на сервере нету, нужно что бы сообщение выводило.
    Помогите сделать проверку, я чет пытался, но не понял как правильнее будет сделать.

    P.S. Додумался.
    PHP код:
            case dStateHouse:
            {
                new 
    test 0;
                for(new 
    houseid 1houseid <= TotalHousehouseid++) if(HouseInfo[houseid][hOwned] == 0test++;
                if(
    test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
                if(
    test 0)
                {
                    for(new 
    1<= TotalHousei++)
                    {
                        if(
    HouseInfo[i][hOwned] == 0)
                        {
                            
    SetPlayerCameraPos(playeridHouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]+5);
                            
    SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
                            
    SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]);
                        }
                    }
                    return 
    true;
                }
            } 
    Мужики, как сделать что бы камера всегда ровно была направлена на иконку дома ? Что бы не зависело где стоит дом.
    Так же, у кого нибудь есть идеи по оптимизации моего кода выше?)
    Последний раз редактировалось Bady; 08.09.2015 в 17:46.

  2. #2
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    PHP код:
    for(new houseid 1houseid <= TotalHousehouseid++) if(HouseInfo[houseid][hOwned] == 0test++;
                if(
    test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
                if(
    test 0)
                {
                    for(new 
    1<= TotalHousei++)
                    { 
    Ты серьезно?
    Зачем 2 цикла?
    PHP код:
    new test;
    for(new 
    1<= TotalHousei++)
    {
         if(
    HouseInfo[i][hOwned]) continue;
         
    SetPlayerCameraPos(playeridHouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]+5);
         
    SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
         
    SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]);
         
    test++;
         break;
    }
    if(
    test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!"); 
    Цитата Сообщение от Bady Посмотреть сообщение
    Мужики, как сделать что бы камера всегда ровно была направлена на иконку дома ? Что бы не зависело где стоит дом.
    Так же, у кого нибудь есть идеи по оптимизации моего кода выше?)
    А здесь на каждый дом нужно сохранять координаты.
    PHP код:
    enum HouseCord =
    {
    Float:Pos[6],
    }
    static const 
    Float:HouseCoordination[MAX_HOUSE][HouseCord] = 
    {
        {{
    x,y,zx2,y2,z2}}
    }

    SetPlayerCameraPos(playeridHouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
    SetPlayerCameraLookAt(playerid,HouseCoordination[i][Pos][3], HouseCoordination[i][Pos][4], HouseCoordination[i][Pos][5]);
    SetPlayerPos(playerid,HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]); 
    Последний раз редактировалось #Vito; 08.09.2015 в 20:45.
    Skype: vitya.saveliev


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

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Цитата Сообщение от #Vito Посмотреть сообщение
    Ты серьезно?
    Зачем 2 цикла?
    PHP код:
    new test;
    for(new 
    1<= TotalHousei++)
    {
         if(
    HouseInfo[i][hOwned]) continue;
         
    SetPlayerCameraPos(playeridHouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]+5);
         
    SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
         
    SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0HouseInfo[i][hEntrancey] -15.0HouseInfo[i][hEntrancez]);
         
    test++;
         break;
    }
    if(
    test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!"); 

    А здесь на каждый дом нужно сохранять координаты.
    PHP код:
    enum HouseCord =
    {
    Float:Pos[6],
    }
    static const 
    Float:HouseCoordination[MAX_HOUSE][HouseCord] = 
    {
        {{
    x,y,zx2,y2,z2}}
    }

    SetPlayerCameraPos(playeridHouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
    SetPlayerCameraLookAt(playerid,HouseCoordination[i][Pos][3], HouseCoordination[i][Pos][4], HouseCoordination[i][Pos][5]);
    SetPlayerPos(playerid,HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]); 
    Я так понимаю что по позиции пикапа дома нельзя сделать камеру? (Что бы ровно шла) ?

  5. #4
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    Я так понимаю что по позиции пикапа дома нельзя сделать камеру? (Что бы ровно шла) ?
    Не-а, по объектам можно было бы, а по пикапам/чекпоинтам нельзя, разве что дом сверху показывать, либо показывать интерьер дома.
    Skype: vitya.saveliev


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

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Цитата Сообщение от #Vito Посмотреть сообщение
    Не-а, по объектам можно было бы, а по пикапам/чекпоинтам нельзя, разве что дом сверху показывать, либо показывать интерьер дома.
    Если пикап заменить на объект, тогда возможно было бы?

  8. #6
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    Если пикап заменить на объект, тогда возможно было бы?
    Если создавать через CreateDynamicObject, то вполне, но нужно устанавливать все объекты спиной к двери.
    Используя координату rY можно узнавать угол поворота объекта, туда и направлять камеру
    Skype: vitya.saveliev


  9. Пользователь сказал cпасибо:
    Bady (09.09.2015)
  10. #7
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Цитата Сообщение от #Vito Посмотреть сообщение
    Если создавать через CreateDynamicObject, то вполне, но нужно устанавливать все объекты спиной к двери.
    Используя координату rY можно узнавать угол поворота объекта, туда и направлять камеру
    Кхм, спасибо. Пример создание камеры с верным углом поворота rY можно?
    Допустим координаты: rx: 969.434, ry:-1309.21, rz: 13.555

  11. #8
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Цитата Сообщение от #Vito Посмотреть сообщение
    но нужно устанавливать все объекты спиной к двери.
    Забудь.. Устанавливай лицом к двери.
    Тогда получится примерно вот так:
    PHP код:
    SetPlayerCameraPos(playeridx+15.0yz);
    SetPlayerCameraLookAt(playerid969.434, -1309.2113.555); 
    На практике не проверял, но попробуй..
    Skype: vitya.saveliev


 

 

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

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

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

Ваши права

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