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

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


Angelelf
Отправлено: Aug 20 2006, 10:41


Level 1


Группа: Newbie
Сообщений: 5
Регистрация: 15.08.2006
Пользователь №: 2,669


Это мой скрипт для разных таверн.Официантка ходит по таверне подходит к разнам клиентам ,спрашивает заказ

идет к стойке берерт заказ идет назад к тому же клиенту отдает ему заказ и берет плату.Время от времени

отдыхает и жалуется на жизнь.Реплики впишете сами не хотелось париться.
Что бы скрипты правильно работали следует создать следущие вай поинты:
Bar1-сюда приходят за напитками
Rest1-здесь отдыхает
wt_return1-ставиться возле бара
WP_TavernPatronXX_01-ставится возле клиентов у каждого клиент должен быть свой номер ХХ
Zone1-ставится где нибудь не подалеку от клиентов


Этот скрипт ставится на оnUserDef
NSS
////////////////////////////////////////////////////////////////////////////////
// Written by Angelelf 24.03.06
// Скрипт придаю щий реальную атмосферу таверне
// требуются следующие вай поинты
// WP_WTCommon_Bar      - место где берутся заказы.Бар
// WP_Rest1            - Здесь она будет отдыхать
// ZoneX                - этот вай поинт обозначает зону обслуживания
// X это номер зоны обслуживания начинается с 1
////////////////////////////////////////////////////////////////////////////////
void DrinkOrderKid(); // Заказ ребенка
void DrinkOrder();    // Заказ посетителей
string CountPatrons();  // Счетчик посетителей
void GetQueryString();  //
void TakeBreak();      // перерыв
void GetMyPay();        // получение пллаты

int StartingConditional()
{
    return TRUE;
}

void DrinkOrderKid() //  Заказ ребенка
{
    int nOrder= -1;
    string sOrder;  // реплика официанта
    string sAmount; // Реплика при передаче заказа
    string sBarkeepR;// Реплика бармена
    nOrder= d4();
    switch(nOrder)
    {
        case 1:
            sOrder = "Бармен,стакан молока для ребенка.";
            sAmount = "Вот твое молоко.";
            sBarkeepR = "Один стакан свежего молока готов.";
            break;
        case 2:
            sOrder = "Один стакан воды пожалуйста";
            sAmount = "Вот вода которую вы заказывали";
            sBarkeepR = "Держи.";
            break;
        case 3:
            sOrder = "Можешь себе представить ребенок попросил водки";
            sAmount = "Простите мы не продаем водку лицам моложе 18 лет";
            sBarkeepR = "Когда они поймут что водка это вредно.";
            break;
        case 4:
            sOrder = "________";
            sAmount = "________";
            sBarkeepR = "_______.";
            break;
    }
    SetLocalString(OBJECT_SELF, "WG_ORDER", sOrder);
    SetLocalString(OBJECT_SELF, "WG_AMOUNT", sAmount);
    SetLocalString(OBJECT_SELF, "WG_BARKEEP", sBarkeepR);
}

void DrinkOrder()  // заказы посетителей
{
    int nOrder= -1;
    string sOrder;
    string sAmount;
    string patronOrder;
    string sBarkeepR;
    nOrder= d8();
    switch(nOrder)
    {
        case 1:
            patronOrder = "Принеси мне эля."; // заказ
            sOrder = ""; //реплика официанта
            sAmount = "";    //реплика при передачи заказа
            sBarkeepR = ""//реплика бармена
            break;
        case 2:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 3:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 4:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 5:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 6:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 7:
            patronOrder = "";
            sOrder = "";
            sAmount = "";
            sBarkeepR = "";
            break;
        case 8:
            patronOrder = "";
            sOrder = "";
            sBarkeepR = "";
            sAmount = "";
            break;
    }
    SetLocalString(OBJECT_SELF, "PATRON_ORDER", patronOrder);
    SetLocalString(OBJECT_SELF, "WG_ORDER", sOrder);
    SetLocalString(OBJECT_SELF, "WG_AMOUNT", sAmount);
    SetLocalString(OBJECT_SELF, "WG_BARKEEP", sBarkeepR);
}

string CountPatrons()
{
    int i=-1;
    int j=-1;
    int myZone = GetLocalInt(OBJECT_SELF,"MyZone");
    float size;
    switch(myZone)
    {

    // Изменяйте величену size чтоб официант обслуживал разных клиентов за круг это увеличит реальность
        case 1:
            size=15.0;
            break;
        case 2:
            size=15.0;
            break;
        case 3:
            size=21.0;
            break;
        case 4:
            size=7.0;
            break;
    }
    string myTag = "Zone" + IntToString(myZone);
    string patronTag;
    object oJunk = GetFirstObjectInShape(SHAPE_CUBE, size, GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    if ((GetIsPC(oJunk) == TRUE) || (oJunk == OBJECT_SELF))
    {
        oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    }
    while (oJunk != OBJECT_INVALID)
    {
        while ((GetIsPC(oJunk) == TRUE) || (oJunk == OBJECT_SELF))
        {
            oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
        }
        i++;
        oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    }
    int bla=Random(i);

    oJunk = GetFirstObjectInShape(SHAPE_CUBE,  size, GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    if ((GetIsPC(oJunk) == TRUE) || (oJunk == OBJECT_SELF))
    {
        oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)),  TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    }
    while (oJunk != OBJECT_INVALID)
    {
        while ((GetIsPC(oJunk) == TRUE) || (oJunk == OBJECT_SELF))
        {
            oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
        }
        j++;
        if (j == bla)
        {
            patronTag = GetTag(oJunk);
        }
        oJunk=GetNextObjectInShape(SHAPE_CUBE, size,GetLocation(GetWaypointByTag(myTag)), TRUE,

CREATURE_TYPE_PLAYER_CHAR);
    }
    return patronTag;
}

void GetQueryString() // Спрашивает заказ у PC
{
    switch(Random(4))
    {
        case 0:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
        case 1:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
        case 2:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
        case 3:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
    }
}

void TakeBreak()  // реплики во время перерыва
{
    switch(Random(4))
    {
        case 0:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
        case 1:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
        case 2:
            ActionSpeakString ("I",TALKVOLUME_TALK);
            break;
        case 3:
            ActionSpeakString ("",TALKVOLUME_TALK);
            break;
    }
}

void GetMyPay()    // gjctnbntkb jnlf.n gkfne
{
    string payAmount;

    switch(d4())
    {
        case 1:
            payAmount = "Вот твои деньги сдачи не надо";
            break;
        case 2:
            payAmount = "";
            break;
        case 3:
            payAmount = "";
            break;
        case 4:
            payAmount = "";
            break;
    }
    SetLocalString(OBJECT_SELF,"PAY_AMOUNT",payAmount);
}




void main() {

    int nUser = GetUserDefinedEventNumber();
    string sQuery;
    string sOrder;
    int myZone = GetLocalInt(OBJECT_SELF,"MyZone");
    string myPatron=CountPatrons();
    string sAmount;
    string payAmount;
    string patronOrder;
    string sBarkeepR;
    int isKid;
    object oCustomer = GetLocalObject(OBJECT_SELF, "CUSTOMER");
    object oBar;
    object oBar2;
    switch(myZone)
    {
        // Добавляйте или убирайте кол-во case в зависимости от того сколько зон вам надо обслуживать
        case 1:
          oBar = GetWaypointByTag("WP_WTCommon_Bar");    //Здесь официантка берет напитки
          oBar2 = GetWaypointByTag("Rest1");  //Сюда она возвращается когда разнесет напитки
          break;

    }
    if (nUser == 1001)
    {
        if (!GetIsObjectValid(oCustomer) && (GetLocalInt(OBJECT_SELF, "BARMAID_STATE") < 1))
        {
            // идет к своему клиенту не игроку
            oCustomer = GetObjectByTag(myPatron);
            if (oCustomer != GetObjectByTag("Barkeeper") &&
            oCustomer != OBJECT_SELF && GetIsObjectValid(oCustomer))
            {
                // подходит к клиенту и спрашивает чего он хочет
                SetLocalInt (OBJECT_SELF, "BARMAID_STATE", 1);
                SetLocalObject (OBJECT_SELF, "CUSTOMER", oCustomer);
                ActionForceMoveToObject(oCustomer, FALSE, 0.5, 60.0);
                GetQueryString();
                isKid = GetLocalInt(oCustomer,"IAmAKid");
                if (isKid == 1)
                {
                    DrinkOrderKid();
                }
                else
                {
                    DrinkOrder();
                }
                ActionWait(1.0);
                patronOrder = GetLocalString(OBJECT_SELF,"PATRON_ORDER");
                ActionDoCommand(AssignCommand(oCustomer,SpeakString(patronOrder,TALKVOLUME_TALK)));
                ActionWait(3.0); //ждет 3 сек

                // идет к бару за напитками
                ActionDoCommand (SetLocalInt(OBJECT_SELF, "BARMAID_STATE", 2));
                ActionForceMoveToObject(oBar, FALSE, 0.5, 60.0);

                sOrder = GetLocalString(OBJECT_SELF,"WG_ORDER");
                sBarkeepR = GetLocalString(OBJECT_SELF, "WG_BARKEEP");

                ActionSpeakString (sOrder);
                ActionWait(3.0);

                // проверяет к тому ли бару она идет
                if(myZone == 1)
                {
                    ActionDoCommand(AssignCommand(GetObjectByTag("wt_Barkeeper1"), ActionSpeakString

(sBarkeepR,TALKVOLUME_TALK)));
                }
                else
                {
                    ActionDoCommand(AssignCommand(GetObjectByTag("wt_Barkeeper2"), ActionSpeakString

(sBarkeepR,TALKVOLUME_TALK)));
                }
                ActionWait(3.0);
                // возвращается к клиенту и отдает напитки
                ActionDoCommand (SetLocalInt(OBJECT_SELF, "BARMAID_STATE", 3));
                ActionForceMoveToObject (oCustomer, FALSE, 0.5, 60.0);
                sAmount = GetLocalString(OBJECT_SELF,"WG_AMOUNT");
                GetMyPay();
                payAmount = GetLocalString(OBJECT_SELF,"PAY_AMOUNT");
                if (sAmount == "**") // реакция на выражения
                {
                    PlaySound("cb_ht_critical"); //звук
                    payAmount = ""; // фраза
                }
                ActionSpeakString (sAmount);
                ActionWait(2.0);
                ActionDoCommand(AssignCommand(oCustomer,SpeakString(payAmount,TALKVOLUME_TALK)));
                ActionDoCommand (SetLocalObject(OBJECT_SELF, "CUSTOMER", OBJECT_INVALID));

                // возвращается к бару и берет перерыв
                ActionForceMoveToObject(oBar2, FALSE, 0.5, 60.0);
                ActionWait(1.0);
                TakeBreak();
                ActionWait(2.0);
                ActionDoCommand (SetLocalInt(OBJECT_SELF, "BARMAID_STATE", 0));
            }
        }
    }
    if (nUser == 1004)
    {

        SetLocalObject (OBJECT_SELF, "CUSTOMER", OBJECT_INVALID);
        SetLocalInt (OBJECT_SELF, "BARMAID_STATE", 0);
    }
}

Этот на onSpawn официанта
NSS
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_DEFAULT9
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Determines the course of action to be taken
    after having just been spawned in
*/

//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"




void main()
{

SetLocalInt(OBJECT_SELF,"MyZone",1); // это значит что данный официант будет обслуживать зону 1.Создать вай

поинт Zone1

// OPTIONAL BEHAVIORS (Comment In or Out to Activate )

****************************************************************************
    //SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION);
    //SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION);
                // This causes the creature to say a special greeting in their conversation file
                // upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired
                // greeting in order to designate it. As the creature is actually saying this to
                // himself, don't attach any player responses to the greeting.

    //SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET);
                // This will set the listening pattern on the NPC to attack when allies call
    //SetSpawnInCondition(NW_FLAG_STEALTH);
                // If the NPC has stealth and they are a rogue go into stealth mode
    //SetSpawnInCondition(NW_FLAG_SEARCH);
                // If the NPC has Search go into Search Mode
    //SetSpawnInCondition(NW_FLAG_SET_WARNINGS);
                // This will set the NPC to give a warning to non-enemies before attacking

    //SetSpawnInCondition(NW_FLAG_SLEEP);
                //Creatures that spawn in during the night will be asleep.
    //SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING);
    //SetSpawnInCondition(NW_FLAG_APPEAR_SPAWN_IN_ANIMATION);
    //SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);
    //SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS);
                //This will play Ambient Animations until the NPC sees an enemy or is cleared.
                //NOTE that these animations will play automatically for Encounter Creatures.

    // NOTE: ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME.
    //SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN);    // OPTIONAL BEHAVIOR (Flee to a way point and return a

short time later.)
    //SetSpawnInCondition(NW_FLAG_ESCAPE_LEAVE);    // OPTIONAL BEHAVIOR (Flee to a way point and do not

return.)
    //SetSpawnInCondition(NW_FLAG_TELEPORT_LEAVE);  // OPTIONAL BEHAVIOR (Teleport to safety and do not

return.)
    //SetSpawnInCondition(NW_FLAG_TELEPORT_RETURN);  // OPTIONAL BEHAVIOR (Teleport to safety and return a

short time later.)

// CUSTOM USER DEFINED EVENTS
/*
    The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD.  Like the
    On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors.  The user

defined
    events user 1000 - 1010
*/

    SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1001
    //SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1002
    //SetSpawnInCondition(NW_FLAG_ATTACK_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1005
    //SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1006
    //SetSpawnInCondition(NW_FLAG_DISTURBED_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1008
    //SetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event

1003
    SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT);      //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
    //SetSpawnInCondition(NW_FLAG_DEATH_EVENT);            //OPTIONAL BEHAVIOR - Fire User Defined Event 1007

// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH)

*****************************************************************************************
    SetListeningPatterns();    // Goes through and sets up which shouts the NPC will listen to.
    WalkWayPoints();          // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                              // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk

them
                              // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                              //    combat.
//  GenerateNPCTreasure();    //* Use this to create a small amount of treasure on the creature
}

Этот на onConvercation
NSS
//::///////////////////////////////////////////////
//:: SetListeningPatterns
//:: NW_C2_DEFAULT4
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Determines the course of action to be taken
    by the generic script after dialogue or a
    shout is initiated.
*/

//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 24, 2001
//:://////////////////////////////////////////////

#include "NW_I0_GENERIC"

void main()
{
    int nMatch = GetListenPatternNumber();
    object oShouter = GetLastSpeaker();
    object oIntruder;

    if (nMatch == -1 && GetCommandable(OBJECT_SELF))
    {
        ClearAllActions();
        BeginConversation();
        ActionWait(8.0);
    }
    else
    if(nMatch != -1 && GetIsObjectValid(oShouter) && !GetIsPC(oShouter) && GetIsFriend(oShouter))
    {
        if(nMatch == 4)
        {
            oIntruder = GetLocalObject(oShouter, "NW_BLOCKER_INTRUDER");
        }
        else if (nMatch == 5)
        {
            oIntruder = GetLastHostileActor(oShouter);
            if(!GetIsObjectValid(oIntruder))
            {
                oIntruder = GetAttemptedAttackTarget();
                if(!GetIsObjectValid(oIntruder))
                {
                    oIntruder = GetAttemptedSpellTarget();
                    if(!GetIsObjectValid(oIntruder))
                    {
                        oIntruder = OBJECT_INVALID;
                    }
                }
            }
        }
        RespondToShout(oShouter, nMatch, oIntruder);
    }


    if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1004));
    }
}

Этот на onDistr
NSS
//::///////////////////////////////////////////////
//:: Default: On Disturbed
//:: NW_C2_DEFAULT8
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Calls the end of combat script every round
*/

//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 16, 2001
//::///////////////////////////////////////////

// * Make me hostile the faction of my last attacker (TEMP)
//  AdjustReputation(OBJECT_SELF,GetFaction(GetLastAttacker()),-100);
// * Determined Combat Round

#include "NW_I0_GENERIC"

void main()
{
    object oTarget = GetLastDisturbed();

    if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
    {
        if(GetIsObjectValid(oTarget))
        {
            DetermineCombatRound(oTarget);
        }
    }
    if(GetSpawnInCondition(NW_FLAG_DISTURBED_EVENT))
    {
        ActionWait(8.0);
    }
}

Этот сиавится на onSpawn клиента таверны
NSS
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_DEFAULT9
//:: Copyright © 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Determines the course of action to be taken
    after having just been spawned in
*/

//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
// OPTIONAL BEHAVIORS (Comment In or Out to Activate )

****************************************************************************
    //SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION);
    //SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION);
                // This causes the creature to say a special greeting in their conversation file
                // upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired
                // greeting in order to designate it. As the creature is actually saying this to
                // himself, don't attach any player responses to the greeting.

    //SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET);
                // This will set the listening pattern on the NPC to attack when allies call
    //SetSpawnInCondition(NW_FLAG_STEALTH);
                // If the NPC has stealth and they are a rogue go into stealth mode
    //SetSpawnInCondition(NW_FLAG_SEARCH);
                // If the NPC has Search go into Search Mode
    //SetSpawnInCondition(NW_FLAG_SET_WARNINGS);
                // This will set the NPC to give a warning to non-enemies before attacking

    //SetSpawnInCondition(NW_FLAG_SLEEP);
                //Creatures that spawn in during the night will be asleep.
    //SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING);
    //SetSpawnInCondition(NW_FLAG_APPEAR_SPAWN_IN_ANIMATION);
    //SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);
    //SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS);
                //This will play Ambient Animations until the NPC sees an enemy or is cleared.
                //NOTE that these animations will play automatically for Encounter Creatures.

    // NOTE: ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME.
    //SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN);    // OPTIONAL BEHAVIOR (Flee to a way point and return a

short time later.)
    //SetSpawnInCondition(NW_FLAG_ESCAPE_LEAVE);    // OPTIONAL BEHAVIOR (Flee to a way point and do not

return.)
    //SetSpawnInCondition(NW_FLAG_TELEPORT_LEAVE);  // OPTIONAL BEHAVIOR (Teleport to safety and do not

return.)
    //SetSpawnInCondition(NW_FLAG_TELEPORT_RETURN);  // OPTIONAL BEHAVIOR (Teleport to safety and return a

short time later.)

// CUSTOM USER DEFINED EVENTS
/*


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

  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #90112 · Ответов: 111 · Просмотров: 460,187

Angelelf
Отправлено: Aug 20 2006, 08:14


Level 1


Группа: Newbie
Сообщений: 5
Регистрация: 15.08.2006
Пользователь №: 2,669


Люди и все остальные тоже помогите со скриптом nq_c2_default9 как присвоить НПС разные возможности поведения.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #90106 · Ответов: 5109 · Просмотров: 865,424

Angelelf
Отправлено: Aug 15 2006, 09:27


Level 1


Группа: Newbie
Сообщений: 5
Регистрация: 15.08.2006
Пользователь №: 2,669


подскажите как сделать скрипт чтоб NPc по ночам заходил домой и делал вид что он спит?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #89624 · Ответов: 5109 · Просмотров: 865,424

Angelelf
Отправлено: Aug 15 2006, 09:23


Level 1


Группа: Newbie
Сообщений: 5
Регистрация: 15.08.2006
Пользователь №: 2,669


Вопрос.Можно ли в тулсете заставить NPc спать по ночам?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #89622 · Ответов: 5109 · Просмотров: 865,424


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

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