Inse, продать-купить - сделай дверь закрытой(без ключа), потом напиши диалоговый скрипт, где ты платишь деньгу, а дверь становится открытой по поводу белья - можно. очень просто сделать так, чтоб они тебе что-то в сундук, допустим, клали, а что бы что-то в интерьер добавлялось.. хмм. это надо подумать, поэкспериментировать.
1aa, мне нужна видимость присутствия. Если белье на веревке (висит\не висит) легче сделать, то пусть будет так. Просто я представления не имею с какой стороны к этому подойти. И как написать такой скрипт.
Inse, рабочий скрипт на автоматическое закрывание двери. во время написания и тестировки был сильно изнасилован мой мозг, но мне удалось заставить всё работать как надо. хотя, если заметишь баги, то отпишись в личку.
Тебе требуется скопировать нужную дверь(т.е. создать свою во вкладке Doors в Object Window) и повешать на нее скрипт(можешь тупо скопировать всё в том виде, как есть. работать будет):
Код
scn 00000testdoor
float fuckedTimerYOUMUSTWORKING ; объявляем переменную с плавающей точкой Short stopBrainsFucking ; объявляем целочисленную переменную
Begin OnActivate ; блок активации. что происходит при активации объекта
activate ; в комменте не нуждается, ИМХО set stopBrainsFucking to 0 ; присваивает значение переменной, в данном случае нулю
end ; конец блока, ага
Begin GameMode ; следующий блок. написанное тут обрабатывается в каждом фрейме. т.е. сколько у тебя фпс в игре, столько раз за секунду обработается скрипт if ( stopBrainsFucking == 0) ; если значение переменной равно нулю, то скрипт продолжается, если равно другому значению, то скрипт обрабатывает эту строку, пока оно не становится равно нулю
set fuckedTimerYOUMUSTWORKING to fuckedTimerYOUMUSTWORKING + GetSecondsPassed ; устанавливаем значение "вещественной" переменной, по сути, в 0 + количество прошедших секунд
if ( fuckedTimerYOUMUSTWORKING >= 10 ) ; проверяет сколько прошло секунд. если больше десяти(в этом случае), то скрипт продолжается, иначе эта строка обрабатывается, пока значение не станет больше 10
Activate set stopBrainsFucking to 1 ; меняет значение нашей переменной. если этого не сделать, то скрипт после завершения начнется сначала и это приведет(в данном случае) к постоянным открываниям-закрываниям двери set fuckedTimerYOUMUSTWORKING to 0 ; сброс таймера
1aa, как сделать, чтобы нельзя было перемещать весы (и гири) , а также песочные часы и книги. Если просто перетащить в Static, то с помощью Ctrl это все передвигается. При этом в инвентарь взять нельзя, но перетащить можно. Книге поставила галку "Нельзя брать", но опять таки с CTRL ее можно перетащить. Утомили меня эти двигающиеся сами по себе предметы ( когда мимо пробегаешь или просто дверью хлопнешь).
P.s. Взяла ресурсы на тарелки и вазы, так там они прочно стоят на своих местах и никакой CTRL на них не действует, в отличие от тех же тарелок и ваз в оригинале - их хоть в Static, хоть в Activator перетащи, все равно не будут статичны.
неа.. не работает Я думала, если сменить коллизии с OL_Clutter на OL_STATIC (Layer и Layer copy), то все получится. Но не работает. Все двигается при помощи CTRL.
Сделала. Просто сменить с OL_Clutter на OL_STATIC (Layer и Layer copy) недостаточно. Нужно еще выставить значения:
Motion System —> MO_SYS_FIXED Deactivator Type —> DEACTIVATOR_NEVER Solver Deactivation —> SOLVER_DEACTIVATION_OFF Quality Type —> MO_QUAL_FIXED
Может еще что надо, но я пока не знаю. Учусь.
Все работает и ничего не шевелится. Только чаши весов двигаются при помощи CTRL, а основание на месте. Не разобралась, как зафиксировать чаши весов. С книгой пока не экспериментировала. Полка, весы, гири и песочные часы не двигаются. Уже хорошо.