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

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

В ответ пользователю JonnyP
Аватар пользователя
JonnyP
Ну почему ж. Похитранил героя - сбежал, докупил армию - снова напал. Не обязательно делать задание 'герой должен выжить'
Пусть автор решает.

Heroist, файлы xdb и lua должны быть не в промежуточных папках.
Вот их настоящие пути (не те, что надо писать в функцию)
\Maps\map1.h5m\CombatScript.xdb
\Maps\map1.h5m\CombatScript.lua
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
Та не, я не настолько не разбираюсь в скриптах)
вот полный путь к файлу:
('/Maps/SingleMissions/NewRandomMap21/CombatScript.xdb#xpointer(/Script)')

Странно, но как будто неправильно указан путь:
SetHeroCombatScript(hero1, '/CombatScript.xdb#xpointer(/Script)')

Whatever
В ответ пользователю Heroist
Аватар пользователя
Heroist
Та не, я не настолько не разбираюсь в скриптах)
вот полный путь к файлу:
('/Maps/SingleMissions/NewRandomMap21/CombatScript.xdb#xpointer(/Script)')

Странно, но как будто неправильно указан путь:
SetHeroCombatScript(hero1, '/CombatScript.xdb#xpointer(/Script)')
В том то и дело, что полный путь должен быть не /Maps/SingleMissions/NewRandomMap21/CombatScript.xdb#xpointer(/Script), а /CombatScript.xdb#xpointer(/Script), то есть файл xdb не должен находиться в папке вообще.

Вот, как примерно должен выглядеть архив с картой.
Вложения 1
1 файл • Общий размер: 422 B
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
да, все, наконец, заработало, как надо! Большое спасибо за помощь, сам бы я не разобрался.

Добавлено через 3 часа 59 минут
вот, новый вопрос.
с помощью какой функции можно работать с боевыми существами?
вот вырезка, что я опять забыл и сделал не так?

x11, x22, x33, x44, x55, x66, x77 = GetDefenderCreatures ()

if GetHeroName(hero) == 'Isabell_A1' then
SetUnitManaPoints (hero, 500)
UnitCastAimedSpell(hero, 107, x11)

знаю, что неправильно, а как еще можно узнать условное имя юнитов на поле боя и потом работать с ними?

Whatever
В ответ пользователю Heroist
Аватар пользователя
GetDefenderCreatures даёт массив, и перед "=" должна стоять только одна переменная:
xnn=GetDefenderCreatures()
Обращение к массиву несколько другое: после его имени должны стоять квадратные скобки с номером элемента, который вам нужен.
xnn[0]
xnn[length(xnn)-1]
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
снова большое спасибо. кстати, в mapscript.lua я узнавал армию героя с несколькими переменными и все работало.

Whatever
Аватар пользователя
LUA на самом деле ОЧЕНЬ гибкий язык, там частенько прокатывают конструкции, за которые в любом другом компилятор бы начал ругаться благим матом. Но иногда даже у него бывают пределы, так что лучше стараться делать всё грамотно )
 

К А
Стикеры GBF в Telegram
Аватар пользователя
ага, а как мне тогда можно искуственно повлиять на параметры существ прямо в бою? (Ну, скорее всего, это боевая функция)
Например, у многих героев стоит спеца на бонус + существам. Но похожей функции в боевых скриптах, увы, я не нашел.

Whatever
В ответ пользователю Heroist
Аватар пользователя
Heroist
снова большое спасибо. кстати, в mapscript.lua я узнавал армию героя с несколькими переменными и все работало.
Если вы про GetHeroCreaturesTypes, то, действительно, она вернёт несколько значений, а другие функции возвращают массивы в основном потому, что число значений может быть достаточно большим. Т.о. массивы удобней, если знать как их готовить.;)
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
да, я именно про неё. Массивы удобней, никто и не спорит)

Whatever
Аватар пользователя
Ну я поглядел скрипты разработчиков (все, кроме тех, что в бонусных миссиях, но там вроде ничего такого не было), такой функции не нашёл. Я бы рекомендовал поэкспериментировать: самому выдумать, как бы такая функция выглядела, если бы была, на основе известных. Кстати, по поводу известных: вот такие я функции нашёл, которых нет в оф. мануале (может, в неофициальных есть, не знаю):
SetUnitManaPoints(кому,сколько) {вроде здесь даже упоминали её}
setATB(кому, позиция ) {вот это правда интересно на мой взгляд, можно реализовывать специализации на существ с её помощью вместо увеличения статов, если просто давать таким образом определённому существу инициативу}
UnitCastGlobalSpell(кому,какой) {это точно уже упоминали}
GetRagePoints( creatureName )
GetRageLevel( creatureName )
playAnimation(кто, название анимации, повторяемость )
На основе этого могу предположить, что нужная функция, если она есть, выглядит так: SetUnitAttack|SetUnitStat|SetAttack|SetStat
Возможно...
 

К А
Стикеры GBF в Telegram
Аватар пользователя
я бы поглядел, но дело в том, что lua механика специализаций героев зарыта так, что найти её я пока не смог...а в обычных баттл скриптах у них ничего особенного нет. Хотя, я нашел себе очень интересную фишку - воскршение Николаса, наконец понял, как это по уму делалось в кампании.

Whatever
Аватар пользователя
А я не уверен, что это через боевые скрипты реализовано. Иначе бы это где-то было.
Ну попробуйте те четыре варианта, что я перечислил. Что-нибудь может и подойти.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
В этом нет смысла. Те функции, что существуют, есть в экзешнике. Других нет. Во всяком случае те, о которых говорил Мент, там нет.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
а как же тогда выйти на этот механизм действия специализаций героев? если, например, функцию get...race (как-то так), реализованную в 3.1, можно попытаться заменить, пользуясь возможностями 3.0 ., то тут у меня даже вариантов на ум не приходит.

Добавлено через 2 минуты
это должно быть что-то типа changemonsterstat

Whatever

Статистика

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