(16.03.2020 18:33)fatsawhorse Wrote: [ -> ]я думаю, оптимальный вариант будет только запретить автобой!
мда...
(16.03.2020 18:33)fatsawhorse Wrote: [ -> ]Как же уже устал я разбираться с этим запретом на снятие заклинания, кто бы только знал, но хочется этот вопрос довести до конца и закрыть его!
fatsawhorse, героически создаешь себе проблемы и героически с ними борешься?
(16.03.2020 18:33)fatsawhorse Wrote: [ -> ]Я считал, чтобы запретить кнопку активации автобоя нужно просто прописать такие строки и всё
Ну, раз уж написал столько лишнего, потрудись написать еще одну строчку для вывода отладочной информации IF:M или IF:L, затем нажми на кнопку автобоя, получишь результат
и твоя мечта осуществится.
Algor
Quote:Ну, раз уж написал столько лишнего, потрудись написать еще одну строчку для вывода отладочной информации IF:M или IF:L, затем нажми на кнопку автобоя, получишь результат и твоя мечта осуществится.
- Да, здесь нужно обязательно добавить отладочные ресейверы в код, чтобы выводить сообщения.. Я как-то об этом не подумал, спасибо...
!?CM4; - действует на поле боя
!!CM:I?y80; - куда наведён курсор мыши
!!FU&y80<>2004:E; - если не на автобой, то выход
!!CM&y80=2004:F?y81; - проверяю какая кнопка была нажата
!!FU&y80=2004/y81<>0:E; - если не левая, то выход
!!CM&y80=2004/y81=0:R0; - отключаю кнопку автобоя
- вот этот код, к сожалению не будет работать - вы ошиблись и я без понятия как запретить автобой!
Я думал что он сработает, но не так! Здесь где-то ошибка и я не знаю где именно в коде?
fatsawhorse, левая кнопка разве на 0? У нее другой код, если я правильно понял.
(16.03.2020 21:19)fatsawhorse Wrote: [ -> ]вот этот код, к сожалению не будет работать - вы ошиблись и я без понятия как запретить автобой!
Ну-ну... "мы" ошиблись... Браво!
Кнопка автобоя блокируется в 2 ресивера:
Этот код проверен и работает, на случай дальнейших претензий и обвинений.
На этом моя помощь Вам завершается. Ну и процитирую свой же пост 3х летней давности:
(22.04.2017 17:33)Algor Wrote: [ -> ]fatsawhorse, без обид, скриптинг - это не твоё....
Есть давняя проблема - при начале боя, инициированного через HE:T не воспроизводятся музыкальная тема боя и звуки битвы.
Звук начинает воспроизводиться только после боя - в окне результатов битвы.
Кто-нить решал/знает как решить?
Algor, Проверил, у меня воспроизводится музыка и звуки тоже есть. Но у меня изменённые треки битв, названия идентичные игровым, но есть одно замечание: игра почему-то стандартные игровые боевые треки определяет как combat01 и т.д. (возможно связано с увеличением тем для битв от Игрика ) В каталоге они имеют имя с ЗАГЛАВНЫМИ буквами. В своём моде у меня прописано также заглавными и их игра именно так и читает (это пошло с версии 2.9.10).
helgtla, а ранее были combat01..combat04?
Мда, "решилась" проблема - у меня громкость эффектов была вставлена на 0 (громкость музыки - нормальная). При этом не было ни музыкальной темы боя, ни звуков боя.
Как только включил громкость эффектов - заиграло и то и другое. Может так и задумано, но странно...
UPD: gричем, при выставлении громкости эффектов на минимум (1), эффекты тихие, а музыка начинает играть с нормальной громкостью, в соответствии с ползунком "Громкость музыки". Так что, не критичный, но баг.
Регистр файлов COMBAT0x.MP3 ни на что не влияет.
Здравствуйте
Algor
Quote:Algor писал(а):
fatsawhorse, без обид, скриптинг - это не твоё....
- ой, помню я это... Но очень мне нравится WOG со всеми вытекающими и поэтому приходится мириться с тем, что я не понимаю в скриптописании.. Тяжело очень мне даётся самый элементарный скрипт и здесь на форуме мне 90% помогают и всем я очень за это признателен и бывает стыдно даже, что многие люди, которым помогают здесь, сами другим подсказывают, а я не могу в силу своих не знаний! А я как наглый и настырный каждый раз пытаюсь цыганить здесь коды. Да, мне правду стыдно! Каждый код я пытаюсь потом разобрать отдельно и понять манеру его написания. Самое элементарное получается, а средней сложности и очень сложные не понимаю
Если чем то другим могу быть полезен, то всегда только рад отблагодарить любого за помощь всю ту, что мне оказали! Память у меня очень хорошая и я все добрые дела помню
Algor, Вы были правы и мировоззрение потом остается. Я как-то Вас не послушал, приношу извинения.. Я проверил на работе и выяснил, что если его , как Вы ранее мне и сказали, не сбросить, то оно останется навсегда! Я на это мировоззрение рукой махнул - да ну с ним возиться - проблем больше!
За код двухстрочный по запрету использовать автобой Вам
Algor спасибо...
Есть ли команда, для проверки текущего дня? Не могу найти в чправочнике...
Элементалист, не команда, а спец. переменная
"c" (описана в разделе "Флаги, переменные""):
Это даже не переменная, а модификатор, но это уже тонкости.
Не нашёл через поиск...
Как посадить в пустую лодку героя? без костылей временных, железобетонно

ERA 1.46 - так и сижу на ней... для тестинга и генерации диалогов хватает -
P.S.
(21.03.2020 14:04)Bes Wrote: [ -> ]Как посадить в пустую лодку героя? без костылей временных, железобетонно 
Если в конкретную лодку на карте - вызовом Hero_SitToBoat.
Если лодки нет, то код будет следующий (применяется сами знаете где, если в редакторе карт герой поставлен на воду):
Code:
// Посадка героя в лодку на том месте, где он стоит (герой должен быть на карте и не в лодке, если лодки там же нет, она создаётся, если есть - она должна там стоять с начала игры).
_bool32_ HeroPlaceToBoat(_Hero_* hero, _int_ boat_subtype)
{
// Лодка.
_Struct_* boat;
// Создаём лодку.
_int_ boat_ix = CALL_7(_int_, __thiscall, 0x4BAF10, this, hero->x, hero->y, hero->z, hero->owner_id, FALSE, boat_subtype);
// Не удалсь создать лодку.
if (boat_ix < 0)
{
return FALSE;
}
// Сгенерировали лодку.
else
{
boat = (_Struct_*)(this->Field<_List_<_byte_>>(320440).Data + 40*boat_ix);
}
// Сажаем героя в лодку.
// Убираем лодку из информации клетки.
CALL_1(void, __thiscall, 0x4D7950, boat);
// Настраиваем героя.
hero->temp_mod_flags |= 0x40000;
hero->field_112 = -1;
*(_int32_*)&hero->d_morale = -1;
// Пересчитываем ходьбу героя в водную (new_mp = old_mp*new_max/old_max).
if (!(hero->temp_mod_flags & 0x1000000))
{
_int_ new_max = CALL_2(_int32_, __thiscall, 0x4E4C00, hero, TRUE);
hero->movement_points = hero->movement_points*new_max/hero->movement_points_max;
hero->movement_points_max = new_max;
}
// Настраиваем лодку.
boat->Field<_int32_>(32) = hero->id;
boat->Field<_bool8_>(36) = TRUE;
boat->Field<_int8_>(28) = hero->owner_id;
return TRUE;
}
Как это будет на ERM - сложно представить (увы, готовой команды для посадки и высадки героев в/из лодки в ERM так никто и не запрограммировал, поэтому - только СИ-шным или ассемблерным кодом, ERM тут отдыхает).