Можно делать иначе, но тогда надо исправлять пути. Поэтому лучше сделать в точности, как там, чтобы не пришлось ничего менять. Ну и да, учтите, что там скорее всего будет несколько файлов, которые Вам нужны.
Сообщения от Скрипты
Как раз там я и прокололся, оттого ничего и не работало =) Взял 1 файл, когда надо было больше =)
Спасибо всем
Спасибо всем
Whatever
помогите пожалуйста
почему этот скрипт
выдает эту ошибку :
invalid parameter type: object name must be string
почему этот скрипт
garrisons={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
for j, gar in garrisons do
Trigger(5, gar, 'capture_gar')
garrisons[gar] = {}
for i = 0, 6 do
local t, n = GetObjectArmySlotCreature(gar, i)
garrisons[gar]= {t, n}
end
end
function capture_gar(oldowner, newowner, hero, gar)
for i = 0, 6 do
if garrisons[gar][1] ~= 0 then
AddObjectCreatures(gar, garrisons[gar][1], garrisons[gar][2]*2)
end
end
DenyGarrisonCreaturesTakeAway(gar, 1)
Trigger(5, gar, nil)
end выдает эту ошибку :
invalid parameter type: object name must be string
Создайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.
Создайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.
извините но не разбираюсь в программировании и естественно не фига не понял
не могли бы вы помочь мне ?
garrison_names={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
garrisons={}
for j, gar in garrison_names do
Trigger(5, gar, 'capture_gar')
garrisons[gar] = {}
for i = 0, 6 do
local t, n = GetObjectArmySlotCreature(gar, i)
garrisons[gar]= {t, n}
end
end
function capture_gar(oldowner, newowner, hero, gar)
for i = 0, 6 do
if garrisons[gar][1] ~= 0 then
AddObjectCreatures(gar, garrisons[gar][1], garrisons[gar][2]*2)
end
end
DenyGarrisonCreaturesTakeAway(gar, 1)
Trigger(5, gar, nil)
endДобавлено через 10 минут
Создайте новый массив под GetObjectArmySlotCreature, не надо пихать всё в один, да ещё и иначе организованный.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
извините но не разбираюсь в программировании и естественно не фига не понял
не могли бы вы помочь мне ?
garrisons={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
garrisons_army={}
for j, gar in garrisons do
Trigger(5, gar, 'capture_gar')
for i = 0, 6 do
local t, n = GetObjectArmySlotCreature(gar, i)
garrisons_army[gar]= {t, n}
end
end
function capture_gar(oldowner, newowner, hero, gar)
for i = 0, 6 do
if garrisons_army[gar][1] ~= 0 then
AddObjectCreatures(gar, garrisons_army[gar][1], garrisons_army[gar][2]*2)
end
end
DenyGarrisonCreaturesTakeAway(gar, 1)
Trigger(5, gar, nil)
endЕсли честно, не факт, что заработает, просто не уверен, что переменная правильно проинициализируется, как трёхмерный массив. И да, возможно, просто стоит делать способом пусть и менее красивым, но более формальным, который точно сработает, для этого надо постараться не делать трёхмерных массивов, да и двумерные нежелательны. Но это, если не сможем сделать рабочий вариант "красивого" варианта.
Проверил. Ошибка всё же происходит из-за того, что после выполнения блока для всех гарнизонов итератор начинает перебирать созданные им за это время массивы с информацией о войсках; этим и объясняется ошибка invalid parameter type: object name must be string (а оно не string, а table)
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
работает зациклилось
но на второй раз не удваивается войска в гарнизоне а ставит столько же
надо что бы каждый раз при зачистке гарнизона войска удваивались
но на второй раз не удваивается войска в гарнизоне а ставит столько же
надо что бы каждый раз при зачистке гарнизона войска удваивались
garrison_names={'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9'}
garrisons={}
for j, gar in garrison_names do
Trigger(5, gar, 'capture_gar')
garrisons[gar] = {}
for i = 0, 6 do
local t, n = GetObjectArmySlotCreature(gar, i)
garrisons[gar]= {t, n}
end
end
function capture_gar(oldowner, newowner, hero, gar)
for i = 0, 6 do
if garrisons[gar][1] ~= 0 then
garrisons[gar][2] = garrisons[gar][2] * 2
AddObjectCreatures(gar, garrisons[gar][1], garrisons[gar][2])
end
end
DenyGarrisonCreaturesTakeAway(gar, 1)
Trigger(5, gar, nil)
endНо геометрическая прогрессия - опасная вещь :smile51:
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
я подумал что математическую прогрессию будет сложнее устроить
но я решил компенсировать это силой монстров
геометрическая тоже пойдет
буду тестировать
но я решил компенсировать это силой монстров
геометрическая тоже пойдет
буду тестировать
народ, у меня такой вопрос,
Я создал нормальный такой talkbox. Прописал там все, что надо. Затем создал функцию, все работает. Однако, возник вопрос:
Как быть, если мне надо, скажем, чтоб герой, при касании объекта, получал вопрос с вариантами ответа, каждый из которых означал выдачу ему артефакта? Функцию talkboxa придется заносить внутрь touch trigger функции (heroname) с прописанием %heroname, или можно оставить её отдельно, но тогда скрипт просто не понимает, кому ему давать артефакт. Как быть?
Я создал нормальный такой talkbox. Прописал там все, что надо. Затем создал функцию, все работает. Однако, возник вопрос:
Как быть, если мне надо, скажем, чтоб герой, при касании объекта, получал вопрос с вариантами ответа, каждый из которых означал выдачу ему артефакта? Функцию talkboxa придется заносить внутрь touch trigger функции (heroname) с прописанием %heroname, или можно оставить её отдельно, но тогда скрипт просто не понимает, кому ему давать артефакт. Как быть?
Whatever
Проблема в том, что при написании функции внутри функции, вторая перестает воспринимать команды heroname, приходится писать %heroname, а тут уже несуществующую ошибку выдает HeroesV_Map_Script_Editor (как-то так), и перестает видеть остальные настоящие ошибки скрипта :smile18:
Whatever
Гм-гм, кажется, понимаю. То есть проблема в том, что talkbox ссылается на функции, но не передаёт им в качестве аргумента heroname? А если сделать heroname глобальной переменной?
Статистика
Приветствуем новейшего участника:
Emil