Ñêðèïòû - Ñòðàíèöà 260 - Ôîðóì HeroesWorld-à

Áûñòðàÿ íàâèãàöèÿ ïî îñíîâíûì ðàçäåëàì ôîðóìà:
Òóðíèðû
ÊÀÐÒÛ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ãåðîè Ìå÷à è Ìàãèè 5 - Êàðòîñòðîèòåëüñòâî (Ðåäàêòîð êàðò)  ýòîì ðàçäåëå ìîæíî îáñóæäàòü âñå ÷òî êàñàåòñÿ ðåäàêòîðà êàðò äëÿ Heroes of Might and Magic V. Òàê æå çäåñü îáñóæäàåì êàðòîñòðîèòåëüñòâî.

Îòâåò
Ñòðàíèöà 260 èç 264
 
Îïöèè òåìû
#3886
Ñòàðûé 22.03.2024, 01:15
  #3886
^
Shiroyasha2910
📖
Ðåãèñòðàöèÿ: 07.07.2019
Ñîîáùåíèÿ: 48
Ðåãèñòðàöèÿ: 07.07.2019
Ñîîáùåíèÿ: 48
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Азгалор

А он везде нужен. Во всех функциях где нужно указывать путь к какому-то файлу, требуется первым вписывать слеш:

"/Effects/_(Effect)..."
"/Characters/..."
"/Sounds/_(Sound)/..."
"/DialogScenes/..."
"/Maps/SingleMissions/..."

Везде, кроме GetMapDataPath()


Писал до этого, что с GetMapDataPath() тоже белый экран. А вот если прописать абсолютный путь обычным образом, то работает.
Shiroyasha2910 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3887
Ñòàðûé 21.05.2024, 02:56
  #3887
^
Shiroyasha2910
📖
Ðåãèñòðàöèÿ: 07.07.2019
Ñîîáùåíèÿ: 48
Ðåãèñòðàöèÿ: 07.07.2019
Ñîîáùåíèÿ: 48
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Доброй ночи, есть ли способ с помощью скриптов восстановить темную энергию? Или кроме подсчета с помощью GetPlayerNecroEnergy ничего нет?
Shiroyasha2910 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3888
Ñòàðûé 10.06.2024, 14:30
  #3888
^
Madara_X
 
Àâàòàð äëÿ Madara_X
📖
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Всем привет! Вопрос по функции PlayObjectAnimation. При использовании объекты встают в раскорячку. Существа некрополиса. Читал на форуме, что это из-за того, что к существу не привязана данная анимация. Хотелось бы узнать, как можно исправить эту недоработку? Может, можно как-то прописать путь до файла анимации?
Вот пример кода:
PlayObjectAnimation("sklep5", "death", ONESHOT_STILL)
PlayObjectAnimation("archlich", "cast", ONESHOT);
Madara_X âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3889
Ñòàðûé 10.06.2024, 16:15
  #3889
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Madara_XВсем привет! Вопрос по функции PlayObjectAnimation. При использовании объекты встают в раскорячку. Существа некрополиса. Читал на форуме, что это из-за того, что к существу не привязана данная анимация. Хотелось бы узнать, как можно исправить эту недоработку? Может, можно как-то прописать путь до файла анимации?
Вот пример кода:
PlayObjectAnimation("sklep5", "death", ONESHOT_STILL)
PlayObjectAnimation("archlich", "cast", ONESHOT);

Большинство существ и героев имеют 2 вида анимаций: анимации арены(например, с припиской -arena), и анимации карты приключений(например, с припиской -adv). Если вы хотите задействовать какое-то существо на карте чтобы оно проигрывало анимации с арены, нужно отредактировать конфиг из MapObjects/Раса этого существа, чтобы оно применяло модель и анимации арены как на самой арене, так и на карте приключений. Для этого возьмём к примеру Вампиров из Некрополиса, откроем файл Vampire.(AdvMapMonsterShared).xdb по пути MapObjects/Necropolis. Тут нас интересуют только первые 2 строки, Model и AnimSet. Как видим, здесь модель LOD и анимация -adv, а значит у существа низкокачественная модель и всего 1 анимация специально для карты - idle. Нужно скопировать файл в свою карту, положить по такому же пути, и в первой строке убрать приписку _LOD, а во второй строке _LOD-adv заменить на -arena. Должно получиться такое между кавычек:
Model href="/_(Model)/Creatures/Necropolis/Vampire.(Model).xdb#xpointer(/Model)"
AnimSet href="/_(AnimSet)/Creatures/Necropolis/Vampire-arena.(AnimSet).xdb#xpointer(/AnimSet)"
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3890
Ñòàðûé 11.06.2024, 12:21
  #3890
^
Madara_X
 
Àâàòàð äëÿ Madara_X
📖
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Азгалор, спасибо огромное! Выручил! Хотел еще спросить по поводу StartCombat() и SiegeTown(). Я правильно понимаю, что я не могу в функции SiegeTown() задать доп параметры в виде вражеского героя и его армии? Думаю реализовать битву через StartCombat() и задать осадную арену. Вот только не могу найти файлик. Ищу по пути /Arenas/CombatArena/Stronghold_arena, но вижу там только текстуры, материалы и объекты арены. Отсюда вопрос: где искать файл с ареной (какая у него должна быть приписка?) и возможно ли реализовать SiegeTown() с доп параметрами?
Madara_X âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3891
Ñòàðûé 11.06.2024, 17:13
  #3891
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Madara_XАзгалор, спасибо огромное! Выручил! Хотел еще спросить по поводу StartCombat() и SiegeTown(). Я правильно понимаю, что я не могу в функции SiegeTown() задать доп параметры в виде вражеского героя и его армии? Думаю реализовать битву через StartCombat() и задать осадную арену. Вот только не могу найти файлик. Возможно ли реализовать SiegeTown() с доп параметрами?

Пожалуйста, был рад помочь) Насчет SiegeTown() - принимает только 3 аргумента, а именно: heroName(герой который будет осаждать), townName(город который будет осаждать), arenaName(кастомная арена для осады. Аргумент можно не заполнять, в таком случае осада произойдёт на стандартной для города арене, т.е. трава для людей и эльфов, лава для демонов и т.д.). Заполняется, кстати говоря, вот так: SiegeTown("Godric", "/Maps/Scenario/C6M5/Ur-Hekal.xdb#xpointer(/AdvMapTown)",
'/Scenes/CombatArenas/Boss_c6m5_Biara.xdb#xpointer(/AdventureFlybyScene)'). Это кусок кода из финальной миссии оригинальной кампании за Зехира, где нужно победить Биару и Властелина. Можешь от туда подсмотреть как всё работает, там как раз и скрипты для осады города(бои с Биарой), и для битв на кастомной арене(со щитом и катапультой) с Властелином.
По поводу StartCombat как осада - посмотрел в файлах, и так понимаю что осада через эту функцию реализована только для битвы с Властелином, для которой создана специальная папка боевой арены. Находится она по пути Arenas/CombatArena/FinalCombat. Так что, если тебе нужно сделать уникальную осаду, можешь посмотреть как это реализовано на той арене. Впрочем, чуть ниже я пропишу как найти ссылки на осадные карты, и можешь попробовать использовать их для StartCombat(), но если тебе нужна просто заскриптованная осада, то проще пользоваться SiegeTown(), сам город(если не запланировано его наличие у нужного оппонента) можно поставить где-то вне зоны видимости, а во время боя на начальной стадии просто спавнить оппоненту юнитов, или же спавнить их ещё перед боем
Madara_XИщу по пути /Arenas/CombatArena/Stronghold_arena, но вижу там только текстуры, материалы и объекты арены. Отсюда вопрос: где искать файл с ареной (какая у него должна быть приписка?)

Верно, в тех папках прописаны модели арены и их расположение на ней, т.е. башни, стены и ворота. Вообще, ссылки на осадные арены прописаны в конфигах самих городов. Т.е., ставишь(или открываешь в ресурсах игры и смотришь сразу там файл, но удобней пожалуй через Shared, т.к. там сразу полный путь к файлу) город, заходишь в его Shared и там увидишь строку Combat, в которой прописана ссылка на боевую арену города. Эта ссылка ведёт на файл, который подтягивает саму карту арены и объекты(башни, стены и ворота) на неё.
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3892
Ñòàðûé 11.06.2024, 18:21
  #3892
^
Madara_X
 
Àâàòàð äëÿ Madara_X
📖
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Спасибо, сейчас буду пробовать!
upd.
Чем дальше в лес, тем толще партизаны... Выдает ошибку скрипта Hero is not reserved (для вражеского героя). Хотя герой стоит на карте, другие скрипты с ним работают. Возможно ли вообще начать бой с героем на карте?
P.S. Добавлять в резерв через Player Properties тоже пробовал, не работает(
Madara_X âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3893
Ñòàðûé 11.06.2024, 19:40
  #3893
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Madara_XСпасибо, сейчас буду пробовать!
upd.
Чем дальше в лес, тем толще партизаны... Выдает ошибку скрипта Hero is not reserved (для вражеского героя). Хотя герой стоит на карте, другие скрипты с ним работают. Возможно ли вообще начать бой с героем на карте?
P.S. Добавлять в резерв через Player Properties тоже пробовал, не работает(

Чтобы работать с функцией DeployReserveHero(), нужно добавить героя в резерв игроку и чтобы этот герой не находился на карте
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3894
Ñòàðûé 11.06.2024, 19:46
  #3894
^
Madara_X
 
Àâàòàð äëÿ Madara_X
📖
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

АзгалорЧтобы работать с функцией DeployReserveHero(), нужно добавить героя в резерв игроку и чтобы этот герой не находился на карте

Опытным путем я выяснил, что я могу вызывать героя из резерва для StartCombat(), правда он нейтральный, даже если я в редакторе присваиваю ему принадлежность. Однако я хочу провести бой с конкретным персонажем, который уже есть на карте, но функция отказывается его воспринимать(

Я видел эту реализацию скрипта у других. Возможно, ты подскажешь, как вытащить карту из кампании? Тогда бы я смог сам покопаться в коде) И потом, если интересно, поделиться решением)
Madara_X âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3895
Ñòàðûé 11.06.2024, 19:51
  #3895
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Madara_XВозможно, ты подскажешь, как вытащить карту из кампании?

Создаёшь новую карту, открываешь ресурсы нужной тебе карты кампании, экспортируешь их в корневую папку новой карты. Закрываешь карту, открываешь повторно, и у тебя карта становится картой из кампании
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3896
Ñòàðûé 11.06.2024, 22:28
  #3896
^
Madara_X
 
Àâàòàð äëÿ Madara_X
📖
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ðåãèñòðàöèÿ: 08.06.2024
Ñîîáùåíèÿ: 7
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Посмотрел, как это реализовано у RedHeavenHero (2 миссия) - в итоге там все оказалось гораздо банальнее, чем я думал. Там просто гарнизону присвоен тип города. Никаких сложных скриптов. Пойду пробовать реализовывать)

Добавлено через 40 минут
Выяснилось, что игре стабильно пофиг на параметр TownType. Уже даже полазил в Shared гарнизона, там есть интересный параметр TerrainAlign, который тоже ни на что не влияет...

Добавлено через 1 час 20 минут
Решение для будущих поколений: ставите Outpost (для которого работают модификаторы города), а затем заменяете его модельку через Shared на то, что вам нужно
Madara_X âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3897
Ñòàðûé 12.06.2024, 07:48
  #3897
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Приветствую! Я правильно понимаю, TalkBoxForPlayers() багует если попытаться передать в него переменные? Попробовал передавать переменную в текст диалога, сам TBFP в моём случае имеет только 2 варианта ответа, но с переданной переменной варианты ломаются, в итоге появляются ещё 2 варианта: первый(третий) это копия текста диалога, а второй(четвертый) уже сама переменная. Это ведь никак нельзя обойти, верно?

upd: Если использовать в вариантах ответов, то работает нормально, но вот почему-то если использовать в тексте диалога то ломается. Странно...
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3898
Ñòàðûé 12.06.2024, 15:07
  #3898
^
Jack_of_shadows
 
Àâàòàð äëÿ Jack_of_shadows
📖
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 531
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 531
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Азгалор, 100% должно работать.
__________________
ÐÏÃ-ñöåíàðèé äëÿ HoMM5: Ïóòü ãåðîÿ

×àÂî ïî ñîçäàíèþ êàðò äëÿ HoMM5: ×àÂî
ÐÏÃ-ñöåíàðèé äëÿ HoMM5: Ïóòü ãåðîÿ

×àÂî ïî ñîçäàíèþ êàðò äëÿ HoMM5: ×àÂî
Jack_of_shadows âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3899
Ñòàðûé 12.06.2024, 16:53
  #3899
^
Àçãàëîð
 
Àâàòàð äëÿ Àçãàëîð
📖
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 226
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Jack_of_shadowsАзгалор, 100% должно работать.

Хм, ну вот как получается:
КликПервый скрин как должны выглядеть варианты ответов, а второй как по итогу это работает если добавить передачу переменного в аргумент с текстом самого диалога

Возможно, дело в самом коде? Он у меня такой:

TalkBoxForPlayers(PLAYER_1, "/Characters/Heroes/Windranger/Icons/Teacher.(Texture).xdb#xpointer(/Texture)", "/TalkBoxes/InfoTeacher.txt", {"/TalkBoxes/Job_2/dialog_job_2_v2_desc.txt"; job_art=GetArtefactName(job_art)}, nil, "TalkBoxesWithTeacherJobDialog2Answers", 1, "/TalkBoxes/dialog_name.txt", nil, 0, "/TalkBoxes/Job_2/dialog_job_2_agree_" .. textvar .. ".txt", "/TalkBoxes/Job_2/dialog_job_2_refuse_" .. textvar2 .. ".txt" )
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3900
Ñòàðûé 13.06.2024, 00:24
  #3900
^
Jack_of_shadows
 
Àâàòàð äëÿ Jack_of_shadows
📖
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 531
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 531
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Азгалор, долго вспоминал, короче нужно в этом случае обязательно передавать все 5 вариантов ответов, если используются только 2, то после них добавить еще , nil, nil, nil.
__________________
ÐÏÃ-ñöåíàðèé äëÿ HoMM5: Ïóòü ãåðîÿ

×àÂî ïî ñîçäàíèþ êàðò äëÿ HoMM5: ×àÂî
ÐÏÃ-ñöåíàðèé äëÿ HoMM5: Ïóòü ãåðîÿ

×àÂî ïî ñîçäàíèþ êàðò äëÿ HoMM5: ×àÂî
Jack_of_shadows âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
Îòâåò
Ñòðàíèöà 260 èç 264


Îïöèè òåìû



×àñîâîé ïîÿñ GMT +4, âðåìÿ: 18:18.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Ðóññêèé)

ßíäåêñ öèòèðîâàíèå    Top.Mail.Ru