Хорошо, попробую, правда я такого ещё не делал никогда, и смутно представляю как это делается)
Добавлено: Февраль 29, 2024, 20:51:06 ну. в общем проблему почти решил, но возникла другая. исправил значит код на
if instance_exists(ob_pers) {
var closestEnemy = noone; // Инициализация переменной для хранения ближайшего врага
var closestDist = -1; // Инициализация переменной для хранения расстояния до ближайшего врага
// Перебор всех объектов типа Ob_enemys
with(Ob_enemys) {
if(instance_exists(id)) {
var dist = point_distance(x, y, other.x, other.y); // Расстояние до текущего врага
if(closestDist == -1 || dist < closestDist) {
closestDist = dist; // Обновление ближайшего расстояния
closestEnemy = id; // Обновление ближайшего врага
}
}
}
if(closestEnemy != noone) {
show_debug_message("Ближайший враг: " + string(closestEnemy)); // Вывод ID ближайшего врага в консоль
path = path_add();
if(mp_grid_path(ob_grid.grid, path, x, y, closestEnemy.x, closestEnemy.y, 1)) {
dist = point_distance(x, y, closestEnemy.x, closestEnemy.y);
path_start(path, 5, 3, 0);
} else {
path_end();
mp_potential_step(ob_pers.x, ob_pers.y, global.spp, false);
}
} else {
path_end();
mp_potential_step(ob_pers.x, ob_pers.y, global.spp, false);
}
}
теперь нападает на всех врагов и старых и новых, в новых румах тоже нападает, но только с дистанции около 100. как увеличить не пойму. кипеть начал уже , я ж не понимаю почти что делаю) Нашёл один способ увеличить дистанцию,
closestDist = dist; // Обновление ближайшего расстояния
заменил на
closestDist += dist; // Обновление ближайшего расстояния
но он тогда сначала на дальнего нападает, а в новых румах перестаёт нападать почему-то!
плохо когда не знаешь, ещё и забыл)
Добавлено: Март 02, 2024, 21:53:58 Если кто из бывалых и умелых знает как сделать правильно, и чтобы работало как надо, буду благодарен за подробные комментарии.