Спасибо.Не знаете ли кстати,возможно ли каким-то образом давать герою одного класса перки другого(GiveHeroSkill может выдать навык первого уровня,но отказывается выдавать умения) только скриптами.Или нужно менять что-то в GameMechanics в структуре героя?[/QUOTE]
Не совсем уверен как GiveHeroSkill работает, но ею спокойно можно только навыки выдавать и повышать. На счет перков ею получается выдать только перк, который герой может изучить прямо сейчас, и он при этом должен относиться к расовому колесу умений героя.
Могу ошибаться, но чужой навык с перками только в редакторе выставить можно.
Сообщения от Скрипты
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
doFile('script.lua')Соответственно, чтобы они не выполнялись, если игрок компьютер, можно сделать проверку:if IsAIPlayer(PLAYER_..) == 0 then
doFile('script.lua')
end;Здесь 0 - если игрок человек, 1 - если компьютер.
Добавлено через 4 минуты
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Как обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
heroes = GetPlayerHeroes(1);
hero = heroes[3];Только надо учесть, что в этой функции нумерация с 0 начинается, т.е. чтобы обратиться к 3-у герою, нужно писать heroes[2].У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Если про туман войны, то затемнить уже открытые территории нельзя. Только запретить открытие новых функцией SetWarfogBehaviour.
Trigger(COMBAT_RESULTS_TRIGGER, 'CombatResult')
function CombatResult(fight_id)
local winner = GetSavedCombatArmyHero(fight_id, 1)
if winner == 'нужный_герой' then
наложить штрафы заново
end
end
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
Multiplayer: Господство, Извечное противостояние, Война за Магию, Торговая империя, Анатомия войны, Эксперимент
SingleScenario: Последний Рубеж, Трон, Элиралис, Вернуться домой!, Лабиринты разума
Campaign: Колонизация
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:
Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
я не замечал изменений в ИИ. Просто отметит, что зона непроходима теперь
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После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
SetObjectiveState("obj1",OBJECTIVE_COMPLETED)
SetObjectiveState("alive",OBJECTIVE_COMPLETED)на место Win(), то все скорее всего сработает. Или в настройках квестов покопаться, чтобы победа по их завершению не засчитывалась.
Возможно при выполнении квеста автоматически засчитывается победа, т.е. если переместитьна место Win(), то все скорее всего сработает. Или в настройках квестов покопаться, чтобы победа по их завершению не засчитывалась.SetObjectiveState("obj1",OBJECTIVE_COMPLETED)
SetObjectiveState("alive",OBJECTIVE_COMPLETED)
Спасибо. Так и оказалось... Из-за второго квеста засчитывалась победа, хотя у обоих заданий стоят одинаковые параметры.