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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 52 53 54 55 56 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Nick Parker
сообщение Jun 22 2005, 13:00
Сообщение #1316


Level 5
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



Начинаю учиться построению сценок и возникают некоторые тупые вопросы, до которых я сам не догоню.
Почему у меня не уничтожается oNPS, в то время как oNRS исчезает? Что я забыл или что переборщил?

Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oNPS = GetObjectByTag("ENEMY2");
object oNRS = GetObjectByTag("ENEMY1");
object oWPpc = GetWaypointByTag("WPPS1");
object oWP1 = GetWaypointByTag("WP01");
object oWP2 = GetWaypointByTag("WP02");
effect eCutInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1)
    return;
  {
  FadeToBlack(oPC, FADE_SPEED_FASTEST);
  AssignCommand(oPC, ClearAllActions());
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCutInv, oPC, 16.6);
  SetCutsceneMode(oPC);
  SetAILevel(oNPS, AI_LEVEL_HIGH);
  SetAILevel(oNRS, AI_LEVEL_HIGH);
  DelayCommand(0.5, AssignCommand(oPC, JumpToObject(oWPpc)));
  AssignCommand(oPC, SetCameraFacing(270.0, 15.0, 45.0, CAMERA_TRANSITION_TYPE_SLOW));
  DelayCommand(1.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
  DelayCommand(1.5, AssignCommand(oNPS, ActionJumpToObject(oWP1)));
  DelayCommand(2.0, AssignCommand(oNPS, ActionJumpToObject(oWP2)));
  DelayCommand(1.5, AssignCommand(oNRS, ActionJumpToObject(oWP1)));
  DelayCommand(2.0, AssignCommand(oNRS, ActionJumpToObject(oWP2)));
  DelayCommand(12.8, AssignCommand(oNPS, ActionDoCommand(DestroyObject(oNPS))));
  DelayCommand(12.9, AssignCommand(oNRS, ActionDoCommand(DestroyObject(oNRS))));
  DelayCommand(15.5, FadeToBlack(oPC, FADE_SPEED_FASTEST));
  DelayCommand(17.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM));
  DelayCommand(18.0, SetCutsceneMode(oPC, FALSE));
  }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 22 2005, 13:41
Сообщение #1317


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

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



Твои НПС не делают никаких актионов, зачем им в стэк пихать дестрой? Удаляй проще по таймингу делей командой.
Neverwinter Script Source
DelayCommand(12.8, (DestroyObject(oNPS));
  DelayCommand(12.9, (DestroyObject(oNRS));
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Jun 22 2005, 13:44
Сообщение #1318


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



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

А это зачем?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 22 2005, 14:16
Сообщение #1319


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Friedrich
Чтобы умнее были. Нормальная практика. :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nick Parker
сообщение Jun 22 2005, 14:56
Сообщение #1320


Level 5
**

Класс: Ученик Дракона
Характер: Lawful Good
Раса: Человек



QUOTE (Friedrich @ Jun 22 2005, 13:44)
А это зачем?

Они иногда тупить начинают. То в стенку идут, то ваще ничего не делают, когда их бьют.
А с этой командой на 50% вероятности, что этого не будет.
Добавлено в [mergetime]1119441452[/mergetime]
Конечно, если правильно понял :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 22 2005, 15:17
Сообщение #1321


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



насколько я понял, уровень AI является, по сути, неким "событийным приоритетом". т.е. на низких уровнях события, предназначенные для объекта, могут быть вытеснены более приоритетными - оттого и тупят. я так думаю! (с) мимино :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Убо-Сатло
сообщение Jun 22 2005, 22:50
Сообщение #1322


Level 5
**

Класс: Маг
Характер: True Neutral
Раса: Человек



Нашел свою ошибку с блэками! Спасибо Агрессингу и Aiwanу, но у меня ошибка была в другом месте. Кстати, Aiwan, а что за функция AddCutEffects(oPC);? У меня ее нет (SOU 1.30). Что за эффекты она добавляет? И с какой версии игры появляется?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 22 2005, 23:23
Сообщение #1323


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

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



Это функция моя.
Neverwinter Script Source
// СДЕЛАТЬ НЕВИДИМЫМ oCreature
// Если bSlow = TRUE, то накладываем EffectSlow()
// Если int bInv = TRUE - накладываем невидимость
void AddCutEffects(object oCreature, int bInv=TRUE, int bSlow=FALSE);

void AddCutEffects(object oCreature, int bInv=TRUE, int bSlow=FALSE)
    {
      effect eInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
      effect eSlow = EffectSlow();
      if (oCreature != OBJECT_INVALID)
      {
      if(bInv==TRUE){
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, eInv, oCreature);}
      if(bSlow==TRUE){
            ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlow, oCreature);}
      }
    }
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 23 2005, 17:34
Сообщение #1324


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

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



1) Можно сделать, чтобы игрок не мог атаковать? Ни врагов ни друзей ни какими спосабами, включая магию. Но при этом он может двигаться.

2) Как заставить ездить тележки?

Сообщение отредактировал -fenix- - Jun 23 2005, 17:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 23 2005, 18:39
Сообщение #1325


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



QUOTE
Как заставить ездить тележки?

Создай животное и выбери ему внешность тележки, а потом двигай как непися
QUOTE
Можно сделать, чтобы игрок не мог атаковать? Ни врагов ни друзей ни какими спосабами, включая магию. Но при этом он может двигаться.

Я не уверен, не разбирался, но попробуй поставить условие если ПК атакует, то на нем запускается ClearAllActions. Поставь скрипт onSpawn непися.
Хотя может более опытные подскажут.. :xz:

Сообщение отредактировал Агрессинг - Jun 23 2005, 18:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 23 2005, 19:04
Сообщение #1326


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

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



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

Кажись есть функция, она мне и нужна.

QUOTE
Я не уверен, не разбирался, но попробуй поставить условие если ПК атакует, то на нем запускается ClearAllActions. Поставь скрипт onSpawn непися.

Совсем забыл :oops: На челе невидемость, НПС его атаковать не могут, нужно чтоб и ПС не мог даже если захочет и чтоб заклинания не кастовал.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 23 2005, 19:34
Сообщение #1327


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



QUOTE
Кажись есть функция, она мне и нужна.

функция, чтобы телега двигалась? Сделай животное как я собьяснил ранее
а потом на существо onSpawn функцию
Neverwinter Script Source
ActionMoveToObject(GetWaypointByTag("ТЕГ ВЕЙПА"));

QUOTE
Совсем забыл  На челе невидемость, НПС его атаковать не могут, нужно чтоб и ПС не мог даже если захочет и чтоб заклинания не кастовал.
Все равно видимый невидимый, так ты сможешь сам этот скрипт написать?

Сообщение отредактировал Агрессинг - Jun 23 2005, 19:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 25 2005, 21:12
Сообщение #1328


Level 4
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Эльф



Aiwan это не существенно, но можно немного укоротить твою ф-ию:
Neverwinter Script Source
// СДЕЛАТЬ НЕВИДИМЫМ oCreature
// Если bSlow = TRUE, то накладываем EffectSlow()
// Если int bInv = TRUE - накладываем невидимость
void AddCutEffects(object oCreature, int bInv=TRUE, int bSlow=FALSE);

void AddCutEffects(object oCreature, int bInv=TRUE, int bSlow=FALSE)
    {
      effect eInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
      effect eSlow = EffectSlow();
      if (oCreature != OBJECT_INVALID)
      {
      if(bInv)// так проще
      {
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, eInv, oCreature);}
      if(bSlow)
      {
            ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlow, oCreature);}
      }
    }
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 26 2005, 07:43
Сообщение #1329


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

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



Хм, я смотрел инклюды БИОВАР, а они так и писали проверки если надо. Тебе решать ;) Я останусь при своем коде.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 26 2005, 10:36
Сообщение #1330


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

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



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

Эээ - это как? Кажись не лзя менять внешность НПС на внешность размещаемых объектов, сделать из слона подсвечник не получется.
Или у меня версия ущербная?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Jun 26 2005, 11:48
Сообщение #1331


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



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

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

Ага. И это экономит 8 байт скомпелированного кода, и видимо, пару наносекунд процессорного времени. :P
А нано- это сколько, ксати?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 26 2005, 12:48
Сообщение #1332


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

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



QUOTE (Friedrich @ Jun 26 2005, 14:48)
А нано- это сколько, ксати?

Во во. АНАНО... :ROFL:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 26 2005, 12:51
Сообщение #1333


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

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



QUOTE
Можно, если 2da подредактировать.

Тогда вопросик, как это сделать? Вещь полезная!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 26 2005, 13:42
Сообщение #1334


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

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



Если напишете как это сделать забаню и сотру пост. В приват! Итак ДМ-ы шардов нге знают как грамотеев отваживать, вы тут еще научите плохому! :agr:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 26 2005, 14:31
Сообщение #1335


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

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



Через скрипты редактировать погоду можно только с помощью этого
Neverwinter Script Source
void SetWeather(object oTarget, int nWeather)

или есть еще функции? Я имею в виду можно ли через скрипты менять погоду, как через меню локи, выставлять проценты осадков, силу ветра?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 26 2005, 17:22
Сообщение #1336


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

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



Neverwinter Script Source
// Gets the weight of an item, or the total carried weight of a creature in tenths
// of pounds (as per the baseitems.2da).
// - oTarget: the item or creature for which the weight is needed
int GetWeight(object oTarget=OBJECT_SELF)

// Set the weather for oTarget.
// - oTarget: if this is GetModule(), all outdoor areas will be modified by the
//  weather constant. If it is an area, oTarget will play the weather only if
//  it is an outdoor area.
// - nWeather: WEATHER_*
//  -> WEATHER_USER_AREA_SETTINGS will set the area back to random weather.
//  -> WEATHER_CLEAR, WEATHER_RAIN, WEATHER_SNOW will make the weather go to
//      the appropriate precipitation *without stopping*.
void SetWeather(object oTarget, int nWeather)

// Gets the fog amount in the area specified.
// nFogType = nFogType specifies wether the Sun, or Moon fog type is returned.
//    Valid values for nFogType are FOG_TYPE_SUN or FOG_TYPE_MOON.
// If no valid area (or object) is specified, it uses the area of caller.
// If an object other than an area is specified, will use the area that the object is currently in.
int GetFogAmount(int nFogType, object oArea=OBJECT_INVALID)

// Gets the fog color in the area specified.
// nFogType specifies wether the Sun, or Moon fog type is returned.
//    Valid values for nFogType are FOG_TYPE_SUN or FOG_TYPE_MOON.
// If no valid area (or object) is specified, it uses the area of caller.
// If an object other than an area is specified, will use the area that the object is currently in.
int GetFogColor(int nFogType, object oArea=OBJECT_INVALID)

// Sets the fog amount in the area specified.
// nFogType = FOG_TYPE_* specifies wether the Sun, Moon, or both fog types are set.
// nFogAmount = specifies the density that the fog is being set to.
// If no valid area (or object) is specified, it uses the area of caller.
// If an object other than an area is specified, will use the area that the object is currently in.
void SetFogAmount(int nFogType, int nFogAmount, object oArea=OBJECT_INVALID)

// Sets the fog color in the area specified.
// nFogType = FOG_TYPE_* specifies wether the Sun, Moon, or both fog types are set.
// nFogColor = FOG_COLOR_* specifies the color the fog is being set to.
// The fog color can also be represented as a hex RGB number if specific color shades
// are desired.
// The format of a hex specified color would be 0xFFEEDD where
// FF would represent the amount of red in the color
// EE would represent the amount of green in the color
// DD would represent the amount of blue in the color.
// If no valid area (or object) is specified, it uses the area of caller.
// If an object other than an area is specified, will use the area that the object is currently in.
void SetFogColor(int nFogType, int nFogColor, object oArea=OBJECT_INVALID)

// Changes the sky that is displayed in the specified area.
// nSkyBox = SKYBOX_* constants (associated with skyboxes.2da)
// If no valid area (or object) is specified, it uses the area of caller.
// If an object other than an area is specified, will use the area that the object is currently in.
void SetSkyBox(int nSkyBox, object oArea=OBJECT_INVALID)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 26 2005, 17:40
Сообщение #1337


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

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



СПАСИБО АЙВАН:good:, у меня еще вопросик:D

Когда ПС подходит к точки, режим кут-сценки снимается, почему?
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
object oNPC1 = GetObjectByTag("barmen");
object oWP = GetObjectByTag ("WP_PC_1");
//==============================================================================
  if (!GetIsPC(oPC) || GetLocalInt(OBJECT_SELF, "TRIGGER") == 1)

    return;

    {
    SetLocalInt(OBJECT_SELF, "TRIGGER", 1);
    SetCutsceneMode(oPC, TRUE);
    AssignCommand(oNPC1, ClearAllActions());
    AssignCommand(oPC, ClearAllActions());

    ActionDoCommand(AssignCommand(oPC, ActionMoveToObject(oWP)));
    ActionDoCommand(AssignCommand(oPC, SetCameraFacing(280.0,20.0, 90.0,
    CAMERA_TRANSITION_TYPE_MEDIUM)));

    ActionWait(2.0);

    ActionDoCommand(AssignCommand(oNPC1, ActionMoveToObject(oPC)));
    ActionDoCommand(AssignCommand(oNPC1, ActionPlayAnimation
    (ANIMATION_FIREFORGET_SALUTE, 1.0, 3.0)));
    ActionDoCommand(AssignCommand(oNPC1, ActionDoCommand(PlayVoiceChat
    (VOICE_CHAT_HELLO))));
    ActionDoCommand(AssignCommand(oNPC1, ActionSpeakString("ÏÐÈÂÅÒ")));
    ActionDoCommand(AssignCommand(oPC, SetCutsceneMode(oPC, FALSE)));
    ActionDoCommand(AssignCommand(oNPC1, ActionStartConversation(oPC)));
    }

}


Сообщение отредактировал -fenix- - Jun 26 2005, 17:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 26 2005, 19:56
Сообщение #1338


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

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



Neverwinter Script Source
ActionDoCommand(AssignCommand(oNPC1, ActionSpeakString("")));
    ActionDoCommand(AssignCommand(oNPC1, ActionStartConversation(oPC)));
    ActionDoCommand(AssignCommand(oNPC1, ActionDoCommand(SetCutsceneMode(oPC, FALSE))));

Попробуй три строки заменить на это. Если будет косяк поменяй местами нижние две строки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 27 2005, 11:17
Сообщение #1339


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

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



Айван все отлично, только я не понял, что SetCutsceneMode не ставится в очередь ПС, у нас все команды запоминает тригер.
Я пробовал написать через ActionDoCommand для ПС начало и конец кутсценки, но это все равно не помогало, в чем тут соль?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 27 2005, 13:02
Сообщение #1340


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

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



эх.. все по новой..
QUOTE (-fenix- @ Jun 26 2005, 18:40)
ActionDoCommand(AssignCommand(oPC, SetCutsceneMode(oPC, FALSE)));

поставить в стек акций триггера привязку к игроку снятие режима кат-сцены.

Ну в общем не важно чего, факт в том, что на триггере у тебя формируется очередь акций, которые привязывают другому объекту действия. Такая очередь выполнится за 1 секунду. (ибо привязать действие != самому действию. Триггер ждать окончания действия не будет)


Так что на триггере особого смысла нет загонять все AssignCommand в ActionDoCommand
А вот делать стек на игрока надо. Тогда все будет последовательно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 52 53 54 55 56 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 11th May 2025 - 03:21