witchhunter Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 (изменено) У меня появилась проблема, и никак не могу ее решить. Суть такова, в моем плагине есть квест. Ночью появляется призрак и атакует игрока. Но убить его не так просто. Если атаковать, то убив можно лишь развоплотить. То есть, призрак умирает, но потом воскресает. Сам призрак должен появляться только в ночное время суток. Когда его убиваешь тело должно лежать до наступления утра а потом исчезать. Но ночью опять полностью здоровый призрак атакует, и так пока не завершить здание и не освободить душу. А теперь сама проблема. Появление призрака я сделал через gamehour и enable/disable. призрак появляется нормально, но он становится неубиваемым, у него вообще не появляется полоска здоровья и, и не атакует. Я никак не могу понять, в чем же дело, даже убрал части скрипта с оживлением,упростив до минимума, но не могу понять, какая же строка дает такой баг. вот этот самый скрипт: Begin Ghost_scriptshort DoOnceif GameHour > 5Disableendifif GamehOur < 23Disableendifif GameHour <= 5Enableendifif GamehOur >= 23Enableendifendif If GetDisabled == 0If DoOnce == 0If GetDistance Player <= 512Journal "WH_IntoTheNight" 1set DoOnce to 1endifendifendifend И если не сложно, можете рассказать о нюансах enable/disable на кричерах и неписях)) Заранее спасибо) Изменено 14 августа, 2015 пользователем witchhunter Ссылка на комментарий Поделиться на другие сайты Поделиться
AcidBat Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 enable/disable - это методы объекта с уникальным Ref ID Ссылка на комментарий Поделиться на другие сайты Поделиться
witchhunter Опубликовано 14 августа, 2015 Автор Жалоба Поделиться Опубликовано 14 августа, 2015 В 8/14/2015 в 6:19 PM, AcidBat сказал: enable/disable - это методы объекта с уникальным Ref ID призрак имеет уникальный id, если вы об этом) Ссылка на комментарий Поделиться на другие сайты Поделиться
AcidBat Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 Ну так используйте егоНапример, если у призрака id QuestGhost, но дизаблить или энаблить его нужно командами QuestGhost.disable и QuestGhost.enable соответственно. Ссылка на комментарий Поделиться на другие сайты Поделиться
witchhunter Опубликовано 14 августа, 2015 Автор Жалоба Поделиться Опубликовано 14 августа, 2015 (изменено) В 8/14/2015 в 6:44 PM, AcidBat сказал: Ну так используйте егоНапример, если у призрака id QuestGhost, но дизаблить или энаблить его нужно командами QuestGhost.disable и QuestGhost.enable соответственно. ок) сейчас попробую) В 8/14/2015 в 6:44 PM, AcidBat сказал: Ну так используйте егоНапример, если у призрака id QuestGhost, но дизаблить или энаблить его нужно командами QuestGhost.disable и QuestGhost.enable соответственно. не сработало Изменено 15 августа, 2015 пользователем morrow Ссылка на комментарий Поделиться на другие сайты Поделиться
AcidBat Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 А если вместо точки использовать -> ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Dun Dram Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 В 8/14/2015 в 6:44 PM, AcidBat сказал: Например, если у призрака id QuestGhost, но дизаблить или энаблить его нужно командами QuestGhost.disable и QuestGhost.enable соответственно.Это ж синтаксис Обливиона. В Морре QuestGhost->disable, и то, если из глобального скрипта. Если скрипт локальный, на кричере, то и этого не надо. А вообще сам призрак работает нормально? Если его просто как кричера в мир выставить, он дерется\умирает? Цитата GameHourGamehOurЗачем так? Ссылка на комментарий Поделиться на другие сайты Поделиться
witchhunter Опубликовано 14 августа, 2015 Автор Жалоба Поделиться Опубликовано 14 августа, 2015 (изменено) В 8/14/2015 в 7:42 PM, AcidBat сказал: А если вместо точки использовать -> ? тоже самое. я-> изначально использовал В 8/14/2015 в 7:53 PM, Dun Dram сказал: Это ж синтаксис Обливиона. В Морре QuestGhost->disable, и то, если из глобального скрипта. Если скрипт локальный, на кричере, то и этого не надо. А вообще сам призрак работает нормально? Если его просто как кричера в мир выставить, он дерется\умирает? Зачем так? кстати, к моему удивлению точка сработала точно так же как стрелка))) снять скрипт - призрак абсолютно нормальный. Это задумка квеста - проклятый дух, который все время возвращается. надо выполнить квест и снять проклятье - он освободится) В 8/14/2015 в 7:54 PM, Муурн Шепард сказал: Не по теме. Скрипт висит на призраке и все команды применяются к призраку (если не указано иначе, конечно).if GameHour > 5 Disable endif if GamehOur < 23 Disable endif if GameHour <= 5 Enable endif if GamehOur >= 23 Enable endif endif; этот endif лишний, он не закрывает ничего В одном фрейме по алгоритму получается, что вначале выполняется GameHour > 5 и GameHour >= 23 потом, хех. То есть призрак получает Disable и сразу же Enable. Может глючить из-за этого. Можно попробовать привести к такому виду:if ( GetDisabled == 0 ) if ( GameHour >= 6 ) if ( GameHour <= 23 ) Disable endif endif else if ( GameHour < 6 ) Enable elseif ( GameHour > 23 ) Enable endif endifлишний endif наверное когда от остальных строк очищал чтоб баг найти)сейчас попробую ваш вариант) Заработало))) огромное спасибо) теперь буду знать, как избегать подобных ситуаций) всем спасибо за советы) morrow: Не мультипостите. дописывайте новые сведения в предудущее сообщение. Изменено 15 августа, 2015 пользователем morrow Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти