Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
Nokoll
Верно скрипт на локацыю, и не невидемым а примерно призрочное лицо
Добавлено в [mergetime]1107432927[/mergetime]
QUOTE
object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,oPC,1,
CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

Этоже вроде опять приказ скриптом чтобы ПК одел кольцо.
Добавлено в [mergetime]1107433004[/mergetime]
Ну а коль ПК снимет кольцо что тогда будет?
Добавлено в [mergetime]1107433145[/mergetime]
Neverwinter Script Source
object oPC=GetEnteringObject();

Коль стоит так значит ставить надо на onEnter локацыии.
MasterMage
Nokoll
первое, это берутся ближайшие НПС.... второе заменю на другое biggrin.gif
baskan
Здраствуйте, у меня тут проблемка.
Нужно чтобы при входе в портал, если входит эльф кидало в одну точку, если орк в другую, если Дроу то в третью, а если человек то нетрала в одну, гуда в другую, ивела в третью.
Tiger Greyhawk
to baskan
наверное как-нить так, но... я, видимо, не понял почему у тебя возникла проблема. Если с дроу, то так и говори. С этим не смогу помочь.
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oTarget1 = GetWaypointByTag("WP_ELF");
object oTarget2 = GetWaypointByTag("WP_ORC");
object oTarget3 = GetWaypointByTag("WP_DARK_ELF");

if (GetRacialType(oPC) == RACIAL_TYPE_ELF)
  AssignCommand(oPC, JumpToObject(oTarget1));

if (GetRacialType(oPC) == RACIAL_TYPE_HUMANOID_ORC)
  AssignCommand(oPC, JumpToObject(oTarget2));
                          //наверное через проверку субрасы, но...
if (GetSubRace(oPC) == "DARK_ELF")    //С этим не работал. Если у тебя есть раса дроу, то ставь ее
  AssignCommand(oPC, JumpToObject(oTarget3));

if (GetRacialType(oPC) == RACIAL_TYPE_HUMAN)
  if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
      AssignCommand(oPC, JumpToObject(oTarget1));

  if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL)
      AssignCommand(oPC, JumpToObject(oTarget2));

  if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
      AssignCommand(oPC, JumpToObject(oTarget3));

}
Aiwan
Tiger Greyhawk молодец, но скрипт можно немного упростить:
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oTarget1 = GetWaypointByTag("WP_ELF");
object oTarget2 = GetWaypointByTag("WP_ORC");
object oTarget3 = GetWaypointByTag("WP_DARK_ELF");
object oDist;

if (GetRacialType(oPC) == RACIAL_TYPE_ELF)
  {oDist = oTarget1;}
if (GetRacialType(oPC) == RACIAL_TYPE_HUMANOID_ORC)
  {oDist = oTarget2;}
if (GetSubRace(oPC) == "DARK_ELF")
  {oDist = oTarget3;}
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
  {oDist = oTarget1;}
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL)
  {oDist = oTarget2;}
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
  {oDist = oTarget3;}
  AssignCommand(oPC, ClearAllActions());
  AssignCommand(oPC, JumpToObject(oDist));
}
Lex
ни 1 из 2 написанных выше скриптов не удовлетворяет требованию заказчика. А именно:
QUOTE (baskan @ Feb 4 2005, 17:57)
...если входит эльф кидало в одну точку, если орк в другую, если Дроу то в третью, а если человек то нетрала в одну, гуда в другую, ивела в третью.

вот мой вариант...правда он тоже может быть неправильным. black eye.gif
Neverwinter Script Source
void JUMP(object oPC, object oPoint)
{
  AssignCommand(oPC, ClearAllActions());
  AssignCommand(oPC, JumpToObject(oPoint));
{
void main()
{
object oPC = GetEnteringObject();
object oTarget3 = GetWaypointByTag("WP_DARK_ELF");

if (GetRacialType(oPC) == RACIAL_TYPE_ELF)
{
    JUMP(oPC,GetWaypointByTag("WP_ELF"));
    return;
}
if (GetRacialType(oPC) == RACIAL_TYPE_HUMANOID_ORC)
{
    JUMP(oPC,GetWaypointByTag("WP_ORC"));
    return;
}
if (GetSubRace(oPC) == "DARK_ELF")
{
    JUMP(oPC,GetWaypointByTag("WP_DROW"));
    return;
}
if (GetRacialType(oPC) != RACIAL_TYPE_HUMAN)
   return;

if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{
    JUMP(oPC,GetWaypointByTag("WP_HUMAN_GOOD"));
    return;
}
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL)
{
    JUMP(oPC,GetWaypointByTag("WP_HUMAN_EVIL"));
    return;
}
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
    JUMP(oPC,GetWaypointByTag("WP_HUMAN_NEUTRAL"));
}
}
dumbo
подскажите убогому, можно ли узнать уровень, требуемый для напяливания предмета при включенном ilr? - хотелось бы снимать непозволенную одежку с PC после делевела...

ps. может уже обсуждалось, но найти не удалось...
DBColl
dumbo
Я тоже как-то задавался этой целью, но точно также как и ты застрял в неведении... dntknw.gif Вопрос действительно интересный.
Tiger Greyhawk
QUOTE (Lex @ Feb 7 2005, 21:29)
ни 1 из 2 написанных выше скриптов не удовлетворяет требованию заказчика. А именно:

QUOTE
(baskan @ Feb 4 2005, 17:57)
...если входит эльф кидало в одну точку, если орк в другую, если Дроу то в третью, а если человек то нетрала в одну, гуда в другую, ивела в третью.

Lex, если можно, то поподробнее. Почему? И чем так отличается твой скрипт от нашего, кроме введения и описания доп. функции и введения для НЕчеловека (у тебя проверка расы человека "!=") других точек? Я не програмер, так что, видимо, чего-то не понимаю. Да и в скриптах совсем новичок, но пытаюсь... Так, что хочется разъяснений. Плз. dntknw.gif
MasterMage
DBColl поподробнее, что за трабла....не понял this.gif
DBColl
QUOTE (MasterMage @ Feb 8 2005, 18:44)
DBColl поподробнее, что за трабла....не понял

В ини-файле прописан ItemLevelRestriction = 1. То есть включен.
А задача - узнать скриптом УРОВЕНЬ ПЕРСА, КОТОРЫЙ НУЖЕН, ЧТОБЫ НОСИТЬ ДАННУЮ ШМОТКУ.
MasterMage
DBColl ой как сложно!! Брррр.... crazy.gif Это не по мне... А у теья тоже не получилось? black eye.gif
Aiwan
QUOTE (Tiger Greyhawk @ Feb 8 2005, 05:53)
Lex, если можно, то поподробнее. Почему? И чем так отличается твой скрипт от нашего, кроме введения и описания доп. функции и введения для НЕчеловека (у тебя проверка расы человека "!=") других точек?

Это как раз он и имел ввиду.
Shad
QUOTE (DBColl @ Feb 8 2005, 19:54)
А задача - узнать скриптом УРОВЕНЬ ПЕРСА, КОТОРЫЙ НУЖЕН, ЧТОБЫ НОСИТЬ ДАННУЮ ШМОТКУ.

В файле itemvalue.2da таблица цен (нужная колонка MAXSINGLEITEMVALUE), по ним чётко определяется требуемый уровень. По-моему, этот файл предназначался не для этого, или не только для этого, но цены указаны правильные (проверил в тулсете).
DBColl
Shad
Спасибо.

dumbo, тогда надо юзать Get2daString(...); this.gif yes.gif
K.SpecTr
Этого мало есть еще таблицы iprp_XXXcost.2da, в которых параметр Cost именно в уровнях измеряется. Добавил к мечику например Call Lightning 3 раза в день будь добр прибавить за спелл 3 уровня и за разы 1.15.
И функции в тулсете дл этого:
int GetItemPropertyCostTable(itemproperty iProp)
int GetItemPropertyCostTableValue(itemproperty iProp)
Добавлено в 00:15
А табличка iprp_costtable.2da все другие перечисляет. good.gif
Добавлено в 09:27
А может это и не уровни вовсе, а множители swoon.gif, что-то вручную посчитать не удалось (не сошлось), надо еще раз проверить.
Nokoll
Спасибо МастерМаге за скрипт Властелина колец брату очень понравилось Резуспект good.gif
Новот в чем проблема то плейс появляется находит заданное кольцо одивает и исчезает враги его не видят
но если снимеш эффект не снимается я долго ломал голову но не понел что это.
dumbo
была еще идея использовать IPGetIsItemEquipable (т.е. без получения конкретной цифры, но этого в принципе достаточно), но это те же .. - вид сбоку. я почему спросил - заметил в PRC-скриптах кучу функций, о которых в лексиконе ни слова - подумалось, может и на эту тему есть что-нибудь эдакое, типа GetItemLevel... dntknw.gif

следущий вопрос (вот запарил=): есть ли аналог OnDamage для PC? или еще какой заднепроходный метод поймать удар персу по жбану? тут цель в общем такова - определить, бъет PC или нет, а также словить урон.

ps. кстати, предудыщий вопрос решил пока просто - снимаю все при делевеле... diablo.gif
DBColl
QUOTE (dumbo @ Feb 9 2005, 17:48)
следущий вопрос (вот запарил=): есть ли аналог OnDamage для PC? или еще какой заднепроходный метод поймать удар персу по жбану? тут цель в общем такова - определить, бъет PC или нет, а также словить урон.

Когда смотришь чара через Leto, то у него есть все слоты, что и у неписей! Но! Везде стоит ResRef - default. С ним работает хертбит пися. То есть если скрипт в модуле назвать default, то работать он будет как ХБ PC. Я пробовал ставить другие ResRef'ы для чара, но безуспешно... dntknw.gif
Nokoll
Я Очень Стыжусь но всетаки напишу вопрос токой что значит в скриптах Localition Lokal ну что то в этом роде кто знает можно по подробнее.
MasterMage
LocalLocation? если да, то ты запоминаешь место, где стоял, чтобы потом скриптом вернуться. А кольцо, там трабла...отпости сюда, я у DB спрошу...там недочет есть, но я думал он прошел dntknw.gif
Nokoll
Вот 1 на OnPlayerEquipltem
Neverwinter Script Source
//Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastEquippedBy();
    object oRing=GetPCItemLastEquipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,oPC,1,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    effect eEf2=EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEf,oPC);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,eEf2,oPC);
    AssignCommand(oNPC,ClearAllActions());

    }
    return;
}

Во 2 на OnPlayerUnEquipltem

Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastUnequippedBy();
    object oRing=GetPCItemLastUnequipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,oPC,1,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    while(GetFirstEffect(oPC)==eEf)
    {
    RemoveEffect(oPC,eEf);
    eEf=GetNextEffect(oPC);
    }
    }
    return;
}


DBColl: Nokoll, правь свои скрипты на форуме так, чтобы они не ломали размеров страницы! Я ясно выражаюсь?!
MasterMage
DBColl не ругайся, это я такой написал и не поправил....Мну виноват изначально black eye.gif
Так вот никак эффект не снять Remov`ем... А переборкой тоже никак... dntknw.gif
Добавлено в [mergetime]1108051569[/mergetime]
user posted image
Shad
QUOTE (dumbo @ Feb 9 2005, 18:48)
была еще идея использовать IPGetIsItemEquipable (т.е. без получения конкретной цифры, но этого в принципе достаточно), но это те же .. - вид сбоку. я почему спросил - заметил в PRC-скриптах кучу функций, о которых в лексиконе ни слова - подумалось, может и на эту тему есть что-нибудь эдакое, типа GetItemLevel...  dntknw.gif

следущий вопрос (вот запарил=): есть ли аналог OnDamage для PC? или еще какой заднепроходный метод поймать удар персу по жбану? тут цель в общем такова - определить, бъет PC или нет, а также словить урон.

ps. кстати, предудыщий вопрос решил пока просто - снимаю все при делевеле...  diablo.gif

Кстати, вот что вычитал в описании пачта 1.64 (также и 1.65):
- Fixed issue, where if you lost a level and no longer had the required level for an item that you had equipped, your character would become illegal. The item is now unequipped automatically if you don't have the level required to equip it after losing a level. lol.gif
DBColl
QUOTE (MasterMage @ Feb 10 2005, 18:03)
Так вот никак эффект не снять Remov`ем... А переборкой тоже никак...

Помнишь, я говорил про снятие эффектов как-то? Ты говорил, что можно снять таким образом, как ты снимаешь и все прям снимается ЛЕГКО. И вот ты столкнулся с тем, о чем я говорил... wink.gif
Neverwinter Script Source
    effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);
    while(GetFirstEffect(oPC)==eEf)
    {
       RemoveEffect(oPC,eEf);
       eEf=GetNextEffect(oPC);
    }

Переборка должна перебирать не НОВЫЙ тип эффекта, который ты СОЗДАЛ НЕИЗВЕСТНО ГДЕ И НЕ ИЗВЕСТНО НА КОМ.
Neverwinter Script Source
effect eEf=EffectInvisibility(INVISIBILITY_TYPE_IMPROVED);

Должно же выглядеть примерно так...
Neverwinter Script Source
effect eEf = GetFirstEffect(oPC);
while (GetIsEffectValid(eEf))
{
  if (GetEffectType(eEf) == EFFECT_TYPE_IMPROVEDINVISIBILITY)
        RemoveEffect(oPC, eEf);
  eEf = GetNextEffect(oPC);
}

К тому же у тебя логика цикла самого была неправильной. Обрати внимание на вход в цикл свой и мой wink.gif.
Archangel
Нi всем!
Lex сказал, что с вопросами по сриптам надо сюда(насколько я его понял).
this.gif

А ВОТ И ВОПРОС:

Че-то не могу понять че от меня Тулсет хочет..... dntknw.gif
Вот этот скриптик, который не получается:
(Не компилится в строке, где написано "if (GetClickingObject("Door_dragons_1"))")



Neverwinter Script Source
void main()
{
object oDoor = GetObjectByTag("Door_dragons_1");//Дверь
object oGuard = GetObjectByTag("Guard_dragons_1");//Охранник
object oPC = GetEnteringObject();//Игрок
if (!GetIsPC(oPC))//Проверка: Игрок енто или НеПиСь
    return;
if (GetClickingObject("Door_dragons_1"))//Если Игорок кликнул на дверке, то  появляется......
  {
    DelayCommand(2.0, AssignCommand(oGuard, SpeakString("What are you doing? Get out small thief!")));//ВОТ ЕНТО
   }
else//А, если ж нет,то......
     {
       DelayCommand(1.0, AssignCommand(oGuard, ClearAllActions()));//ПОЧИСТИМ ВСЕ ДЕЙСТВИЯ У ОХРАННИКА
       }
     }


ПОДСКАЖИТЕ ПЖААААААЛУЙСТА ЧЕ ТУТ НЕ ТАК! drag.gif
Lex
QUOTE (Archangel @ Feb 12 2005, 20:02)
Lex сказал, что с вопросами по сриптам надо сюда(насколько я его понял).

правильно понял


Neverwinter Script Source
if (GetClickingObject("Door_dragons_1"))

смысл строки такой: если объект, который кликает на дверь..... и все. Условие то где?

И вообще скрипт какой-то странный.... на чем он стоит? Похоже на входе в локу или на триггер... Тогда GetClickingObject тебе ничего не выдаст...

Что ты вообще от скрипта хочешь то?





Archangel
Ок LEX. Ща все объясню: this.gif

QUOTE
смысл строки такой: если объект, который кликает на дверь..... и все. Условие то где?


Я имел ввиду вот, что: Игрок кликает на дверь, и если дверь заперта, то охранник говорит: " What are you doing? Get out small thief! "

QUOTE
И вообще скрипт какой-то странный.... на чем он стоит? Похоже на входе в локу или на триггер... Тогда GetClickingObject тебе ничего не выдаст...


Скрипт стоит на обычной двери.

Lex
на двери...хех..там больше 10 слотов. Но раз тебе надо
QUOTE (Archangel @ Feb 12 2005, 20:50)
Я имел ввиду вот, что: Игрок кликает на дверь, и если дверь заперта, то охранник говорит: " What are you doing? Get out small thief! "

то все просто

Neverwinter Script Source
void main()
{
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
object oGuard = GetNearestObjectByTag("Guard_dragons_1");
AssignCommand(oGuard,SpeakString("What are you doing? Get out small thief!"));
}


скрипт ставится на слот onFailToOpen (может не так называется, но смысл тот.)
Nokoll
Народ мне нужна помощь...
(Опять Эти скрипты меня в угол загнали)..
Так вот, Бошка не как не доходит как сделать так.
Стоит НеПиСь и Точка маршрута и напиример Пк поговорил с НПК Вдруг рас скрипт срабатывает
и НПК Читает заклинание (Всмысле колдует со звуком) например Лучь мороза и Это заклинание поражает Точку маршрута.
//
И еще вопросик как мне соединить в скрипте на локации 4 заклинания Луч Мороза
Например 4 Точки маршрута и из 1 точки бьёт луч во 2 и т.д
Shad
То есть разговор с NPC инициирует цепь этих лучей?
Shad
Часть 1. Непись колдует: наверно не сработает
Neverwinter Script Source
ActionCastSpellAtObject(SPELL_RAY_OF_FROST,
GetWaypointByTag("sWPTag"), METAMAGIC_ANY, 1);

(не примет вейпойнт как объект) или
Neverwinter Script Source
ActionCastSpellAtLocation(SPELL_RAY_OF_FROST,
GetLocation(GetWaypointByTag(sWPTag+"1")), METAMAGIC_ANY, 1);

(не каждый спелл можно прокастовать на локацию, SPELL_RAY_OF_FROST я думаю нельзя), то должно сработать что-то вроде
Neverwinter Script Source
ActionCastFakeSpellAtLocation(SPELL_RAY_OF_FROST,
GetLocation(GetWaypointByTag("sWPTag")));//Непись машет пальцами и бормочет, повернувшись в нужном направлении
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,
EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND),
GetLocation(GetWaypointByTag("sWPTag")), 3.0);//Собственно виз. эффект

Часть 2. От вейпойнта к вейпойнту:
Neverwinter Script Source
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,
EffectBeam(VFX_BEAM_COLD, GetWaypointByTag("sWPTag"), BODY_NODE_HAND),
GetLocation(GetWaypointByTag("sWPTag1")), 3.0);

В последнем может надо поэкспериментировать с BODY_NODE_, какие там части тела у вейпойнта...
Archangel
Хэллоу всем! biggrin.gif
У мня тута вопрос по скрипту:


Neverwinter Script Source
void main()
{
object oGuard = GetObjectByTag("Guard_dragons_1");//Охрана
object oPC = GetLastUsedBy();//Игрок
if (!GetIsPC(oPC)) return;//Проверка-игрок енто или НеПиСь
object oDoor = GetObjectByTag("Door_dragons_1");//Дверь
int iDoorLocked = GetLocked(oDoor);//Переменная двери
if (iDoorLocked == TRUE)//Разветвление
{
AssignCommand(oGuard, ActionAttack(oPC));//Стражник атакует Игрока
AssignCommand(oGuard,SpeakString("I kill you small thief!"));//Стражник скажет это
SetLocked(oDoor, FALSE);//Ну я думаю енто понятно
}
else
{
AssignCommand(oGuard,SpeakString("What are you doing? Get out small thief!"));//Стражник скажет это
SetLocked(oDoor, TRUE);//Ну я думаю енто понятно
}
}


Вообще-то он должен работать так:
Есть Игрок, он пытается открыть дверь(точнее взломать-сначало дверь закрыта).
Если у него енто получается, то рядом стоящий охранник говорит:"I kill you small thief!",а
затем атакует Игрока.
Если ж у Игрока не получается тпереть дверь, то тогда охранник просто говорит:
"What are you doing? Get out small thief!".
Но дело в том, что все с точки зрения Тулсета в порядке(т.е все компилится).
Я ни че не могу понять где че неправильно.

ОТКЛИКНИТЕСЬ КТО МОЖЕТ! drag.gif
MasterMage
QUOTE (Archangel @ Feb 13 2005, 17:46)
if (iDoorLocked == TRUE)//Разветвление

если дверь закрыта, то стражник нападает, но по сюжету твоему, он должен нападать только после попытки открыть....Так где же эта попытка?
Надо так
Neverwinter Script Source
if (GetLocked(oDoor)==FALSE)//или GetLastUnlocked()==oDoor
{
AssignCommand(oGuard, ActionAttack(oPC));//Стражник атакует Игрока
AssignCommand(oGuard,SpeakString("I kill you small thief!"));//Стражник скажет это

}
else if (GetLocked(oDoor)==FALSE && (тут надо проверку на то, что PC кликнул дверь))
{
AssignCommand(oGuard,SpeakString("What are you doing? Get out small thief!"));//Стражник скажет это
}
}
Lex
QUOTE (Archangel @ Feb 13 2005, 17:46)
Есть Игрок, он пытается открыть дверь(точнее взломать-сначало дверь закрыта). Если у него енто получается, то рядом стоящий охранник говорит:"I kill you small thief!"

слот onUnLock
Neverwinter Script Source
void main()
{
object oGuard = GetNearestObjectByTag("Guard_dragons_1");
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
AssignCommand(oGuard,ClearAllActions());
AssignCommand(oGuard,ActionAttack(oPC));
AssignCommand(oGuard,SpeakString("I kill you small thief!"));
}

В случае, если РС успешно взломал дверь, то стражник нападает. Как тебе вроде и надо.

QUOTE (Archangel @ Feb 13 2005, 17:46)
Если ж у Игрока не получается тпереть дверь, то тогда охранник просто говорит: "What are you doing? Get out small thief!".

это нельзя сделать именно так. Можно что игрок пытается открыть дверь, но не может.
слот onFailToOpen
Neverwinter Script Source
void main()
{
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
object oGuard = GetNearestObjectByTag("Guard_dragons_1");
AssignCommand(oGuard,SpeakString("What are you doing? Get out small thief!"));
}

этот скрипт я тебе уже писал выше.
Maniac
Всем привет, я новенький на этом форуме.Так что если чё не так, то не обижайтесь.
Не подскажет ли мне кто нибудь,как сделать так, чтобы только ночью стражники
ходили с факелами, а днём нет. yes.gif
Lex
добавка в скрипт на слоте onHeartBeat стражника:
Neverwinter Script Source
void GetItem(string sTag, object oCreature )
{
  object oItem = GetFirstItemInInventory(oCreature);
  while (GetTag(oItem)!=sTag)
  {
  oItem = GetNextItemInInventory(oCreature);
  if (!GetIsObjectValid(oItem)) return OBJECT_INVALID;
  }
return oItem;
}
/// тут стандартный скрипт ХБ
if (GetIsDay())&&(GetLocalInt(OBJECT_SELF,"TORCH"))
{
  ClearAllActions();
  ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
  SetLocalInt(OBJECT_SELF,"TORCH",FALSE);
}
if (GetIsNight())&&(!GetLocalInt(OBJECT_SELF,"TORCH"))
{
  ClearAllActions();
  ActionEquipItem(GetItem("ITM_TORCH",OBJECT_SELF),INVENTORY_SLOT_LEFTHAND);
  SetLocalInt(OBJECT_SELF,"TORCH",TRUE);
}


что-то типа этого...тулсета под рукой нет
Archangel
Maniac, необижайся, но ты новенький, так, что лучше те в тему "Вопросы новичков" заглянуть. Ничего личного, просто совет...... yahoo.gif yahoo.gif yahoo.gif yahoo.gif
Friedrich
QUOTE
И еще вопросик как мне соединить в скрипте на локации 4 заклинания Луч Мороза
Например 4 Точки маршрута и из 1 точки бьёт луч во 2 и т.д

На вейпоинты, по-моему, вообще ничего накладывать нельзя. На не статичные невидимые плейсаблы - можно.
Archangel
Lex! У мня че-то не получается! Я сделал все как ты сказал, а охраннику хоть бы хны!
Это я че-то недопираю или может ты где-то ошибся? dntknw.gif
Скорее всего Я че-то не так делаю.....

ПОДСКАЖИ ПЖАААЛУЙСТА...
swoon.gif swoon.gif swoon.gif
Lex
а что именно не сработало? Он не напал, он не говорит? Ситуацию описывай подробнее
Archangel
Если точно, то он и не говорит и не нападает..........
black eye.gif black eye.gif black eye.gif
Lex
Хм, странно. Дома попробую сделать
Nokoll
QUOTE
На вейпоинты, по-моему, вообще ничего накладывать нельзя. На не статичные невидимые плейсаблы - можно.


Можно в аддоне Ундердарк есть где калдовали на веапон, а ты незнаеш как невобект поставить?
MasterMage
Nokoll ЧТО???? ничего не понятно!!! this.gif
Archangel
Угу Lex. Попытайся пЖалуйста! good.gif
Nokoll
QUOTE
Nokoll ЧТО???? ничего не понятно!!!


Я говорил что в Аддоне Underdarc был скрипт где кастовали каклинание на Точку Маршрута.
И спосил еще как соеденить например 4 лединых луча например 1 бёт во 2, и т.д с помощю невидемого обекта. biggrin.gif
<small>Добавлено в 12:57</small>
Это вапрос Дарк Принца:

Самым злобным образом приветствую всех многоуважаемых участников форума. diablo.gif
Возник небольшой вопрос по скриптам - мне в определенный момент времени нужно "потрясти экран" - эффект землетрясения. Каким образом можно это реализовать? Чесно говоря неохота перерывать Lexicon и родные NWN-новские скрипты. Может подскажет кто?
MasterMage
QUOTE (Nokoll @ Feb 14 2005, 12:41)
Самым злобным образом приветствую всех многоуважаемых участников форума. 
Возник небольшой вопрос по скриптам - мне в определенный момент времени нужно "потрясти экран" - эффект землетрясения. Каким образом можно это реализовать? Чесно говоря неохота перерывать Lexicon и родные NWN-новские скрипты. Может подскажет кто?

знаю, вопрос не твой, так вот ответ
Neverwinter Script Source
effect eEf=EffectVisualEffect(не помню, но вместо этой строки ставь константу,что-то связанное со "screen");
object oWp=GetWaypointByTag("Тэг твоей точки");//а можно GetObjectByTag("Тэг"); - если ты на объект ставишь//
ApplyEffectAtLocation(DURATION_TUPE_TEMPORARY,eEf,GetLocation(oWp),2.5);

ставишь на триггер или дверь, куда нужно в общем...
Тут я точно не помню(так как тула нет при себе) что сотоит раньше eEf, или loc(GetLocation(oWp).
<small>Добавлено в 13:27</small>
DBColl
дело в том, что эта функция находит эффект только в данном скрипте, а если еффект уже наложен, а снять хочешь другим, то ОН НЕ РАБОТАЕТ!! pardon.gif
Вот в чем дело.... Думается, он просто не может работать, будучи разорванным...
Remove удаляет только в одном скрипте.... black eye.gif

<small>Добавлено в 13:32</small>
Neverwinter Script Source
//::///////////////////////////////////////////////
//:: Created By: MasterMage ©
//:: Created On: 30.01.05
//::///////////////////////////////////////////////
void main()
{
    object oPC=GetPCItemLastUnequippedBy();
    object oRing=GetPCItemLastUnequipped();
    object oNPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,oPC,1,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC,
                                  CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_NOT_PC);

    if (GetTag(oRing)=="Ring")
    {
    effect eEf = GetFirstEffect(oPC);
    while (GetIsEffectValid(eEf))
{
  if (GetEffectType(eEf) == EFFECT_TYPE_IMPROVEDINVISIBILITY)
        RemoveEffect(oPC, eEf);
  eEf = GetNextEffect(oPC);
}   
}
    return;
}
Nokoll
С Позволения МастераМагии Подправлю.. biggrin.gif
Поставъ Так effect eEf=EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
Или VFX_FNF_SCREEN_BUMP
Grazzt, Dark Prince
Спасибки. Приду домой - опробую фичу. biggrin.gif Крайне полезный эффект. diablo.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.