Спасибо.Не знаете ли кстати,возможно ли каким-то образом давать герою одного класса перки другого(GiveHeroSkill может выдать навык первого уровня,но отказывается выдавать умения) только скриптами.Или нужно менять что-то в GameMechanics в структуре героя?[/QUOTE] Не совсем уверен как GiveHeroSkill работает, но ею спокойно можно только навыки выдавать и повышать. На счет перков ею получается выдать только перк, который герой может изучить прямо сейчас, и он при этом должен относиться к расовому колесу умений героя. Могу ошибаться, но чужой навык с перками только в редакторе выставить можно.
Спасибо,как я понял путём тестов,GiveHeroSkill работает именно так,как вы сказали.Т.е она выдает лишь доступные перки по расовой принадлежности
Vladislav A-V
7 лет назад
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Jewily
7 лет назад
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
Можно создать рядом с MapScript.lua (или в другой папке, главное потом путь правильно написать) другие луа файлы и в них писать скрипты. Чтобы написанные там скрипты выполнялись, в MapScript нужно написать:
doFile('script.lua')
Соответственно, чтобы они не выполнялись, если игрок компьютер, можно сделать проверку:
if IsAIPlayer(PLAYER_..) == 0 then doFile('script.lua') end;
Здесь 0 - если игрок человек, 1 - если компьютер.
Jewily
7 лет назад
Как обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
DarkLordax
7 лет назад
У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Добавлено через 4 минуты Vladislav A-V
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Думаю если есть свободное место на карте, которое никто не видит(можно в подземелье), то можно в него наставить таких NPC хоть сто даже в одной клетке всех разместить(Лучше в разные, а то лагает) и просто их перемещать в нужные места, так проще и не нужно будет настраивать в скриптах Rotation, а то он обычно как-то не так настраивается(сбрасывается на 0).
Как обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
Также, как и к любому другому массиву с индексами:
heroes = GetPlayerHeroes(1); hero = heroes[3];
Только надо учесть, что в этой функции нумерация с 0 начинается, т.е. чтобы обратиться к 3-у герою, нужно писать heroes[2]. DarkLordax
У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Не совсем понятно, что конкретно нужно. Если затемнять освещение, то участками не получится, только глобальное скриптом менять. Например, пересекая регион. Если про туман войны, то затемнить уже открытые территории нельзя. Только запретить открытие новых функцией SetWarfogBehaviour.
AlekseyS
7 лет назад
Люди, нужна помощь. Хочу создать квест: у одного героя до определенного уровня в бою должны быть дебаффы на инициативу и атаку. Вопрос вот в чем: после боя эти дебаффы убираются, а как сделать так чтобы после битвы они сразу снова появлялись?
Gerter
7 лет назад
так попробуй:
Trigger(COMBAT_RESULTS_TRIGGER, 'CombatResult')
function CombatResult(fight_id) local winner = GetSavedCombatArmyHero(fight_id, 1) if winner == 'нужный_герой' then наложить штрафы заново end end
KioM
7 лет назад
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
я не замечал изменений в ИИ. Просто отметит, что зона непроходима теперь
AlekseyS
7 лет назад
Есть проблема:
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
После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
Возможно при выполнении квеста автоматически засчитывается победа, т.е. если переместить