Герой с активным спеллом.
Если он добивает юнита этим спеллом, то весь урон, наносимый героем, становится сильнее.
Усиление урона я триггерно сделаю, это не проблема.
Вопрос в другом, как посоветуете реализовать то, от чего отсчитывать?
Можно дать юниту маркерную абилу-пустышку на 1000 уровней (прелоадить маркер где-нибудь на карте) и при убиении этим юнитом тем самым спеллом врага повышать ему лвл этого маркера. Это изи, но тупо, т. к. долго грузится в РО и будет понижать скорость загрузки карты. Ну и плюс лимит 999 повышений, хотя его и хватит в 95% случаев.
Есть другие идеи?

Принятый ответ

avuremybe, это каким ты боком не получишь индекс от юнита
проще некуда
чтобы получить нужный индекс просто перечисляем весь массив и ищем нужного юнита типо так
globals
int Count
int array SpellUP
unit array UN
endglobals
int i = 0
while(i <= Count){
if UN[i] == Нужный юнит {
SpellUP[i]++
наши действие
}
i++
}

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
7 лет назад
Отредактирован avuremybe
0
ClotPh, зачем тебе 100 глобалок? у тебя 3 глобалки для 8092 способностей. Если тебе нужно еще больше способностей, скажи - я тебе добавлю еще одну глобалку.
0
21
7 лет назад
0
avuremybe, а, вот как, примерно понимаю...
но, по-моему, у 16Gb еще и проще раскурить
ладно, твой вариант просто буду иметь в виду, все равно вся эта тема со всеми вариантами в целом полезная, короче
0
16
7 лет назад
Отредактирован avuremybe
0
ClotPh, оба варианта работают по одной логике. Разница в том, что обращение к хэшу происходит значительно дольше, чем обращение к глобальной переменной.
Поэтому хэш рекомендуется использовать только в ситуациях где глобальными переменными выкрутится либо не возможно, либо код становится слишком громоздким и работает уже не быстрее обращения к хэшу.
Но в любом случае, юзать хэш - это куда разумнее, чем способности-маркеры, юниты-носители-маркеров итд.
0
13
7 лет назад
0
avuremybe:
NekoriDes, и ты думаешь, если ты через надстройки пишешь просто название, то оно компилируется без udg_ ?
Это с каких пор он добавляет udg_?
На самом деле только сейчас въехал про что твой вариант. Не заметил цикл сразу и даже посчитал тебя не очень умным. В итоге, не очень умный здесь я.
Тащемта, лучший вариант. Я уже хотел про объекты начать загонять.
0
16
7 лет назад
0
ClotPh, еще один важный вопрос по поводу оптимизации.
У тебя юниты с этой твоей способностью когда умирают, ты их потом воскрешаешь? Или он просто умер и всё, нет больше ни юнита ни его способности?
0
20
7 лет назад
0
Базы данных в помощь. Поиск найдет инфу по ним. Хватит изобретать костыли.
0
21
7 лет назад
0
avuremybe, обычно воскрешаются, есть некая небольшая вероятность, что юнит будет удален (если это клон героя, вызванный кем-то другим), но это редко
2
28
7 лет назад
Отредактирован nvc123
2
что вы тут за херню несёте
перебор массива циклом нафига?
способов атача существует дофига и все они сделаны до вас
берёте любой и юзаете
индекс юнита можно получить либо через хэндл либо через юзердату
avuremybe:
и ты думаешь, если ты через надстройки пишешь просто название, то оно компилируется без udg_ ?
да
оно компилируется без udg_
udg_ это приставка только для редактора переменных
читай статьи ну или открой карту mpq архиватором и вытащи j файл если не веришь
вот вам простой пример атача
struct Data{
	int dmg; // число которое надо хранить у юнита, в данном случае урон
	private static int bHandle=0x100000;
	
	// этот метод получает объект по юниту
	static thistype load(unit u){
		thistype this=GetHandleId(u)-bHandle;
	}
}

// при создании юнита или инициализации карты
unit newUnit; // юнит которому нужно будет сохранять значение
Data d=Data.load(newUnit); // загружаем информацию по юниту
d.dmg=0; // устанавливаем значение в 0

// пример использования
unit a // юнит которому надо изменить число
Data d=Data.load(a); // загружаем информацию по юниту
BJD(I2S(d.dmg)); // выводим текущее значение числа на экран
d.dmg+=10; // увеличиваем значение числа на 10
этой теме посвящено более половины статей по триггерам
0
13
7 лет назад
0
nvc123 чем объекты лучше перебора циклом? По сути, с циклом код читабельнее.
0
28
7 лет назад
0
NekoriDes, тем что цикл делает кучу итераций
в то время как мой код делает лишь 1
это совершенно разные подходы же
и чем это он блин читабельнее?
своей тупостью?
вообще за поиск индекса перебором расстреливать надо
0
13
7 лет назад
0
nvc123, я не представляю себе случая, в реальном мире, когда такой цикл может как-то навредить. Поэтому зачем новичку париться с объектами, если можно воспользоваться простейшим вариантом. Читабельнее как раз для новичка. Два года назад именно этим способом я бы и воспользовался.
Штука просто в том, что конкретные вещи мы начинаем применять, когда уровень компитенции становится выше, а выше он становится тогда, когда мы пытаемся добиться конкретных целей, в данном случае оптимизации. Если вот именно сейчас у меня нет потребности в жесткой оптимизации и я не дрочу на каждый байт, то вполне могу использовать то, что мне известно и то, что мне удобно. Ваш Капитан Очевидность
Но это всё оффтоп конечно, лол. Сорри.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.