![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2821
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Цитата(Белатрис) Не ходит, только проигрывает анимацию... Если скрипт стоит на ХБ, то нужно еще учесть кучу моментов… Вот тебе для примера скрипт на заданную тему, писал давно, может что и глючит (т.к. писался не под стандартный ХБ скрипт), но идея была такая: Neverwinter Script Source //::///////////////////////////////////////////////////////////
//:: NPC ходит по стандартным точкам и эмитирует работу на поле //:://///////////////////////////////////////////////////////// void StringKrest( object oNPC ) { string sStr; switch ( Random( 5 )+1 ) { case 1: sStr = "Мне нужен отдых!"; break; case 2: sStr = "Эх! Прополка, ты прополка!"; break; case 3: sStr = "Скорей бы зима!"; break; case 4: sStr = "Любо братцы, любо! Любо братцы жить!"; break; case 5: sStr = "Сколько можно прорывать? Сил моих нет!"; break; } AssignCommand( oNPC, SpeakString( sStr )); } void main( ) { object oSelf = OBJECT_SELF; if( GetArea( GetFirstPC( ) ) != GetArea( oSelf )) // если ПС нет в локе { AssignCommand( oSelf, ClearAllActions( TRUE )); SetLocalInt( oSelf, "WPOIN_GO", 0 ); return; } if ( GetIsInCombat( oSelf )) { ExecuteScript( "nw_c2_default1", oSelf ); SetLocalInt( oSelf, "WPOIN_GO", 0 ); return; } if ( IsInConversation( oSelf )) {SetLocalInt( oSelf, "WPOIN_GO", 0 ); return;} if ( GetLocalInt( oSelf, "WPOIN_GO" ) == 1 ) return; object oWay = GetNearestObjectByTag( "WP_"+GetTag( oSelf )+"_01" ); int i =1; string sPoint = IntToString( i ); if ( GetIsObjectValid( oWay )) { ClearAllActions( ); SetLocalInt( oSelf, "WPOIN_GO", 1 ); } else {ExecuteScript( "de_sleep", oSelf ); return;} while ( GetIsObjectValid( oWay )) // Цикл на возрастание точек { ActionForceMoveToObject( oWay, FALSE, 0.0, 30.0 ); ActionPlayAnimation( ANIMATION_LOOPING_GET_LOW, 1.0, 3.0 ); ActionWait( 1.0*Random( 4 )+1 ); if ( Random( 10 )>5 ) ActionPlayAnimation( ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD ); if ( Random( 10 )>5 ) { ActionDoCommand( StringKrest( oSelf )); ActionPlayAnimation( ANIMATION_FIREFORGET_TAUNT ); } i++; sPoint = IntToString( i ); oWay = GetNearestObjectByTag( "WP_"+GetTag( oSelf )+"_0"+sPoint ); } ActionDoCommand( SetLocalInt( oSelf, "WPOIN_GO", 0 )); } // Если нет точек для ходьбы, то запустится скрипт сна de_sleep |
![]()
Сообщение
#2822
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
ээээ...... много не понятно. А какой тег точкам присваивать? (IMG:style_emoticons/kolobok_light/prankster2.gif)
|
![]()
Сообщение
#2823
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
NPC ходит по стандартным точкам... Хем... Это те точки, которые редактор задает сам при выборе NPC, и клике правой кнопкой: "Создать Точку Маршрута"...
ПС Школа по чтению скриптов простаивает, как у Айва, так и у Мамука. Стоит вам ее посетить! (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2824
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Всем доброго времени суток!
Как проиграть на строчке диалога 3D звук, находящийся в хак-паке? (IMG:style_emoticons/kolobok_light/rolleyes.gif) Заранее спасибо! |
![]()
Сообщение
#2825
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Э... неужели никто не знает?...
|
![]()
Сообщение
#2826
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Neverwinter Script Source void main( ) { object oPC = GetFirstPC( ); int iGold = GetGold( oPC ); effect eSTR = EffectAbilityIncrease( ABILITY_STRENGTH, 1 ); } Здорово! Сама недавно искала такой скрипт. Но в связи с этим возникает вопрос: это увеличение способности накладывается насовсем или на какое-то время? Вроде, временной промежуток не задается, но это же базовая способность, все-таки. |
![]()
Сообщение
#2827
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
тут пока еще ниче не накладывается.
В ApplyEffect есть параметр duration. Ставь там DURATION_TYPE_INSTANT - будет постоянный бонус (или PERMANENT.. я за много лет так и не понял какой когда правильнее использовать (IMG:style_emoticons/kolobok_light/smile.gif) ). Однако есть пара моментов: - бонус можно отдиспелить - бонус можно снять отдыхом чтобы этого избежать, надо использовать EffectSupernatural и EffectExtraordinary (ну или как-то так, по памяти пишу). |
![]()
Сообщение
#2828
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Эээ... Все бы ничего, да вот только этих EffectSupernatural и EffectExtraordinary в тулсете нет ни в функциях, ни в константах, а у функции EffectAbilityIncrease только два параметра - (int nAbilityToIncrease, int nModifyBy). (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Неужели шкурку придется делать? Я не смогу... (IMG:style_emoticons/kolobok_light/sad.gif) |
![]()
Сообщение
#2829
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
перестановка слов даст офигенный результат: SupernaturalEffect, ExtraordinaryEffect.
зы: могли бы сами искать не тупо по полному названию, а по ключевой части (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2830
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
перестановка слов даст офигенный результат: SupernaturalEffect, ExtraordinaryEffect. зы: могли бы сами искать не тупо по полному названию, а по ключевой части (IMG:style_emoticons/kolobok_light/smile.gif) Если тебе интересно, о остроумнейший, искала по слову Effect. Извини, что побеспокоила. |
![]()
Сообщение
#2831
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если тебе интересно, о остроумнейший, искала по слову Effect. Извини, что побеспокоила. эффектов куча, искать надо по более уникальной части. Ну это совет на будущее (IMG:style_emoticons/kolobok_light/smile.gif) нашла хотяб? (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2832
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Сделай сейв и загрузи его. Проверь сохранится или нет.
|
![]()
Сообщение
#2833
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Ну, раз и меня подключили к этому скрипту, то хочу немного добавить. Вам нужно выбрать что-то одно, т.к. это разные эффекты…
Как уже неоднократно писалось, да и в WIKI тема эффектов разобрана по полочкам, да и я тут тоже типа обучалки скриптингу написал, можно посмотреть и там о наложение эффектов: http://remmgen.narod.ru/tscript2.html Neverwinter Script void main( ) { object oPC = GetFirstPC( ); effect eSTR = EffectAbilityIncrease( ABILITY_STRENGTH, 3 ); // Экстраординарные ( Extraordinary ) – не могут быть сняты с помощью заклинания, автоматически снимаются в конце отдыха. effect eExt = ExtraordinaryEffect( eSTR ); // Сверхъестественные ( Supernatural ) – не могут быть сняты ни заклинанием, ни с помощью отдыха. effect eSup = SupernaturalEffect( eSTR ); // Накладываем эффекты ApplyEffectToObject( DURATION_TYPE_PERMANENT, eExt, oPC ); // или чтобы не снимался ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSup, oPC ); } а у функции EffectAbilityIncrease только два параметра - (int nAbilityToIncrease, int nModifyBy). Тут все просто… меняем константы: ABILITY_CHARISMA ABILITY_CONSTITUTION ABILITY_DEXTERITY ABILITY_INTELLIGENCE ABILITY_STRENGTH ABILITY_WISDOM и величину int nModifyBy т.е. на сколько хотим добавить тот или иной бонус к характеристики. Если не ошибаюсь, то max= 176… Неужели этого недостаточно?! Сообщение отредактировал gennady - Sep 4 2010, 16:50 |
![]()
Сообщение
#2834
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Неужели этого недостаточно?! неа (IMG:style_emoticons/kolobok_light/ph34r.gif) это не совсем корректно, точнее совсем не корректно. Твоим скриптом мы получим 2х кратный бонус, часть которого снимется после отдыха, а часть после диспела. Задача же базово совсем в другом. зы: влезание в тему, это похвально, но надо внимательнее читать пост про поставленную задачу. (IMG:style_emoticons/kolobok_light/smile.gif) Сделай сейв и загрузи его. Проверь сохранится или нет. это не то. Нужно проверять отдыхом и диспелом. Сэйв/Лоад сохраняет временные эффекты, что уж говорить об Инстант или Перманент Я Шад уже все в приват написал, но там что-то не работает. Приеду домой, сам посмотрю. зы: самый надежный способ - шкуркой. |
![]()
Сообщение
#2835
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
зы: самый надежный способ - шкуркой. Но самый муторный. Самое надежное забить на это и жить длаьше. Игрок вашего геммора даже не заметит, не то что бы оценить! (IMG:style_emoticons/kolobok_light/declare.gif) |
![]()
Сообщение
#2836
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Но самый муторный. да ладно? дать свойство на шкурку - 2 строки. Шкурку надо одевать вообще в начале модуля (IMG:style_emoticons/kolobok_light/smile.gif) так что не вводи людей в заблуждение, шкурка форевар (IMG:style_emoticons/kolobok_light/smile.gif) зы: легкий гимор есть при отслеживании перезаходов. |
![]()
Сообщение
#2837
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если шкурка одна то да. А если всякие системы шкурок то великое тра та та... Типа наборы доспехов в монете судьбы.
|
![]()
Сообщение
#2838
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если шкурка одна то да. А если всякие системы шкурок то великое тра та та... Типа наборы доспехов в монете судьбы. ты просто не умеешь их готовить. "Системы шкурок". 1 шкурка и свойства на нее вешать. И удалять если нада. Всего делов то (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2839
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
лЕКС, не мог бы объяснить мне, как одеть и и "нацепить" способности на эту шкурку?
Заранее спасибо. |
![]()
Сообщение
#2840
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
одеть - EquipItem. Слот *_MARMOR. (Monster Armor).
свойство дать - AddProperty |
![]()
Сообщение
#2841
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Почему в результате(вроде нормально работающего) этого скрипта, туман, который должен появится в дождь, появляется, а потом мигает при смены ракурса камеры? Если мне не показалось, он также уменьшается, а потом увеличивается(снова и снова), когда я хожу по локации...
П.С. Не показалось, перепроверил. Получается, цикл повторяется... по почему? Я же специально для этого переменные ввел... Кто-нибудь может помочь? Neverwinter Script Source int i, o, k; void main( ) { object oArea = GetArea( GetFirstPC( ) ); if( GetWeather( oArea ) == WEATHER_RAIN ) { k = 0; if( o == 0 ) { SetSkyBox( SKYBOX_GRASS_STORM, oArea ); // Цвет тумана SetFogColor( FOG_TYPE_ALL, 0x9F9F9D, oArea ); // задержка float fDelay = 0.0; // Постепенное увеличение тумана for( i = 5; i < 51; i++ ) { DelayCommand( fDelay, SetFogAmount( FOG_TYPE_SUN, i, oArea ) ); fDelay = fDelay + 0.2; if( i == 25 ) { // Сейчас пойдет дождик DelayCommand( fDelay, SetWeather( oArea, WEATHER_RAIN ) ); } } o = 1; } else { return; } } else if ( GetWeather( oArea ) == WEATHER_CLEAR ) { o = 0; if( k == 0 ) { SetSkyBox( SKYBOX_GRASS_CLEAR, oArea ); // Цвет тумана float fDelay = 0.0; for( i = 61; i != 1; i-- ) // Постепенное уменьшение тумана { DelayCommand( fDelay, SetFogAmount( FOG_TYPE_SUN, i, oArea ) ); fDelay = fDelay + 0.2; if( i == 48 ) { // Сейчас выползет солнышко DelayCommand( fDelay, SetWeather( oArea, WEATHER_CLEAR ) ); } } DelayCommand( fDelay, SetFogColor( FOG_TYPE_ALL, 0x6AC7FC, oArea ) ); } k = 1; } else { return; } } Заранее спасибо! Сообщение отредактировал Белатрис - Dec 18 2007, 15:40 |
![]()
Сообщение
#2842
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
вроде он мигает при смене настроек (туман).
По поводу зацикленности - надо смотреть, как меняется weather. Она может у тебя поменяться пока туман увеличивается для дождя и начнутся 2 противоречивых процесса. Добавлено через 1 минуту 14 секунды и непонятен смысл Neverwinter Script Source DelayCommand( fDelay, SetWeather( oArea, WEATHER_CLEAR ) ); ты же выше проверил, чтоп огода у тебя Neverwinter Script Source if ( GetWeather( oArea ) == WEATHER_CLEAR ) те эта команда ничего не сделает |
![]()
Сообщение
#2843
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Цитата DelayCommand( fDelay, SetWeather( oArea, WEATHER_CLEAR ) ); Просто сюда вошли два скрипта и, видимо, я пропустил этот момент. Цитата По поводу зацикленности - надо смотреть, как меняется weather. Она может у тебя поменяться пока туман увеличивается для дождя и начнутся 2 противоречивых процесса. Я даже специально поставил 100% дождя. Все равно мигает... (IMG:style_emoticons/kolobok_light/vava.gif) Блин, а ведь так прикольно получается... неужели придется сносить этот эффект? (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#2844
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
хм.. тады возможно эти 100% сбивают все
|
![]()
Сообщение
#2845
|
|
Level 1 Класс: Обыватель Характер: True Neutral Раса: Человек ![]() |
2Белатрис: Здравствуйте, проблема во временных переменных. Насколько я понял, вы вешаете этот скрипт как OnHeartbeat, который выполняется каждые шесть секунд. Но действие вашего скрипта больше шести секунд. Во второй части скрипта вы к fDelay(вначале 0) в цикле добавляете по 0.2 секунды, что за 60 итераций составляет 12 секунд (а второй раз этот скрипт запускается через 6), соответственно у вас начинают одновременно выполняться два скрипта, которые поочередно меняют насыщенность тумана.
|
![]() ![]() |
Текстовая версия | Сейчас: 28th July 2025 - 11:16 |