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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
34 страниц V  « < 11 12 13 14 15 > »   
Ответить в эту темуОткрыть новую тему
> Одиночный вопрос, Не знаете, где задать вопрос? Пишите сюда!
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);
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 9 2007, 18:59
Сообщение #301


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

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



1. пиши в nss коде
2. вместо PropType>=ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMEN нужно PropType<=ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMEN
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mnemo
сообщение Dec 12 2007, 17:49
Сообщение #302


Level 1


Класс: Обыватель
Характер: Chaotic Neutral
Раса: Человек



Здравствуйте, не могу разобраться с импортом моделей в тулсет..
Конвертирую модель в 3дмаксе в формат .mdb , а вот как модель загрузить в редакторе?
..
Благодарю
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 12 2007, 18:07
Сообщение #303


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

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



по кастом-контенту НВН2 (а модели именно к нему относятся) есть отдельный подраздел:
http://www.city-of-masters.ru/forums/index.php?showforum=99
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Dec 13 2007, 12:21
Сообщение #304


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(mnemo @ Dec 12 2007, 17:49) *
Конвертирую модель в 3дмаксе в формат .mdb , а вот как модель загрузить в редакторе?

На волте (www.nwvault.ign.com) найди в инструментах по нвн2 програмку "экспорт-импорт". Работает она в командной строке вроде.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Dec 14 2007, 19:14
Сообщение #305


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



Народ, а как в НВН2 задавать способ гибели персонажей и респауна? По умолчанию для модуля он ставит его таким же, как в НВН1, то есть если умирает главный герой - сразу гамовер или респаун. При этом в официалке игра заканчивается только после того как вынесут всю партию (а-ля КОТОР1-2). Интересуюсь - где это устанавливается?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Dec 14 2007, 22:34
Сообщение #306


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Цитата(Валеско @ Dec 14 2007, 19:14) *
Народ, а как в НВН2 задавать способ гибели персонажей и респауна? По умолчанию для модуля он ставит его таким же, как в НВН1, то есть если умирает главный герой - сразу гамовер или респаун. При этом в официалке игра заканчивается только после того как вынесут всю партию (а-ля КОТОР1-2). Интересуюсь - где это устанавливается?
Очевидно, в официальной кампании стоит кастомный On Player Death Script (в свойствах модуля).
Смотри его и соответствующие инклюды.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Dec 24 2007, 09:43
Сообщение #307


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(mnemo @ Dec 12 2007, 17:49) *
Здравствуйте, не могу разобраться с импортом моделей в тулсет..
Конвертирую модель в 3дмаксе в формат .mdb , а вот как модель загрузить в редакторе?
..
Благодарю


Для этого на волте есть програмка export/import.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laska4ever
сообщение Dec 31 2007, 10:39
Сообщение #308


Level 1


Класс: Паладин
Характер: Lawful Good
Раса: Полуэльф



NWN 2 - Mask of Betrayer - честно прошла за 3 дня, и опять ни какого хеппи энда (IMG:style_emoticons/kolobok_light/sad.gif)
мало того что она короткая, и сложность конечно стояла на средней но такое ощющение как будто на хард коре играла, короче разочарование, одно радует сюжет прикольный, но само прохождение, добавили блин эту линию голода всю игру ток о ней и думаешь (IMG:style_emoticons/kolobok_light/sad.gif)
когда интересно появится новый модуль
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Dec 31 2007, 11:52
Сообщение #309


Level 11
***

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



Э... здесь что, ясновидящие собрались? (IMG:style_emoticons/kolobok_light/prankster2.gif) По-моему вопросик не в тему... (IMG:style_emoticons/kolobok_light/ph34r.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Armor Darks
сообщение Jan 1 2008, 14:41
Сообщение #310


Level 6
**

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



Цитата(Griffon @ Dec 24 2007, 10:43) *
Для этого на волте есть програмка export/import.

я пользовался вот этим плагином для 3д макса: http://nwvault.ign.com/View.php?view=NWN2P...etail&id=27
главное отличае - удобство) Пользоваться коммандной строкой, когда надо работать с сотней моделей - это не для слабонервных. А так все быстренько делается через плагин 3д максовский. Кроме того, у плагина для 3д макса есть ряд дополнительных преимуществ. Ну да не суть важно)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 20th July 2025 - 01:54