Прострел ворот EmuRT

Ackustik

Выдающийся
Местный
Старожил I степени
Сообщения
147
Розыгрыши
0
Репутация
112
Реакции
73
Баллы
1 323
Начал разбираться с исходами EmuRT last reva (как было написано) потихоньку правлю мелочевку (причем странно как будто специально баги создавали:o_O: ). Столкнулся с проблемой прострела ворот при осадах замков. Геодаты использовал разные эффект тот же. при проверки таргета на видимость через гео в EmuRT //geo_los для него ворот просто не существует стены прекрасно видит. Может кто уже сталкивался и сможет подсказать в какую сторону копать? это геодвиг при проверке таргета перед атакой какую проверку липить надо?:Iamdead:

З.Ы. Хорошо хоть сквозь ворота перс не проходит.
 
Последнее редактирование:
что то критичное?) просто пока нечего критичного не нашел ну кроме ворот конечно))
 
Если для тебя ворота критичное то тогда еще много чего интересного найдешь)
Даже не сомневаюсь, но думаю такое не только в этой сборке) глубоко в код пока не лез, так правка XMLок, чуток кода что бы с компилилось, увеличил рэндж каста флага на осадах фортов, вобщем по мелочи. А так поднял на работе на серваке, пару задротов бегают тестят пока их все устраивает.
 

я так понимаю у геодвига он все таки спрашивает видна ли цель или нет) осталось рассказать геодвигу что ворота не пустой звук)

вот гео двиг:


GeoCollision


Shape


Помогите с пониманием Геометрии того как это все работает (хотя скорее должно работать)
 
Последнее редактирование модератором:
Есть тут те кто ставил эту сборку и была ли такая проблема, или это только у меня?
 
Последнее редактирование:
Так, для раздумий
Код:
public boolean doorInfo(int x, int y, int z, int instance, int doorid)
    {
        worldService.getRegion(x, y).getSurroundingRegions().stream().forEach(region -> {
            region.getDoorService().getDoor(instance).stream().forEach(door -> {
                final Collision collision = door.getCollision();

                if (collision == null) {
                    continue;
                }
                
                for (int ix = -MathUtil.LossyPointsOnConvert; ix <= MathUtil.LossyPointsOnConvert; ix++) {
                    for (int iy = -MathUtil.LossyPointsOnConvert; iy <= MathUtil.LossyPointsOnConvert; iy++) {
                        if (collision.isInside(x + ix, y + iy, z)) {
                            if (door.getDoorId() == doorid) {
                                return false;
                            }
                            return true;
                        }
                    }
                }
            });
        });
    
        return false;
    }
 
много чего так сказать "из коробки" только запусти, да и исходы вроде как за 14-15 год (свежие), да и под 8 яву, а есть что то по удобнее?
А какая разница под какую? Перевести овер на 8 смешно...
 
Назад
Сверху Снизу