Varang Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) begin AI_USING_POTION float timerHealth5float timerMagicka5float timerFatigue5short doOnce if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendif Нет, не помогло. Как пропадает разом 3 бутылки у целителя, так оно и осталось...может, через StopScript попробовать? Вдобавок некоторые НПС стали вдруг "тупить" с выпиванием зелий... Изменено 22 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 дай полный скрипт Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 begin AI_USING_POTION float timerHealth short doOnce if ( doOnce ); NPC мертв return elseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть return endif if ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймер elseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффект elseif ( GetHealthGetRatio < 0.5); стало мало жизни if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Equip "p_restore_health_e" 1; выпить бутылек set timerHealth to 2; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего Equip "p_restore_health_q" 1 set timerHealth to 2 elseif ( GetItemCount "p_restore_health_c" > 0 ) Equip "p_restore_health_c" 1 set timerHealth to 2 elseif ( GetItemCount "p_restore_health_s" > 0 ) Equip "p_restore_health_s" 1 set timerHealth to 2 elseif ( GetItemCount "p_restore_health_b" > 0 ) Equip "p_restore_health_b" 1 set timerHealth to 2 endif endif end Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 не вижу причины, добавь сообщение для проверки: Equip "p_restore_health_e"MessageBox "выпил p_restore_health_e"set timerHealth to 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) не вижу причины, добавь сообщение для проверки: Equip "p_restore_health_e"MessageBox "выпил p_restore_health_e"set timerHealth to 2Я понял в чем косяк. Походу, локация при перезагрузке не грузилась с новым инвентарем. Потому и штука такая, щас начал заново вообще из др. этапа игры, и все получилось. Инвентарь походу добавляется 1 раз, при пересейве не работает, а в этой локации я видимо как-то уже был, хоть и не дрался с орками. Как я понял, по итогу должно быть так! begin AI_USING_POTION float timerHealthfloat timerMagickafloat timerFatigueshort doOnceif ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendif if ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффектelseif ( GetHealthGetRatio < 0.5); стало мало жизни if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Equip "p_restore_health_e" 1; выпить бутылек set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего Equip "p_restore_health_q" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_c" > 0 ) Equip "p_restore_health_c" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_s" > 0 ) Equip "p_restore_health_s" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_b" > 0 ) Equip "p_restore_health_b" 1 set timerHealth to 3 endifendif;----------------------------МАГИЯif ( timerMagicka > 0 ) set timerMagicka to ( timerMagicka - getsecondspassed )elseif ( GetEffect, sEffectRestoreSpellPoints )elseif ( GetMagicka < 150) if ( GetItemCount "p_restore_magicka_e" > 0 ) Equip "p_restore_magicka_e" 1 set timerMagicka to 3elseif ( GetItemCount "p_restore_magicka_q" > 0 ) Equip "p_restore_magicka_q" 1 set timerMagicka to 3elseif ( GetItemCount "p_restore_magicka_s" > 0 ) Equip "p_restore_magicka_s" 1 set timerMagicka to 3elseif ( GetItemCount "p_restore_magicka_c" > 0 ) Equip "p_restore_magicka_c" 1 set timerMagicka to 3elseif ( GetItemCount "p_restore_magicka_b" > 0 ) Equip "p_restore_magicka_b" 1 set timerMagicka to 3endifendif;-------------------Усталостьif ( timerFatigue > 0 ) set timerFatigue to ( timerFatigue - getsecondspassed )elseif ( GetEffect, sEffectRestoreFatigue )elseif ( GetFatigue < 150) if ( GetItemCount "p_restore_Fatigue_e" > 0 ) Equip "p_restore_Fatigue_e" 1 set timerFatigue to 3elseif ( GetItemCount "p_restore_Fatigue_q" > 0 ) Equip "p_restore_Fatigue_q" 1 set timerFatigue to 3elseif ( GetItemCount "p_restore_Fatigue_s" > 0 ) Equip "p_restore_Fatigue_s" 1 set timerFatigue to 3elseif ( GetItemCount "p_restore_Fatigue_c" > 0 ) Equip "p_restore_Fatigue_c" 1 set timerFatigue to 3elseif ( GetItemCount "p_restore_Fatigue_b" > 0 ) Equip "p_restore_Fatigue_b" 1 set timerFatigue to 3endifendifend КОРОЧЕ, ВСЯ ЭТА МАХИНА ВМЕСТЕ НЕ РАБОТАЕТ (ОПЯТЬ)!!! Хотя отдельно со здоровьем работала вполне....что за нах... ЧТО УЖЕ НЕ НРАВИТСЯ ЭТОМУ КС, БЛИН!!! Изменено 22 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 ты добавил только одну выделенную строку между указанными ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) ты добавил только одну выделенную строку между указанными ?Я больше ничего не добавлял. Я нашел ошибку в пересейве, и написал скрипт полностью, решив, что в этом косяк, но как только я добавил блоки Магии и Усталости, опять все перестало робить (см выше) Провел тест - убрал Магию и Усталость - все снова заработало! ПС Мне уже скоро сниться будет, как я убиваю гарнизон Валенвариона в 100500 раз)))) Изменено 22 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 для отладки нужно зайти в дом и сохранитьсяпотом сделать и подключить тестовый плагв нем ставишь на улицу перед домом нужных тебе неписей со скриптами загружаешь сохранение, выходишь из дома и проверяешьи что получилось я не понял не люблю я скрипты, вечно в них какие-то нюансы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) для отладки нужно зайти в дом и сохранитьсяпотом сделать и подключить тестовый плагв нем ставишь на улицу перед домом нужных тебе неписей со скриптами загружаешь сохранение, выходишь из дома и проверяешьи что получилось я не понял не люблю я скрипты, вечно в них какие-то нюансы.так и сделал. Создал тестового парня на выходе из пещер Уршилаку у одного из сейвов. Все норм регенится - и магия, и мана. Щас еще бойца запилю и усталость проверю.Проверил, все работает. УРА!Теперь осталось обдумать, развесить ли скрипт индивидуально, или через Свитчер, размножив на 5-8 копий...но этот уж потом. ПС Маг с регеном маны просто имба...боец с регеном выносливости - тоже... ПС Еще раз всем спасибо за терпеливую помощь! Изменено 22 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Vladii Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) Народ, проблема с фарготом в сейда нин. После того, как он засовывает деньги в пень - он остается стоять в болоте. а не уходит. Изза чего это может быть? Скрипты что на фарготе, что на пне стандартные, (на фаргота я хочу просто другой скрипт повесить, но сперва эту бы проблему решить. Пень не тронут, стоит как и стоял. На фаргота подвешено у меня еще участие в паре квестов, но подвеска в виде диалогов. Журнал квеста с хрискаром был изменен, но я вернул ему прежний вид (удалил изменения через МЕЕ)Это стандартный скриптbegin LocalState;used on objects just to track a locak varshort stateend LocalState Этот скрипт я хочу подвесить на фаргота begin fargoth_scriptshort stateshort drunkfloat timerif ( MenuMode == 1 ) returnendifif ( state == 0 ) additem "key_fargoth" 1 set state to 1endifif ( GetJournalIndex "MS_Lookout" < 100 ) returnendifif ( drunk == 1 ) set timer to ( timer + GetSecondsPassed ) if ( timer > 3 ) if ( GetFatigue > 80 ) modcurrentfatigue -100 if ( GetFatigue < 0 ) Say "vo\w\m\Hit_WM012.mp3" "Ooph!" endif endif set timer to 0 endif returnendifif ( drunk == 0 ) additem "potion_comberry_brandy_01" 5 removeitem "common_shirt_04" 1 removeitem "common_shoes_04" 1 setdisposition 50 setspeed 20 aiwander 256 0 0 0 0 40 0 0 40 30 0 set drunk to 1endifend Но и в 1 и во втором случае наступает стопор у фаргота с остановкой после закладки в пне просто может на фаргота действует по игре глобальный скрипт и он у меня был изменен? Если действует глобалка, подскажите, какая именно, чтоб я проверил по оригиналу изменения Изменено 22 марта, 2019 пользователем Vladii Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 Если действует глобалка, подскажите, какая именно, чтоб я проверил по оригиналу измененияlookOutScript. Это не глобалка, а локальный скрипт, повешенный на активатор, спрятанный в модельке маяка. Причем от скриптов на Фарготе он совсем не зависит, потому даже не знаю, в чем может быть проблема. Ссылка на комментарий Поделиться на другие сайты Поделиться
Vladii Опубликовано 22 марта, 2019 Жалоба Поделиться Опубликовано 22 марта, 2019 (изменено) lookOutScript. Это не глобалка, а локальный скрипт, повешенный на активатор, спрятанный в модельке маяка. Причем от скриптов на Фарготе он совсем не зависит, потому даже не знаю, в чем может быть проблема. Ок, спасибо, проверю. Сейчас просто собираю большой скомпилированный квестопак по Сейда Нин, работаю в основном с буржуйскими модами и где то проскочило маленький …. Вроде и рельеф не меняется, и объекты, а чтото глючит. ПыСы. спасиб, отлагало. У меня еще Свафнир стоит, и на него я тоже повесил модельку маяка, ибо та башня что на нем была за маяк не прокатывает. Скорее всего дело было в этом, изменил название статика на свафнирском маяке - все пошло норм Изменено 22 марта, 2019 пользователем Vladii Ссылка на комментарий Поделиться на другие сайты Поделиться
Vladii Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 И еще маленький вопросик. Не подскажите название скрипта, который вызывает появление сообщения о том, что "Надо взять кинжал на столе" в Имперской канцелярии при первоначальном запуске игры Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 А не ChargenScript, случайно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Vladii Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 (изменено) ChargenDagger висит на самом кинжале, для отработки ударов. А нужен именно тот, кто выдает сообщение: "возьмите кинжал". Будем искать. Просто сообщение надо подвесить дополнительное в канцелярии при запуске новой игры, когда уже пройдена идентификация.ПыСы. Все, спасиб большое за наводку. Стал отсматривать все скрипты этой серии - нашел Изменено 23 марта, 2019 пользователем Vladii Ссылка на комментарий Поделиться на другие сайты Поделиться
РЕДМЕНЪ Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 (изменено) Сообщение на экран выводится командой MessageBox, например: begin ScriptBlaBlaBla short once if ( MenuMode == 1 ) return endif if ( once == 0 ) if ( GetDistance, Player <= 200 ) MessageBox "Проклятье! Опять вылез этот назойливый месседж-бокс!" "Да ладно, не злись, так положено." Set once to 1 endif endif endВешается на любой активатор либо вставляется новой секцией в нужный скрипт.ЗЫ: я опоздун. Изменено 23 марта, 2019 пользователем РЕДМЕНЪ Ссылка на комментарий Поделиться на другие сайты Поделиться
Vladii Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 Сообщение на экран выводится командой MessageBox, например: begin ScriptBlaBlaBla short once if ( MenuMode == 1 ) return endif if ( once == 0 ) if ( GetDistance, Player <= 200 ) MessageBox "Проклятье! Опять вылез этот назойливый месседж-бокс!" "Да ладно, не злись, так положено." Set once to 1 endif endif endВешается на любой активатор либо вставляется новой секцией в нужный скрипт. ЗЫ: я опоздун. Там просто нету смысла ставить новый активатор. Продолжаю работать по Сейда Нину, нашел чудный скрипт, выдающий в начале игры маленькие ништяки в зависимости от выбранных основных и вспомогательных навыков, вот и надо привесить люстру-напоминалку игроку про то, что ничтяки нне забываем а забираем. А сообщение по кинжалу все равно выскакивает - вот за него и зацепился Ссылка на комментарий Поделиться на другие сайты Поделиться
РЕДМЕНЪ Опубликовано 23 марта, 2019 Жалоба Поделиться Опубликовано 23 марта, 2019 Ты хочешь свою напоминалку впаять прямо в месседж-бокс про кинжал? Если да, то мне кажется, что не стоит этого делать: новым ништякам - новая напоминалка. Ссылка на комментарий Поделиться на другие сайты Поделиться
ShadowMimicry Опубликовано 24 марта, 2019 Жалоба Поделиться Опубликовано 24 марта, 2019 Собственно вопрос. Нету ли какой то так сказать(пропатченой) более стабильной версии CS в которой все возможно работают м? А то та что из коробки, уже задолбала своими вечными мелкими лагами(залипание окон, выделение 1500 статиков и проч и проч) Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 Хочу повесть на кричура скрипт, который заставляет его прекращать сражение и следовать за ГГ при определённых условиях. Но как быть с возвратом в нормальное состояние при прекращении выполнения условия? if (условие для следования) if ( status == 0 ) StopCombat AIFollow, Player, 0, 0, 0, 0 set status to 1 endif endif if (условие для прекращения следования) if ( status == 1 ) Что здесь написать чтобы он прекратил идти за героем, но больше не нападал на него?? set status to 0 endif endif Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 SetFight 0 кричеру нужно в первом случае. А во втором AIWander 512,0,0,0. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 Но если поставить SetFight 0, то вск копии этого кричура станут мирными, а так делать не надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 Локальный скрипт меняет параметры только своего актера. У вас же у всех кричеров здоровье до 0 не падает, когда вы одного убиваете? Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 Установки боя актера устанавливает то, с какой вероятностью актер будет атаковать игрока. Mod/Set Fight действует и на те копии, которые появятся после того, как вы вызвали эти функции. Примечание: Когда вы используете эти функции, помните, что они изменяют не только копию объекта, НО И сам объект. То есть если вы встретите нового актера с тем же ID, у него будут новые установки alarm/Fight. Также после ухода из ячейки с актером, у которого старые значения, поспите три дня (актер выгрузится из памяти) и снова войдите вы эту ячейку. Актер будет иметь уже новые значения, взятые из информации об объекте (Информация с форумов / Cortex) Это из МСФД Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 марта, 2019 Жалоба Поделиться Опубликовано 29 марта, 2019 Хм, логично. А сделать какое-нибудь заклятие на постоянный эффект с "Усмирить существо" и добавить его скриптом сработает? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти