Добавлен Clamp,
опубликован
Библиотека, которая позволяет однвременно восстанавливать все разрушенные декорации с учётом условий.
либра с дудадами
library DoodadsRestore initializer initialize {
#include "cj_types_priv.j"
private float ACTIVATION_FREQUENCY = 30.0;
private float HERO_DETECTION_RANGE = 250.0;
private location tempLocation = Location(0.0, 0.0);
private group tempGroup = CreateGroup();
private int heroesAround = 0;
private void countHeroes() {
if (IsHeroUnitId(GetUnitTypeId(GetEnumUnit()))) {
heroesAround++;
}
}
private void restore() {
destructible enumDestr = GetEnumDestructable();
int destrX = GetDestructableX(enumDestr);
int destrY = GetDestructableY(enumDestr);
MoveLocation(tempLocation, destrX, destrY);
player p;
int witnessCount = 0;
for (int i = 0; i <= 11; i++) {
p = Player(i);
if (IsLocationVisibleToPlayer(tempLocation, p) && GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING && GetPlayerController(p) == MAP_CONTROL_USER) {
witnessCount++;
}
}
heroesAround = 0;
GroupEnumUnitsInRange(tempGroup, destrX, destrY, HERO_DETECTION_RANGE, null);
ForGroup(tempGroup, function countHeroes);
GroupClear(tempGroup);
if (GetDestructableLife(enumDestr) <= GetDestructableMaxLife(enumDestr) && witnessCount == 0 && heroesAround == 0) {
DestructableRestoreLife(enumDestr, GetDestructableMaxLife(enumDestr), true);
}
}
private void activate() {
EnumDestructablesInRect(bj_mapInitialPlayableArea, null, function restore);
}
private void initialize() {
trigger activator = CreateTrigger();
TriggerRegisterTimerEvent(activator, ACTIVATION_FREQUENCY, true);
TriggerAddAction(activator, function activate);
}
}
Каждые ACTIVATION_FREQUENCY секунд возрождает все деревья на карте, которые удовлетворяют двум условиям:
- Конкретное дерево никто не видит
- На расстоянии HERO_DETECTION_RANGE от дерева нет героев.
Для работы требует cJass, для установки достаточно скопировать в нестандартный код карты.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Плюс к этому Вы наверняка совершили где нибудь ошибку, давайте результат конвертирования.