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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 101 102 103 104 105 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Sep 15 2006, 16:31
Сообщение #2536


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

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



Хенч там криво получился хз почему. При переходах между локациями ему надо переприказывать, чтобы шел за тобой. Я хз почему.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 15 2006, 17:27
Сообщение #2537


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Milfes @ Sep 15 2006, 16:28) [snapback]91739[/snapback]

У меня проблема. Надо что бы когда игрок наступал на тригер к нему подбегал хенчь и начинал разговор, но если хенчь далеко то он подбегает но разговор не начинает.
Вот скрипт на он энтаре тригера:
NSS
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
if (GetLocalInt(OBJECT_SELF,"ACTIVATED")) return;
object oIlirin = GetHenchman(oPC);
if (GetTag(oIlirin)!="ilirin01") return;
SetLocalInt(oIlirin,"D_LINE",GetLocalInt(OBJECT_SELF,"CONVERSATION_LINE"));
SetLocalInt(OBJECT_SELF,"ACTIVATED",TRUE);
DestroyObject(OBJECT_SELF,5.0);
AssignCommand(oIlirin, ClearAllActions(TRUE));
AssignCommand(oPC, ClearAllActions(TRUE));
SetCutsceneMode(oPC,TRUE);
AssignCommand(oIlirin, ActionStartConversation(oPC,"plot_ilitrin01"));
}

Может кто знает в чём ошибка.
ЗЫ так же пробовал что бы хенчь сначала подбегал при момощи ActionMoveToObjecy, а только потом начинал разговор, но всё равно не получается.

NSS
//:://////////////////////////////////////////////
//:: OnEnter  am_ten_convr_npc
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
  Старт диалога с РС. Текст над РС - Name триггера
  KeyTag - если больше 0, то непись ПОДБЕЖИТ.
  TR_CONV_[ТАГ_НПС_ДЛЯ_ДИАЛОГА]
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Original idea By: DBColl
//:: Created On: 22.04.2005
//:://////////////////////////////////////////////

void main()
{
    object oPC = GetEnteringObject();
    object oTrig = OBJECT_SELF;
    string sTag = GetTag(oTrig); // Таг триггера
    string sNPC = GetStringRight(sTag, (GetStringLength(sTag)- 8)); // Таг НПС
    object oNPC = GetNearestObjectByTag(sNPC);
    string sSpeak = GetName(oTrig); // Фраза
    vector vD = GetPosition(oNPC) - GetPosition(oPC);
    float fDir = VectorToAngle(vD);
    int bRun = StringToInt(GetLockKeyTag(oTrig));
    if (!GetIsPC(oPC)) return;
    if (GetLocalInt(oTrig, "HAS_OPERATED")) return;
    if (!GetIsObjectValid(oNPC)) return;
    if (GetArea(OBJECT_SELF)!=GetArea(oNPC)) return;
    if (GetIsEnemy(oNPC, oPC)) return;
    if (GetObjectType(oNPC)!=OBJECT_TYPE_CREATURE) return;

    FadeToBlack(oPC, FADE_SPEED_FASTEST);
    AssignCommand(oPC, ClearAllActions());
    AssignCommand(oNPC, ClearAllActions());
    SetCutsceneMode(oPC);
    DelayCommand(0.8, AssignCommand(oPC, SetCameraFacing(fDir, 25.0, 60.0, CAMERA_TRANSITION_TYPE_SNAP)));
    AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oPC))));
    DelayCommand(1.2, FadeFromBlack(oPC, FADE_SPEED_FAST));
    DelayCommand(2.0, AssignCommand(oPC, SetCameraFacing(fDir+35.0, 8.0, 50.0, CAMERA_TRANSITION_TYPE_SLOW)));
    AssignCommand(oPC, ActionDoCommand(SetFacingPoint(GetPosition(oNPC))));
    if (GetDeity(oNPC)!="")
      {
        int iAnim = StringToInt(GetDeity(oNPC));
        DelayCommand(3.0, AssignCommand(oNPC, ActionPlayAnimation(iAnim, 0.8, 2.0)));
      }
    DelayCommand(3.5, AssignCommand(oNPC, SpeakString(sSpeak)));
    DelayCommand(4.5, AssignCommand(oNPC, ActionForceMoveToObject(oPC, bRun)));
    DelayCommand(5.5, AssignCommand(oNPC, ActionDoCommand(SetCutsceneMode(oPC, FALSE))));
    DelayCommand(6.0, AssignCommand(oNPC, ActionStartConversation(oPC)));
    //-------------------------------------------------------
    SetLocalInt(oTrig, "HAS_OPERATED", TRUE);
}

Работает уже пару лет.

Зайди в раздел хеньчмана, там есть заготовка диалога и стрингов. Все бегает все подбегает и прочее. Хеньч сложная системаскриптов. там постоянно чистят акции и прочее, сканит врагов и друзей.

NSS
//:://////////////////////////////////////////////
//:: Name: am_ten_evt_alish
//:: Copyright © 2006 WRG! Team
//:://////////////////////////////////////////////
/*
  Скрипт персональных триггеров Алишан
  Основан на скрипте X2_EVT_TRIGGER
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 02.08.2006
//:://////////////////////////////////////////////
#include "x0_i0_common"
#include "x2_inc_banter"


void main()
{
    object oSelf = OBJECT_SELF;
    object oTrigger = GetEnteringObject();
    object oAlishan = GetObjectByTag("AM_HEN_ALISHAN");
    string sLl = GetLocalString(oSelf, "LOCAL_PC_01");
    string sL2 = GetLocalString(oSelf, "LOCAL_PC_02");

    if(GetMaster(oAlishan) == oTrigger)
    {
      // Если РС длаьше 20 метров то возврат. Иначе у BioWare тупо удаляется триггер...
    if(GetDistanceBetweenLocations(GetLocation(oTrigger), GetLocation(oAlishan)) > 20.0)
      return;

      // Локальные переменные на РС при каторых триггер не сработает
      if(GetLocalInt(oTrigger, sLl) || GetLocalInt(oTrigger, sL2))
      {
        DestroyObject(oSelf);
        return;
      }
      string sTag = GetTag(OBJECT_SELF);
      AttemptInterjectionOrPopup(OBJECT_SELF, sTag, oTrigger, 0, oAlishan);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Sep 15 2006, 21:43
Сообщение #2538


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Тут дело не в самом скрипте похоже, а в чём-то другом. По идее и скрипт Lеха должен работать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 15 2006, 22:52
Сообщение #2539


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Milfes, ну вроде сказали уже, что похоже дело в хенче, глюкнуло там что-то.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 16 2006, 16:59
Сообщение #2540


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Milfes @ Sep 16 2006, 00:43) [snapback]91780[/snapback]
Тут дело не в самом скрипте похоже, а в чём-то другом. По идее и скрипт Lеха должен работать.

Надо делать вот что: повесить все команды на хеньчмана акциями. Через 0.1 секунду закрыть стек команд, а в конце всех команд повесить ActionDoCommand(Открываем стек команд Хеньчману) и все будет пахать как часы. проверено на разных НПС делающих что-то по скриптам. Ходящих по вейпам, стоящих на поинтах. У них сбиваются акции. Или с рандомно бродящими НПС.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Sep 16 2006, 20:28
Сообщение #2541


Level 5
**

Класс: Друид
Характер: Lawful Neutral
Раса: Человек



Огромное спасибо. (IMG:style_emoticons/kolobok_light/thank_you.gif) Помогло.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Sep 18 2006, 18:30
Сообщение #2542


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

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



я сей сабж делал через OnUserDefined o_O
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Diamond
сообщение Sep 18 2006, 19:38
Сообщение #2543


Level 2
*

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



Всем добрый вечер. Я в скриптах почти ноль, и поэтому помучавшесь чуть чуть решил написать сюда. В общем мысль такая - есть триггер, игрок на него наступает, NPC говорит фразу (это я сделал сам...) Но после того как игрок сходит с триггера меняется переменная и в следующий раз NPC говорит уже другую фразу. Вот то, что я сам наваял, что то работает, что то нет...

NSS
void main()
{
   SetLocalInt(GetPCSpeaker(), "Int_1", 0);
   object oNPC=GetObjectByTag("SHIP_KONTR");
   string sString_1="Текст_1!";
   string sString_2="Текст_2!";
   if(!(GetLocalInt(GetPCSpeaker(), "Int_1") == 1))
     return ActionDoCommand(AssignCommand(oNPC,ActionSpeakString(sString_1)));

   return ActionDoCommand(AssignCommand(oNPC,ActionSpeakString(sString_2)));
}


Это на OnEnter триггера

NSS
void main()
{
SetLocalInt(GetPCSpeaker(), "Int_1", 1;
}


Это на OnExit

Сообщение отредактировал Diamond - Sep 18 2006, 19:41
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 18 2006, 19:43
Сообщение #2544


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

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



эм.. я ничего не понял, если честно...
вот тот скрипт, который ты по идее должен был бы написать:
OnEnter триггера
NSS
void main()
{
// берем того, кто наступил на триггер (у тебя тут GetPCSpeaker был.. совсем не в тему)
object oPC = GetEnteringObject();
// если наступил на триггер не игрок (что более чем реально)
if (!GetIsPC(oPC)) return; // выходим из скрипта
// теперь берем НПС, который говорит фразу
// чтобы унифицировать, тэг НПС храним в локальной переменной NPC_TAG, которая записана на триггере
object oNPC = GetNearestObjectByTag(GetLocalString(OBJECT_SELF,"NPC_TAG"));
// теперь берем номер строки, которую нам надо сказать (нумерация идет с 0)
int nNumber = GetLocalInt(OBJECT_SELF,"NUMBER");
// если номер текущей строки -1 (это означает, что кончились строки)
if (nNumber == -1) return; // мы выходим из скрипта
// теперь берем саму строчку.. строки это локальные строковые переменные на триггере STRING_0, STRING_1 и тд
string sString = GetLocalString(OBJECT_SELF,"STRING_"+IntToString(nNumber));
// увеличивем указатель номера строки на 1. (чтоб в след. раз взять следующую строку)
SetLocalInt(OBJECT_SELF,"NUMBER",nNumber++);
// если строка не пустая, говорим ее
if (sString!="")
     AssignCommand(oNPC,SpeakString(sString));
// а если пустая, значит строки кончились. Тады ставим указатель на -1
else SetLocalInt(OBJECT_SELF,"NUMBER",-1);
}

__
таким образом получаем:
- ставишь триггер
- ставишь в onEnter этот скрипт
- в локальную строковую переменную NPC_TAG пишешь тэг нпс (в данном случае у тебя это SHIP_KONTR)
- в локальные строковые переменные STRING_0, STRING_1 и тд (скока хочешь, хоть STRING_10000) пишешь нужные тебе фразы.

готово.

вопросы?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Diamond
сообщение Sep 18 2006, 20:38
Сообщение #2545


Level 2
*

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



Всё отлично работает! Спасибо. Еще один маленький вопрос - как сделать задержку между появлениями фраз, а то если ходить по комнате они слишком часто появляются.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 18 2006, 20:56
Сообщение #2546


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

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



DelayCommand ставь.. например так:
AssignCommand(oNPC,DelayCommand(SpeakString(sString)));

или ты про то, чтобы он не постоянно говорил, а скажем в след. раз не раньше, чем через 2 минуты.
если да, то тут придется скрипт модернизировать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 18 2006, 21:05
Сообщение #2547


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



NSS
/* ЭТО В НАЧАЛО СКРИПТА */

if(GetLocalInt(OBJECT_SELF, "DELAY") == 1) return;
// Если есть локалка DELAY на триггере то он не сработает.

/* ЭТО В КОНЕЦ */

SetLocalInt(OBJECT_SELF,"DELAY", 1);
// присвоим локалку ожидания
float f = IntToFloat(Random(15)+5);
// Сделаем плавающей время ожидания сгенерировав случайное число и конвертнув его в float
// при этом мы прибавили 5 секунд что бы точно не скзал фразу сразу при выпадении 1 или 0
DelayCommand(f,SetLocalInt(OBJECT_SELF,"DELAY", 0));
// Получаем искомое случайное время задержки. Присваиваем 0 локалке триггер опять работает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Diamond
сообщение Sep 18 2006, 21:07
Сообщение #2548


Level 2
*

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



QUOTE
чтобы он не постоянно говорил, а скажем в след. раз не раньше, чем через 2 минуты.


Ну в общем то да, чтобы прошло секуд 25.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 18 2006, 21:15
Сообщение #2549


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

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



тады самое эффективное, это временно делать триггер неактивным.
NSS
void main()
{
// если заблокирован - выходим
if (GetLocalInt(OBECT_SELF,"STOP")) return;
// берем того, кто наступил на триггер (у тебя тут GetPCSpeaker был.. совсем не в тему)
object oPC = GetEnteringObject();
// если наступил на триггер не игрок (что более чем реально)
if (!GetIsPC(oPC)) return; // выходим из скрипта
// теперь берем НПС, который говорит фразу
// чтобы унифицировать, тэг НПС храним в локальной переменной NPC_TAG, которая записана на триггере
object oNPC = GetNearestObjectByTag(GetLocalString(OBJECT_SELF,"NPC_TAG"));
// теперь берем номер строки, которую нам надо сказать (нумерация идет с 0)
int nNumber = GetLocalInt(OBJECT_SELF,"NUMBER");
// если номер текущей строки -1 (это означает, что кончились строки)
if (nNumber == -1) return; // мы выходим из скрипта
// теперь берем саму строчку.. строки это локальные строковые переменные на триггере STRING_0, STRING_1 и тд
string sString = GetLocalString(OBJECT_SELF,"STRING_"+IntToString(nNumber));
// увеличивем указатель номера строки на 1. (чтоб в след. раз взять следующую строку)
SetLocalInt(OBJECT_SELF,"NUMBER",nNumber++);
// если строка не пустая, говорим ее
if (sString!="")
     {
     AssignCommand(oNPC,SpeakString(sString));
    // блокируем триггер
     SetLocalInt(OBJECT_SELF,"STOP",1);
    // снимаем блокировку через 25с.
     DelayCommand(25.0,SetLocalInt(OBJECT_SELF,"STOP",0));
     }
// а если пустая, значит строки кончились. Тады ставим указатель на -1
else SetLocalInt(OBJECT_SELF,"NUMBER",-1);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Diamond
сообщение Sep 18 2006, 21:16
Сообщение #2550


Level 2
*

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



Теперь всё совсем как нужно! Ура!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Sep 22 2006, 08:49
Сообщение #2551


Level 3
*

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



Люди. Как сделать так чтобы каждая раса начинала в разном городе. Типа челове в Человеческом городе. Эльф в эльфийском. и.т.д.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Sep 22 2006, 09:16
Сообщение #2552


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Написать простой скрипт, который проверяет расу игрока и кидает того в нужное место:

NSS
// Под точкой старта, создаем триггер и на onEnter, вешаем код:
void main()
{
string sRace;
object oEnter = GetEnteringObject();
int nRace =GetRacialType(oEnter);
int nInt = GetLocalInt(oEnter, "nEnterPlayer");

if (nInt == 1)
   return;

if (GetIsPC(oEnter) == FALSE)
   return;

SetLocalInt(oEnter, "nEnterPlayer", 1);

switch (nRace)
   {
   case RACIAL_TYPE_DWARF: sRace = "DWARF"; break;
   case RACIAL_TYPE_GNOME: sRace = "GNOME"; break;
   case RACIAL_TYPE_HALFELF: sRace = "HALFELF"; break;
   case RACIAL_TYPE_HALFLING: sRace = "HALFLING"; break;
   case RACIAL_TYPE_HALFORC: sRace = "HALFORC"; break;
   case RACIAL_TYPE_HUMAN: sRace = "HUMAN"; break;
   case RACIAL_TYPE_ELF: sRace = "ELF"; break;
   }
AssignCommand(oEnter, ClearAllActions());
AssignCommand(oEnter, ActionJumpToObject(GetWaypointByTag("WP_"+sRace+"")));
}


Теперь о его настройке. Для каждой рассы необходимо создать вайпоинт c тэгом: WP_+НАЗВАНИЕ_РАССЫ и разместить в нужном месте. Т.е скажем для людей это будет: WP_HUMAN, который соответственно будет находится в людском городе.

Сообщение отредактировал Dik Morris - Sep 22 2006, 09:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Sep 22 2006, 09:32
Сообщение #2553


Level 3
*

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



Если честно, то я не въехал. (IMG:style_emoticons/kolobok_light/nea.gif)

Я имею ввиду. Что при создании нового перса он сразу начинается в определённом городе. Если ты написал то что мне надо. То я попробовал чот неправильно. Я давно не создавал все позабывал. Поэтому не ругай меня за мою тупость.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Sep 22 2006, 09:33
Сообщение #2554


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Кстати, какую-нить расу можно в скрипте не указывать. Тогда ее представитель появется в точке старта. Не поставить ее не получится, так что че ей просто так стоять? (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Sep 22 2006, 09:40
Сообщение #2555


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



-fenix-, логично. (IMG:style_emoticons/kolobok_light/smile.gif)

DarkDeivel,
QUOTE
Что при создании нового перса он сразу начинается в определённом городе

именно это и написал. (IMG:style_emoticons/kolobok_light/smile.gif)

PS: в скрипте была небольшая ошибка, но я исправил. Читай пост еще раз. И описание. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Sep 22 2006, 09:49
Сообщение #2556


Level 3
*

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



ВОт код я повешал. Ты писал

Теперь о его настройке. Для каждой рассы необходимо создать вайпоинт c тэгом: WP_+НАЗВАНИЕ_РАССЫ и разместить в нужном месте. Т.е скажем для людей это будет: WP_HUMAN, который соответственно будет находится в людском городе.

А вот WP_HUMAN куданить в скрипте записывать надО?? (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 22 2006, 09:59
Сообщение #2557


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

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



не в скрипте.
- берешь ЛЮБОЙ вэйпоинт из палитры
- ставишь его туда, где будут люди появляться
- даешь ему тэг WP_HUMAN
дальше по аналогии с другими рассами.

что не ясно то?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Sep 22 2006, 20:06
Сообщение #2558


Level 3
*

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



QUOTE(Lex @ Sep 22 2006, 09:59) [snapback]92436[/snapback]

не в скрипте.
- берешь ЛЮБОЙ вэйпоинт из палитры
- ставишь его туда, где будут люди появляться
- даешь ему тэг WP_HUMAN
дальше по аналогии с другими рассами.

что не ясно то?

Всё ясно. Все работает. (IMG:style_emoticons/kolobok_light/declare.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Diamond
сообщение Sep 23 2006, 14:36
Сообщение #2559


Level 2
*

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



Пара вопросов по скриптам.

Есть скрипт, который сажает непися на стул (то что запостил в первый раз это был полный бред...)

NSS
void main()
{
ActionSit (GetNearestObjectByTag("SIT_STOOL", OBJECT_SELF));
}


Но при разговоре с игроком непись ясное дело встаёт. Сам вопрос: как надо поменять скрипт, чтобы после завершения диалога непись опять садился?

И ещё вопрос: Что надо поставит на триггер, чтобы когда на него наступит игрок к нему подбегал непись и начинал диалог, но этого бы не происходило пока переменная "Перем" скажем не равна 1?

Сообщение отредактировал Diamond - Sep 23 2006, 15:01
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 23 2006, 14:50
Сообщение #2560


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

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



NSS
    if (IsInConversation(OBJECT_SELF)) return; // если разговариваем - выход
    if (GetIsInCombat(OBJECT_SELF)) return; // если в бою - выход
    // в остальных случаях садимся
   ActionSit (GetNearestObjectByTag("SIT_STOOL", OBJECT_SELF));

Этот блок поставить в ХБ скрипт или в ЮД, в ту часть, которая отвечает за ХБ.

скрипт для триггера и диалога НПС писали уже раз 100. поищи.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 101 102 103 104 105 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2025 - 12:47