Перейти к содержанию

Сообщения от Текущие вопросы и ответы по редактору карт

Аватар пользователя
13 лет назад
У меня почти такой же. Странно. Значит, карты на латинице, путь в норме. Так, ладно, а что значит - "он их не видел"? Первый раз открывалось - все хорошо. А во второй? Не получалось загрузить? какую ошибку выдавало?

Whatever
13 лет назад
Редактором открыть и редактировать можно, а в игре их нет, просто отсутствуют((
Аватар пользователя
13 лет назад
Т.е - исчезают после редактирования? Мб - редактор их не туда сохраняет? Не в ту папку?

Whatever
В ответ пользователю Олегарх
Аватар пользователя
13 лет назад
Олегарх
Загружает другую карту. Как я понимаю, надо указать нужный map.xdb(или прописать его где-то, а потом указать его номер)
По-видимому, работает только на 3.1 в сингле, но у разрабов применения ее не находил.
Однако, выкидывает в главное меню. Даже если написать достаточно простой пример:
WarpToMap(GetMapDataPath().."map.xdb#xpointer(/AdvMapDesc)", 1)
И в главном меню пишут, что не удалось загрузить карту и т.д.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Аватар пользователя
13 лет назад
Heroist , если я правильно понял то иф опркделитель героя не обязателен ?И вот еще , в топ же kind надо добавит значение , что определенный юнит в отряде героя должен выжить как в одной из миссий владык севера про темных эльфов , где нельзя было потерять дракона , хотя это можно и обойти теми же скриптами ,но все же ?
Аватар пользователя
13 лет назад
Нет, само собой.
Trigger(REGION_ENTER_AND_STOP_TRIGGER , 'trigger name' , 'function name')

function function name ()
--вот сейчас сработала проверка, когда любой герой зашел в регион. Что хотите, то здесь пишите. если нужно выполнить задание:
SetObjectiveState ('objname' , OBJECTIVE_COMPLETED)
Trigger(REGION_ENTER_AND_STOP_TRIGGER , 'trigger name' , nil)
end

Теперь, данная ф-ия будет реагировать на любое соприкосновение с этим регионом. Единственное, возможно, сюда может заглянуть и компьютер, и тогда ф-ия сработает на него. Если сделать так:
Trigger(REGION_ENTER_AND_STOP_TRIGGER , 'trigger name' , 'function name')

function function name ()
if GetCurrentPlayer() == 1 then
--вот сейчас сработала проверка, когда любой герой первого игрока зашел в регион. Что хотите, то здесь пишите. если нужно выполнить задание:
SetObjectiveState ('objname' , OBJECTIVE_COMPLETED)
Trigger(REGION_ENTER_AND_STOP_TRIGGER , 'trigger name' , nil)
end
end

То ф-ия будет работать на любого героя первого игрока - по умолчанию человека.

Whatever
В ответ пользователю Heroist
Аватар пользователя
13 лет назад
А про юнита который должен не умереть случаем не знаешь , а то прям уж очень надо ?
Аватар пользователя
13 лет назад
Т.е - существо в армии героя не должно умереть? Или на карте?

Whatever
Аватар пользователя
13 лет назад
Агась.

function proverka()
while 1 do
sleep(1)
if GetHeroCreatures ('heroname' , creature_id) < 1 then
--что случается, если кол существ в армии героя меньше 1-го
break -- если нужно отключить затем проверку
end
end
end
startThread(proverka)

Whatever
13 лет назад
Подскажите, редактировать карту без редактора(открыть как архив )
Какие файлы за что отвечают?
Аватар пользователя
13 лет назад
Вы без редактора собрались расставлять на карте объекты? В файле map.xdb находится большая часть сведений об карте. Файлы xdb можно открывать блокнотом. Файлы h5m/h5u/pak и тп открываются винраром.

Whatever
В ответ пользователю Heroist
Аватар пользователя
13 лет назад
Ээээ , чет я запутался , слип это ждать вроде , тогда зачем оно ? И вот while 1 do вот тут тож немного не понятно , в смысле , можно этот while 1 do использовать для разных веще там уровень стары ресурсы притом не надо писать чего ? Если не сложно можешь объяснить .
Аватар пользователя
13 лет назад
while 1 do -- вечная проверка, т.е - просто создали цикл, который что-либо проверяет.
sleep(1) -- небольшое засыпание для проверки, если его убрать - проверка будет без перерыва и игра упадет. А так есть неееебольшой, незаметный для игрока перерыв между проверками.
if -- аргумент для проверки. Т.е - while в данном случае запускает проверку, sleep позволяет не нагружать игру, сам он игнорируется, а проверяется только то, что написано в if и далее.
startThread(funcname) -- запускает эту проверку-функцию прямо с начала игры. Можно прописать его в любое необходимо вам время. Проверка на if начнется незамедлительно, с интервалом в sleep(1) и будет длиться до break.

function funcname ()
while 1 do
sleep(1)
if
--что вам нужно вечно проверять
break -- после него весь цикл перестает работать. Просто прекращается, дабы не нагружать игру.
end
end
end
startThread(funcname)

Вот код для проверки чего-либо. В if и далее пишете то, что вам нужно проверять. В скобках startThread - указание (без кавычек) на ф-ию, которую нужно запустить -- funcname.
Как-то так. ;)

Whatever
В ответ пользователю Heroist
Аватар пользователя
13 лет назад
Благодарствую от души , а то с этими скриптами стока мороки . Лови птичку ;)

Статистика

Приветствуем новейшего участника: recijeb