SA-MP Forums Archive
Автоматический расчёт координат. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Автоматический расчёт координат. (/showthread.php?tid=646483)



Автоматический расчёт координат. - Mexanizm93 - 17.12.2017

Ребят, всем привет.

Нужна помощь. Задумал сделать фишку с сотовой связью в игре. Идея пришла разбить всю карту на равные квадраты и сделать таким образом обхват связи. То и дело менять уровень сигнала в той или иной зоне, и тем самым добиваться разных показателей. Всё решаемо, только вот в геометрии я мягко говоря "никак". Нужна помощь. Как реализовать такое ?

Буду благодарен за любой ответ.


Re: Автоматический расчёт координат. - Mcc - 17.12.2017

Нахера тут геометрия?


Re: Автоматический расчёт координат. - Mexanizm93 - 17.12.2017

Quote:
Originally Posted by Mcc
Посмотреть сообщение
Нахера тут геометрия?
Как же ?
Есть к примеру большой квадрат(карта СА). Надо разбить этот квадрат на максимальное число квадратов меньше и получить от каждого квадрата координаты. Я думаю, что тут геометрия.


Re: Автоматический расчёт координат. - VVWVV - 17.12.2017

Можно просто поставить объекты, например, вышки, как это сделано на LS-RP, и уже использовать функцию IsPlayerInRangeOfPoint.


Re: Автоматический расчёт координат. - Mexanizm93 - 17.12.2017

Quote:
Originally Posted by VVWVV
Посмотреть сообщение
Можно просто поставить объекты, например, вышки, как это сделано на LS-RP, и уже использовать функцию IsPlayerInRangeOfPoint.
Зачем, когда есть стример и динамические зоны ?


Re: Автоматический расчёт координат. - Mutha_X - 17.12.2017

IsPlayerInRangeOfPoint и тому подобное для расчёта уровня сигнала - прошлый век.
Вот запилить расчёт уровня сигнала методами геометрической оптики и равномерной геометрической теории дифракции на базе ColAndreas - вот за этим и стоит будущее, т.к. в этом случае имеет смысл задумываться игрокам над тем куда ставить базовые станции.


Re: Автоматический расчёт координат. - stabker - 17.12.2017

Quote:
Originally Posted by Mexanizm93
Посмотреть сообщение
Как же ?
Есть к примеру большой квадрат(карта СА). Надо разбить этот квадрат на максимальное число квадратов меньше и получить от каждого квадрата координаты. Я думаю, что тут геометрия.
Так это же вроде легко.

Получить ид квадрата по позиции можно так:

PHP код:
(floatround(cur_pos_y square_sizefloatround_floor) * (map_size_x square_size)) + floatround(cur_pos_x square_sizefloatround_floor
А разбить карту на квадраты

PHP код:
for(new ymap_size_y+= square_size)
{
    for(new 
xmap_size_x+= square_size)
    {
        
//min_x, min_y, max_x, max_y:
        //x, y, x + square_size, y + square_size
    
}    

если я конечно не туплю


Re: Автоматический расчёт координат. - White_116 - 17.12.2017

Что-то вы слишком всё замудрили, разбей карту на квадраты по 50 метров и заполни массив относительно вышек.
Может пригодиться рисуем окружность по пикселям

PHP код:
//Вернёт координаты чанка.
stock Geometry::GetChunkPos2D(Float:xFloat:y, &X, &Ysquare_lengthchunk_lengthcheck_border 1)
{
    if(
check_border)
    {
        
// создадим искуственную границу дальше которой человек неможет находится
        
if(< -square_length)= -square_length 1; else if(square_length)square_length 1;
        if(
< -square_length)= -square_length 1; else if(square_length)square_length 1;
    }
    
X=floatround((x+square_length)/chunk_length,floatround_floor);
    
Y=floatround((y+square_length)/chunk_length,floatround_floor);
    return 
1;




Re: Автоматический расчёт координат. - Mexanizm93 - 17.12.2017

Ребят, всем спасибо. Разбираться не стал, так как долго. Решил запилить руками, через редактор ГЗ. Всё равно всем спасибо.