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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 74 75 76 77 78 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Salasar
сообщение Jan 11 2006, 17:57
Сообщение #1866


Level 1


Класс: Мастер Оружия
Характер: Neutral Good
Раса: Человек



У меня такая ситуация я хочу, чтобы когда герой входил в триггер дверь в комнате открывалась, оттуда выходил НПС подходил к герою, вступал с ним в разговор и, по окончании разговора становился хенчменом героя.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 11 2006, 18:06
Сообщение #1867


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

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



И в чем проблема собсна?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 11 2006, 18:27
Сообщение #1868


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

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



Salasar
QUOTE
У меня такая ситуация я хочу, чтобы когда герой входил в триггер дверь в комнате открывалась, оттуда выходил

Такие скрипты разбираются на каждой странице форума, используй поиск. ;)
(И + функции:
Neverwinter Script Source
// Cause the action subject to open oDoor
void ActionOpenDoor(object oDoor)

Neverwinter Script Source
// Set the locked state of oTarget, which can be a door or a placeable object.
void SetLocked(object oTarget, int bLocked)

Для открытия двери.)
QUOTE
окончании разговора становился хенчменом героя.

Есть тема: (В этом разделе форума)
"Скрипты для новичков" там 100% найдеться ответ на твой вопрос. ;)
Вообще народ, лучше перед тем как что нибуть спросить, не надо лениться, а использовать хорошую такую кнопочку, ПОИСК. :yes:
PS: хотя еще лучше начать разбираться самому, все равно так как тебе нужно никто не сделает, да и куда приятнее все писать самостоятельно. (И.М.Х.О)

Сообщение отредактировал Dik Morris - Jan 11 2006, 19:56
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 13 2006, 06:52
Сообщение #1869


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Привет всем!
У меня такой вопрос (точнее два):
1). все знают про сумки в инвентаре(те куда можно положить ограниченное колличество вещей и плюс они уменьшают вес), можно ли сделать так, что, допустим, я в нее (в сумку) ложу несколько предметов если это подходящии предметы, то эти предметы изчезают и там появляется новый предмет (именно в этой сумке, а не просто ложиться в инвентарь)
2). существует ли функция которая берет позицию предмета в инвентаре (я не про слоты одежды и т.п.). Или хотя бы смотрит сколько данный предмет занимает места в инвентаре.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 13 2006, 09:17
Сообщение #1870


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

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



StalkerDtN
Можно было бы сделать, просто.
Ложишь в сумку итемы, активируешь её...
НО! Видишь ли, на сумку нельзя вешать свойство: активировать предмет, так что приодеться по другому.
Создаём предмет со свойством активации, когда мы активируем этот предмет на сумке срабатывает ниже приведенный скрипт:
Neverwinter Script Source
#include "nw_i0_tool"
//На onActivaItem модуля.
void main()
{
object oPC = GetItemActivator();// Игрок
object oPa = GetItemActivated();// Активируемый предмет
object oSu = GetNearestObjectByTag("ТАГ_СУМКИ");// Сумка

     if (GetTag(oPa)=="TAГ_ПРЕМЕТА")
     // Проверка. Если таг активируемого предмета равен: TAГ_ПРЕМЕТА, ТО:
     {       
        if ((HasItem(oPC,"ТАГ_СУМКИ"))&&
        GetItemActivatedTarget()==oSu)
        // Проверка. Если итем находиться в инвентаре игрока,
        // + если мы активируем на сумке то:
        {
          if ((HasItem(oSu,"ТАГ_ПРЕДМЕТА_1")) && HasItem(oSu,"ТАГ_ПРЕДМЕТА_2"))
          // Опять проверка. Если в сумке есть два премета
          // с тагами: ТАГ_ПРЕДМЕТА_1 и ТАГ_ПРЕДМЕТА_2, то:
          {
          DestroyObject(GetNearestObjectByTag("ТАГ_ПРЕДМЕТА_1"));//Дестроим эти преметы
          DestroyObject(GetNearestObjectByTag("ТАГ_ПРЕДМЕТА_2"));//Дестроим эти преметы
          CreateItemOnObject("ТАГ_НОВОГО__ПРЕДМЕТА",oSu,1);// Создаем новый
          ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_DISPEL),oPC);
          // Налаживаем визуальный эффект. (для большей реалистичности)
          }
        }
// ЗЫ: скрипт писал в дикой спешке, народ, если будут ошибки, прошу сильно не пинать =)
     }
}


Сообщение отредактировал Dik Morris - Jan 13 2006, 09:20
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Jan 13 2006, 15:58
Сообщение #1871


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Подскажите ПЛС. Почему нельзя записать так:
Neverwinter Script Source
ActionDoCommand(AssignCommand(oNPC, CreateItemOnObject(...)));


Выдает "Делкларация не соответсвует параметру".

ПС: Просто нужно создать последовательность, а и-за єтой ошибки не получается!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jan 13 2006, 16:24
Сообщение #1872


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

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



Потому что функция CreateItemOnObject не является void функцией.
Нужно написать свою void функцию, в которой будет выполнятся CreateItemOnObject.
Говорили такое ни раз и функцию приводили то же ни раз!!!

Neverwinter Script Source
//Позволяет использовать функцию  CreateItemOnObject в
//ActionDoCommand, AssignCommand и DelayCommand.
void ActionCreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1);

void ActionCreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1)
{
CreateItemOnObject(sItemTemplate, oTarget, nStackSize);
}


А вот для CreateObject
Neverwinter Script Source
//Позволяет использовать функцию  CreateObject в
//ActionDoCommand, AssignCommand и DelayCommand.
void ActionCreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="");

void ActionCreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")
{
CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation=FALSE, sNewTag="");
}


Может в ВИО добавить?

Сообщение отредактировал -fenix- - Jan 13 2006, 16:41
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 13 2006, 17:13
Сообщение #1873


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Dik Morris

Спасибо за участие, но это не есть то что мне нужно. Я делал уже нечто подобное только вешал скрипт на ХБ, все работало, но постоянные (точнее, совсем даже не постоянные) задержки меня котегорически не устраивали. Мне, как раз, хотелось чтобы все было, так сказать, мгновено. Видимо енто невозможно.

PS: У тебя пара неточностей:

1. "if ((HasItem(oSu,"ТАГ_ПРЕДМЕТА_1")) && HasItem(oSu,"ТАГ_ПРЕДМЕТА_2"))"

- это несработает, т.к. выше "object oSu = GetNearestObjectByTag("ТАГ_СУМКИ")"
нужно - "object oSu = GetObjectByTag("ТАГ_СУМКИ")"
2. "DestroyObject(GetNearestObjectByTag("ТАГ_ПРЕДМЕТА_1"))" - таг все предметы с "ТАГ_ПРЕДМЕТА_1" тоже уничтожуться, лучше отдельной функцией, например вот так:
void DObj()
{
object oSumka = GetObjectByTag("SUMKA");
object dobj_1 = GetItemPossessedBy(oSumka, "ITEM_1");
object dobj_2 = GetItemPossessedBy(oSumka, "ITEM_2");

DestroyObject(dobj_1);
DestroyObject(dobj_2);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 13 2006, 20:46
Сообщение #1874


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

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



Функция:
Neverwinter Script Source
HasItem

Проверяет обладает ли цель нужным предметом, т.е:
Neverwinter Script Source
HasItem(oSu,"ТАГ_ПРЕДМЕТА_1

Проверяем, иметься ли в сумке нужный тебе айтем, так как:
QUOTE
несколько предметов если это подходящии предметы, то эти предметы...

QUOTE
object oSu = GetObjectByTag("ТАГ_СУМКИ")"

Таг БЛИЖАЙШЕЙ. Ведь если юзаем:
Neverwinter Script Source
GetObjectByTag
, то айтемы могут создаться в совсем другой сумке! (Если конечно она присутствует в игре =))
QUOTE
"ТАГ_ПРЕДМЕТА_1" тоже уничтожуться

Хех, таже ситуация что и с сумкой...
Уничтожаться ближайшие объекты. Т.е те что у тебя в инвентаре.
ЗЫ: sorry за оффтоп, но ведь нужно человеку обьяснить как лучше. :)
ЗЗЫ: пользуйся кодом NSS. :yes:

Сообщение отредактировал Dik Morris - Jan 13 2006, 20:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 13 2006, 21:13
Сообщение #1875


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

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



QUOTE (Dik Morris @ Jan 13 2006, 20:46)
Таг БЛИЖАЙШЕЙ.

только в случае работы с инвентарем это не работает. И если надо убать именно те, что в сумке, то StalkerDtN верно написал.

QUOTE (Dik Morris @ Jan 13 2006, 20:46)
ЗЫ: sorry за оффтоп, но ведь нужно человеку обьяснить как лучше. :)

Вообще оба замечания его - верные.
Добавлено в 21:19
QUOTE (StalkerDtN @ Jan 13 2006, 06:52)
2). существует ли функция которая берет позицию предмета в инвентаре (я не про слоты одежды и т.п.). Или хотя бы смотрит сколько данный предмет занимает места в инвентаре.

по поводу места - можно через 2да посчитать.
что-то такое..
Neverwinter Script Source
int GetItemPlace(object oItem)
{
int nBASE = GetBaseItemType(oItem);
int nWidth = StringToInt(Get2DAString("baseitems","InvSlotWidth",nBASE);
int nHeight = StringToInt(Get2DAString("baseitems","InvSlotHeight",nBASE);
return nWidth*nHeight;
}

Добавлено в 21:23
QUOTE (StalkerDtN @ Jan 13 2006, 06:52)
можно ли сделать так, что, допустим, я в нее (в сумку) ложу несколько предметов если это подходящии предметы, то эти предметы изчезают и там появляется новый предмет (именно в этой сумке, а не просто ложиться в инвентарь)

тока постоянной проверкой. Ну или как предложил Дик (тока реализованный более правильно, через сумку, а не айтем)
Добавлено в 21:25
QUOTE (StalkerDtN @ Jan 13 2006, 17:13)
Я делал уже нечто подобное только вешал скрипт на ХБ, все работало, но постоянные (точнее, совсем даже не постоянные) задержки меня котегорически не устраивали.

ну это просто. Выноси в отдельный скрипт проверки и запускай в ХБ (модуля, игрока) с интервалом нужным. Скажем
0.0
1.0
2.0
3.0
4.0
5.0
те у тебя будет каждую секунду проверка. Задержки минимальны, но код проверочный оптимизируй по максимуму. мб не 1.0 а 1.5 шаг... но это уже сам как хочешь.

Но проще не париться и идею чуть-чуть подправить под реалии тулсета :) Вариант положил в сумку, потом активировал - нормальный. :)

QUOTE (Dik Morris @ Jan 13 2006, 09:17)
НО! Видишь ли, на сумку нельзя вешать свойство: активировать предмет, так что приодеться по другому.

itemprops.2da
строка Cast_Spell, столбец 18_Containers. Ставим вместо 0 1 и кидаем в хак, если есть.
Теперь можно вешать активацию на саму сумку и забыть про другой айтем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Jan 13 2006, 22:35
Сообщение #1876


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Искал, но не нашел:
- Можно непися "положить"?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Jan 13 2006, 22:42
Сообщение #1877


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



QUOTE
Привет,
Искал, но не нашел:
- Можно непися "положить"?

Положить можно анимацией "ANIMATION_LOOPING_DEAD_FRONT".
Но помни, что НеПиСя нельзя положить на неактивную (т.е. ту, которая встроена в локу) кровать.


Сообщение отредактировал Archangel - Jan 13 2006, 22:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 13 2006, 23:18
Сообщение #1878


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

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



QUOTE (Archangel @ Jan 13 2006, 22:42)
Но помни, что НеПиСя нельзя положить на неактивную (т.е. ту, которая встроена в локу) кровать.

мдя.. :) учитесь говорить. Есть тайловые, а есть плейсовые кровати :)
Положить (именно на) можно только на тайловую кромать после правки вокмеша тайла.
а вообще правило простое - положить можно там, куда можно наступить.
QUOTE (Archangel @ Jan 13 2006, 22:42)
ANIMATION_LOOPING_DEAD_FRONT

тогда и про ANIMATION_LOOPING_DEAD_BACK Не забывай.
Добавлено в [mergetime]1137197961[/mergetime]
но тока это - в вопросы новичков.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Jan 15 2006, 03:06
Сообщение #1879


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



Привет,
Возник вопросик, думаю больше команде ВРГ, я у "Проклятии Левора" видел похожое:
- У Вас, когда открываешь какой-то сундук появляется фраза(видит кто-то или нет), мне нужно впринцыпе то же. Можете написать как Вы это сделали?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jan 15 2006, 08:29
Сообщение #1880


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

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



Открой ПЛ, и посмотри какие скрипты стоят в слотах сундука.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 16 2006, 12:02
Сообщение #1881


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Привет всем! :yes:
У меня скорее даже не вопрос, а не понимание ПОЧЕМУ так!
Суть проблемы в следующем: допустим есть у меня рычаг на локации, когда я его нажимаю, то на другом объекте (в этой же локации, его таг OBJ_VFX_1) проигрывается визуальный эффект, домупстим, VFX_DUR_INFERNO.
Когда я использую вот такой скрипт:
Neverwinter Script Source
void main()
{
    object oVFX = GetObjectByTag("OBJ_VFX_1");

    if (oVFX == OBJECT_INVALID) SendMessageToPC(GetFirstPC(), "объект не существует");
    else
    {
        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_INFERNO), oVFX);
        SendMessageToPC(GetFirstPC(), "объект существует");
    }
}

Визуально анимации нет, но есть ее звук.
Когда вот такой:
Neverwinter Script Source
void main()
{
    object oVFX = GetObjectByTag("OBJ_VFX_1");

    if (oVFX == OBJECT_INVALID) SendMessageToPC(GetFirstPC(), "объект не существует");
    else
    {
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_INFERNO), GetLocation(oVFX));
        SendMessageToPC(GetFirstPC(), "объект существует");
    }
}

Все работает.
Вопрос: ПОЧЕМУ! :xz:

ЗЫ: когда вместо
Neverwinter Script Source
oVFX = GetObjectByTag("OBJ_VFX_1");
использую
Neverwinter Script Source
GetFirstPC()
или
Neverwinter Script Source
OBJECT_SELF
- т.е. сам рычаг первый скрипт работает как надо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jan 16 2006, 13:08
Сообщение #1882


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

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



Эффекты VFX_DUR_* накладываются на ЛОКАЦИЮ Location: Floor, Body? head и т.д. Но самое главное, это параметр Location, который ты задаешь во втором случае верно. В первом ты пытаешься засунуть это все на объект, что есть не верно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 16 2006, 13:52
Сообщение #1883


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Тогда почему енто работает:
Neverwinter Script Source
void main()
{
// здесь поджигается объект которого атакую (эта лишь часть кода, но она работает)
    object oPC  = GetFirstPC(), oAtt;

    if (GetCurrentAction(oPC) == ACTION_ATTACKOBJECT)
    {
        oAtt = GetAttackTarget();
        ApplyEffectToObject(DURATION_TYPE_INSTANT,
                        EffectVisualEffect(VFX_DUR_INFERNO), oAtt);
    }
}


И почему 1-й скрипт работает при
Neverwinter Script Source
OBJECT_SELF
- анимация на самом рычаге
и когда целью анимации является сам игрок

Сообщение отредактировал StalkerDtN - Jan 16 2006, 14:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 16 2006, 15:23
Сообщение #1884


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

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



QUOTE (Aiwan @ Jan 16 2006, 13:08)
Эффекты VFX_DUR_* накладываются на ЛОКАЦИЮ Location: Floor, Body? head и т.д. Но самое главное, это параметр Location, который ты задаешь во втором случае верно. В первом ты пытаешься засунуть это все на объект, что есть не верно.

?????
CODE

VFX_DUR_* Constant Group
Temporary visual effects that last for a specified duration.

(с) Лекскикон.
Временные эффекты, имеющие определенную продолжительность.
Хотя реально это не совсем так, но тем не менее ни слова про локацию.
Location: Area, Location: About Body, это не то все, это описание того, как эффект видно. если привязка к части тела - на локацию не наложить эффект. Но тип эффекта не имеет отношение к тому, на что его накладывать.

StalkerDtN, честно, фиг знает, что там такое. Эффекты имеют довольно много нюансов, которые не описаны нигде.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jan 16 2006, 23:36
Сообщение #1885


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

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



StalkerDtN НЫН движок это не аксиома. Это скорее, как многий код - есть правильное исполнение, есть неправильное. Твои куски кода это на обум, вот и сработало. Мы совсем не знаем какие происходят операции с OBJECT_SELF, возможно движок автоматом берет его локацию, позицию и прочее изначально содержит это в описании объекта.

QUOTE

Remarks

Since most effects affect objects, many will have no effect when applied at a Location. Use this function to apply Visual and Area of Effect effects, for example, you can use this to apply the visual effect of a spell, where none has been cast.


CODE

VFX_FNF_PWSTUN  White dots orbiting and purple vapors lifting.
Location: About Body
Color(s): white, purple

VFX_COM_SPARKS_PARRY  Sparks from a parry.
Location: Feet
Color(s): white




Если вы укажете в случае 1 вместо Location крича плейсебл, то шанс что он сработает равен 0.
Во втором случае так же. Укажите вместо локи что либо другое может не сработать.
На что действует каждый эффект, есть в описаннии в лексиконе. Я сталкивался с этим. Поэтому понял, что такой-то спел надо накладывать на то, что имеет в себе описание локации действия. Естественно для всех эффектов не проверял.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 17 2006, 10:16
Сообщение #1886


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Да, неприятно. :swoon:
Спасибо за хелп, буду иметь ввиду. Хотя к локации не всегда удобно и приемлимо. Ну, например, если объект движется, но это, покрайней мере, решаемо.

ЗЫ: Кстати, GetFirstPC() - есть объект и берется именно как объект, а все арбайтен. Гы! :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
RoHaN
сообщение Jan 19 2006, 16:55
Сообщение #1887


Level 1


Класс: Варвар
Характер: True Neutral
Раса: Полуорк



Здравствуйте !!! :DB:
Хотелось бы спросить какой из предложенных стандартных скриптов можно посмотреть, чтобы узнать как Jump'ить себя или НПС ?
А если нет такого, то хотя бы приведите пример . :help:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 19 2006, 17:28
Сообщение #1888


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Привет RoHaN ! :yes:

Следующий скрипт тебя или NPC перекинет в любую точку внутри модуля:
Neverwinter Script Source
void main()
{
    object oPC  = GetFirstPC();  // берем игрока, т.е. самого себя
    object oNPC  = GetObjectByTag("TAG_NPC"); // берем NPC, которого будем jump-ить

    object oPoint_1 = GetObjectByTag("TAG_POINT_1"); // точка, в которую будет прыгать игрок
    object oPoint_2 = GetObjectByTag("TAG_POINT_2"); // точка, в которую будет прыгать NPC

    AssignCommand(oPC , JumpToLocation(GetLocation(oPoint_1))); // применяем прыжок в точку для игрока
    AssignCommand(oNPC, JumpToLocation(GetLocation(oPoint_2))); // применяем прыжок в точку для NPC
}


Кончено, есть и другие варианты - на твое усмотрение. :D

ЗЫ: А, вообще, читай мануал, или в тему скрипты новичкам, там наверника это есть. :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
StalkerDtN
сообщение Jan 21 2006, 07:55
Сообщение #1889


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

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [Sn]



Всем привет! :yes:

У меня такой вопрос: как можно сделать так, чтобы в какой-нибудь из слотов игрока (INVENTORY_SLOT_*)
нельзя было запихать соответствующую ему(слоту) вещь. Вариант, на подобие, - отлавливать событие одевания предмета с помощью onPlayerEquipItem не рационален, т.к. все равно проигрывается анимация - если это оружие, то взятие его в руку. К тому же очень вероятно, что оружие не уберется, т.е. как объек-то оно уберется, а вот как анимация останется, приходится делать задержку.
Есть подозрение, что это можно усоществить через onSpawn, но вот как. :xz:

ЗЫ: Вроде, нечто подобное я где-то на форуме видел, но где именно так и не нашел. :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nashman
сообщение Jan 22 2006, 01:37
Сообщение #1890


Level 8
***

Класс: Тайный Лучник
Характер: Lawful Good
Раса: Эльф



QUOTE
нельзя было запихать соответствующую ему(слоту) вещь.
Где-то читал, что нельзя. Можно просто снять... Попробуй UserDef постявь безконечный цыкл(Такая не знаю или работает, но в Делфи, Си на 100%):

Neverwinter Script Source
while(TRUE)
{
//Снимаем и говорим что-то...
}


ЗЫ: Читал где-то на форуме...

Сообщение отредактировал Nashman - Jan 22 2006, 01:38
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 74 75 76 77 78 > » 
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 1st May 2025 - 01:55