Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя
Показано с 11 по 20 из 31
  1. #11
    Аватар для XrenoTeHb
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.05.2021
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от LINKINPARK Посмотреть сообщение
    попробуй так
    PHP код:
    new 
        
    Float0.0//позиция стола X
        
    Float0.0//позиция стола Y
        
    FloatRot 0.0//угол стола
        
    FloatOffsetX 0.06
        
    FloatOffsetY 0.56
    ;
    //нужные оффсеты X Y для AttachObjectToObject
    OffsetX floatsin (Rotdegrees
    OffsetY floatsin (Rotdegrees)
    //или координаты X Y для CreateObject
    + (OffsetX floatsin (Rotdegrees)
    + (OffsetY floatsin (Rotdegrees

    в AttachObjectToObject параметр SyncRotation = 1?
    Ща попробуем, да, синхронизация стоит.

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

    Статус
    Оффлайн
    Регистрация
    24.01.2014
    Сообщений
    27
    Репутация:
    10 ±
    в мап эдиторе ты нашел точку фишки от нулевых корд. X = 0.06 Y = 0.56, из этого следует что X+Y = радиус окружности
    Мы имеем центр окружности, радиус, угол поворота
    Правильная формула для поиска конечной точки
    X = (R * floatcos (A, degrees))
    Y = (R * floatsin (A, degrees))
    Возможно ты ошибся с позицией фишки? Еще раз напомню учитывай инверсию коорд Y
    Правильное описание проделанной работы.
      Открыть/закрыть
    Доброго времени суток! Вот что было проделано:
    01. Система красивого интро при коннекте на сервер
    02. Система регистрации аккаунта
    03. Система автошколы
    04. Система личных сообщений
    05. Система бизнесов
    06. Система складов
    07. Система магазин 24/7
    08. Система домов
    09. Система админки 10уровней
    10. Система PayDay
    11. Система сообщений
    12. Система гонок
    13. Система фракций
    14. Система Складов
    15. Система телефона
    16. Система рюкзака
    17. Система пау
    18. Система пиу
    19. Система бах-бах
    20. Система бдыщ

  3. #13
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Один вопрос: камера за столом фиксируемая, вне зависимости от угла поворота стола?
    Последний раз редактировалось tnc; 23.05.2021 в 15:20.

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

    Статус
    Оффлайн
    Регистрация
    22.05.2021
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Один вопрос: камера за столом фиксируемая, вне зависимости от угла поворота стола?
    да, камера всегда поворачивается так чтобы стол был читабельным, как на скрине

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

    фишка же по такому принципу как камера не охотно хочет правильно располагаться
    Последний раз редактировалось XrenoTeHb; 24.05.2021 в 19:30.

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

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Цитата Сообщение от XrenoTeHb Посмотреть сообщение
    да, камера всегда поворачивается так чтобы стол был читабельным, как на скрине

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

    фишка же по такому принципу как камера не охотно хочет правильно располагаться
    Скинь настройки камеры

    UPD: вот так можно получить оффсеты для ячеек

    1. #include <a_samp>
    2.  
    3. main()
    4. {
    5. new Float: base_x_pos = -0.29,
    6. Float: base_y_pos = 0.49;
    7.  
    8. const
    9. Float: X_SIZE = 0.2433,
    10. Float: Y_SIZE = 0.1525,
    11.  
    12. COL_COUNT = 5,
    13. ROWS_COUNT = 23,
    14. CELLS_COUNT = COL_COUNT * ROWS_COUNT;
    15.  
    16. printf(" { %2.f, %2.f, -1, 5, 3, 1 }, // Zero", base_x_pos + X_SIZE * 1.5, base_y_pos + Y_SIZE * 0.5); // Zero
    17.  
    18. new
    19. index = 1,
    20. Float: x_size = X_SIZE * 0.5,
    21. Float: y_size = Y_SIZE * 0.5;
    22.  
    23. base_x_pos += x_size;
    24. base_y_pos -= y_size;
    25.  
    26. for (new i = 0, j = 0, Float: x = 0.0, Float: y = base_y_pos; j < ROWS_COUNT; ++j, y -= y_size)
    27. {
    28. for (i = 0, x = base_x_pos; i < COL_COUNT; ++i, x += x_size, ++index)
    29. {
    30. new up = index - COL_COUNT;
    31. new right = index + 1;
    32. new down = index + COL_COUNT;
    33. new left = index - 1;
    34.  
    35. printf(" {%2.f, %2.f, %3d, %3d, %3d, %3d}, // %3d", x, y,
    36. (up < 0) ? 0 : up,
    37. (index % COL_COUNT) ? right : -1,
    38. down,
    39. (left % COL_COUNT) ? left : (((index - 1) / (7 * COL_COUNT)) + CELLS_COUNT + 4),
    40. index
    41. );
    42. }
    43. }
    44. base_x_pos -= X_SIZE * 0.5;
    45. base_y_pos += Y_SIZE * 0.5;
    46.  
    47. printf(" {%2.f, %2.f, %3d, %3d, -1, -1}, // %3d - 3 to 1", base_x_pos + X_SIZE * 0.5, base_y_pos - Y_SIZE * 12.5, index - COL_COUNT, index + 1, index); // 37 - 3 to 1
    48. index++;
    49. printf(" {%2.f, %2.f, %3d, %3d, -1, %3d}, // %3d - 3 to 1", base_x_pos + X_SIZE * 1.5, base_y_pos - Y_SIZE * 12.5, index - 4, index + 1, index - 1, index); // 38 - 3 to 1
    50. index++;
    51. printf(" {%2.f, %2.f, %3d, -1, -1, %3d}, // %3d - 3 to 1", base_x_pos + X_SIZE * 2.5, base_y_pos - Y_SIZE * 12.5, index - 3, index - 1, index); // 39 - 3 to 1
    52. index++;
    53.  
    54. printf(" {%2.f, %2.f, -1, 1, %3d, %3d}, // %3d - 1st 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 2.0, index + 1, index + 3, index); // 40 - 1st 112
    55. index++;
    56. printf(" {%2.f, %2.f, %3d, 13, %3d, %3d}, // %3d - 2nd 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 6.0, index - 1, index + 1, index + 4, index); // 41 - 2nd 112
    57. index++;
    58. printf(" {%2.f, %2.f, %3d, 25, -1, %3d}, // %3d - 3rd 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 10.0, index - 1, index + 5, index); // 42 - 3rd 112
    59. index++;
    60. printf(" {%2.f, %2.f, -1, %3d, %3d, -1}, // %3d - 1 to 18", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 1.0, index - 3, index + 1, index); // 43 - 1 to 18
    61. index++;
    62. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - EVEN", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 3.0, index - 1, index - 4, index + 1, index); // 44 - EVEN
    63. index++;
    64. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - RED", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 5.0, index - 1, index - 4, index + 1, index); // 45 - RED
    65. index++;
    66. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - BLACK", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 7.0, index - 1, index - 5, index + 1, index); // 46 - BLACK
    67. index++;
    68. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - ODD", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 9.0, index - 1, index - 5, index + 1, index); // 47 - ODD
    69. index++;
    70. printf(" {%2.f, %2.f, %3d, %3d, -1, -1} // %3d - 19 to 36", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 11.0, index - 1, index - 6, index); // 48 - 19 to 36
    71. index++;
    72. }


    Прогоняешь этот код, на выходе получаешь готовые оффсеты. Осталось сделать логику для управления фишками и поддержку направлений, если с этим тоже есть проблемы, то отпишешь сюда
    Последний раз редактировалось tnc; 24.05.2021 в 21:14.

  6. Пользователь сказал cпасибо:
    Pa4enka (24.05.2021)
  7. #16
    Аватар для XrenoTeHb
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.05.2021
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Скинь настройки камеры

    UPD: вот так можно получить оффсеты для ячеек

    1. #include <a_samp>
    2.  
    3. main()
    4. {
    5. new Float: base_x_pos = -0.29,
    6. Float: base_y_pos = 0.49;
    7.  
    8. const
    9. Float: X_SIZE = 0.2433,
    10. Float: Y_SIZE = 0.1525,
    11.  
    12. COL_COUNT = 5,
    13. ROWS_COUNT = 23,
    14. CELLS_COUNT = COL_COUNT * ROWS_COUNT;
    15.  
    16. printf(" { %2.f, %2.f, -1, 5, 3, 1 }, // Zero", base_x_pos + X_SIZE * 1.5, base_y_pos + Y_SIZE * 0.5); // Zero
    17.  
    18. new
    19. index = 1,
    20. Float: x_size = X_SIZE * 0.5,
    21. Float: y_size = Y_SIZE * 0.5;
    22.  
    23. base_x_pos += x_size;
    24. base_y_pos -= y_size;
    25.  
    26. for (new i = 0, j = 0, Float: x = 0.0, Float: y = base_y_pos; j < ROWS_COUNT; ++j, y -= y_size)
    27. {
    28. for (i = 0, x = base_x_pos; i < COL_COUNT; ++i, x += x_size, ++index)
    29. {
    30. new up = index - COL_COUNT;
    31. new right = index + 1;
    32. new down = index + COL_COUNT;
    33. new left = index - 1;
    34.  
    35. printf(" {%2.f, %2.f, %3d, %3d, %3d, %3d}, // %3d", x, y,
    36. (up < 0) ? 0 : up,
    37. (index % COL_COUNT) ? right : -1,
    38. down,
    39. (left % COL_COUNT) ? left : (((index - 1) / (7 * COL_COUNT)) + CELLS_COUNT + 4),
    40. index
    41. );
    42. }
    43. }
    44. base_x_pos -= X_SIZE * 0.5;
    45. base_y_pos += Y_SIZE * 0.5;
    46.  
    47. printf(" {%2.f, %2.f, %3d, %3d, -1, -1}, // %3d - 3 to 1", base_x_pos + X_SIZE * 0.5, base_y_pos - Y_SIZE * 12.5, index - COL_COUNT, index + 1, index); // 37 - 3 to 1
    48. index++;
    49. printf(" {%2.f, %2.f, %3d, %3d, -1, %3d}, // %3d - 3 to 1", base_x_pos + X_SIZE * 1.5, base_y_pos - Y_SIZE * 12.5, index - 4, index + 1, index - 1, index); // 38 - 3 to 1
    50. index++;
    51. printf(" {%2.f, %2.f, %3d, -1, -1, %3d}, // %3d - 3 to 1", base_x_pos + X_SIZE * 2.5, base_y_pos - Y_SIZE * 12.5, index - 3, index - 1, index); // 39 - 3 to 1
    52. index++;
    53.  
    54. printf(" {%2.f, %2.f, -1, 1, %3d, %3d}, // %3d - 1st 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 2.0, index + 1, index + 3, index); // 40 - 1st 112
    55. index++;
    56. printf(" {%2.f, %2.f, %3d, 13, %3d, %3d}, // %3d - 2nd 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 6.0, index - 1, index + 1, index + 4, index); // 41 - 2nd 112
    57. index++;
    58. printf(" {%2.f, %2.f, %3d, 25, -1, %3d}, // %3d - 3rd 112", base_x_pos - X_SIZE * 0.5, base_y_pos - Y_SIZE * 10.0, index - 1, index + 5, index); // 42 - 3rd 112
    59. index++;
    60. printf(" {%2.f, %2.f, -1, %3d, %3d, -1}, // %3d - 1 to 18", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 1.0, index - 3, index + 1, index); // 43 - 1 to 18
    61. index++;
    62. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - EVEN", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 3.0, index - 1, index - 4, index + 1, index); // 44 - EVEN
    63. index++;
    64. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - RED", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 5.0, index - 1, index - 4, index + 1, index); // 45 - RED
    65. index++;
    66. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - BLACK", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 7.0, index - 1, index - 5, index + 1, index); // 46 - BLACK
    67. index++;
    68. printf(" {%2.f, %2.f, %3d, %3d, %3d, -1}, // %3d - ODD", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 9.0, index - 1, index - 5, index + 1, index); // 47 - ODD
    69. index++;
    70. printf(" {%2.f, %2.f, %3d, %3d, -1, -1} // %3d - 19 to 36", base_x_pos - X_SIZE * 1.5, base_y_pos - Y_SIZE * 11.0, index - 1, index - 6, index); // 48 - 19 to 36
    71. index++;
    72. }


    Прогоняешь этот код, на выходе получаешь готовые оффсеты. Осталось сделать логику для управления фишками и поддержку направлений, если с этим тоже есть проблемы, то отпишешь сюда

  8. #17
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Цитата Сообщение от XrenoTeHb Посмотреть сообщение
    Ну, осталось взять оффсеты и настроить направления.

    P.S: У меня там в массиве настроены связи. Их желательно тоже использовать.
    Последний раз редактировалось tnc; 24.05.2021 в 21:27.

  9. #18
    Аватар для XrenoTeHb
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.05.2021
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Ну, осталось взять оффсеты и настроить направления.

    P.S: У меня там в массиве настроены связи. Их желательно тоже использовать.
    я вычислял похожие оффсеты которые выдает твой скрипт, но проблема в том что дальше загвоздка, все ломается если менять угол вращения стола, никак не пойму как правильно учитывать его

  10. #19
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Показывай код перемещения фишек.

    P.S: Только не скрином

  11. #20
    Аватар для XrenoTeHb
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.05.2021
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    Показывай код перемещения фишек.

    P.S: Только не скрином


    PHP код:
        new fieldSlot roulettePlayer[playerid][tableField] = random(sizeof(rouletteField));

        
    roulettePlayer[playerid][chipID] = CreateDynamicObject(chiprouletteTable[table][posX], rouletteTable[table][posY], rouletteTable[table][posZ] + TABLE_CHIP_OFFSET_Z,
            
    rouletteTable[table][rotX], rouletteTable[table][rotY], rouletteTable[table][rotZ], rouletteTable[table][virtualWorldID], rouletteTable[table][interiorID]);

        
    camX rouletteTable[table][posX], camY rouletteTable[table][posY];

        
    camX += (rouletteField[fieldSlot][offX] * floatsin(-rouletteTable[table][rotZ], degrees));
        
    camY += (rouletteField[fieldSlot][offY] * floatcos(-rouletteTable[table][rotZ], degrees));

        
    AttachDynamicObjectToObject(roulettePlayer[playerid][chipID], rouletteTable[table][objectID], camXcamYTABLE_CHIP_OFFSET_ZrouletteTable[table][rotX],
            
    rouletteTable[table][rotY], rouletteTable[table][rotZ]);

        
    Streamer_Update(playerid); 
    Последний раз редактировалось XrenoTeHb; 25.05.2021 в 09:12.

 

 
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя

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

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

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

Ваши права

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