paren2001, в удф есть функция getCoordinates() - она возвращает массив, собственно это вернет твои текущие координаты:
Код
coord := getCoordinates()
addchameesage("{FFFFFF}x: " coord[1] " | y: " coord[2] " | z: " coord[3])
Дальше нам нужно сделать проверку, находимся ли мы в радиусе.
Для этого есть вот такая функция: IsPlayerInRangeOfPoint(X, Y, Z, Radius) - она выдает 0 - не находитесь в указанных координатах, 1 - находитесь. Но я бы советовал функцию IsPlayerInRangeOfPoint2D(X, Y, Radius) - она не учитывает на какой высоте вы находитесь.
Дабы не делать куча ифов на каждые координаты, мы сделаем вот такую функцию:
Код
getpost()
{
arrayObj := [{"name": "КПП-1" ,"coord": [431.638000 , 2563.218750 , 20]}
,{"name": "КПП-2" ,"coord": [431.638000 , 2563.218750 , 20]}
,{"name": "Еще что-то" ,"coord": [431.638000 , 2563.218750 , 20]}]
for k, v in arrayObj
{
if (IsPlayerInRangeOfPoint2D(val["coord"][1], val["coord"][2], val["coord"][3]) == 1)
{
return v["name"]
}
}
return 0
}
Как же ее использовать спросишь? Та легко!
Делаем теперь код который будет выдавать название поста или чего либо.
Код
/*
Допустим мы будем показывать информацию по нажатию alt+1
*/
!1::
post_name := getpost()
if (!post_name)
{
addChatMessageEx("00FF00", "{FFFFFF}Вы не находитесь на посту!")
Return
}
addChatMessageEx("00FF00", "{FFFFFF}Вы находитесь на {00FF00}" post_name "{FFFFFF}.")
Return
/*
Эту функцию мы суем в конец всего кода
*/
getpost()
{
arrayObj := [{"name": "КПП-1" ,"coord": [431.638000 , 2563.218750 , 20]}
,{"name": "КПП-2" ,"coord": [431.638000 , 2563.218750 , 20]}
,{"name": "Еще что-то" ,"coord": [431.638000 , 2563.218750 , 20]}]
for k, v in arrayObj
{
if (IsPlayerInRangeOfPoint2D(val["coord"][1], val["coord"][2], val["coord"][3]) == 1)
{
return v["name"]
}
}
return 0
}
Ссылка на код с нормальной табуляцией: ТЫК