Скрипты: Просьбы о написании, Все просьбы по написанию скриптов |
Здравствуйте, гость ( Вход | Регистрация )
Скрипты: Просьбы о написании, Все просьбы по написанию скриптов |
Apr 2 2006, 18:46
Сообщение
#1
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Если вам нужен скрипт, который вы не наши на форуме и не в состоянии написать сами, то тут можете попросить других форумчан о помощи. Таким образом в теме только запрос и скрипт под него, ничего более. Если вам нужно оптимизировать скрипт или понять, почему он плохо работает, то вам сюда.
___ База скриптов (NWN) Скрипты для новичков (NWN) Вопросы по скриптам (NWN) Построение скриптовых сцен (NWN) Вопросы по скриптам (NWN2) Так как скриптинг не сильно изменился, то большая часть вещей, написаная под НВН1 нормально работает и в НВН2. Посмотрите в этих темах, вполне возможно вы найдете интересующую вас информацию. |
Oct 21 2007, 01:47
Сообщение
#2
|
|
Level 4 Класс: Обыватель Характер: True Neutral Раса: Человек NWN2: Маппинг |
Я еще добавил сообщения-напоминания и спецэффект:
Neverwinter Script Source //------------------------------ конфиг ------------------------------------------------------------------------------------------------------------ float fTime = 120.0; //время, через которое оружие расплавится string sTag = "fire_weapon"; //тег оружия, которое игрок может здесь использовать effect eEffect = EffectNWN2SpecialEffectFile( "sp_fire_cast" ); //спецэффект при наложении эффекта и уничтожении оружия string sMesError = "Только особенное оружие может выдержать пламя этой жаровни."; //сообщение, выдаваемое когда у игрока нет оружия или оно имеет другой тег string sMessage1 = "Оружие в ваших руках сильно нагревается от магического пламени."; //сообщение, выдаваемое через 1/4 времени до уничтожения оружия string sMessage2 = "Оружие в ваших руках раскалено добела и понемногу начинает терять форму."; //сообщение, выдаваемое через 1/2 времени до уничтожения оружия string sMessage3 = "Оружие в ваших руках плавится и скоро станет непригодным к использованию."; //сообщение, выдаваемое через 3/4 времени до уничтожения оружия string sMessage4 = "Оружие в ваших руках окончательно расплавилось."; //сообщение, выдаваемое во время уничтожения оружия //-------------------------------------------------------------------------------------------------------------------------------------------------- object oPlayer = GetLastUsedBy( ); object oWeapon = GetItemInSlot( INVENTORY_SLOT_RIGHTHAND, oPlayer ); void Melting( int iLevel ); void main( ) { if ( GetTag( oWeapon )!=sTag ) { SendMessageToPC( oPlayer, "<color=red><b>"+sMesError+"</b></color>" ); return; } if ( GetLocalInt( oWeapon, "Melting" ) ) return; SetLocalInt( oWeapon, "Melting", 1 ); AddItemProperty( DURATION_TYPE_TEMPORARY, ItemPropertyDamageBonus( IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEBONUS_1d6 ), oWeapon, fTime ); ApplyEffectToObject( DURATION_TYPE_INSTANT, eEffect, oPlayer ); DelayCommand( 0.25*fTime, Melting( 1 ) ); } void Melting( int iLevel ) { if ( GetItemInSlot( INVENTORY_SLOT_RIGHTHAND, oPlayer )==oWeapon ) { switch ( iLevel ) { case 1: SendMessageToPC( oPlayer, "<color=red><b>"+sMessage1+"</b></color>" ); break; case 2: SendMessageToPC( oPlayer, "<color=red><b>"+sMessage2+"</b></color>" ); break; case 3: SendMessageToPC( oPlayer, "<color=red><b>"+sMessage3+"</b></color>" ); break; case 4: SendMessageToPC( oPlayer, "<color=red><b>"+sMessage4+"</b></color>" ); ApplyEffectToObject( DURATION_TYPE_INSTANT, eEffect, oPlayer ); break; } } if ( iLevel<4 ) DelayCommand( 0.25*fTime, Melting( iLevel+1 ) ); else DestroyObject( oWeapon ); } Хотелось бы увидеть комментарии мастеров по оптимизации. Сообщение отредактировал Aiwan - Oct 21 2007, 10:03
Причины изменения: Нормальное общение, зачем прятать в оффтоп тег?
|
Текстовая версия | Сейчас: 26th September 2024 - 19:20 |