Fr0st Ph0en!x Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 Бояре, почему сей скрипт не работает? Сделан путем копипаста с другого моего скрипта, который был вполне дееспособен. Висит на специальном двемерском рычаге. Типа того, который двери Аркнтанда открывает. Прошлый скрипт висел на аналогичном рычаге, и все работало. Еще хотелось бы сделать так, чтобы огонь, который 00_light_fire_fuel, изначально был выключен. Скрипт:Begin 00_crank_fuel Short doonce If ( doonce == 0 ) If ( OnActivate == 1 ) "00_light_fire_fuel"->disable PlaySound3D "spiderATTACK1" MessageBox "Подача топлива прекращена." Rotate X 160 Set doonce to 1 return endif endif If ( doonce == 1 ) If ( OnActivate == 1 ) "00_light_fire_fuel"->enable MessageBox "Ведется подача топлива." PlaySound3D "steamATTACK2" Rotate X -160 Set doonce to 0 return endif endif End Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 (изменено) А он выдает какую-нибудь ошибку или что? Галочка "References persist" на огне стоит? Изменено 12 ноября, 2009 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 12 ноября, 2009 Автор Жалоба Поделиться Опубликовано 12 ноября, 2009 Тьфу! Точно ведь! Не поставил, хотя и знал об этой особенности! Спасибо. Ошибку не выдает, просто ничего не происходит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 Теперь заработало? Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 12 ноября, 2009 Автор Жалоба Поделиться Опубликовано 12 ноября, 2009 Очень странно. Вроде срабатывает, по крайней мере, рычаг теперь вертится, звук проигрывается и мессага вылезает. Но огонь все равно не исчезает. Может быть, это потому, что их там не один, а аж девять штук? И все еще хотелось бы доработать скрипт так, чтобы огонь изначально был выключен. Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 (изменено) Цитата Begin 00_crank_fuel Short doonceShort OneTime if ( OneTime == 0 ) "00_light_fire_fuel"->disable set OneTime to 1endif If ( doonce == 0 ) If ( OnActivate == 1 ) "00_light_fire_fuel"->enable PlaySound3D "spiderATTACK1" MessageBox "Подача топлива прекращена." Rotate X 160 Set doonce to 1 endifendif If ( doonce == 1 ) If ( OnActivate == 1 ) "00_light_fire_fuel"->disable MessageBox "Ведется подача топлива." PlaySound3D "steamATTACK2" Rotate X -160 Set doonce to 0 endifendif End можно упростить конструкцию: Цитата Begin 00_crank_fuel Short doonceShort OneTime if ( OneTime == 0 ) "00_light_fire_fuel"->disable set OneTime to 1endif If ( OnActivate == 1 ) If ( doonce == 0 ) "00_light_fire_fuel"->enable PlaySound3D "spiderATTACK1" MessageBox "Подача топлива прекращена." Rotate X 160 Set doonce to 1elseif ( doonce == 1 ) "00_light_fire_fuel"->disable MessageBox "Ведется подача топлива." PlaySound3D "steamATTACK2" Rotate X -160 Set doonce to 0endif endif End Цитата Может быть, это потому, что их там не один, а аж девять штук?Я никогда не искушал судьбу подобным. По моему игра поймет какой огонь тебе надо погасить. Я делаю для таких целей уникальный объект, наверное покатит если не больше 1 Reference в 1 ячейке. Изменено 12 ноября, 2009 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 (изменено) Вот девять штук - это плохо. Попробуй сделать так:На рычаг первоначальный вариант скрипта с некоторыми изменениями.Сделать глоб. переменную FFLightsOnНа огонь - скрипт: begin FFLightScript if(FFLightsOn=1) if(GetDisabled=1) enable endif elseif(FFLightsOn=0) if(GetDisabled=0) disable endif endТо есть, если переменная равна 0, огонь исчезает, а если 1 - появляется.В скрипте рычага вместо disable/enable на огонь ставишь эту переменную в 0 и 1 соответственно.Заодно снимается проблема с тем, чтобы сначала огни были потушены. Изменено 12 ноября, 2009 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 12 ноября, 2009 Автор Жалоба Поделиться Опубликовано 12 ноября, 2009 Спасибо! Очень полезно. TJ сказал: Я никогда не искушал судьбу подобным. По моему игра поймет какой огонь тебе надо погасить. Я делаю для таких целей уникальный объект, наверное покатит если не больше 1 Reference в 1 ячейке.Ну, у меня огонь тоже с уникальным ID, но их девять штук рядом. Попробую оставить один. Serg9408 сказал: Сделать глоб. переменную FFLightsOnПопробую, спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 Мой метод работает для любого количества (если работает). Ты так можешь хоть во всех комнатах разом сделать освещение с одним выключателем. Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 12 ноября, 2009 Жалоба Поделиться Опубликовано 12 ноября, 2009 Цитата уникальным ID уникальный - это когда всего 1 Reference объекта всего существует, все остальное - неуникальное =) Если тебе больше 1 огня надо выключать, то нужен способ Serg9408, если только 1, то не надо усложнять глоб. переменными. Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 12 ноября, 2009 Автор Жалоба Поделиться Опубликовано 12 ноября, 2009 Заменил модель и оставил один огонек, помогло. Громоздить глобальные переменные ради включения печки в пещере для моего ящера я уж не стал. Спасибо, господа, вы очень помогли. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 13 ноября, 2009 Жалоба Поделиться Опубликовано 13 ноября, 2009 Кстати, можно сделать и без глоб. переменной. Тогда можно сделать эту переменную локальной (для рычага), поставить ему галочку реф.перс, а в скрипте огня вместо FFLightsOn писать IDрычага->FFLightsOn Вроде может сработать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 13 ноября, 2009 Жалоба Поделиться Опубликовано 13 ноября, 2009 Serg9408 сказал: Кстати, можно сделать и без глоб. переменной. Тогда можно сделать эту переменную локальной (для рычага), поставить ему галочку реф.перс, а в скрипте огня вместо FFLightsOn писать IDрычага->FFLightsOnIDрычага.FFLightsOn - так вроде. А можно еще нифоскопом объеденить все девять огней в одну модель, хех. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 13 ноября, 2009 Жалоба Поделиться Опубликовано 13 ноября, 2009 IDрычага.FFLightsOn Это разве не для Облы? Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 13 ноября, 2009 Жалоба Поделиться Опубликовано 13 ноября, 2009 Serg9408 сказал: Это разве не для Облы?Для Морры вроде тоже, но только при ссылках на переменные в других скриптах. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 13 ноября, 2009 Жалоба Поделиться Опубликовано 13 ноября, 2009 (изменено) Посмотрел МСФД. Действительно, через точку. Изменено 13 ноября, 2009 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти