Давно не работал с ahk и udf но все что-то помню
Код
; UDF.ahk конструкция анализ
AddZone("Los Santos", 44.615, -2892.970, -242.990, 2997.060, -768.027, 900.000)
AddZone(sName, x1, y1, z1, x2, y2, z2) {
global
zone%nZone%_name := sName
zone%nZone%_x1 := x1
zone%nZone%_y1 := y1
zone%nZone%_z1 := z1
zone%nZone%_x2 := x2
zone%nZone%_y2 := y2
zone%nZone%_z2 := z2
nZone := nZone + 1
}
Сам код
Код
; все переменные записаные через конструкцию выглядят так
global zone1_name := "Avispa Country Club"
global zone2_name := "Los Santos"
global zone2_x1 := 44.615
global zone2_y1 := -2892.970
global zone2_z1 := -242.990
global zone2_x2 := 2997.060
global zone2_y2 := -768.027
global zone2_z2 := 900.000
; создаем переменную в которой будет наша зона
global my_edit_zone := "Los Santos"
; создаем пустой массив
ZoneArray := []
; создаем переменую для числа
global index := 0
; наполнем массив пока значение не дает пустой ответ и заканчиваем когда получаем пустой ответ
loop
{
index+=1
addZoneArr := % zone%A_Index%_name
IF (addZoneArr != "")
{
ZoneArray[A_Index] := addZoneArr
}
else
break
}
; перебераем массив и через if ищем нужное значение break обрывает дальше поиск когда находит зону
for index, Name in ZoneArray
If (my_edit_zone == Name)
{
x1 = % zone%index%_x1
y1 = % zone%index%_y1
z1 = % zone%index%_z1
x2 = % zone%index%_x2
y2 = % zone%index%_y2
z2 = % zone%index%_z2
MsgBox,,, Ты точнов в %Name% | %x1% | %y1% | %z1% ||| %x2% | %y2% | %z2%
break
}