Герои Меча и Магии 5 - Картостроительство (Редактор карт)В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.
JewillСпасибо.Не знаете ли кстати,возможно ли каким-то образом давать герою одного класса перки другого(GiveHeroSkill может выдать навык первого уровня,но отказывается выдавать умения) только скриптами.Или нужно менять что-то в GameMechanics в структуре героя?\
Не совсем уверен как GiveHeroSkill работает, но ею спокойно можно только навыки выдавать и повышать. На счет перков ею получается выдать только перк, который герой может изучить прямо сейчас, и он при этом должен относиться к расовому колесу умений героя. Могу ошибаться, но чужой навык с перками только в редакторе выставить можно.
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
JewillПривет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
Можно создать рядом с MapScript.lua (или в другой папке, главное потом путь правильно написать) другие луа файлы и в них писать скрипты. Чтобы написанные там скрипты выполнялись, в MapScript нужно написать:
doFile('script.lua')
Соответственно, чтобы они не выполнялись, если игрок компьютер, можно сделать проверку:
if IsAIPlayer(PLAYER_..) == 0 then
doFile('script.lua')
end;
У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Добавлено через 4 минуты
Vladislav A-VЗдравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Думаю если есть свободное место на карте, которое никто не видит(можно в подземелье), то можно в него наставить таких NPC хоть сто даже в одной клетке всех разместить(Лучше в разные, а то лагает) и просто их перемещать в нужные места, так проще и не нужно будет настраивать в скриптах Rotation, а то он обычно как-то не так настраивается(сбрасывается на 0).
JewillКак обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
Также, как и к любому другому массиву с индексами:
heroes = GetPlayerHeroes(1);
hero = heroes[3];
Только надо учесть, что в этой функции нумерация с 0 начинается, т.е. чтобы обратиться к 3-у герою, нужно писать heroes[2].
DarkLordaxУ меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Не совсем понятно, что конкретно нужно. Если затемнять освещение, то участками не получится, только глобальное скриптом менять. Например, пересекая регион. Если про туман войны, то затемнить уже открытые территории нельзя. Только запретить открытие новых функцией SetWarfogBehaviour.
Люди, нужна помощь. Хочу создать квест: у одного героя до определенного уровня в бою должны быть дебаффы на инициативу и атаку. Вопрос вот в чем: после боя эти дебаффы убираются, а как сделать так чтобы после битвы они сразу снова появлялись?
Trigger(COMBAT_RESULTS_TRIGGER, 'CombatResult')
function CombatResult(fight_id)
local winner = GetSavedCombatArmyHero(fight_id, 1)
if winner == 'нужный_герой' then
наложить штрафы заново
end
end
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
KioMВопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
я не замечал изменений в ИИ. Просто отметит, что зона непроходима теперь
function IsDjezebetDead()
SetObjectiveState("obj1",OBJECTIVE_COMPLETED)
SetObjectiveState("alive",OBJECTIVE_COMPLETED)
sleep(10)
SetObjectRotation(Edward,55)
SetObjectPosition(Edward,19,76,0,0)
SetObjectPosition(C1,21,77,0,0)
SetObjectPosition(C2,22,74,0,0)
SetObjectPosition("mage",20,74)
StartAdvMapDialog(0)
startThread(End)
end
function End()
StartDialogScene(path.."S3/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
Win()
end
После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
AlekseySПосле победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
Возможно при выполнении квеста автоматически засчитывается победа, т.е. если переместить