}{0TT@6bI4Здравствуйте. Протестировал ваш вариант скрипта
enemy_creatures = {106,107,108,109,110,111,112,15,16,17,18,19,20,21, 22,24,25,26,27,28}
counter = length(enemy_creatures) --Размер счётчика не задаётся вручную
for enemy = 1, counter do
if GetHeroCreatures(hero, enemy_creatures[enemy])>=1 then
counter = counter -1
end
end
немного изменив. Всё работает. Но рекомендую воспользоваться более удобным решением обхода массива:
for key, id in enemy_creatures do
if GetHeroCreatures(hero, id)>=1 then
counter = counter - 1
end
end
Здравствуйте! Протестировал, почему-то у меня более удобный вариант работает правильно, а вот первый так же делает неправильное число. Кстати, протестировал его в "расширенной" версии моего скрипта, то есть...
reputation = 0;
player_heroes = { "RedHeavenHero03", "RedHeavenHero02" }
enemy_creatures = { 106, 107, 108, 109, 110, 111, 112, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 }
friend_creatures = { 600, 601, 602, 603, 604, 605, 606, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }
function conditions()
print("reputation = ", reputation );
for h, heroes in player_heroes do
for e, enemy in enemy_creatures do
for f, friend in friend_creatures do
if GetHeroCreatures(heroes, enemy) > 0 and GetHeroCreatures(heroes, enemy) <= 99 then
reputation = reputation - 1
sleep(1)
elseif GetHeroCreatures(heroes, enemy) >= 100 then
reputation = reputation - 2
sleep(1)
elseif GetHeroCreatures(heroes, friend) > 0 then
reputation = reputation + 1
end
end
end
end
end
И вот что странно. Стоят у меня на карте Валерия и Лоренцо(рыцари из массива), Валерия к тому же ещё и в резерве(это как бы ошибка, ведь для резерва(как я понял) её не должно быть изначально на карте. Поэтому не знаю влияет ли её наличие в резерве на скрипт который проверяет армии у героев), и я тестирую так: дал Валерии в резерве зелёных архангела и паладина(которые в массиве как "друзья" за которых капает +1 в репутацию за отряд), той что на карте только зелёного архангела(+1 в репутацию), а у Лоренцо 40 лендлордов, 50 стрелков, 20 ревнителей, 10 боевых грифонов, 6 адептов, 4 рыцаря Изабель, 2 падших ангела. В сумме, Лоренцо должен давать -7 репутации, т.к. каждый красный это -1 и ни одного из них не больше 100, но почему-то счетчик сходит с ума, выдавая мне -126 очков. А ещё он начинает сходит с ума если я у Лоренцо уволю всех существ кроме, например, 40 лендлордов. Тогда он мне постепенно будет понижать счетчик до минус небольшого числа(16-36), а после совсем обнулит.
В общем, у меня задумка такая: игрок будет иметь счетчик, называющийся репутация(reputation), который: понижается за "плохих" существ и повышается за "хороших", в дальнейшем ещё планирую некоторые факторы добавить как например захват сокровищниц которыми владеет определённый игрок, битву с "хорошими" существами (о чем я уже ранее спрашивал но пока не реализовывал). Вообще, я хотел бы всю эту систему со счётчиком под одной функцией поселить, но не знаю хорошая ли это идея. Вот, нуждаюсь в помощи