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

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

Аватар пользователя
4 года назад
}{0TT@6bI4, попробую... Слушай, а где можно просмотреть все горячие клавиши редактора? Я просто не знал про этот удобный сдвиг камеры через Page Up/Page Down.

Добавлено через 7 минут
Увы, не помогло. И сейчас, и вчера даже пробовал создать новую камеру на той же позиции/чуть сдвинув, но результат такой же. Может стоит все камеры удалить и заново наделать?
В ответ пользователю Азгалор
Аватар пользователя
4 года назад
Возник такой вопрос. Возможно глупый, но все же. Есть ли способ редактировать ролики после закрытия редактора, чтобы изменения попали в ролик на самой карте? А так один вылет по глупой ошибке и все ролик можно списывать.
Аватар пользователя
4 года назад
Азгалор, очень много хоткеев я показал в руководстве "Том I полного руководства к редактору карт". Например, G — отключает противную сетку. Если не помогло пересоздание новой камеры, то вряд ли поможет пересоздание всех. Но уточню: камеры всегда следует создавать со шторкой, W.

Григорий Ковалев, создайте в расширенном редакторе (с закрытым Close MOD) новый ролик (можете посмотреть гайд по созданию роликов на моем канале), сохраните, закройте.
Зайдите в GameFolder/data/, там будут папки созданного только что ролика. Подмените их всех файлами из карты. Все, редактируйте. Важно! После вылета редактора карт из "пустого" режима (close mod серым горит) все файлы остаются на месте и никуда не исчезают (если нажимали Save). Потом закинете из data папки обратно в карту.
index.bin отвечает за видимость файлов редактором.
В ответ пользователю }{0TT@6bI4
Аватар пользователя
4 года назад
Возник еще один вопрос.Можно ли создать героя так, чтобы его можно было поставить на других картах.Просто sharied героя виден только на той карте, где был создан
В ответ пользователю Григорий Ковалев
Аватар пользователя
4 года назад
Григорий Ковалев
Возник еще один вопрос.Можно ли создать героя так, чтобы его можно было поставить на других картах.Просто sharied героя виден только на той карте, где был создан
Для этого нужно запаковать файлы героя в .pak архив и положить архив в папку data файлов игры. Чтобы добавить этого героя на карту, нужно вручную вписать в Shared путь к MapObjects этого героя, например я переносил владыковских красных рыцарей, назвал их в Shared RedHeavenHero01-03_HoF, соответственно на картах ставлю уже имеющегося RedHeavenHero01-03 и приписываю ему _HoF и герой меняется на перенесённого :) 
В ответ пользователю Азгалор
Аватар пользователя
4 года назад
Можно скрипт пожалуйста после диалога ко мне присоединяется существо и кароче как сделать так чтобы это существо должно было выжить для миссии 
Такое было в владыки севера название миссии Встреча там должна была выжить Дочь Маласы 
Аватар пользователя
4 года назад
function CreatureXXXShouldSurvive(hero, id)
while 1 do
if GetHeroCreatures(hero, id)<1 then
SetObjectiveState("Имя задачи", OBJECTIVE_FAILED)
sleep(20)
Loose()
end
sleep(1)
end
end

А в нужном месте кода
 startThread(CreatureXXXShouldSurvive, "имя героя", айди сушества)
В ответ пользователю }{0TT@6bI4
Аватар пользователя
4 года назад
function StartScene(Mardigo, CREATURE_CLERIC)
StartDialogScene('/MyScene/StartScene/DialogScene1/DialogScene.xdb#xpointer(/DialogScene)')
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "reg12", nil);
while 1 do
if GetHeroCreatures(Mardigo, CREATURE_CLERIC)<1 then
SetObjectiveState("zadanie4", OBJECTIVE_FAILED)
sleep(20)
Loose()
sleep(1)
SetObjectiveState("zadanie1", OBJECTIVE_ACTIVE);
SetObjectiveState("zadanie2", OBJECTIVE_ACTIVE);
SetObjectiveState("zadanie3", OBJECTIVE_ACTIVE);
SetObjectiveState("zadanie4", OBJECTIVE_ACTIVE);
AddHeroCreatures("Mardigo", 1, 40);
AddHeroCreatures("Mardigo", 5, 10);
AddHeroCreatures("Mardigo", 10, 1);
RemoveObject("500");
RemoveObject("501");
RemoveObject("502");
RemoveObject("503");
RemoveObject("504");
RemoveObject("505");
RemoveObject("506");
RemoveObject("507");
RemoveObject("508");
end
end
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER, "reg12", "StartScene");
 
хотабыч как правильно написать?
Аватар пользователя
4 года назад
Господи, что вы пишете. Нафига вы все в одну кучу написали? Сделайте функцию, как я написал в сообщении выше.
А функцию StartScene и все, что с ней связано, отдельно. Но в ней же startThread(CreatureXXXShouldSurvive, "имя героя", айди существа). И еще. Заменять нужно на свои фантазии только там, где стоит очевидное для замены: XXX или русская фраза.

P.s. Я с телефона пишу, но когда вернусь домой к пк, напишу вам полностью правильный скрипт, если не докумекаете сами.
Аватар пользователя
4 года назад
Автопереведено
ТИП_ЦЕЛИ_РУКОВОДСТВО
Аватар пользователя
4 года назад
function CreatureShouldSurvive(hero, id)
while 1 do
if GetHeroCreatures(hero, id)<1 then
SetObjectiveState("zadanie4", OBJECTIVE_FAILED)
sleep(20)
Loose()
end
sleep(1)
end
end

function StartScene()
StartDialogScene('/MyScene/StartScene/DialogScene1/DialogScene.xdb#xpointer(/DialogScene)')
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "reg12", nil);
for i=1,4 do
SetObjectiveState("zadanie"..i, OBJECTIVE_ACTIVE) --Все задания строго понумерованы от 1 до 4, поэтому проходим в цикле
end
startThread(CreatureShouldSurvive, 'Mardigo', CREATURE_CLERIC)
AddHeroCreatures("Mardigo", 1, 40);
AddHeroCreatures("Mardigo", 5, 10);
AddHeroCreatures("Mardigo", 10, 1);
for i=500,508 do --Так как все объекты для удаления имеют строгую нумерацию от 500 до 508, прохожу в цикле
RemoveObject(i)
end
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER, "reg12", "StartScene");
В ответ пользователю }{0TT@6bI4
Аватар пользователя
4 года назад
Все хорошо сработало но когда диалог прошел начинается ход другого игрока и миссия провалена 
В ответ пользователю Alinksolo
Аватар пользователя
4 года назад
Alinksolo
Все хорошо сработало но когда диалог прошел начинается ход другого игрока и миссия провалена 

Попробуй заменить функцию проверки клериков в армии героев на эту:

function CreatureShouldSurvive(hero, id)
while 1 do
sleep ( 10 );
if GetHeroCreatures(hero, id) == 0 then
SetObjectiveState("zadanie4", OBJECTIVE_FAILED);
sleep ( 10 );
Loose();
break
end;
end;
end;

P.s. Это скелет той самой функции, которая во владыках проверяет наличие дракона у Илайи

И ещё как вариант: вынести AddHeroCreatures("Mardigo", 10, 1); над startThread, то есть:

AddHeroCreatures("Mardigo", 10, 1);
startThread(CreatureShouldSurvive, 'Mardigo', CREATURE_CLERIC)
AddHeroCreatures("Mardigo", 1, 40);
AddHeroCreatures("Mardigo", 5, 10);

Статистика

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

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