Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Скриптинг (https://mafia-game.ru/forum/forumdisplay.php?f=10)
-   -   Вопросы по скриптингу (https://mafia-game.ru/forum/showthread.php?t=23)

alex5995 19.02.2021 18:28

Изначально я планировал сделать модель фонаря в виде масляной лампы как в пенумбре или амнезии, так как лайт освещает всё пространство вокруг Г.Г. , т.е. не направленно. Направленный поток света, как это реализовано в Boz моде не освещает стены впереди из-за их больших полигонов(экономия ресурсов?).
Цитата:

Сообщение от Firefox3860 (Сообщение 13991)
чем варианты с human_linktohand и тем, чтобы сделать фонарь оружием, не подходят?

Я не знаю как это сделать на практике ориентируясь по советам твоим, GOLOD55'а и Melhior'а. Надо конечно со всем этим повозиться, но как убирать(визуально) модель из рук при применении двуручного оружия? Скриптом? А если без оружия, на кулачках мочить врагов, с фонарём в руке? Не серьёзно, так можно лампу разбить и врага маслом облить:D:angry:
Цитата:

Сообщение от Firefox3860 (Сообщение 13991)
Тогда можно просто привязать модель фонаря к тому с заданными координатами и только скрывать и показывать лайт когда надо

Так ведь лайт жёстко привязан к руке и в первую очередь важен именно он, а не модель, которая чисто для эстетики и реализма. Координаты неиспользуемого лайта вообще левые и как я понимаю при включении фонаря он перемещается во фрейм руки.
https://mafia-game.ru/forum/imgcache...uegjjegxmb.jpg
Нельзя ли сделать, что бы лайт перемещался во фрейм повыше этой самой руки?

Firefox3860 20.02.2021 16:44

Цитата:

Сообщение от alex5995 (Сообщение 13992)
Нельзя ли сделать, что бы лайт перемещался во фрейм повыше этой самой руки?

Не понимаю, повыше - это куда? и зачем, если он уже к руке привязан?

alex5995 20.02.2021 19:17

Я изложу свои суждения по дилетански, не силён я в механике движка игры, уж не обессудь.
Изначально лайт расположен в координатах где-то там... Если мы подобрали фонарь и включили его лайт по скриптовой команде перемещается в руку. Как я понимаю, к кисти руки прикреплён фрейм, который перемещается с этой кистью и моделью в целом в пространстве карты и "тащит" за собой лайт. У фрейма(руки) меняющиеся координаты, программа считывает местоположение руки и задаёт каждые новые координаты лайту. Я это к тому что: обязательно ли фрейм должен быть в кисти руки, почему бы не сместить его по оси "y" (или "z"?) относительно руки на определённую высоту. Ну как бы обхитрить программу. Какая ей разница где находится рука модели.
Цитата:

Сообщение от Firefox3860 (Сообщение 13998)
зачем, если он уже к руке привязан?

Затем что кисть опущенной руки с лайтом находится слишком низко и не освещает поверхности выше метра. Приходится использовать скрипт анимации поднятия руки, что не удобно - персонаж во время проигрывании анимки не управляем.
Firefox3860, что-бы точно понимать суть моих вопросов глянь прохождение Парадонца на ю-тубе, где используется фонарь. Mafia Undertown - Darkness.

Firefox3860 22.02.2021 01:37

Цитата:

Сообщение от alex5995 (Сообщение 14001)
Я это к тому что: обязательно ли фрейм должен быть в кисти руки, почему бы не сместить его по оси "y" (или "z"?) относительно руки на определённую высоту. Ну как бы обхитрить программу. Какая ей разница где находится рука модели.

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

alex5995 22.02.2021 12:29

Цитата:

Сообщение от Firefox3860 (Сообщение 14014)
Можно задать фрейму-якорю любое местоположение относительно руки, и к нему будет привязываться лайт

Цитата:

Сообщение от Firefox3860 (Сообщение 14014)
лучше тогда просто к самому тому привязать

Вот об этом я и талдычу уже который пост. Не подскажешь, как это сделать практически?

KlassenAS 22.02.2021 18:20

Цитата:

Сообщение от alex5995 (Сообщение 14018)
Вот об этом я и талдычу уже который пост. Не подскажешь, как это сделать практически?

Когда привязываешь фрейм А к фрейму В , то местоположение фрейма В становится нулевыми координатами для фрейма А.
Поэтому просто задаёшь фрейму А координаты командой frm_setpos (или как её там) и это будут координаты фрейма А относительно фрейма В.
После привязывания фрейма, естественно.

Firefox3860 23.02.2021 20:03

Цитата:

Сообщение от alex5995 (Сообщение 14018)
Вот об этом я и талдычу уже который пост. Не подскажешь, как это сделать практически?

А у тебя в миссии есть актор Тома в явном виде? Во фрирайде, например, его нет (игра автоматически вставляет). Если есть, то надо сделать так. Сначала загружаешь файл миссии в BSV. Создаёшь объект other без скрипта. Потом открываешь миссию в MWE любой версии, находишь этот фрейм. В окне свойств в строке Parent пишешь ему имя актора Тома. Теперь фрейм привязан к нему, и его координаты отсчитываются от него. Теперь можно задать эти координаты уже как тебе надо, хоть повыше, хоть пониже. По идее, таким образом фрейм должен везде следовать за Томом, сохраняя заданное смещение.

alex5995 23.02.2021 20:37

Цитата:

Сообщение от Firefox3860 (Сообщение 14030)
у тебя в миссии есть актор Тома в явном виде

Для своих модов я беру чистую сцену их папки "Modding", скачанную из интернета. Уж не знаю, актор Тома здесь в явном виде или игра его автоматически вставляет.
Цитата:

Сообщение от Firefox3860 (Сообщение 14030)
Если есть, то надо сделать так

А если нет, что надо сделать?
Цитата:

Сообщение от Firefox3860 (Сообщение 14030)
таким образом фрейм должен везде следовать за Томом

А как привязать лайт к фрейму, что писать в скрипте вместо "Tommy.l_hand"?

Firefox3860 23.02.2021 22:02

Цитата:

Сообщение от alex5995 (Сообщение 14031)
Для своих модов я беру чистую сцену их папки "Modding", скачанную из интернета.

Значит, есть. Там он Tommy называется, стандартно.
Цитата:

Сообщение от alex5995 (Сообщение 14031)
А как привязать лайт к фрейму, что писать в скрипте вместо "Tommy.l_hand"?

Название того объекта, к которому надо привязать, то есть этого фрейма. Только это не вместо "Tommy.l_hand", а в команде findframe для последующей привязки командой frm_linkto.

правда, я не уверен, сработает ли такая привязка с лайтом. изначально я предполагал, что это будет модель фонаря.

alex5995 23.02.2021 23:06

Ладненько, с фонарём надеюсь как нибудь разберусь, когда вернусь к этому предмету. В последнее время делаю в максе городские локации - входябельные здания, улицы, заборы и т.п. Когда есть возможность(и желание) всем этим заниматься всё свободное время на это уходит, как-то пока не до фонаря. Или может фонарь стал мне как-бы до фонаря:).
Есть ещё одна проблема, буквально на ровном месте, а именно: не деактивируются скрипты "poster1_2"..."poster1_6" кликая на "poster1_1" в контекстном меню.
Имеется шесть скриптов с одинаковыми координатами. При нажатии кнопки действия(Е) вызываю контекстное меню выбора, где выбираю один из постеров(в данном случае "poster1_1"). После чего остальные скрипты должны деактивироваться, а меню убраться из экрана и стать недоступным. Этого почему-то не происходит. Пробовал всяко, и через эвенты тоже - результат нулевой. Что я делаю не так?

Развернуть для просмотра


dim_act 8
dim_flt 1

findactor 0,"poster1_1"
findactor 1,"Tommy"
findactor 2, "poster1end"
findactor 3,"poster1_2"
findactor 4,"poster1_3"
findactor 5,"poster1_4"
findactor 6,"poster1_5"
findactor 7,"poster1_6"

label 1
detector_waitforuse 99970004
///detector_setsignal 0, 1
mission_objectivesclear
mission_objectives 99970000
wait 200
setevent 2, 1, 2 /с эвентами тоже не работает/
wait 300
act_setstate 3, inactive
act_setstate 4, inactive
act_setstate 5, inactive
act_setstate 6, inactive
act_setstate 7, inactive

--или скриптом /poster1end/--

dim_act 6
dim_flt 1

findactor 0, "poster1_1"
findactor 1, "poster1_2"
findactor 2, "poster1_3"
findactor 3, "poster1_4"
findactor 4, "poster1_5"
findactor 5, "poster1_6"

label 101
goto 101

event 1
wait 300
///act_setstate 0, inactive
act_setstate 1, inactive
act_setstate 2, inactive
act_setstate 3, inactive
act_setstate 4, inactive
act_setstate 5, inactive

[свернуть]


Текущее время: 00:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot