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

Сообщения от Скрипты

В ответ пользователю Jewily
Аватар пользователя
7 лет назад
Jewill
Спасибо.Не знаете ли кстати,возможно ли каким-то образом давать герою одного класса перки другого(GiveHeroSkill может выдать навык первого уровня,но отказывается выдавать умения) только скриптами.Или нужно менять что-то в GameMechanics в структуре героя?[/QUOTE]
Не совсем уверен как GiveHeroSkill работает, но ею спокойно можно только навыки выдавать и повышать. На счет перков ею получается выдать только перк, который герой может изучить прямо сейчас, и он при этом должен относиться к расовому колесу умений героя.
Могу ошибаться, но чужой навык с перками только в редакторе выставить можно.
В ответ пользователю 32MeTpa
Аватар пользователя
7 лет назад
Спасибо,как я понял путём тестов,GiveHeroSkill работает именно так,как вы сказали.Т.е она выдает лишь доступные перки по расовой принадлежности
Аватар пользователя
7 лет назад
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Аватар пользователя
7 лет назад
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
В ответ пользователю Jewily
Аватар пользователя
7 лет назад
Jewill
Привет всем.Возможно ли сделать такую проверку,чтобы если определённый игрок управляется AI,то просто не выполнять скрипт карты,а если человек,то выполнить.Делается вроде через DoFile и создания нескольких доп.луа файлов,но как конкретно это реализовать не знаю.Может кто подскажет?
Можно создать рядом с MapScript.lua (или в другой папке, главное потом путь правильно написать) другие луа файлы и в них писать скрипты. Чтобы написанные там скрипты выполнялись, в MapScript нужно написать:
doFile('script.lua')
Соответственно, чтобы они не выполнялись, если игрок компьютер, можно сделать проверку:
if IsAIPlayer(PLAYER_..) == 0 then
doFile('script.lua')
end;
Здесь 0 - если игрок человек, 1 - если компьютер.
Аватар пользователя
7 лет назад
Как обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
Аватар пользователя
7 лет назад
У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать

Добавлено через 4 минуты
Vladislav A-V
Здравствуйте,уважаемые.Помогите ,пожалуйста,советом - как с помощью скрипта и какого именно, осуществить такую ситуацию: создать монстра-NPC, дать ему скриптовое имя,и название. При взаимодействии с ним ,запускается диалог, исходя из которого, нам предлагается квест (!) от которого можно отказаться с возможностью взять его позже, или принять его.При выполнении задания и взаимодействии с ним, выдаётся награда и NPC исчезает. Заранее спасибо...
Думаю если есть свободное место на карте, которое никто не видит(можно в подземелье), то можно в него наставить таких NPC хоть сто даже в одной клетке всех разместить(Лучше в разные, а то лагает) и просто их перемещать в нужные места, так проще и не нужно будет настраивать в скриптах Rotation, а то он обычно как-то не так настраивается(сбрасывается на 0).
В ответ пользователю Jewily
Аватар пользователя
7 лет назад
Jewill
Как обратится к определённому значению в строчном массиве?Например,как обратиться к 3 герою с помощью GetPlayerHeroes?
Также, как и к любому другому массиву с индексами:
heroes = GetPlayerHeroes(1);
hero = heroes[3];
Только надо учесть, что в этой функции нумерация с 0 начинается, т.е. чтобы обратиться к 3-у герою, нужно писать heroes[2].
DarkLordax
У меня возник вопрос касательно AdvMap можно ли затемнять участки? хотелось бы кое-что реализовать
Не совсем понятно, что конкретно нужно. Если затемнять освещение, то участками не получится, только глобальное скриптом менять. Например, пересекая регион.
Если про туман войны, то затемнить уже открытые территории нельзя. Только запретить открытие новых функцией SetWarfogBehaviour.
7 лет назад
Люди, нужна помощь. Хочу создать квест: у одного героя до определенного уровня в бою должны быть дебаффы на инициативу и атаку. Вопрос вот в чем: после боя эти дебаффы убираются, а как сделать так чтобы после битвы они сразу снова появлялись?
Аватар пользователя
7 лет назад
так попробуй:
Trigger(COMBAT_RESULTS_TRIGGER, 'CombatResult')

function CombatResult(fight_id)
local winner = GetSavedCombatArmyHero(fight_id, 1)
if winner == 'нужный_герой' then
наложить штрафы заново
end
end
Аватар пользователя
7 лет назад
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:

Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?
В ответ пользователю KioM
Аватар пользователя
7 лет назад
KioM
Вопрос к знатокам ИИ, который касается в большей степени механики игры чем самих скриптов, но и их тоже:

Если скриптами видоизменять ландшафт карты в процессе игры, нормально ли реагирует ИИ на эти изменения? или расчеты возможных действий по карте ведутся вначале и изменяя что либо кардинально (например пути движения) можно сломать логику компа?

я не замечал изменений в ИИ. Просто отметит, что зона непроходима теперь
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

После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
В ответ пользователю AlekseyS
Аватар пользователя
7 лет назад
AlekseyS

После победы над героем должен запуститься диалог, а потом катсцена, но вместо этого сразу засчитывается победа( то есть ни диалог, ни ролик не проигрываются) В чем проблема то?
Возможно при выполнении квеста автоматически засчитывается победа, т.е. если переместить
SetObjectiveState("obj1",OBJECTIVE_COMPLETED)
SetObjectiveState("alive",OBJECTIVE_COMPLETED)
на место Win(), то все скорее всего сработает. Или в настройках квестов покопаться, чтобы победа по их завершению не засчитывалась.
В ответ пользователю 32MeTpa
7 лет назад
32MeTpa
Возможно при выполнении квеста автоматически засчитывается победа, т.е. если переместить
SetObjectiveState("obj1",OBJECTIVE_COMPLETED)
SetObjectiveState("alive",OBJECTIVE_COMPLETED)
на место Win(), то все скорее всего сработает. Или в настройках квестов покопаться, чтобы победа по их завершению не засчитывалась.


Спасибо. Так и оказалось... Из-за второго квеста засчитывалась победа, хотя у обоих заданий стоят одинаковые параметры.

Статистика

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

Сейчас на сайте 4 пользователей 1406 гостей