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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 135 136 137 138 139 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
gennady
сообщение Aug 28 2007, 10:41
Сообщение #3401


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



shadowdweller, не будет лишним запретить работу скрипту, если это сингл и ГГ не находится в одной локе с объектом. Поставьте объекту сюжет и снимите статик, так будет работать стабильно, если скрипт весит на ХБ.
Neverwinter Script Source
void main()
{
    object oLight = OBJECT_SELF;
    int nEffectID;
    // Если сингл
    if(GetArea(GetFirstPC()) != GetArea(oLight)) return; // если ПС нет в локе

  switch(d10())  // Generated number или switch(Random(10)+1)
    {
      case 1:  nEffectID = VFX_DUR_GLOW_LIGHT_GREEN;  break;
      case 2:  nEffectID = VFX_DUR_GLOW_LIGHT_RED;    break;
      case 3:  nEffectID = VFX_DUR_GLOW_LIGHT_WHITE;  break;
      case 4:  nEffectID = VFX_DUR_GLOW_LIGHT_BLUE;    break;
      case 5:  nEffectID = VFX_DUR_GLOW_LIGHT_ORANGE; break;
      case 6:  nEffectID = VFX_DUR_GLOW_LIGHT_PURPLE; break;
      case 7:  nEffectID = VFX_DUR_GLOW_LIGHT_YELLOW; break;
      case 8:  nEffectID = VFX_DUR_GLOW_LIGHT_BROWN;  break;
      case 9:  nEffectID = VFX_DUR_GLOW_LIGHT_GREEN;  break;
      case 10: nEffectID = VFX_DUR_GLOW_LIGHT_BLUE;    break;
    }
    effect eLight = EffectVisualEffect(nEffectID);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLight, oLight, 5.0);
}

P.S. Звиняйте за тормоза…


Сообщение отредактировал gennady - Aug 29 2007, 06:18
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Aug 28 2007, 11:38
Сообщение #3402


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

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



Лекс, я не спорю, но какие можно?
ЗЫ
QUOTE
Static
If true, this placeable can not be modified dynamically in game. It cannot have its inventory accessed, cannot be deleted, add cannot have dynamic collision.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 28 2007, 11:54
Сообщение #3403


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

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



ну в этом скрипте эффекты рассматриваюца - их можно (что я и сказал). Про остальное надо отдельно разговаривать (IMG:style_emoticons/kolobok_light/smile.gif)
вариант в том, что нивидимый объект не имеет формы, и поэтому на него не кладется например эффект ГостВизаж.. по той причине, что мы результат эффекта просто не увидим. Есть мысль что со светом тоже самое, поэтому я и предложил сделать объект видимым.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Aug 28 2007, 12:08
Сообщение #3404


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Gennady, спасибо, попробую.

Что касается световых эффектов, то, если я правильно поняла, скрипты с ними не работают собственно на источниках света. На фонаре и на жаровне скрипт Virusman'a не работает, как не работает и немного измененный, где эффекты типа VFX_DUR_GLOW_LIGHT_ХХХ заменены на VFX_DUR_LIGHT_ХХХ_20. Зато прекрасно работают на всех остальных объектах (типа фонтана или алтаря), если отменить им Static.

Сообщение отредактировал shadowdweller - Aug 28 2007, 12:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Aug 28 2007, 20:32
Сообщение #3405


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



У меня в системе освещения всё прекрасно зажигалось - и невидимые объекты, и источники света.
Кстати, дайсы d10 кидаются от 1 до 10, а вот Random - действительно с 0.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Aug 29 2007, 06:18
Сообщение #3406


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата
Кстати, дайсы d10 кидаются от 1 до 10, а вот Random - действительно с 0.

Спасибо Вирь, что поправил. Сто лет уже скрипты не писал… забыл, да видно и не знал. (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 4 2007, 19:10
Сообщение #3407


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



А вот еще такая проблема - нужно, чтобы НПС красивенько лежали бы на полу, но при этом не были бы мертвыми. И чтобы не вскакивали, когда перс пытается с ними разговаривать.
Признаюсь честно - сдула из Shadows of Undrentide вот такой скрипт:
Neverwinter Script Source
#include "x0_i0_corpses"

void main()
{
    effect eKnock = EffectKnockdown();
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eKnock, OBJECT_SELF);
}

Ставится на OnSpawn. В итоге все неписи стоят на коленях, ложиться не желает ни один. Почему так происходит?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Sep 5 2007, 02:56
Сообщение #3408


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

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



Если мне не изменяет память - кноки бывают разные - на спину и на колени, от чего зависит - уже не помню. От силы кнока кажется, или рандомно... (IMG:style_emoticons/kolobok_light/vava.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Sep 5 2007, 06:27
Сообщение #3409


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



EffectKnockdown всегда ставит на колени.
nwnlexicon.com - там советую поискать константу по её части "FALL".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Sep 5 2007, 06:50
Сообщение #3410


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



shadowdweller, вот вам два скрипта… Один с эффектом сна, значит с персом нельзя будет говорить. Другой с анимацией и возможностью разбудить перса и поговорить с ним. Сон будет ночью, ну можно и задать свое время сна, т.е. значение int T
Neverwinter Script Source
//:://////////////////////////////////////////////////
//:: СКРИПТ ДЛЯ СПЯЩИХ (МОЖНО ГОВОРИТЬ)
//:: File name: de_sleep
//:: Слот: OnHeartBeat
//:://////////////////////////////////////////////////
void main()
{
object oSelf = OBJECT_SELF;
if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе

int T = GetTimeHour();
effect eSL = EffectVisualEffect(VFX_IMP_SLEEP);
if (GetIsInCombat(oSelf))  return;
if (IsInConversation(oSelf))  return;
if(T>=7 && T<21) // день
{
  ExecuteScript("nw_c2_default1", oSelf);
  SetLocalInt(oSelf,"SLEEP_ANIM",0);
  return;
}
  AssignCommand(oSelf, ClearAllActions(TRUE));
  if(GetLocalInt(oSelf,"SLEEP_ANIM")==0)
  {
  if(d2()==1) SetLocalInt(oSelf,"SLEEP_ANIM",1);
  else        SetLocalInt(oSelf,"SLEEP_ANIM",2);
  }
  if(GetLocalInt(oSelf,"SLEEP_ANIM")==1)
ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0);
  else
ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 1.0, 10.0);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf);
}
/* Для корректной работы, у ходячих удалить скрипты
    nw_c2_default9 и nw_c2_default2 */

Neverwinter Script Source
//:://////////////////////////////////////////////////
//:: СКРИПТ ДЛЯ СПЯЩИХ (НЕЛЬЗЯ ГОВОРИТЬ)
//:: File name: ef_sleep
//:: Слот: OnHeartBeat
//:://////////////////////////////////////////////////
void main()
{
  object oSelf = OBJECT_SELF;
  effect eSleep = EffectSleep();
  effect eSL = EffectVisualEffect(VFX_IMP_SLEEP);

  if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе
if(GetIsDay()) // день
{ExecuteScript("nw_c2_default1", oSelf); return;}
  AssignCommand(oSelf, ClearAllActions(TRUE));
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, oSelf, 10.0);
  ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf);
}
/* Для корректной работы, у ходячих удалить скрипты
    nw_c2_default9 и nw_c2_default2 */
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 5 2007, 14:35
Сообщение #3411


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Gennady, спасибо. (IMG:style_emoticons/kolobok_light/thank_you.gif)

А еще хотелось бы спросить вот что - нужен скрипт, который срабатывал бы на триггере если РС идет по нему один, без хенча. Т.е., если хенч к персу присоединен, не происходит ничего, а происходит только в том случае, если перс один. Все действия написаны, а проверка не получается.
В лексиконе не могу найти функцию, которая подходит. (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Подскажите, плз.

Сообщение отредактировал shadowdweller - Sep 5 2007, 20:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 5 2007, 20:49
Сообщение #3412


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

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



навскидку так
Neverwinter Script Source
if (!GetIsObjectValid(GetHenchman(oPC))) // если игрок один
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 6 2007, 17:58
Сообщение #3413


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Lex, спасибо. Попробую.

Продолжаю разбираться со спящими. Дело в том, что мне нужно, чтобы НПС не то, чтобы спали в определенное время суток, а лежали бы раненые (госпиталь у меня там! (IMG:style_emoticons/kolobok_light/rolleyes.gif) ).
Немного модифицировав скрипт Gennady, получила вот что:
Neverwinter Script Source
void main()
{
    int iDoOnce = GetLocalInt(OBJECT_SELF, "iDoOnce");

    if (iDoOnce == FALSE)
    {
  object oSelf = OBJECT_SELF;
  effect eSleep = EffectSleep();
  effect eSL = EffectVisualEffect(VFX_IMP_SLEEP);

        AssignCommand(oSelf, ClearAllActions(TRUE));
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSleep, oSelf, 10.0);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf);
       
        SetLocalInt(oSelf, "iDoOnce", TRUE);
    }
}

На хартбите НПС красиво падает как подкошенный, на OnSpawn работает идеально. При попытке добавить еще и ранение + не разрешить некоторым злобным РС добить беднягу:
Neverwinter Script Source
void main()
{
    int iDoOnce = GetLocalInt(OBJECT_SELF, "iDoOnce");

    if (iDoOnce == FALSE)
    {
  object oSelf = OBJECT_SELF;
  effect eSleep = EffectSleep();
  effect eSL = EffectVisualEffect(VFX_IMP_SLEEP);

        AssignCommand(oSelf, ClearAllActions(TRUE));
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSleep, oSelf, 10.0);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(10), oSelf);
        SetPlotFlag(oSelf, TRUE);

        SetLocalInt(oSelf, "iDoOnce", TRUE);
    }
}

НПС стоит как вкопанный. То же происходит, если убираю переменную. Почему? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 6 2007, 19:49
Сообщение #3414


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



SetPlotFlag
он не дает ето зделать, используй лучше SetImmortal
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 6 2007, 20:18
Сообщение #3415


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Спасибо. Что самое интересное - функции эти нахально и тупо тырю из SoU - там работают прекрасно. (IMG:style_emoticons/kolobok_light/crazy.gif)

И еще возник вопрос - скрипт, который выполняется только при отсутствии хенча у перса. Получилось что-то вроде:
Neverwinter Script Source
#include "nw_i0_generic"
void main()
{
if (!GetIsObjectValid(GetHenchman(oPC)))
{
object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01");
object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02");
object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03");
object oDr1 = GetObjectByTag("DOOR_ZOM_01");
object oDr2 = GetObjectByTag("DOOR_ZOM_02");
object oDr3 = GetObjectByTag("DOOR_ZOM_03");
object oPoint1 = GetObjectByTag("WP_ZOM1");
object oPoint2 = GetObjectByTag("WP_ZOM2");
object oPoint3 = GetObjectByTag("WP_ZOM3");
object oPC = GetFirstPC();
ChangeToStandardFaction(oZOM1,STANDARD_FACTION_HOS
ILE);
ChangeToStandardFaction(oZOM2,STANDARD_FACTION_HOS
ILE);
ChangeToStandardFaction(oZOM3,STANDARD_FACTION_HOS
ILE);
AssignCommand(oDr1, DestroyObject(oDr1));
AssignCommand(oDr2, DestroyObject(oDr2));
AssignCommand(oDr3, DestroyObject(oDr3));
AssignCommand(oZOM1,ClearAllActions());
AssignCommand(oZOM2,ClearAllActions());
AssignCommand(oZOM3,ClearAllActions());
AssignCommand(oZOM1, ActionAttack(oPC));
AssignCommand(oZOM2, ActionAttack(oPC));
AssignCommand(oZOM3, ActionAttack(oPC));
}
}

Срабатывает каждый раз - и с хенчем, и без... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 6 2007, 21:43
Сообщение #3416


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



Во превых где стоит скрипт? на каком евенте и евенте чего?
Во вторых кто такой оПЦ?
у тя нет ошибки в скриптах?
Neverwinter Script Source
object oPC = GetEnteringObject(); // Ето если скрипт на евенте ентера тригера..
if (!GetIsObjectValid(GetHenchman(oPC)))
{
object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01");
object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02");
object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03");
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 6 2007, 22:49
Сообщение #3417


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



2 sKaa
Увы, SetImmortal не помогло - НПС как стоял, так и стоит. Тяжелораненый, а на ногах держится (IMG:style_emoticons/kolobok_light/smile.gif)
Причем, упрямо продолжает стоять как со строкой
Neverwinter Script Source
SetPlotFlag(oSelf, TRUE); // или
SetImmortal(oSelf, TRUE);

так и без нее

Скрипт стоит на OnEnter триггера. На самом деле, там так и есть:
Neverwinter Script Source
#include "nw_i0_generic"
void main()
object oPC = GetEnteringObject(); // до этого-то я додумалась
{
if (!GetIsObjectValid(GetHenchman(oPC)))
{
object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01");
object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02");
object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03");
object oDr1 = GetObjectByTag("DOOR_ZOM_01");
object oDr2 = GetObjectByTag("DOOR_ZOM_02");
object oDr3 = GetObjectByTag("DOOR_ZOM_03");
object oPoint1 = GetObjectByTag("WP_ZOM1");
object oPoint2 = GetObjectByTag("WP_ZOM2");
object oPoint3 = GetObjectByTag("WP_ZOM3");
object oPC = GetFirstPC();
ChangeToStandardFaction(oZOM1,STANDARD_FACTION_HOS
ILE);
ChangeToStandardFaction(oZOM2,STANDARD_FACTION_HOS
ILE);
ChangeToStandardFaction(oZOM3,STANDARD_FACTION_HOS
ILE);
AssignCommand(oDr1, DestroyObject(oDr1));
AssignCommand(oDr2, DestroyObject(oDr2));
AssignCommand(oDr3, DestroyObject(oDr3));
AssignCommand(oZOM1,ClearAllActions());
AssignCommand(oZOM2,ClearAllActions());
AssignCommand(oZOM3,ClearAllActions());
AssignCommand(oZOM1, ActionAttack(oPC));
AssignCommand(oZOM2, ActionAttack(oPC));
AssignCommand(oZOM3, ActionAttack(oPC));
}
}

Все равно в обоих случаях срабатывает - и когда есть хенч, и когда нету... А нужно, чтобы выполнялся только при отсутствии хенча. (IMG:style_emoticons/kolobok_light/sad.gif)

Сообщение отредактировал shadowdweller - Sep 6 2007, 23:01
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 6 2007, 23:36
Сообщение #3418


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



Цитата(shadowdweller @ Sep 6 2007, 23:49) *
2 sKaa
Увы, SetImmortal не помогло - НПС как стоял, так и стоит. Тяжелораненый, а на ногах держится (IMG:style_emoticons/kolobok_light/smile.gif)
Причем, упрямо продолжает стоять как со строкой
Neverwinter Script Source
SetPlotFlag(oSelf, TRUE); // или
SetImmortal(oSelf, TRUE);

так и без нее

Надо ставить Иммортал без Плот флага...
Neverwinter Script Source
SetPlotFlag(oSelf, FALSE); // или
SetImmortal(oSelf, TRUE);


Цитата(shadowdweller @ Sep 6 2007, 23:49) *
Скрипт стоит на OnEnter триггера. На самом деле, там так и есть:
Neverwinter Script Source
#include "nw_i0_generic"
void main()
{

object oPC = GetEnteringObject(); // до этого-то я додумалась
if(GetIsObjectValid(GetHenchman(oPC)))
return; // Попробуй возврашение функции если хечмент есть...
object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01");
object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02");
object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03");
object oDr1 = GetObjectByTag("DOOR_ZOM_01");
object oDr2 = GetObjectByTag("DOOR_ZOM_02");
object oDr3 = GetObjectByTag("DOOR_ZOM_03");
object oPoint1 = GetObjectByTag("WP_ZOM1");
object oPoint2 = GetObjectByTag("WP_ZOM2");
object oPoint3 = GetObjectByTag("WP_ZOM3");
object oPC = GetFirstPC();
ChangeToStandardFaction(oZOM1,STANDARD_FACTION_HOS
LE);
ChangeToStandardFaction(oZOM2,STANDARD_FACTION_HOS
LE);
ChangeToStandardFaction(oZOM3,STANDARD_FACTION_HOS
LE);
AssignCommand(oDr1, DestroyObject(oDr1));
AssignCommand(oDr2, DestroyObject(oDr2));
AssignCommand(oDr3, DestroyObject(oDr3));
AssignCommand(oZOM1,ClearAllActions());
AssignCommand(oZOM2,ClearAllActions());
AssignCommand(oZOM3,ClearAllActions());
AssignCommand(oZOM1, ActionAttack(oPC));
AssignCommand(oZOM2, ActionAttack(oPC));
AssignCommand(oZOM3, ActionAttack(oPC));
}

Все равно в обоих случаях срабатывает - и когда есть хенч, и когда нету... А нужно, чтобы выполнялся только при отсутствии хенча. (IMG:style_emoticons/kolobok_light/sad.gif)


А еще если по тргеру мона кликнуть маусом создай такой-же скрипт только вместо
GetEnteringOjbect();
GetClickingObject(); - помойму так пишеться
и поставь етот скрипт на евент клика тригера
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
frozenCat
сообщение Sep 6 2007, 23:49
Сообщение #3419


Level 1


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



Добрый день. У меня есть несколько вопросов по поводу игрового движка и создания модов. Есть концепция RP игры и есть необходимость воплотит ее в более менее играбельный вид. Есть желание сделать это в виде мода к нвн. Но практически вся игровая механика отличается от ДнД. Возможно ли полностью изменить систему статов/скилов? Возможно ли введение новых параметров персонажа? Насколько возможно изменить GUI игры? Т.е. хочется узнать насколько гибкий этот движок.

PS Как альтернатива есть вариант создания игры как мод к Unreal 2004, там возможности не ограничены, но информации по этому делу в разы меньше, а русскоязычной практически нет.

Neo: информации по UnrealEd море, да - на русском не много, а так... google и узнаешь все, что хочешь (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 6 2007, 23:56
Сообщение #3420


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



Читай форум, в нвн движок достаточно гибкий..
На форуме все возможности описаны
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Sep 7 2007, 06:38
Сообщение #3421


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



shadowdweller, я привел два скрипта для примера, т.к. там есть два варианта уложить перса, анимацией и эффектом. (к тому же кто-то недавно спрашивал…) Если наложен эффект, то нужно учесть, что игроки попытаются его снять… Это нужно писать еще один скрипт на OnSpellCastAt. (если эффект не поддерживает SupernaturalEffect) Чтобы персы не говорили при анимации, то достаточно заблокировать их стек, или навесить локалку и изменить скрипт на OnConversation написав:
Neverwinter Script Source
void main()
{
  object oSelf = OBJECT_SELF;

if (GetLocalInt(oSelf, "LOCAL") == 1) return; // Проверить
ExecuteScript("nw_c2_default4", oSelf);
}

Lex ругается за готовые скрипты, т.ч. скрипт писать не буду (IMG:style_emoticons/kolobok_light/biggrin.gif) … Кстати, навесить на перса сюжет после урона, можно прописав через DelayCommand. Хотя в вашем случае просто достаточно сразу проставить персу бессмертие. Вот для примера скрипт на ранение из моего мода.
Neverwinter Script Source
//::////////////////////////////////////////
//:: СКРИПТ:  СМЕРТЬ - РАНЕНИЕ
//:: File name:
//:: Слот: OnHeartBeat
//::////////////////////////////////////////
void main()
{
  object oSelf = OBJECT_SELF;
  if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе
  if(GetLocalInt(oSelf, "P_smert") == 1) return;
  if (!IsInConversation(oSelf))
  {
   if(GetCurrentHitPoints(oSelf) < 30)
   {
    ClearAllActions();  // Почистим все Action у НПС
    ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 7.0);
   }
else ExecuteScript("nw_c2_default1", oSelf);
  }
if(GetLocalInt(oSelf, "smert") != 1)
{
  if(GetAbilityScore(oSelf, ABILITY_INTELLIGENCE) >= 17)
  {
   effect eDamage = EffectDamage(GetCurrentHitPoints(oSelf)-3);
   ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,
Self);
   SetLocalInt(oSelf, "smert", 1);
  }
  else
  {
   effect eDeath = EffectDeath();
   ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oSelf);
   SetLocalInt(oSelf, "P_smert", 1);
  }
}
}
/*   Если интеллект выше 17, то ранение и падение.
     Если вылечить, то если ХР выше 30, падать не будет.
     Если интеллект ниже 17, то смерть.  */

С хенчем и триггером все просто. Кстати, не увидел в скрипте функций из инклюды…
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return// Если не герой
object oSP = GetHenchman(oPC);
if (GetIsObjectValid(oSP)) return; // Если есть хенчь

object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01");
object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02");
object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03");
object oDr1 = GetObjectByTag("DOOR_ZOM_01");
object oDr2 = GetObjectByTag("DOOR_ZOM_02");
object oDr3 = GetObjectByTag("DOOR_ZOM_03");
object oPoint1 = GetObjectByTag("WP_ZOM1");
object oPoint2 = GetObjectByTag("WP_ZOM2");
object oPoint3 = GetObjectByTag("WP_ZOM3");

ChangeToStandardFaction
(oZOM1,STANDARD_FACTION_HOSTILE);
ChangeToStandardFaction
(oZOM2,STANDARD_FACTION_HOSTILE);
ChangeToStandardFaction
(oZOM3,STANDARD_FACTION_HOSTILE);
AssignCommand(oZOM1,ClearAllActions());
AssignCommand(oZOM2,ClearAllActions());
AssignCommand(oZOM3,ClearAllActions());
AssignCommand(oZOM1, ActionAttack(oPC));
AssignCommand(oZOM2, ActionAttack(oPC));
AssignCommand(oZOM3, ActionAttack(oPC));
AssignCommand(oDr1, DestroyObject(oDr1));
AssignCommand(oDr2, DestroyObject(oDr2));
AssignCommand(oDr3, DestroyObject(oDr3));
}

P.S. Нео, ну че за фигня?! Задолбался править скрипты!!! При переносе строки режет последний символ…

Сообщение отредактировал gennady - Sep 7 2007, 07:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Sep 7 2007, 11:13
Сообщение #3422


Level 4
**

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



Прошу уточнить OnModuleLoad
это событие которое будет отробатыватьпри каждом старте сервера ???
нету ли на нем какихто подводных камней

что делает стандартный скрипт этого слота что будет если я его удалю???
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 7 2007, 11:18
Сообщение #3423


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



Цитата(Teranozavr_REX @ Sep 7 2007, 12:13) *
Прошу уточнить OnModuleLoad
это событие которое будет отробатыватьпри каждом старте сервера ???

да
Цитата(Teranozavr_REX @ Sep 7 2007, 12:13) *
нету ли на нем какихто подводных камней

Есть (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата(Teranozavr_REX @ Sep 7 2007, 12:13) *
что делает стандартный скрипт этого слота что будет если я его удалю???

Включает разные фишки, не чего собо не изменица, я его вообще отключаю, т.к все что там описано настраиваю своими методами (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Teranozavr_REX
сообщение Sep 7 2007, 11:56
Сообщение #3424


Level 4
**

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



QUOTE
Цитата(Teranozavr_REX @ Sep 7 2007, 12:13)
нету ли на нем какихто подводных камней

Есть

А можно узнатькакие
уж очень надоело по 3 часа выяснятьвсякие недокументированые фишки )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sKaa
сообщение Sep 7 2007, 12:06
Сообщение #3425


Level 4
**

Класс: Пьяный Мастер
Характер: True Neutral
Раса: Человек



В скрипте все описано, правда на английском но я тож не преводчик..
так что топор те +2 в руки (IMG:style_emoticons/kolobok_light/smile.gif) и вперед на сайты переводчики и разбирай каждую функцию которая там
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 135 136 137 138 139 > » 
Ответить в эту темуОткрыть новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2024 - 06:27