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

Сообщения от Текущие вопросы и ответы по редактору карт

Аватар пользователя
#2891
Да. Всё очень просто.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2892
RedHeavenHero, объясните вы, мб до меня дойдет лучше... у вас получалось ранее доходчиво мне разъяснить...
Правило во взгляде...
В ответ пользователю Rhenish
Аватар пользователя
#2893
Rhenish
RedHeavenHero, объясните вы, мб до меня дойдет лучше... у вас получалось ранее доходчиво мне разъяснить...
Содержимое MOD запаковать в архив карты, сохраняя пути.
В скрипте в нужном месте написать
StartDialogScene("путь")
Насчёт пути. Берешь путь к файлу диалога (DialogScene.xdb) и отрубаешь все, что не относится к архиву, меняешь обратные слеши на прямые, добавляешь после расширения #xpointer(/DialogScene).
В итоге должно получиться что-то такое:
StartDialogScene("/папки/папки/папки/название сцены/DialogScene.xdb#xpointer(/DialogScene)")
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

CreateTreasure('some_name', TREASURE_CHEST, 10, 111, 118, GROUND, 0)

пытаюсь обратиться к нему по этому имени:

print(IsObjectExists('some_name'))

выдает nil, то есть объекта с этим именем он не находит, хотя само сокровище на карте появляется. В похожей функции CreateStatic все работает как надо. Это мое недопонимание, или ошибка разработчиков?
В ответ пользователю Jack_of_shadows
Аватар пользователя
#2895
Jack_of_shadows
Заметил такую особенность, создаю сокровище с неким скриптовым именем:

CreateTreasure('some_name', TREASURE_CHEST, 10, 111, 118, GROUND, 0)

пытаюсь обратиться к нему по этому имени:

print(IsObjectExists('some_name'))

выдает nil, то есть объекта с этим именем он не находит, хотя само сокровище на карте появляется. В похожей функции CreateStatic все работает как надо. Это мое недопонимание, или ошибка разработчиков?

не понимаю зачем ваще нужен print и т.п., но тем не менее некоторое соображение у меня есть, почему nil. Две эти строчки в скрипте у вас идут последовательно? Если да - то ничего удивительного. Между ними должна быть хоть какая-то пауза во времени, хотя бы sleep(1);. Игра просто не успевает поместить 'some_name' в список объектов и тут же провести операцию с ним. Возможно есть другая причина, другие люди подскажут
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
В ответ пользователю Jack_of_shadows
Аватар пользователя
#2896
Jack_of_shadows
Заметил такую особенность, создаю сокровище с неким скриптовым именем:

CreateTreasure('some_name', TREASURE_CHEST, 10, 111, 118, GROUND, 0)

пытаюсь обратиться к нему по этому имени:

print(IsObjectExists('some_name'))

выдает nil, то есть объекта с этим именем он не находит, хотя само сокровище на карте появляется. В похожей функции CreateStatic все работает как надо. Это мое недопонимание, или ошибка разработчиков?
Это их ошибка. Когда создается ресурс, имя, заданное в функции ему не даётся, а присваивается по умолчанию:
"номер_этажа-координата_x-координата_y--какое-то_большое_число"
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2897
не понимаю зачем ваще нужен print и т.п.
я команды вызывал из консоли, создавал сокровище, видел что оно появилось на карте, после этого проверял его наличие командой print.

RedHeavenHero, то есть часть имени я все таки знаю, все кроме большого числа? Осталось только понять может ли lua анализировать содержимое строк

Суть задачи вообще такова: в определенном месте периодически генерируется сокровище. Если игрок еще не забрал предыдущее, новое генерироваться не должно. Соответственно планировал проверять наличие по скриптовому имени.
Аватар пользователя
#2898
Jack_of_shadows
я команды вызывал из консоли, создавал сокровище, видел что оно появилось на карте, после этого проверял его наличие командой print.

RedHeavenHero, то есть часть имени я все таки знаю, все кроме большого числа? Осталось только понять может ли lua анализировать содержимое строк

Суть задачи вообще такова: в определенном месте периодически генерируется сокровище. Если игрок еще не забрал предыдущее, новое генерироваться не должно. Соответственно планировал проверять наличие по скриптовому имени.
Я делал такую же фигню, но только с существами) Может быть в этом месте поставить регион и поработать с tsObjects GetObjectsInRegion( sRegionName, nObjectsTypeID )?
ну или ещё один вариант через ж: в каком-то месте на карте(укромном) наставить сундуков, присвоить им имена. через SetObjectPosition( sObjectName, nX, nY, nFloorID = -1 ) ставить их в нужное место Проверка по имени IsObjectExists( sObjectName ). Уверен, что есть ещё какие-то варианты и попроще
Кампании для Heroes V 3.1 (Трилогия):

Пробуждение зла
Нашествие из Преисподней
Смена эпох

Скачать все кампании одним архивом: Яндекс.Диск Google.Диск

You can download the set of 3 Campaigns (English version) here


Одиночные сценарии Heroes V 3.1:


Незваные гости
Красный кристалл
Синий кристалл
Закат тьмы

Мультиплеерные карты для Heroes V 3.1:

Легендарная война
Сердце вулкана
Передел мира
В ответ пользователю Jack_of_shadows
Аватар пользователя
#2899
Jack_of_shadows
я команды вызывал из консоли, создавал сокровище, видел что оно появилось на карте, после этого проверял его наличие командой print.

RedHeavenHero, то есть часть имени я все таки знаю, все кроме большого числа? Осталось только понять может ли lua анализировать содержимое строк

Суть задачи вообще такова: в определенном месте периодически генерируется сокровище. Если игрок еще не забрал предыдущее, новое генерироваться не должно. Соответственно планировал проверять наличие по скриптовому имени.
Единственный путь, который я вижу - это перебор всех целых чисел до, например, 100000. Это будет долго и муторно, поэтому много таких сокровищ не создашь.
Анализировать строки??? В смысле?

Добавлено через 2 минуты
На заметку. Число у каждого объекта больше, чем у предыдущего.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2900
Анализировать строки??? В смысле?
ну то есть уметь искать подстроки в строках. Иными словам было бы шикарно, если бы работала конструкция наподобие
IsObjectExists('part_of_name'..*)
где * - любое значение.

вечерком попробую вариант с регионом и GetObjectsInRegion, потом посмотрим
Аватар пользователя
#2901
Первое не работает. Скриптам нужны точные имена.
GetObjectsInRegion работает, вроде как, только с героями.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2902
Да, вот еще, я все никак понять не могу, как работает ф-ия GenerateHeroInTown в свойствах редактора.
Она создает героя при входе в город. Но при входе в какой город? Только главный? Или на все города этого игрока? Как она ведет себя, если вход занят другим героем? Создает ли она героя по расе, или просто рандомом? Берет ли она этого героя из списка доступных, отмеченных галочкой в редакторе? Нужно ли ставить RandomHeroBox при входе в город, чтобы она заработала?
Потому что это бред, я не могу найти закономерность. Например, сейчас я поставил три города, один из них занят, другие свободны - как бы я не менял MainTown, герои вообще не появляются. Нигде.

Whatever
Аватар пользователя
#2903
Это позволяет выбрать героя в меню создания игры.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#2904
Ааа. Блин. А по одному герою в каждый замок одного и того же игрока никак нельзя?

Whatever
Аватар пользователя
#2905
Интерфейс не позволяет.

Добавлено через 31 секунду
Разве что через скрипты.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4