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

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

5 страниц V   1 2 3 > » 

Важно! Скрипты
Friedrich
Отправлено: Oct 30 2005, 01:46


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (2_advanced @ Oct 30 2005, 01:28)
колодец это не плейсабл был, а визуальный эффект :this: хотя нужно покопаться =)

Ы?
И башка - визуальный эффект?
Можно эффектом симулировать плейсабл?
// а копаться лень :drag:
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #56135 · Ответов: 3670 · Просмотров: 701,289

Важно! Скрипты
Friedrich
Отправлено: Oct 30 2005, 00:56


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (NedWarN @ Oct 28 2005, 23:20)
Очень нужен Скриптик, на опускание или поднимание, плактаблов. скажите такое возможно. сам я не дадумался и Vector не помог.

Помнится, в первом модуле СоУ в пещере дракона кобольды прыгали в корзину спец. подъемника (сделанную из плйсового колодца) чтобы перевесить большую каменную голову, хакрывающую какой-то проход. При этом колодец опускался, а голова поднималась. ХЗ как такое было сделано. Наверное дестрой/криэйтом. Можно покапаться, посмотреть.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #56122 · Ответов: 3670 · Просмотров: 701,289

Friedrich
Отправлено: Oct 23 2005, 16:58


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Кажись у всех.
Заменяй на "е".
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #55042 · Ответов: 45 · Просмотров: 66,458

Friedrich
Отправлено: Oct 22 2005, 20:27


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (dumbo @ Oct 18 2005, 16:27)
несколько проверок одного условия.

void main()
{
  int i;
  if (i == 0x123) return;
  if (i == 0x321) return;
  if (i == 0x111) return;
  if (i == 0x222) return;
  i = 0x666;
}

Пожалуй, так будет эффективнее всего: ;)
Neverwinter Script Source
void main()
{
  int i = 0x333;
  switch( i )
  {
    case 0x111:
    case 0x222:
    case 0x333:
    case 0x444: return;
  }
  i = 0x666;

}

Или нет? Я в этом не особо шарю, но код по крайней мере короче чем в примерах выше. (Значит лучше?)
CODE
00000008 42 000000AB              T 000000AB
0000000D 1E 00 00000008           JSR fn_00000015
00000013 20 00                    RETN
00000015 02 03                    RSADDI
00000017 03 01 FFFFFFFC 0004      CPTOPSP FFFFFFFC, 0004
0000001F 03 01 FFFFFFFC 0004      CPTOPSP FFFFFFFC, 0004
00000027 04 03 00000111           CONSTI 00000111
0000002D 0B 20                    EQUALII
0000002F 25 00 0000004E           JNZ off_0000007D
00000035 03 01 FFFFFFFC 0004      CPTOPSP FFFFFFFC, 0004
0000003D 04 03 00000222           CONSTI 00000222
00000043 0B 20                    EQUALII
00000045 25 00 00000038           JNZ off_0000007D
0000004B 03 01 FFFFFFFC 0004      CPTOPSP FFFFFFFC, 0004
00000053 04 03 00000333           CONSTI 00000333
00000059 0B 20                    EQUALII
0000005B 25 00 00000022           JNZ off_0000007D
00000061 03 01 FFFFFFFC 0004      CPTOPSP FFFFFFFC, 0004
00000069 04 03 00000444           CONSTI 00000444
0000006F 0B 20                    EQUALII
00000071 25 00 0000000C           JNZ off_0000007D
00000077 1D 00 00000012           JMP off_00000089
0000007D 1B 00 FFFFFFF8           MOVSP FFFFFFF8
00000083 1D 00 00000026           JMP off_000000A9
00000089 1B 00 FFFFFFFC           MOVSP FFFFFFFC
0000008F 04 03 00000666           CONSTI 00000666
00000095 01 01 FFFFFFF8 0004      CPDOWNSP FFFFFFF8, 0004
0000009D 1B 00 FFFFFFFC           MOVSP FFFFFFFC
000000A3 1B 00 FFFFFFFC           MOVSP FFFFFFFC
000000A9 20 00                    RETN


И кстати, если условие - функция, то она вызывается только один раз и переменную заводжить не нужно.

Где-то читал, что где там, где это возможно, лучше юзать switch/case, чем много if-ов.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #54954 · Ответов: 13 · Просмотров: 18,944

Friedrich
Отправлено: Oct 11 2005, 23:19


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Вопрос конечно не на тулсетовскую тему но...
может кто-нибудь знает (* косится в сторону Думбо *) где в реестре прописывается принудительное отбражение символов родной 1251-й кодировкой?

/*
Кстати, чего-то вдруг у меня тулсет стал в скриптах вместо крокозябр русские буквы писать (на любом шрифте) и даже nwlauncher по русски пишет. Причем на двух компах сразу. К чему бы это?
*/
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #53686 · Ответов: 3359 · Просмотров: 636,552

Friedrich
Отправлено: Sep 29 2005, 00:33


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Возьми у меня.
http://vlut401.narod.ru/nwfonts/fonts.7z
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #52262 · Ответов: 45 · Просмотров: 66,458

Friedrich
Отправлено: Sep 26 2005, 00:16


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Ну и чего, плохие, скажешь?
Вроде не квадратные?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #51840 · Ответов: 45 · Просмотров: 66,458

Friedrich
Отправлено: Sep 26 2005, 00:09


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Кинул Айвану и Vhall-у.

А еще здесь выложил, вместе со скринами.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #51838 · Ответов: 45 · Просмотров: 66,458

Friedrich
Отправлено: Sep 25 2005, 22:56


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (Chimeric @ Sep 17 2005, 04:00)
Хотя это не так уж важно, но всё-таки русские шрифты для игры оставляют желать лучшего, слишком угловаты и неразборчивы. Те, кто их сделал аж в 2002 году, конечно, были молодцы, но всё же - что с тех пор?

Хм. А у меня нормальные шрифты, не угловатые, красивые, можно сказать, шрифты.

Кажись прилагались к русским Shadow Lord-ам.

Да и "родные" триадовские шрифты были тоже ничего.
А те квадратные шрифты, которые я могу видеть на некоторых скриншотах, действительно, просто ужасны. :D

В общем, если надо, могу кинуть кому-нибудь.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #51827 · Ответов: 45 · Просмотров: 66,458

Важно! Скрипты
Friedrich
Отправлено: Aug 29 2005, 22:47


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (-fenix- @ Aug 29 2005, 16:15)
Как я понял, стандартный отдых: усаживание ПС на пятую точку, полосочка, восстановление хитов и снятие эффектов - это прописанно в движке или где-нить глубоко. И это не меняемо, это остается и будет всегда.

Но можно сделать свою анимацию и ForceRest(object) использывать, по-мойму так .) Тока, тогда отдых, конечно, без полосочки будет.

QUOTE (-fenix- @ Aug 29 2005, 16:15)
Если делать через ActionPlayAnimation, то она соответственно ставется в стек, и отдых выполняется первым, поэтому сама анимация не выполняется.

ActionRest is added to the front of the action queue. If you want to add it as a normal action, you can call ActionDoCommand(ActionRest()); -Lexicon.
Так что юзай:

AssignCommand(oPC, ActionPlayAnimation(...));
AssignCommand(oPC, ActionDoCommand(ActionRest()));

Иногда бывает полезно в Лексикон заглядывать... :D
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #49192 · Ответов: 3670 · Просмотров: 701,289

Friedrich
Отправлено: Aug 10 2005, 22:15


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Вот маленький инклюд с функцией makeTrace изображает дымную трассу (типа как от ракеты) между двумя точками, с помощью виз. эффектов (н.п. VFX_FNF_SMOKE_PUFF).
Что-то похожее было в первом модуле СоУ в подземелье с плохой эльфой.
Neverwinter Script Source
// ********************************* //
// * fh_inc_trace                  * //
// * (с) Friedrich W. Heik, 2005.  * //
// * darkowl@inbox.ru              * //
// ********************************* //

//** Interface **

// Преобразует декартовы координаты в сферические
// Возвращаемый вектор имеет формат:
// x - ro:  расстояние от начала координат до точки
// y - fi:  угол поворота, вокруг вертикальной оси (от оси X против ч.с.)
// z - psi: угол наклона от горизонтальной плоскости
vector sph(vector vDsc);

// Преобразует сферические координаты в декартовы
// Формат вектора vSph:
// x - ro:  расстояние от начала координат до точки
// y - fi:  угол поворота, вокруг вертикальной оси (от оси X против ч.с.)
// z - psi: угол наклона от горизонтальной плоскости
vector dsc(vector vSph);

// Изменяет абс. величину вектора
// Возвр. вектор длиною fMagnitude, сонаправленный с vVector.
vector setMagnitude(vector vVector, float fMagnitude);

// Рисует дымную трассу между двумя точками
// lSource:  Начало трассы
// lTarget:  Цель
// fJump:    Дистанция шага между эффектами, м.
// fSpeed:    Скорость "снаряда", м/с
// nTraceVFX: эффект дыма, которым рисуется трасса
// nBurstVFX: эффект взрыва в конце трассы (исп. -1 (VFX_NONE), если взрыв не требуется) 
void makeTrace(location lSource, location lTarget, float fJump = 0.25f, float fSpeed = 10.0f, int nTraceVFX = VFX_FNF_SMOKE_PUFF, int nBurstVFX = VFX_FNF_FIREBALL);


//** Implementation **

// Преобразует декартовы координаты в сферические
// Возвращаемый вектор имеет формат:
// x - ro:  расстояние от начала координат до точки
// y - fi:  угол поворота, вокруг вертикальной оси (от оси X против ч.с.)
// z - psi: угол наклона от горизонтальной плоскости
vector sph(vector vDsc)
{
  float ro = VectorMagnitude(vDsc);
  float fi = atan(vDsc.y/vDsc.x); // I четверть
  float psi = asin(vDsc.z/ro);

  if (vDsc.x < 0.0) fi += 180.0;      // II, III: +Pi
  else if (vDsc.y < 0.0) fi += 360.0; // IV: +2Pi, чтобы угол был положительным :)
  return Vector(ro, fi, psi);
}

// Преобразует сферические координаты в декартовы
vector dsc(vector vSph)
{
  float x = vSph.x*cos(vSph.z)*cos(vSph.y); // ro*cos(psi)*cos(fi)
  float y = vSph.x*cos(vSph.z)*sin(vSph.y); // ro*cos(psi)*sin(fi)
  float z = vSph.x*sin(vSph.z); // ro*sin(psi)
  return Vector(x, y, z);
}

vector setMagnitude(vector vVector, float fMagnitude)
{
  vector vSph = sph(vVector);
  vSph.x = fMagnitude;
  return dsc(vSph);
}

void makeTrace(
  location lSource,    // Начало трассы
  location lTarget,    // Цель
  float fJump = 0.25f// Дистанция шага между эффектами, м.
  float fSpeed = 10.0f, // Скорость "снаряда", м/с
  int nTraceVFX = VFX_FNF_SMOKE_PUFF,
  int nBurstVFX = VFX_FNF_FIREBALL) 
{
  float fInterval = fJump/fSpeed;
  effect eVis = EffectVisualEffect(nTraceVFX);

  vector vOA = GetPositionFromLocation(lSource); // вектор (OA)
  vector vOB = GetPositionFromLocation(lTarget); // вектор (OB)
  vector vAB = vOB - vOA; // вектор (AB) = (OB)-(OA)
 
  //vector vNorm = VectorNormalize(vAB); // единичный вектор, коллинеарный AB
  vector vJump = setMagnitude(vAB, fJump);
 
  vector vCurrent = vOA;
  object oArea = GetAreaFromLocation(lTarget);
  int n = FloatToInt( VectorMagnitude(vAB)/fJump );
  int i;
  float fDelay = 0.0;
  for (i=0; i < n; i++)
  {
    vCurrent += vJump;
    location lCurrent = Location(oArea, vCurrent, 0.0);
    fDelay += fInterval;
    DelayCommand(fDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lCurrent));
  }
  // Fireball VFX on target:
  if (nBurstVFX != VFX_NONE)
  {
    fDelay += fInterval;
    effect eBurst = EffectVisualEffect(nBurstVFX);
    DelayCommand(fDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eBurst, lTarget));
  }
}
//void main(){}


Функции, устанавливают заданное числовое значение аляймента:
Neverwinter Script Source
void setGoodEvilValue(object oCreature, int nValue)
{
  if(!GetIsObjectValid(oCreature)||
    (GetObjectType(oCreature) != OBJECT_TYPE_CREATURE))
    return;
 
  if (nValue < 0) nValue = 0;
  else if (nValue > 100) nValue = 100;
 
  int nCurGE = GetGoodEvilValue(oCreature);
  int nShift = abs(nCurGE - nValue);
  if (nShift == 0) return;
  int nDir = (nValue > nCurGE) ? ALIGNMENT_GOOD : ALIGNMENT_EVIL;
  AdjustAlignment(oCreature, nDir, nShift);
  if (GetGoodEvilValue(oCreature) != nValue)
    setGoodEvilValue(oCreature, nValue);
}

void setLawChaosValue(object oCreature, int nValue)
{
  if(!GetIsObjectValid(oCreature)||
    (GetObjectType(oCreature) != OBJECT_TYPE_CREATURE))
    return;
 
  if (nValue < 0) nValue = 0;
  else if (nValue > 100) nValue = 100;
 
  int nCurLC = GetLawChaosValue(oCreature);
  int nShift = abs(nCurLC - nValue);
  if (nShift == 0) return;
  int nDir = (nValue > nCurLC) ? ALIGNMENT_LAWFUL : ALIGNMENT_CHAOTIC;
  AdjustAlignment(oCreature, nDir, nShift);
  if (GetLawChaosValue(oCreature) != nValue)
    setLawChaosValue(oCreature, nValue);
}
//void main(){}

Вдруг кому-нибудь пригодится.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #47644 · Ответов: 111 · Просмотров: 456,744

Friedrich
Отправлено: Aug 7 2005, 03:09


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


А ты точно те скрипты ему прописал:
CODE
OnBlocked=x0_ch_hen_block
OnDamaged=x0_ch_hen_damage
OnDeath=x0_ch_hen_death
OnConversation=x0_ch_hen_conv
OnDisturbed=x0_ch_hen_distrb
OnCombatRoundEnd=x0_ch_hen_combat
OnHeartbeat=x0_ch_hen_heart
OnPhysicalAttacked=x0_ch_hen_attack
OnPerception=x0_ch_hen_percep
OnRested=x0_ch_hen_rest
OnSpawn=x0_ch_hen_spawn
OnSpellCast=x0_ch_hen_spell
OnUserDefined=x0_ch_hen_usrdef

Если да, то такого не может быть.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #47373 · Ответов: 3359 · Просмотров: 636,552

Friedrich
Отправлено: Aug 7 2005, 02:52


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (Мефистофель @ Aug 6 2005, 08:54)
Как сделать Хенчмена, чтобы он бегал за тобой, всё время до самой смерти, слышал что "Письменах" нужного непися прописать чт-то надо.
Хелпните. 

QUOTE (Alian REXis @ Aug 6 2005, 09:28)
Пример таких скриптов x0_ch_hen_... соответственно для всех событий.

QUOTE (Мефистофель @ Aug 7 2005, 02:11)
Найн пробовал неработает, нужно что-то с X2

А ты хенчмана к ПС подключал?
void AddHenchman(
object oMaster,
object oHenchman = OBJECT_SELF
);

Кстати, вопрос: где осуществляется обработка кругового меню хенчмана?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #47371 · Ответов: 3359 · Просмотров: 636,552

Friedrich
Отправлено: Jul 31 2005, 04:29


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Недавно Морровинд поставил. Шикарная вещь, если кто не понимает - его проблеммы.
В морре самое классное небо, какое я когда либо видел в компьтерных играх. Кажись даже фазы лун меняются.

А сам мир просто не идет ни в какое сравнение с попсовым ФР. В него, что называется, веришь. (Подробно расписывать лень ^_____^)

А Лорд Вивек рулит, одназначно! (Я фанатею от "Поучений благой Альмалексии" и пр. данмерских книжек. Млин, неужели Альмсиви плохие и их предется замочить?!)
  Форум: СRPG · Просмотр сообщения: #47155 · Ответов: 174 · Просмотров: 66,615

Friedrich
Отправлено: Jun 29 2005, 22:16


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Мефистофель, GetGoodEvilValue(object) возвращает значение от 0 до 100, а не константу аляймента!
Добавлено в [mergetime]1120072670[/mergetime]
Знакомые грабли.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #45370 · Ответов: 5109 · Просмотров: 852,641

Friedrich
Отправлено: Jun 27 2005, 19:52


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Animal - это животное-компаньон друида или рейнджера.
Familiar - фамильяр мага.
Как работать с фамильярами (компаньонами) НПС я себе представляю довольно смутно. И среди стандартных компаньонов тигров не замечено.

Dominated - тот кого задоминейтили (Н.п. спелом, или Animal Empaty).

Добавлено в [mergetime]1119891352[/mergetime]
QUOTE (Aiwan @ Jun 27 2005, 19:51)
Кто именно и в кого и как это НА ВРЕМЯ ДО ОТДЫХА?

Обыкновенно, наверное. Эффект полиморфа будет держаться пока отдыхать не сядешь.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #45240 · Ответов: 5109 · Просмотров: 852,641

Friedrich
Отправлено: Jun 27 2005, 19:31


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Dark@ngel
1. Видимо, проще всего это сделать через полиморф (правда возможные варианты для превращения ограничены). Для этого создаешь предмет со свойством Cast Spell -> Unique Power Self Only.
Создаешь скрипт, имя которого совпадаетс тегом этого предмета, примерно следующего содержания:
Neverwinter Script Source
#include "x2_inc_switches"
void main()
{
  int nEvent = GetUserDefinedItemEventNumber();
  switch (nEvent)
  {
    case X2_ITEM_EVENT_ACTIVATE:
      object oPC = GetItemActivator();
      // Будем превращаться в жуткого волка
      effect ePoly = EffectPolymorph(POLYMORPH_TYPE_DIRE_WOLF);
      effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
      ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoly, oPC);
      break;
  }
}

2. Ну можно, например, самого тигра сделать хенчманом (для этого тигру нужно прописать хенчманские скрипты) и подключить его или к товоему помощнику, или к самому игроку.
Например, на ветке диалога:
void main()
{
object oHench = OBJECT_SELF;
object oTiger = GetNearestObjectByTag("TIGER");
object oPC = GetPCSpeaker();

AddHenchman(oPC, oHench);
SetMaxHenchmen(2);
AddHenchman(oPC, oTiger);
}
А когда будем увольнять хенчмана, вместе с ним нужно будет уволить и тигра (только я не знаю, как обрабатывать увольнение хенчмана через радиальное меню =) ).
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #45234 · Ответов: 5109 · Просмотров: 852,641

Важно! Скрипты
Friedrich
Отправлено: Jun 26 2005, 11:48


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (-fenix- @ Jun 26 2005, 10:36)
Эээ - это как? Кажись не лзя менять внешность НПС на внешность размещаемых объектов, сделать из слона подсвечник не получется.

Можно, если 2da подредактировать.
QUOTE (minion @ Jun 25 2005, 21:12)
if(bInv)// так проще

Ага. И это экономит 8 байт скомпелированного кода, и видимо, пару наносекунд процессорного времени. :P
А нано- это сколько, ксати?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #45062 · Ответов: 3670 · Просмотров: 701,289

Friedrich
Отправлено: Jun 23 2005, 13:50


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


-fenix-
Патч снимает блокировку русских символов (их можно вводить с клавы) и устраняет проблему с "я". Но не решает проблему крокозябр.
Equilibrium
nwtoolset.ini (у меня строка 47).
[Script]
FontName=Courier New Cyr
Если Courier New Cyr нету, то пиши Fixedsys - у всех должен быть.

А ты случайно ТЛК моим компулятором не ковырял? А то он ТЛК портит малость, так что при обращении к настройкам скрипт эдитора происходит "Access violation...".

И вообще, настоятельно рекомендую, для тулсета использвать оригинальный ТЛК. У русский и англ. файлы лежат в отдельной папочке и, их выбор автоматизирован бат-файлом типа:
copy eng.tlk ..\dialog.tlk
cd..
nwn.exe
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44829 · Ответов: 3359 · Просмотров: 636,552

Важно! Скрипты
Friedrich
Отправлено: Jun 22 2005, 13:44


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


QUOTE (Nick Parker @ Jun 22 2005, 13:00)
SetAILevel(oNPS, AI_LEVEL_HIGH);
  SetAILevel(oNRS, AI_LEVEL_HIGH);

А это зачем?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44706 · Ответов: 3670 · Просмотров: 701,289

Friedrich
Отправлено: Jun 22 2005, 12:52


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Выбирай просто, Human, Elf, Dwarf etc.
child, male - это ж видно, цельная модель, как Арибет, например. Арибет ты тоже внешность не поменяешь.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44689 · Ответов: 5109 · Просмотров: 852,641

Friedrich
Отправлено: Jun 22 2005, 12:07


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Access violation at adress 004FFBF7 in module 'nwtoolset.exe'. Read of adress 0037A14

Такая хрень иногда бывает из-за ошибок в ТЛК файле. Ставь аглицкий и должно быть нормуль. Чтобы крокозябр не было в скриптэдиторе, нужно шрифт постаить не юникодовский, типа Fixedsys (у всех должен быть) или Courier New Cyr.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44676 · Ответов: 3359 · Просмотров: 636,552

Friedrich
Отправлено: Jun 21 2005, 21:31


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


void AddHenchman(
object oMaster,
object oHenchman = OBJECT_SELF
);
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44615 · Ответов: 5109 · Просмотров: 852,641

Важно! Скрипты
Friedrich
Отправлено: Jun 21 2005, 14:04


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Zik
Чего-нить в этом роде
Neverwinter Script Source
int removeStackItems(object oInventory, string sItem, int nNum)
{
  object oItem = GetFirstItemInInventory(oInventory);
  int nCount = nNum; // столько итемов осталось удалить
  while(GetIsObjectValid(oItem) && (nCount > 0))
  {
    if(GetTag(oItem) == sItem)
    {
      int nStack = GetItemStackSize(oItem);
      if (nStack <= nCount)    // ЕСЛИ в стопке предметов меньше,
      {                        // чем нам нужно удалить:
        DestroyObject(oItem);  // - удаляем все стопку
        nCount-=nStack;        // - уменьшаем счетчик на кол-во уд-х пред-ов
      } else                       
      { // ИНАЧЕ сокращ. размер стопки и обнуляем счетчик
        SetItemStackSize(oItem, nStack-nCount);
        nCount = 0;
      } 
    } 
    oItem = GetNextItemInInventory(oInventory);
  }
  return nNum - nCount; // возвращаем кол-во уд-х пред-ов
}

Вроде, работает.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44590 · Ответов: 3670 · Просмотров: 701,289

Friedrich
Отправлено: Jun 21 2005, 01:03


Level 5
**

Группа: Members
Сообщений: 137
Регистрация: 19.09.2004
Пользователь №: 258


Equilibrium
1) int GetLastSpell();

This is for use in a OnSpellCastAt script, it gets the ID (SPELL_*) of the spell that was cast.

4) Создаешь свойство:
itemproperty ItemPropertyCastSpell(int nSpell, int nNumUses);
Ахтунг! nSpell - это не константа спела (SPELL_*), это константа свойства предмета IP_CONST_CASTSPELL_*
Чтобы преобразовать одну в другую есть функция
IPGetIPConstCastSpellFromSpellID(int) из x2_inc_itemprop. Пользуй ее или пиши свою.

Добавляешь:
void AddItemProperty(
int nDurationType,
itemproperty ipProperty,
object oItem,
float fDuration = 0.0f
);
Внимательно почитай описания этих функций.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #44565 · Ответов: 5109 · Просмотров: 852,641

5 страниц V   1 2 3 > » 

Есть новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Горячая тема (есть новые сообщения)  Горячая тема (есть новые ответы)
Горячая тема (нет новых сообщений)  Горячая тема (нет новых ответов)
Опрос (есть новые голоса)  Опрос (есть новые голоса)
Опрос (нет новых голосов)  Опрос (нет новых голосов)
Тема закрыта  Закрытая тема
Тема перемещена  Тема перемещена
 

Текстовая версия Сейчас: 29th March 2024 - 04:55