Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
34 страниц V  « < 10 11 12 13 14 > »   
Ответить в эту темуОткрыть новую тему
> Одиночный вопрос, Не знаете, где задать вопрос? Пишите сюда!
Lex
сообщение Oct 31 2007, 21:18
Сообщение #276


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Aiwan @ Oct 31 2007, 19:26) *
Объект NWN в стеке команд может содержать 75 аций. Их можно назвать очередю действий. Можно их объединить, а можно пониимать по разному.

Айв, тут дело банально в придирках. Есть FIFO, есть FILO. FIFO - очередь, FILO - стек. Устоявшиеся программерские определения. в НВН - FIFO, но почему-то называется стек. Стороннего программиста может поначалу ввести в заблуждение, но в принципе быстро приходит понимание, что это всетаки FIFO. В общем не нужно заморачивать себе этим голову (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 31 2007, 21:59
Сообщение #277


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Buzzard @ Oct 31 2007, 22:52) *
ExecuteScript("SomeScript(10)",oPC); Запускается только если SomeScript без параметров(ExecuteScript("SomeScript"))

Правильно так:
Neverwinter Script Source


      ExecuteScript( "имя_скрипта", oPC );

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 31 2007, 22:04
Сообщение #278


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ни.. парнишка спрашивает про запуск скрипта с параметром. Я не знаю, как с этим дело обстоит в НВН2, но в НВН1 так было делать низя (с параметром). Можно только так, как Айв написал.
Но параметрические скрипты там точно есть - диалоговые как минимум.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 31 2007, 22:18
Сообщение #279


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Если бы еще описание было задачи, тогда другое дело. МОжно и стрингами поиграть, сложить, и прочее.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Oct 31 2007, 23:45
Сообщение #280


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



ExecuteScript вызывает скрипт без параметров, "ExecuteScript("SomeScript(10)",oPC);" будет искать скрипт под названием "SomeScript(10)", и запустить его без всяких параметров, Conditional скрипты тоже проверять нельзя. Если же нужно передать какую-то инфу в скрипт, можешь установить куда-нибудь нужные локальные переменные, а в запускаемом скрипте их проверять.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buzzard
сообщение Nov 3 2007, 15:41
Сообщение #281


Level 2
*

Класс: Псионик
Характер: Lawful Neutral
Раса: Баатезу



У меня вопрос к начальству. Тут побывал на вашем wiki и наткнулся на статью по созданию плагинов для тулсета (на англиском), если можно то дайте пожалуйста ссылку на источник (там пропушены строки нужного мне кода).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Armor Darks
сообщение Nov 3 2007, 17:55
Сообщение #282


Level 6
**

Класс: Некромант
Характер: Lawful Evil
Раса: Нежить



не помню что именно на вики за статья по плагинам лежит, но по идее ее брали отсюда http://nwvault.ign.com/View.php?view=NWN2P...Detail&id=1
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Nov 11 2007, 18:18
Сообщение #283


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Всем респект, левел ап.

Нужна срочно помощ вот народ что у мя такое.

Я как тока моудль начну создавать так я поставил стены, дома, деревья. А как начинаю тестить все стоит но у меня перс проходит через все стены, через дереьвя уороче перс неможет не в чо упереться кроме конца локации ((( срочно нужна помощ ПОМАГИТЕ!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Nov 11 2007, 18:58
Сообщение #284


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Очертить все надо триггерами и бэйк надо делать. В википедии подробно расписано, почитай по ссылке ввреху форума.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Nov 12 2007, 13:37
Сообщение #285


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Скажите пожалуйста как мне сделать чтобы когда я умирал появлялась таблица типа реснуться в городе ну например Локация 1 Вейпоинт 1 и чтобы я потерял либо еси мона 10% опыта либо 500 опыта. Оч нужнл помогите плиз ну мона без потери опыта но тока чтобы я воскрешался в городе (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 12 2007, 15:46
Сообщение #286


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Цитата(DarkDeivel @ Nov 12 2007, 13:37) *
Скажите пожалуйста как мне сделать чтобы когда я умирал появлялась таблица типа реснуться в городе ну например Локация 1 Вейпоинт 1 и чтобы я потерял либо еси мона 10% опыта либо 500 опыта. Оч нужнл помогите плиз ну мона без потери опыта но тока чтобы я воскрешался в городе (IMG:style_emoticons/kolobok_light/smile.gif)


Атеперьпожалуйстатожесамоетолькосознакамипрепинани
- читатьневозможно=\

Сообщение отредактировал Leon PRO - Nov 12 2007, 15:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Nov 20 2007, 12:24
Сообщение #287


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



КАк мне сделать так! чтобы когда персонаж умирает появалалсь окно с кнопкой воскреситься в городе и при нажатии этой кнопки персонаж появляется в городе (имя города например: сity), но за это снималось 500 опыта??? ну можно чтоб опыт не снимался.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ioann
сообщение Nov 21 2007, 11:42
Сообщение #288


Level 1


Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек



Есть ли возможность редактировать заклинания? Хотелось вызывать несколько существ (например, поднять мертвеца, а вторым применением закла поднять уже второго , а не заменить первого вызванного). Может скриптами? Или что-то подправить надо?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 21 2007, 16:05
Сообщение #289


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Ioann @ Nov 21 2007, 11:42) *
Есть ли возможность редактировать заклинания? Хотелось вызывать несколько существ (например, поднять мертвеца, а вторым применением закла поднять уже второго , а не заменить первого вызванного). Может скриптами? Или что-то подправить надо?

скриптами. см spells.2da, ищи там нужный закл и смотри, какой скрипт за него отвечает.
Потом в скриптовом редакторе open - флажок "показать все скрипты" - ищешь нужный скрипт и редактируешь.

\\ с реализацией твоей идеи могут быть проблемы, так как саммонер вроде как только 1 может быть. Может помочь вариант с доминированием, но надо пробовать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ioann
сообщение Nov 26 2007, 18:10
Сообщение #290


Level 1


Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек



2Lex
Спасибо, нашел нужные скрипты, но взникли вопросы (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Расковырял архивчик Scripts. Нашел файл nw_s0_crundead.NSS. Насколько понял здесь находится скрипт описывающий заклинания Поднятие нежити. В остальных поднятиях структура та же.
И вопросы по файлу: в скрипте используется 3 метода (функции), это

X2PreSpellCastCode() -- не нашел его объявление в nwscript.NSS и врядли имеет отношение к вопросу, т.к. используется во всех заклах и отменяет их действие при не выполнении (на сколько понял).
effect EffectSummonCreature(string, int, float, int) -- задаются первые два аргумента, остальные по умолчанию, вроде.
void ApplyEffectAtLocation(int, effect, location, float) -- последний аргумент берется по умолчанию.

Последние 2 метода объявлены в nwscript.NSS. Но где их описание? Перерыл весь Scripts и не нашел описания EffectSummonCreature(string, int, float, int). С ApplyEffectAtLocation(int, effect, location, float), наверное, та же история. Где описаны эти функции? Может кто-то знает или предполагает? Вроде эти функции и надо править, т.к. больше и нечего.
Но скорее всего дело в EffectSummonCreature, описание:

// Create a Summon Creature effect. The creature is created and placed into the
// caller's party/faction.
// - sCreatureResref: Identifies the creature to be summoned
// - nVisualEffectId: VFX_*
// - fDelaySeconds: There can be delay between the visual effect being played, and the
// creature being added to the area
// - nUseAppearAnimation: should this creature play it's "appear" animation when it is
// summoned. If zero, it will just fade in somewhere near the target. If the value is 1
// it will use the appear animation, and if it's 2 it will use appear2 (which doesn't exist for most creatures)
effect EffectSummonCreature(string sCreatureResref, int nVisualEffectId=VFX_NONE, float fDelaySeconds=0.0f, int nUseAppearAnimation=0);

Не могу понять за что отвечает последний параметр. Помогите разобраться, пожалуйста.
А что за "вариант с доминированием"? Пробовать готов (IMG:style_emoticons/kolobok_light/rolleyes.gif)


Теперь что смог найти.
Вот здесь есть что-то подобное.
http://nwn2forums.bioware.com/forums/viewtopic.html?topic=590809&forum=114&highlight=Summoning

Там есть вот этот скрипт, но самому с ним разобраться трудно. И имеются подключаемые библиотеки, созданные автором, а что в них -- загадка. Помогите, пожалуйста, разобраться. В программировании немного разбираюсь, но в NWN2 залез впервые.
Чем лучше занятся: делать с нуля или использовать нижеприведенный скрипт?

CODE
Neverwinter Script Source
#include "x2_inc_itemprop"
#include "x2_i0_spells"
#include "x0_i0_assoc"
#include "x2_inc_switches"
#include "_inc_propertystrings"
#include "_inc_helper_functions"
void DestroyUndead( object oPC ) { // KILLS ALL DOMINATED CREATURES OF A PC
  int nCnt = GetLocalInt( oPC, "UNDEADCOUNT" );
  if ( nCnt==0 ) return;
  object oArea = GetArea( oPC );
  object oMinion = GetFirstObjectInArea( oArea );
  while ( GetIsObjectValid( oMinion )) {
      if ( GetObjectType( oMinion )==OBJECT_TYPE_CREATURE && GetMaster( oMinion )==oPC && GetRacialType( oMinion )==RACIAL_TYPE_UNDEAD ) {
        ApplyEffectToObject( DURATION_TYPE_INSTANT, EffectNWN2SpecialEffectFile( "fx_turn_undead.sef", oMinion ), oMinion );
        DelayCommand( 0.0, DestroyObject( oMinion ));
      }
      oMinion = GetNextObjectInArea( oArea );
  }
  DeleteLocalInt( oPC, "UNDEADCOUNT" );
}
int BuffUndeadItem( object oSum, int nSlot, int nEB, int nDamBonus ) {
  object oItem = GetItemInSlot( nSlot, oSum ); // ENCHANT THE CLAWS
  if ( oItem!=OBJECT_INVALID ) {
      IPSafeAddItemProperty( oItem, ItemPropertyEnhancementBonus( nEB ));
      if ( nDamBonus ){
        IPSafeAddItemProperty( oItem, ItemPropertyDamageBonus( IP_CONST_DAMAGETYPE_NEGATIVE, nDamBonus ));
      } else {
      }
      return TRUE;
  }
  return FALSE;
}
void BoostUndeadSummon( object oPC, object oSum = OBJECT_INVALID ) {
  if ( oSum==OBJECT_INVALID ) oSum = GetAssociate( ASSOCIATE_TYPE_SUMMONED, oPC );
  int nLevel = GetLevelByClass( CLASS_TYPE_PALEMASTER, oPC ); //GetUndeadLevel( oPC );
  int nNecro = GetHasFeat( FEAT_GREATER_SPELL_FOCUS_NECROMANCY, oPC ) ? 2 : ( GetHasFeat( FEAT_SPELL_FOCUS_NECROMANCY, oPC ) ? 1 : 0 );
  if ( GetHasFeat( FEAT_AUGMENT_SUMMONING, oPC )) {
      nNecro++;
      effect eAug = EffectAbilityIncrease( ABILITY_STRENGTH, 4 );
      eAug = EffectLinkEffects( eAug, EffectAbilityIncrease( ABILITY_CONSTITUTION, 4 ));
      ApplyEffectToObject( DURATION_TYPE_INSTANT, ExtraordinaryEffect( eAug ), oSum );
  }
  if ( nNecro ) {
      nNecro++;
      nLevel += nNecro;
      SendMessageToPC( oPC, "Pale Master Necromancy Boost +" + IntToString( nNecro ));
  }
  int nBonus = nLevel / 2; // MAX 6
  if ( !nBonus ) return;
  int nEB = GetMax( 5, nBonus );
  int nDamBonus = 0;
  if      ( nBonus==1 ) nDamBonus = DAMAGE_BONUS_1d4;
  else if ( nBonus==2 ) nDamBonus = DAMAGE_BONUS_1d6;
  else if ( nBonus==3 ) nDamBonus = DAMAGE_BONUS_1d8;
  else if ( nBonus==4 ) nDamBonus = DAMAGE_BONUS_1d10;
  else if ( nBonus==5 ) nDamBonus = DAMAGE_BONUS_2d6;
  else if ( nBonus==6 ) nDamBonus = DAMAGE_BONUS_2d8;
  else if ( nBonus==7 ) nDamBonus = DAMAGE_BONUS_2d10;
  else if ( nBonus==8 ) nDamBonus = DAMAGE_BONUS_2d12;
  SendMessageToPC( oPC, "Pale Master Necromancy Boost applied: +" + IntToString( nBonus ) + " AC / +" +IntToString( nEB ) + " EB / +" + DamageBonusString( nDamBonus ) + " Negative damage." );
  if ( BuffUndeadItem( oSum, INVENTORY_SLOT_RIGHTHAND, nEB, nDamBonus )) BuffUndeadItem( oSum, INVENTORY_SLOT_LEFTHAND, nEB, nDamBonus );
  else if ( BuffUndeadItem( oSum, INVENTORY_SLOT_CWEAPON_R, nEB, nDamBonus )) BuffUndeadItem( oSum, INVENTORY_SLOT_CWEAPON_L, nEB, nDamBonus );
  ApplyEffectToObject( DURATION_TYPE_PERMANENT, EffectACIncrease( nBonus ), oSum );
}
int CountUndead( object oPC ) {
  int nCnt = 0;
  if ( GetAssociate( ASSOCIATE_TYPE_DOMINATED, oPC )==OBJECT_INVALID ) return 0;
  object oArea = GetArea( oPC );
  object oMinion = GetFirstObjectInArea( oArea );
  while ( GetIsObjectValid( oMinion )) {
      if ( GetObjectType( oMinion )==OBJECT_TYPE_CREATURE ) {
        if ( GetMaster( oMinion )==oPC && GetRacialType( oMinion )==RACIAL_TYPE_UNDEAD ) {
            nCnt++;
        }
      }
      oMinion = GetNextObjectInArea( oArea );
  }
  return nCnt;
}
void CreateUndead( object oPC, string sResRef, int nMaxDom = 1, int bRedEyes = FALSE ) {
  int nCount = CountUndead( oPC ) + 1;
  if ( nCount > nMaxDom ) {
      FloatingTextStringOnCreature( "There are too many Undead currently at your service...", oPC, FALSE );
      return;
  }
  location lLocation = GetLocation( oPC );
  SetLocalInt( oPC, "UNDEADCOUNT", nCount );
  object oMinion = CreateObject( OBJECT_TYPE_CREATURE, sResRef, lLocation, FALSE );
  FloatingTextStringOnCreature( "A " + GetName( oMinion ) + " is now at your service.", oPC, FALSE );
  SetLastName( oMinion, "of " + GetName( oPC ));//GetName( oMinion )+
  SetLocalObject( oMinion, "DOMINATED", oPC );
  if ( bRedEyes ) ApplyEffectToObject( DURATION_TYPE_PERMANENT,  EffectNWN2SpecialEffectFile( "red_eyes.sef" ), oMinion );
  ApplyEffectToObject( DURATION_TYPE_TEMPORARY, ExtraordinaryEffect( EffectCutsceneDominated( ) ), oMinion, HoursToSeconds( 24 ));
  ApplyEffectAtLocation( DURATION_TYPE_INSTANT, EffectVisualEffect( VFX_FNF_SUMMON_UNDEAD ), lLocation );
  BoostUndeadSummon( oPC, oMinion );
  int nDistance = NW_ASC_DISTANCE_6_METERS;
  if ( nCount==1 ) nDistance = NW_ASC_DISTANCE_2_METERS;
  if ( nCount==2 ) nDistance = NW_ASC_DISTANCE_4_METERS;
  SetAssociateState( nDistance, TRUE, oMinion );
  int nSpawnInConditions = GetLocalInt( oMinion, "NW_GENERIC_MASTER" );
  nSpawnInConditions = nSpawnInConditions | NW_FLAG_STEALTH | NW_FLAG_AMBIENT_ANIMATIONS | NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS | NW_FLAG_FAST_BUFF_ENEMY;
  SetLocalInt( oMinion, "NW_GENERIC_MASTER", nSpawnInConditions );
  int nCombatConditions = GetLocalInt( oMinion, "X0_COMBAT_CONDITION" );
  if ( nCount==1 ) nCombatConditions = nCombatConditions | X0_COMBAT_FLAG_AMBUSHER;
  else nCombatConditions = nCombatConditions | X0_COMBAT_FLAG_RANGED;
  SetLocalInt( oMinion, "X0_COMBAT_CONDITION", nCombatConditions );
}
void SummonUndead( ) {
  object oPC = OBJECT_SELF;
  string sResRef = "";
  int bRedEyes = FALSE;
  int nSpellId = GetSpellId( );
  int nLevel = GetLevelByClass( CLASS_TYPE_PALEMASTER, oPC );//GetUndeadLevel( oPC );
  int nConjure = GetHasFeat( FEAT_GREATER_SPELL_FOCUS_CONJURATION, oPC ) ? 2 : ( GetHasFeat( FEAT_SPELL_FOCUS_CONJURATION, oPC ) ? 1 : 0 );
  nConjure += GetHasFeat( FEAT_AUGMENT_SUMMONING, oPC );
  if ( nConjure ) {
      nLevel += nConjure;
      SendMessageToPC( oPC, "
Pale Master Conjuration Boost +" + IntToString( nConjure ));
  }
  if ( nSpellId==SPELLABILITY_PM_ANIMATE_DEAD ) {
      if      ( nLevel < 3 ) sResRef = "
pm_zombie1";
      else if ( nLevel < 5 ) sResRef = "
pm_zombie2";
      else                sResRef = "
pm_zombie3";
  } else if ( nSpellId==SPELLABILITY_PM_SUMMON_UNDEAD ) {
      if      ( nLevel < 5 ) sResRef = "
pm_skeleton1";
      else if ( nLevel < 7 ) sResRef = "
pm_skeleton2";
      else                sResRef = "
pm_skeleton3";
  } else if ( nSpellId==SPELLABILITY_PM_SUMMON_GREATER_UNDEAD ) {
      if      ( nLevel < 10 ) sResRef = "
pm_ghast1";
      else if ( nLevel < 12 ) sResRef = "
pm_ghast2";
      else                  sResRef = "
pm_ghast3";
  }
  bRedEyes = ( GetStringRight( sResRef, 1 )=="
3" );
  CreateUndead( oPC, sResRef, 3, bRedEyes );
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Nov 26 2007, 18:31
Сообщение #291


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



Не надо ссылки на офф. форум прятать в спойлер )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 26 2007, 21:01
Сообщение #292


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Ioann @ Nov 26 2007, 18:10) *
X2PreSpellCastCode() -- не нашел его объявление в nwscript.NSS

Это запуск стандартного спел-хука. Те код который исполняется до любого закла. Через него можно сделать например невозможность колдовства в какой-то локации или по какому-то условию или негативные/позитивные бонусы для кастера при каких-то условиях. В общем штука хорошая.

Цитата(Ioann @ Nov 26 2007, 18:10) *
Но где их описание?

описание всех функций есть в лексиконе. Можно его смотреть и в редакторе скриптов (2 клика на функцию в редакторе - внизу будет описание). Но тут могут быть проблемы с тем, что функция описана в какой-нить библе (IMG:style_emoticons/kolobok_light/smile.gif) Поэтому для изучения вопроса лучше лексикон использовать + там инфа по багам этой функции есть.

Цитата(Ioann @ Nov 26 2007, 18:10) *
Где описаны эти функции? Может кто-то знает или предполагает? Вроде эти функции и надо править, т.к. больше и нечего.

это встроенные (стандартные) функции. На нашем пользовательском уровне их поправить низя. Только если влезть внутрь и там что-то поковырять.

Цитата(Ioann @ Nov 26 2007, 18:10) *
Не могу понять за что отвечает последний параметр. Помогите разобраться, пожалуйста.

дословно - использовать ли анимацию появления (падение с неба) или нет для саммонера. Прикольно смотрится для летающих саммонеров. Но в принципе можно всем ставить.

Цитата(Ioann @ Nov 26 2007, 18:10) *
Теперь что смог найти.
Вот здесь есть что-то подобное.

эта штука - реализация всяких фичей для пэйлмастера. В принципе написано прилично. Из этого всего тебе нужно фактически только CreateUndead. Как я успел по коду пробежаться, автор пошел по варианту доминирования.
Neverwinter Script Source
..ExtraordinaryEffect( EffectCutsceneDominated( ) )..

Так что можно взять ядро функции (все что относится к созданию миньона, эффектам. Выставление спавн-кондишенов по желанию) почистить от кастомных вещей (Boost например) и засунуть в заклинание вызова нежити.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ioann
сообщение Nov 27 2007, 17:26
Сообщение #293


Level 1


Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек



2Lex
Большое спасибо за помощь и подробные разъяснения (IMG:style_emoticons/kolobok_light/thank_you.gif)

Вот начал копаться и на тебе! Не могу скомпилировать содержание файла nw_s0_crundead.NSS! Выдает
ginc_crafting.nss: Search2DA //типа ошибка, но ERROR не пишет и где обнаружена ошибка не ясно
И при повторном нажатии F7 после двоеточия может быть "что угодно" (IMG:style_emoticons/kolobok_light/biggrin.gif)
В чем проблема? Я файл не модифицировал! Да и ginc_crafting.nss причем!?

CODE
Neverwinter Script Source
#include "x2_inc_spellhook"

void main( )
{

    if ( !X2PreSpellCastCode( ) )
    {
        // If code within the PreSpellCastHook ( i.e. UMD ) reports FALSE, do not run this spell
        return;
    }

    //Declare major variables
    int nMetaMagic = GetMetaMagicFeat( );
    int nCasterLevel = GetCasterLevel( OBJECT_SELF );
    int nDuration = nCasterLevel;
    //nDuration = 24;
    effect eSummon;

    //Check for metamagic extend
    if ( nMetaMagic == METAMAGIC_EXTEND )
    {
        nDuration = nDuration *2;    //Duration is +100%
    }
    //Set the summoned undead to the appropriate template based on the caster level
    if ( nCasterLevel <= 11 )
    {
        eSummon = EffectSummonCreature( "c_ghoul", VFX_HIT_SPELL_SUMMON_CREATURE );
    }
    else if ( (nCasterLevel >= 12 ) && ( nCasterLevel <= 13 ))
    {
        eSummon = EffectSummonCreature( "c_ghast", VFX_HIT_SPELL_SUMMON_CREATURE );
    }
    else if ( (nCasterLevel >= 14 ) && ( nCasterLevel <= 15 ))
    {
        eSummon = EffectSummonCreature( "c_mummy", VFX_HIT_SPELL_SUMMON_CREATURE );
    }
    else if ( (nCasterLevel >= 16 ))
    {
        eSummon = EffectSummonCreature( "c_mummylord", VFX_HIT_SPELL_SUMMON_CREATURE );
    }

    //Apply VFX impact and summon effect
    ApplyEffectAtLocation( DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation( ), HoursToSeconds( nDuration ));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 27 2007, 18:04
Сообщение #294


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ошибка в библиотеке. Тут удаленно помочь трудно. Попробуй убрать
Neverwinter Script Source
#include "x2_inc_spellhook"

и
Neverwinter Script Source
if ( !X2PreSpellCastCode( ) )
    {
        // If code within the PreSpellCastHook ( i.e. UMD ) reports FALSE, do not run this spell
        return;
    }
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ioann
сообщение Nov 27 2007, 19:50
Сообщение #295


Level 1


Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек



2Lex
Огромное спасибо! Благодарю! Вышло (IMG:style_emoticons/kolobok_light/yahoo.gif) Смог поднять более одного мертвеца! Когда доведу скрипт до ума выложу.

Есть еще вопрос: можно убрать тотальную паузу во время обычных диалогов в официальной кампании? Невозможно играть по сети! Где-то читал, что нужно в тулсете открыть кампанию и там, в диалогах, должна быть кнопочка отключения всеобщей паузы.
Это правда? Если да, то как "открыть" оф. кампанию и где может быть эта "кнопочка"?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Nov 27 2007, 21:03
Сообщение #296


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(Ioann @ Nov 27 2007, 19:50) *
Огромное спасибо! Благодарю! Вышло yahoo.gif Смог поднять более одного мертвеца! Когда доведу скрипт до ума выложу.

выкладывай. а благодарить особо не за что, я лишь слегка подсказал направление, где копать.

Цитата(Ioann @ Nov 27 2007, 19:50) *
Есть еще вопрос: можно убрать тотальную паузу во время обычных диалогов в официальной кампании?

там что, реально все замирает, когда кто-то разговаривает?? (IMG:style_emoticons/kolobok_light/wacko.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ioann
сообщение Nov 27 2007, 21:50
Сообщение #297


Level 1


Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек



Цитата
там что, реально все замирает, когда кто-то разговаривает??


Играем по сетке, 2 человека, если один с кем-то говорит (появляется диалог), то второй не может сойти с места и вообще ничего не может, только камеру крутить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buzzard
сообщение Dec 8 2007, 19:20
Сообщение #298


Level 2
*

Класс: Псионик
Характер: Lawful Neutral
Раса: Баатезу



У меня такая проблема: написал скрипт который должен снимать с вещей ограничения на использования (такие как мироввозрение, класс и т.д.) и он конечно не работает. Кто-нибудь может сказать где ошибка?
Вот сам скрипт:

void main()
{
itemproperty prop = ItemPropertyLimitUseByAlign(IP_CONST_ALIGNMENTGROU
_ALL);
RemoveItemProperty(OBJECT_SELF, prop);
int i;
for(i=0; i<=8; i++)
{
prop = ItemPropertyLimitUseByClass(i);
RemoveItemProperty(OBJECT_SELF, prop);
}
for(i=0 ;i<=25 ;i++)
{
prop = ItemPropertyLimitUseByRace(i);
RemoveItemProperty(OBJECT_SELF, prop);
}
for(i=0;i<=8 ;i++)
{
prop = ItemPropertyLimitUseBySAlign(i);
RemoveItemProperty(OBJECT_SELF, prop);
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 9 2007, 16:02
Сообщение #299


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ну.. собсна грабля очень старая. Есть свойство (оно как бы само по себе, оторвано от предмета. Все что с ним можно сделать - наложить куда-то)
Например вот это:
Neverwinter Script Source
prop = ItemPropertyLimitUseBySAlign( i );

для удаления нужно брать уже наложенные свойства. GetFirstItemProperty, GetNextItemProperty - перебор свойств у предмета, а дальше анализируешь. Если тип свойства - Limit что-то там - удаляешь его.

работа со свойствами абсолютно аналогична работой с эффектами.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buzzard
сообщение Dec 9 2007, 18:53
Сообщение #300


Level 2
*

Класс: Псионик
Характер: Lawful Neutral
Раса: Баатезу



Спасибо, оказывается можно боыло сделать проще:

void main()
{
itemproperty prop = GetFirstItemProperty(OBJECT_SELF);
int PropType;
while(GetIsItemPropertyValid(prop))
{
PropType = GetItemPropertyType(prop);
if((PropType>=ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP)&&(PropType>=ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMEN
))
RemoveItemProperty(OBJECT_SELF, prop);
prop = GetNextItemProperty(OBJECT_SELF);
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

34 страниц V  « < 10 11 12 13 14 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26th April 2024 - 00:56