[ВОПРОС] Ряд вопросов по созданию карты - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
 
Опции темы
#1
Старый 30.05.2013, 11:53
  #1
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
[ВОПРОС] Ряд вопросов по созданию карты

Здравствуйте. Мог задавать вопросы в уже созданных темах, но их довольно много, да и будут появляться время от времени по той или иной причине, ибо делаю карту, по крайней мере для 5-ки, первый раз. И если с созданием рельефа и т.п. проблем особо нет, равно как и с превращением героя из сценок в полноценного героя, то вот например со скриптовой частью проблемы есть. Итак...

Прописал я вот скрипт на монстрике, чтоб при первом контакте с ним текст выдавало, но вот в чем проблема. Когда я после этого вновь на него нападаю, то после битвы вновь выдает этот же текст, что, как уже понятно, малость не в тему. Плюс ко всему, когда ход переходит к другому игроку, то у него тоже выдает текст с моба, но он то ведь не контактировал с монстром. И на сколько я онимаю, то такая ситуация будет видимо с любым текстом. Можно ли сделать так, чтоб текст выдавало только активировавшему скрипт герою, только активировавшему игроку? И на сколько вообще реальна идея сюжетной многопользовательской карты?

Скрипт же я писал такой...

	function tekstmob1(heroname)
  MessageBox(GetMapDataPath().."lesorubnecro.txt");
  SetObjectEnabled('Lesorub',true);
  sleep(5);
  MakeHeroInreractWithObject(heroname,'Lesorub');
  Trigger(OBJECT_TOUCH_TRIGGER,'Lesorub',nil);end;
  SetObjectEnabled('Lesorub',nil);
Trigger(OBJECT_TOUCH_TRIGGER,'Lesorub','tekstmob1');

Размер карты Невероятная или вроде того. Рассчитываю на четырех игроков и если реально, то у каждого свой сюжет. Игра три против одного.
И еще, как лучше организовывать квесты, через скрипт или уйму второстепенных квестов, когда следующий выдается при условии выполнения прошлого? И если не сложно, то можно пример, как делать квест на скриптах? Просто прежде с ними не работал, в тройке ивентов хватало сполна.
Ichigame вне форума
Ответить с цитированием
#2
Старый 30.05.2013, 18:00
  #2
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30671
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30671
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

И на сколько вообще реальна идея сюжетной многопользовательской карты?
Вполне реальна, просто редко такие делают, но иногда всё же можно встретить.
TalkBoxForPlayers
Такая функция есть в патче 3.1, у неё много функций, не только вывод сообщения конкретному игроку. Если же сообщение маленькое, то идеальным вариантом считаю ShowFlyingSign(messageName, objectName, targetPlayerID = -1, time = 1.0); потому как не требует от игрока никаких действий и вообще очень удобен с игровой точки зрения.
Рассчитываю на четырех игроков и если реально, то у каждого свой сюжет. Игра три против одного.
Не очень хорошая идея, как по мне. Для мультиплеера лучше, чтобы игроки были более-менее равноправны. В героях 3, раз говорите, что играли, есть "Прекрасный новый мир", неплохой пример мультиплеерной карты, где у разных игроков отличаются стратегии и квесты (правда квесты там ограничиваются хижинами пророка, но всё же). А три против одного в любом случае будет имбалансно, даже если четвёртый игрок явно сильнее трёх остальных.
Ment вне форума
Ответить с цитированием
#3
Старый 30.05.2013, 23:49
  #3
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

Вполне реальна, просто редко такие делают, но иногда всё же можно встретить.
Мог попробовать на малом, но решил, что коль уж делать, то нечто эпичное. Конечно, для полноценной сетевой наверное не айс такой габарит, но найдутся наверное любители. А так расчет на то, чтоб было несколько линий сюжета, которые можно было бы пройти и в соло. То есть, если будет выбор за кого играть, то на одной карте можно было бы сделать несколько историй в контексте общей.

TalkBoxForPlayers
Такая функция есть в патче 3.1, у неё много функций, не только вывод сообщения конкретному игроку. Если же сообщение маленькое, то идеальным вариантом считаю ShowFlyingSign(messageName, objectName, targetPlayerID = -1, time = 1.0); потому как не требует от игрока никаких действий и вообще очень удобен с игровой точки зрения.

Вещь интересная, только вот по описанию много файлов требует. Обязательно ли прописывать на все ссылки или можно в пункте с инконкой сделать например просто пустые кавычки? И я верно понял, что файл с ответами надо по любому делать или можно как-то сделать чтоб был вот текст и без вариантов просто ок. Прошу прощения, если вопрос туп, но просто первый опыт работы со скриптами.

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

Ммм, может и верно. С другой стороны в голове уже просто сюжет. Если кратко, то некогда победили Некроманта, но он не умер, а впал в анабиоз и вот проснулся. Легкая амнезия не мешает ему набирать мощь, что можно даже в игре натурально показать, если например как только игра началась освещение на карте дневное, а через время сменится на некропольское. Уравнять игроков можно сильными монстрами, которые с одной стороны одного притормозят, а с другой других ускорят. Но, возможно, будет игра и 1 на 1 на 2, либо таки на 2. Карту делаю прежде всего себе с женой.

Касательно водоворотов. Можно ли его использовать как телепорт, войти на поверхности и выйти под землей?

Добавлено через 4 часа 32 минуты
TalkBoxForPlayers

Есть проблема с функцией. Справа от иконки нет основного текста. Как я понимаю, надо в русском патче добавить файл с настройкой, чтоб функция нормально работала. Но вот в какой именно пак надо?

a2p1-data.pak
a2p1-texts.pak
data.pak
sound.pak
sound.pak
texts.pak
Ichigame вне форума
Ответить с цитированием
#4
Старый 30.05.2013, 23:58
  #4
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30671
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30671
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

Обязательно ли прописывать на все ссылки или можно в пункте с инконкой сделать например просто пустые кавычки?
Не проверял, но вероятно значение nil она принимает. Пустые кавычки как раз нежелательно.
И я верно понял, что файл с ответами надо по любому делать или можно как-то сделать чтоб был вот текст и без вариантов просто ок.
Да можно скорее всего без них.
Касательно водоворотов. Можно ли его использовать как телепорт, войти на поверхности и выйти под землей?
Если там нет какой-либо специфики, то да, можно, не самый сложный скрипт. Триггер на зону (одноклеточную, поверх водоворота) или, может, даже на касание, а потом функция SetObjectPosition.
Есть проблема с функцией. Справа от иконки нет основного текста. Как я понимаю, надо в русском патче добавить файл с настройкой, чтоб функция нормально работала. Но вот в какой именно пак надо?
На самом деле в любой, НО! Это будет работать только у Вас. Вам же надо, чтобы работало у всех. Поэтому грамотнее файл вшивать в архив с самой картой. По тому пути, что там дан.
Ment вне форума
Ответить с цитированием
#5
Старый 31.05.2013, 10:39
  #5
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

Не проверял, но вероятно значение nil она принимает. Пустые кавычки как раз нежелательно.

Принимает, но так понял, что лучше ставить какую-нибудь, иначе там белый квадрат, что не красиво.

Да можно скорее всего без них.
Попробовал без ответа. В итоге скрипт просто не срабатывает. Так что какой-то ответ видимо надо по любому.

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

На самом деле в любой, НО! Это будет работать только у Вас. Вам же надо, чтобы работало у всех. Поэтому грамотнее файл вшивать в архив с самой картой. По тому пути, что там дан.
Пробовал в файлы совать, но не помогло. А вот упаковка в карту работает идеально, большое спасибо. Жаль системы плюсов не увидел, а то поставил бы в благодарность.

Итог по функции. Может и знаете сами, но другим, кто увидит, может полезной оказаться.
1. Иконку лучше ставить, иначе вместо нее просто белый квадрат.
2. Места под текст справа от иконки мало, как ни крути. Разве что делать так, указать там мол нажмите пкм на иконке и читайте текст так. В описании иконки места много и там уж точно все будет норм видно.
3. Есть дополнительное поле текста, как понимаю,оно под ответами. Сколько места там не проверял, но явно не много.
4. Возможность делать до 5 вариантов ответа хороша, особенно если можно прописать для разных ответов разный результат.

Вот такие пироги. Что же до моего скрипта, то он работает, но... Как сделать так, чтоб при повторном контакте с тем же монстром, когда я на него уже нападаю, мне не выдавало тот же текст с вариантом ответа после боя? Проблема не только с ентим, но и когда был просто месседжбокс, то тоже после боя вновь выдавало текст, что не ок, поскольку после боя он уже не актуален. Вот мой скрипт...
function tekstmob1(heroname)
s = GetMapDataPath()..'lesorubnecro.txt';
bb = GetMapDataPath().."ezdadalee.txt";
TalkBoxForPlayers (PLAYER_1,nil,s, s, nil, TALK, 0, nil, nil, 0, bb)
SetObjectEnabled('Lesorub',true);
sleep(5);
MakeHeroInreractWithObject(heroname,'Lesorub');
Trigger(OBJECT_TOUCH_TRIGGER,'Lesorub',nil);
end;
SetObjectEnabled('Lesorub',nil);
Trigger(OBJECT_TOUCH_TRIGGER,"Lesorub","tekstmob1");
Ichigame вне форума
Ответить с цитированием
#6
Старый 31.05.2013, 11:58
  #6
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

Вот такая вещь есть...
https://forum.heroesworld.ru/showpost...39&postcount=2
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#7
Старый 31.05.2013, 12:05
  #7
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

Вот такая вещь есть...
https://forum.heroesworld.ru/showpost...39&postcount=2
Оно хорошо, но отображать так будет только у меня. А файлик чтоб отображалось как надо я встроил. Но все равно спасибо.

Тут другая проблема нарисовалась. Делаю вот скрипт согласно инструкции из руководства, но он не работает о.о То есть, когда я взаимодействую с объектом, текст не выдает, не смотря на код вида...

function hatF ()
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub" nil );
MessageBox (GetMapDataPath().."lesorubnecro.txt");
end;
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub" "hatF" );

Пробовал ставить как на моба, то есть монстра, так для проверки и на иной предмет. Эффект тот же, то есть никакой.
Ichigame вне форума
Ответить с цитированием
#8
Старый 31.05.2013, 12:10
  #8
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

function hatF ()
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", nil );
MessageBox (GetMapDataPath().."lesorubnecro.txt");
end;
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", "hatF" );

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#9
Старый 31.05.2013, 12:57
  #9
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

function hatF ()
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", nil );
MessageBox (GetMapDataPath().."lesorubnecro.txt");
end;
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", "hatF" );
Спасибо. Работает, но с оговоркой. Текст выдает после эффекта контакта. То есть, если с монстром, то в начале будет бой, а уже только потом выдаст текст. Но такой текст у того же монстра можно и в настройки прописать, без скрипта. А надо чтоб именно перед боем текст был. Ну, а в случае с колонной там опыт прибавляющей или вроде того ситуация та же. В начале давала опыт, потом текст. Надо наоборот. Выходит, что видимо надо чтоб на момент скрипта предмет с чем контактируешь вырубало, ты спокойно читаешь текст, а потом оно врубается и можно уже драться или еще чего. То есть, такой вот код скорее заработает...

function tekstmob1(heroname)
Trigger(OBJECT_TOUCH_TRIGGER,'Lesorub',nil);
MessageBox(GetMapDataPath().."lesorubnecro.txt");
SetObjectEnabled('Lesorub',true);
sleep(5);
MakeHeroInreractWithObject(heroname,'Lesorub');
end;
SetObjectEnabled('Lesorub',nil);
Trigger(OBJECT_TOUCH_TRIGGER,'Lesorub','tekstmob1' );
Я верно понял? Но вот как сделать так, чтоб текст был виден только тому кто активировал, а не выскакивал у других при их ходе...
TalkBoxForPlayers использовать можно, но тогда текст придется выносить на описание иконки в вопроснике, потому что справа от иконки много не влезет. Конечно, это можно назвать платой за подачу информации, но не уверен что придется игрокам по нраву вот так кликать по иконке чтоб прочитать дальнейший текст квеста или текст перед битвой с монстром.
В общем, с выводом текста в мультиплеере есть свои трудности...

Что за файлик?
Файл: UI/CommonBoxes/TalkBox/Text.txt
Содержание:

Формат файла: plain Unicode text (в NOTEPAD сохранить как Unicode)

Данный файл рекомендуется распространять в составе архивов карт, которые используют TalkBoxForPlayers.

..............................
То есть, делаешь в архиве карты папки чтоб текстовый файл был в архиве по описанному пути. Файл в юникоде, как обычно. Ну и в самой файле надо чтоб было прописано

Тогда у того кто запустит твою карту этот скрипт в плане текста справа от иконки будет работать нормально. Но места там мало, ползунок как в месседжбоксе не появляется, так что много не напишешь от слова совсем. Больше всего напоминает работу Сфинкса с его вопросом и тремя вариантами ответа.
Извини, если слишком подробно пишу.
Ichigame вне форума
Ответить с цитированием
#10
Старый 31.05.2013, 13:23
  #10
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

	function hatF()
	SetObjectEnabled('Lesorub', 1)
	Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", nil)
	MessageBox(GetMapDataPath().."lesorubnecro.txt")
end
SetObjectEnabled('Lesorub', nil)
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", "hatF")
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#11
Старый 31.05.2013, 14:00
  #11
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

RedHeavenHero
	function hatF()
	SetObjectEnabled('Lesorub', 1)
	Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", nil)
	MessageBox(GetMapDataPath().."lesorubnecro.txt")
end
SetObjectEnabled('Lesorub', nil)
Trigger(OBJECT_TOUCH_TRIGGER, "Lesorub", "hatF")
Работает. Одно но, видимо мою идею не осуществить, но... А можно ли как-то сделать, чтоб при передаче хода этот текст не выдавало остальным игрокам?
Ichigame вне форума
Ответить с цитированием
#12
Старый 31.05.2013, 16:59
  #12
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2377
Выставка наград
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

IchigameРаботает. Одно но, видимо мою идею не осуществить, но... А можно ли как-то сделать, чтоб при передаче хода этот текст не выдавало остальным игрокам?
	MessageBoxForPlayers(GetPlayerFilter(GetCurrentPlayer()),GetMapDataPath().."lesorubnecro.txt")
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#13
Старый 31.05.2013, 19:42
  #13
^
Ichigame
📖
Регистрация: 30.05.2013
Сообщения: 7
Регистрация: 30.05.2013
Сообщения: 7
По умолчанию
Re: [ВОПРОС] Ряд вопросов по созданию карты

RedHeavenHero, спасибо. Должно сработать. А вот в мануале такой функции не было, так что вдвойне спасибо.
Ichigame вне форума
Ответить с цитированием
Ответ


Опции темы



Часовой пояс GMT +4, время: 10:22.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru