undutiful Опубликовано 30 мая, 2009 Жалоба Поделиться Опубликовано 30 мая, 2009 Все дело в том что не могу понять как осуществить проверку наложенного на NPC заклинания. Т.е. К примеру я наложил на непися закл повреждения огнем в течении 5 сек. (типа поджег) Как сделать проверку какой именно эффект наложен на непся? Ну например он должен отреагировать убеганием и тушением себя в воде. И что бы он не "тушился" от отравления. То есть мне нужно не просто проверку уроном, а именно проверку магического эффекта.А то задумал один плаг, а тут вперся :( Думаю вопрусь еще во многом, но пока хоть это разрешить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Эндер Виггин Опубликовано 30 мая, 2009 Жалоба Поделиться Опубликовано 30 мая, 2009 (изменено) Во-первых, не в том разделе создал тему. Надо было тут.Во-вторых, перед тем как спрашивать стоит почитать мануалы. Например, этотИ, наконец, в-третьих - для определения горения NPC надо использовать функцию GetEffect примерно вот так:[color="blue"]If[/color] [color="green"]([/color] [color="brown"]GetEffect[/color][color="green"],[/color] [color="orange"]sEffectFireDamage[/color] [color="green"]==[/color] [color="red"]1[/color] [color="green"])[/color] [color="grey"];NPC Горит. Пора тушиться...[/color] [color="blue"]endif[/color] Изменено 30 мая, 2009 пользователем Эндер Виггин Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 30 мая, 2009 Жалоба Поделиться Опубликовано 30 мая, 2009 Во-первых, не в том разделе создал тему. Надо было тут.Переместил. Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 31 мая, 2009 Автор Жалоба Поделиться Опубликовано 31 мая, 2009 (изменено) Прошу прощения. И спасибо за ответ. Инструкцию для чайников читаю, но она все равно не дает полного представления и вопросы остаются.А вопрос следующий - Как запретить активацию трупа убитого существа? Что бы лут нельзя было собрать. Изменено 31 мая, 2009 пользователем undutiful Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 2 июня, 2009 Автор Жалоба Поделиться Опубликовано 2 июня, 2009 Че, так никто и не скажет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 2 июня, 2009 Жалоба Поделиться Опубликовано 2 июня, 2009 (изменено) Делаешь отдельное существо и вешаешь на него скрипт в духе:begin NoAct if(onActivate=1) return endif end Изменено 2 июня, 2009 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 2 июня, 2009 Автор Жалоба Поделиться Опубликовано 2 июня, 2009 Действительно просто, даже слишком. Понятно почему никто не хотел отвечать Спасибо за ответ. Пора бы мне включить мосх. Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 2 июня, 2009 Автор Жалоба Поделиться Опубликовано 2 июня, 2009 Народ, пожалуйста активнее подключайтесь к теме! Вообще не понимаю че за фигня! Можно ли как нибудь затормозить событие до нажатия кнопки ОК в месадж боксе??? Имею следующу проблему: If (то-то, то-то...) - условие соблюдаетсяМессаджБокс "Ля-ля-ля, па-па-па", "ОК" - сообщение выходитделать то-то. - следует сразу не зависимо от того, нажал ты Ок или нет. Хоть игра и встает как бы на паузу,но действие то начинается. Вообще возможно затормозить выполнение действия до нажатия на кнопку Ок? Или это возможно лишь если у тебя несколько кнопок задействовано? P/S/ Знаю, что лох в скриптографии, но хочется все сделать самому. Хоть чему то научится. В мануале про одну кнопку ничего нет :( Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 3 июня, 2009 Жалоба Поделиться Опубликовано 3 июня, 2009 (изменено) Хммм... Если я правильно понял, то тебе надо так:begin скрипт short buttonshort messaged if(условие)MessageBox "блаблабла", "ОК"set button to GetButtonPressedset messaged to 1endifif(messaged=1)if(button = -1)returnelseвыполнить действиеset messaged to 0endifendif end Вроде так.Просто ставишь в условие для действия нажатие кнопки. Изменено 3 июня, 2009 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 3 июня, 2009 Автор Жалоба Поделиться Опубликовано 3 июня, 2009 Беда в том, что я пытался использовать функцию "гет батн прессд" Итог - сообщение выходит, а кнопка не жмется продолжения скрипта нет. При этом даже меню не открывается, приходится принудительно игру закрывать :( Попробовал твой вариант. У меня приводит к тому же. Если у тебя он работает, напиши. Я тогда свой скрипт буду лопатить.Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 5 июня, 2009 Жалоба Поделиться Опубликовано 5 июня, 2009 Объясни поподробнее, что тебе нужно. Я так понял, что должно вылезать сообщение и после нажатия на кнопку "ОК" должно выполняться какое-то действие. Так?И что значит "Кнопка не жмется"? Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 5 июня, 2009 Автор Жалоба Поделиться Опубликовано 5 июня, 2009 Мне нужно что бы мой непись воскрешался после нажатия кнопки ОК, а не во время появления сообщения.Кнопка не то что бы не жмется, звук есть. Но сообщение не пропадает. Сколько бы я не жал кнопку сообщение не пропадает. При этом я не могу вызвать ни одно меню и в консоли не вводятся команды. Debug text показывает что кнопка возвращает -1 как положено. Но нажатие почему-то не уберает сообщение и я не знаю почему. Это происходит стоит только прописать функцию GetButtonPressed. Я уже не знаю что с этим делать... Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 8 июня, 2009 Автор Жалоба Поделиться Опубликовано 8 июня, 2009 Живые есть вообще? Ссылка на комментарий Поделиться на другие сайты Поделиться
Охотник за Смертью Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 Вообще-то неплохо бы сначала привести тут свой скрипт, а потом уж спрашивать Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 8 июня, 2009 Автор Жалоба Поделиться Опубликовано 8 июня, 2009 Хорошо. Вот такой код. Полюбому корявый, но пока лучше не получается. Begin dremoraNScript Short Flag; проверка был ли камень душ у игрока float dremoraNHealth Float timer Short state set dremoraNHealth to GetHealth if ( dremoraNHealth == 0) if ("Player"->HasSoulGem, "dremoraN" ); Проверка наличия у игрока камня с душой кощея set flag to 1; Камень у игрока был/есть return endif endif else set dremoraNHealth to GetHealth if ( dremoraNHealth == 0) if (flag == 0) Set timer to (timer + GetSecondsPassed) If (timer >= 2);задержка на воскрешение MessageBox "Вам кажется что вы его убили, но что то не так...", "ОК" Resurrect Set timer to 0;сброс счетчика Return endif endif endif endif End dremoraNScript Согласно этому коду непись воскрешается вместе с сообщением, а мне нужно что бы это происходило после нажатия ОК. З.Ы. По почкам не бить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Охотник за Смертью Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 Ну так правельно - ты не поставил проверку на нажатие кнопки. Тебе Serg9408 привел шаблон - используй его Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 Он говорит, что когда вставляется проверка, сообщение отказывается закрываться вообще. Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 8 июня, 2009 Автор Жалоба Поделиться Опубликовано 8 июня, 2009 И я кажется понимаю почему. Тока щас дошло. Скорее всего дело в том, что у меня таймер не сбрасывается и по условию месадж бокс так и остается висеть :( Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 8 июня, 2009 Жалоба Поделиться Опубликовано 8 июня, 2009 А ты вставил обнуление таймера в мой вариант скрипта? Ссылка на комментарий Поделиться на другие сайты Поделиться
undutiful Опубликовано 8 июня, 2009 Автор Жалоба Поделиться Опубликовано 8 июня, 2009 (изменено) Нет. Я вообще о нем не думал Щас сделал все как надо. Теперь он выглядит такBegin dremoraNScript Short Flag; проверка был ли камень душ у игрока float dremoraNHealth Float timer Short state short Button short var set dremoraNHealth to GetHealth if ( dremoraNHealth == 0) if ("Player"->HasSoulGem, "dremoraN" ); Проверка наличия у игрока камня с душой кощея set flag to 1; Камень у игрока был return endif endif else set dremoraNHealth to GetHealth if ( dremoraNHealth == 0) if (flag == 0) Set timer to (timer + GetSecondsPassed) if (timer >= 2) if (var == 0) MessageBox "Кажется вы убили его, но что то не так","Ok" set var to 1 endif set button to getButtonpressed if (button == 0) Resurrect Set timer to 0;сброс счетчика set var to 0 Return endif endif endif endif endif endif End dremoraNScript Всем большое спасибо за внимание! Черт. Тестирование показало, что многосмертность непися приводит к вылету. В чем может быть дело? Что я не учел? Изменено 8 июня, 2009 пользователем undutiful Ссылка на комментарий Поделиться на другие сайты Поделиться
KABASYA Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 Подскажите пожалуйста, что значит эта строчка AiWander, 2000, 5, 0, 60, 20, 20, 20, 0, 0, 0, 20 Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 (изменено) Эта строчка задает персонажу пакет искуственного интеллекта, заставляющий его бродить вокруг того места, где его застигла эта команда. Первое число - радиус области, по которой будет бродить NPC, второе - время исполнения пакета (то есть в данном случае он 5 часов будет гулять), третье - непонятно что, возможно - время начала исполнения, остальные - вероятности проигрывания различных анимаций при остановке. То есть "стоять смирно", "стоять свободно", "поправить прическу", "потянуться к оружию" и т.д. Полный список - см. МСФД Изменено 22 января, 2010 пользователем Serg9408 Ссылка на комментарий Поделиться на другие сайты Поделиться
KABASYA Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 У меня есть вопрос относительно скрипта mca_guard_all из плагина MCA 5.2, может кто знает, верхний блок[buspoiler]begin mca_guards_all short environmentcheckedshort willstayshort canbedeletedshort helpingshort noidleshort nohello if ( MenuMode == 1 ) Returnendif if ( GetCurrentAiPackage == -1 ) AiWander, 256, 5, 0, 60, 20, 20, 20, 0, 0, 0, 20 set helping to 0elseif ( GetCurrentAiPackage == 2 )if ( CellChanged == 1 ) AiWander, 256, 5, 0, 60, 20, 20, 20, 0, 0, 0, 20 set helping to 0endifendif if ( MCA_FightingBandits > 0 )if ( helping != 1 ) AiEscort, "player" 0 0 0 0 set helping to 1endifendif if ( helping == 1 )if ( MCA_FightingBandits == 0 ) AiWander, 256, 5, 0, 60, 20, 20, 20, 0, 0, 0, 20 set helping to 2endifendif[/buspoiler]я так понял, заставляет стражу кидаться на бандитов, а вот нижний[buspoiler]if ( GetInterior == 0 )if ( canbedeleted == 0 )if ( GetDistance, "player" < 500 ) set canbedeleted to 1endifendifendif if ( CellChanged == 1 )if ( GetInterior == 1 ) set environmentchecked to 0elseif ( canbedeleted == 1 )if ( GetDistance, "player" > 3000 ) Disableendifendifendif if ( GetDisabled == 1 ) SetDelete, 1endif if ( environmentchecked == 1 ) Returnendif set willstay to Random, 5 if ( willstay == 0 ) Disable Returnelseif ( GetInterior == 1 ) aiwander, 0, 5, 0, 60, 20, 10, 10, 0, 0, 0, 0 set environmentchecked to 1 Returnendif set environmentchecked to 1[/buspoiler]хотелось бы знать, что здесь, помогите пожалуйста, хоть приблизительно рассказать о чем тут речь идет, я в скриптах вообще левый. Ссылка на комментарий Поделиться на другие сайты Поделиться
Serg9408 Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 Если ГГ на улице уже подходил к этому стражнику, то происходит следующее:Если ГГ отходит от стражника достаточно далеко, не заходя при этом в здания, то стражник удаляетсяА если ГГ заходит в здание, то стражник удаляется с вероятностью 1/5. Зачем это надо, не знаю. Ссылка на комментарий Поделиться на другие сайты Поделиться
KABASYA Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 Вообщем переделывал я этот плагин на свой лад так, чтоб стражники кидались на бандитов всех мастей и вампиров (естественно вампирам я поставил бандитский скрипт, стражникам mca_guard_all), все бы хорошо, вот только почему то стража хлаалу реагирует на скрипт, а имперские ни в какую, зависит ли это только от скрипта или тут в другом проблема? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти