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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 52 53 54 55 56 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
-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
А вот делать стек на игрока надо. Тогда все будет последовательно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 27 2005, 15:48
Сообщение #1341


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

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



-fenix- ты немного не понял. Ты подумай ВНИМАТЕЛЬНО. Я немного добавлю, Леш.
Смотри ты раздал по очереди которая выстроилась на триггере. Все верно. Ты задал оРС ОДИН Актион:
Neverwinter Script Source
ActionDoCommand(AssignCommand(oPC, ActionMoveToObject(oWP)));
  ---------------
  ActionWait(2.0);
  ---------------
  ActionDoCommand(AssignCommand(oPC, SetCutsceneMode(oPC, FALSE)));

Он выполнит первый, и триггер выполнит сразу же второй через 2 секунды. Я же, поставил функцию снятия катсцены в очередь к НПС, ведь наша задача такая: НПС, подошел, Начал разговор. Следовательно если воткнуть на его Актионы и завершение сценки это будет логично. Верно?
Neverwinter Script Source
ActionDoCommand(AssignCommand(oNPC1, ActionStartConversation(oPC)));
ActionDoCommand(AssignCommand(oNPC1, ActionDoCommand(SetCutsceneMode(oPC, FALSE))));

Расшифровываю: Актон для триггера, Дать удаленную команду оNPC1, поставить в очередь актион НАЧАЛО ДИАЛОГА С оРС.
Расшифровываю: Актон для триггера, Дать удаленную команду оNPC1, поставить в очередь не актион СНЯТЬ КАТСЦЕНУ С оРС.
Ясно?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 27 2005, 19:31
Сообщение #1342


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

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



QUOTE
Ясно?


Да, Айвен спасибо тебе огромное, перемолол в пудру! :D Я этот момент упускал все время.

Сообщение отредактировал -fenix- - Jun 27 2005, 19:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Malos
сообщение Jun 28 2005, 03:56
Сообщение #1343


Level 1


Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



Народ все кто в состоянии мне помочь помогите. У меня вот тут такая проблемка.:DB: Я хочу создать магическую лабораторию, в которой при смешении определенных ингредиентов можно получать определенные предметы. К примеру, магический котел. Если в него положить два ингредиента и направить на котел нужное заклинание, то можно получить зелье. Подобная лаборатория есть в главной компании Neverwinterа у Эльтуры в гильдии магов. Пробовал вытаскивать скрипты оттуда и составлять свои собственные, но ничего хорошего из этого не вышло.:unsure:

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение Jun 28 2005, 09:05
Сообщение #1344


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Где то тут это уже обсуждалось, поищи по форуму. Кажись, во II томе Скриптов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 29 2005, 12:42
Сообщение #1345


Level 4
**

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



Malos вот тебе ссылка: тут
У меня тоже была такая идея и я переписал скрипт. Будут вопросы спрашивай через приват.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 30 2005, 10:36
Сообщение #1346


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Извините, закинул не туда вопросы, размещаю тут.

Ребята, вопросы следующего содержания. Может быть вам они не покажутся новыми, но нормальное решение им я пока что найти не смог.

1. Все наверняка знают, что вышедший Хоту привнес массу недоразумений и ошибок. Одна из таких ошибок, не затирающиеся иммунитеты от полиморфов, когда им перезаходишь на сервер.

Снять сам полиморф не составляет труда, но эффекты остаются все равно. В каком видел они хранятся на персонаже, не понятно. В момент полиморфа на персонаже создается невидимый объект, в котором хранятся все установки полиморфа. Пробовал проверить, так ли это, нет его, но если посмотреть 2da, то там четко видно, что подобный объект создается. Что происходит с эффектами в момент снятия полиморфа, я так и не понял, но они становятся постоянными и снимаются лишь через сон или смерть. Лечу подобное недоразумение пока что снятием полиморфа и затиранием всех заклинаний, иначе их становится по 255. Старый баг колдуна.

Скрипт, который на данный момент служит мне лечением:

Neverwinter Script Source
void RemovePolymorth(object oPC)
{
    // Посмотреть первый эффект
    effect eEffect = GetFirstEffect(oPC);

    while (GetIsEffectValid(eEffect))
    {
        // Если есть эффект полиморфа на игроке, то продолжить
        if (GetEffectType(eEffect) == EFFECT_TYPE_POLYMORPH)
        {
            // Удалить эффект полиморфа с игрока
            RemoveEffect(oPC, eEffect);
            ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oPC);
            ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oPC)), oPC);
            break;
        }
        // Посмотреть следующий эффект
        eEffect = GetNextEffect(oPC);
    }

    object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC);

    // Если есть объект невидимой брони, удалить
    if (GetIsObjectValid(oSkin))
    {
        DestroyObject(oSkin);
    }
}


2. Биоваре оставили баг со сменой оружия. Почему его до сих пор не исправили, мне не ясно, ибо он на корню нарушает раундовую боевую систему, позволяя атаковать за 1 раунд несколько раз, без учета, что этих атак может быть гораздо меньше. Применил пока что такое решение проблемы. Подскажите, в чем я не прав, или как это можно сделать проще. Скрипт находится на эвенте "On Attacked" скрипта "nw_c2_default5":

Neverwinter Script Source
if (GetIsDM(oPC) || GetIsDMPossessed(oPC) || !GetIsPC(oPC)) return;

// Start script - Выпадение из рук оружия, если его решили сменить в бою
    object oWeaponR = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);
    object oWeaponL = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
    effect eAttack = EffectAttackDecrease(15);

    int nUsedOther;
    string sMessage = "Вы пытаетесь быстро выхватить новое оружие в бою, но все равно мешкаете немного!";

    if (GetIsObjectValid(oWeaponR) && GetIsObjectValid(oWeaponL))
    {
        if ((GetLocalInt(oWeaponR,"WeaponR") != 1) || (GetLocalInt(oWeaponL,"WeaponL") != 1))
        {
            object oItem = GetFirstItemInInventory(oPC);

            while (GetIsObjectValid(oItem))
            {
                if (GetLocalInt(oItem,"WeaponR") == 1) ||
                  (GetLocalInt(oItem,"WeaponL") == 1))
                {
                    nUsedOther = 1;
                    DeleteLocalInt(oItem, "WeaponR");
                    DeleteLocalInt(oItem, "WeaponL");
                    break;
                }
                oItem = GetNextItemInInventory(oPC);
            }

            if (nUsedOther == 1)
            {
                nUsedOther = 0;
                SendMessageToPC(oPC, sMessage);
                AssignCommand(oPC, ClearAllActions(TRUE));
                AssignCommand(oPC, ActionUnequipItem(oWeaponR));
                AssignCommand(oPC, ActionUnequipItem(oWeaponL));
                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAttack, oPC, 60.0f);
            }
            else
            {
                SetLocalInt(oWeaponR, "WeaponR", 1);
                SetLocalInt(oWeaponL, "WeaponL", 1);
                DelayCommand(7.0, DeleteLocalInt(oWeaponR, "WeaponR"));
                DelayCommand(7.0, DeleteLocalInt(oWeaponL, "WeaponL"));
            }
        }
    }
    else if (GetIsObjectValid(oWeaponR))
    {
        if (GetLocalInt(oWeaponR,"WeaponR") != 1)
        {
            object oItem = GetFirstItemInInventory(oPC);

            while (GetIsObjectValid(oItem))
            {
                if (GetLocalInt(oItem,"WeaponR") == 1)
                {
                    nUsedOther = 1;
                    DeleteLocalInt(oItem, "WeaponR");
                    break;
                }
                oItem = GetNextItemInInventory(oPC);
            }

            if (nUsedOther == 1)
            {
                nUsedOther = 0;
                SendMessageToPC(oPC, sMessage);
                AssignCommand(oPC, ClearAllActions(TRUE));
                AssignCommand(oPC, ActionUnequipItem(oWeaponR));
                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAttack, oPC, 60.0f);
            }
            else
            {
                SetLocalInt(oWeaponR, "WeaponR", 1);
                DelayCommand(7.0, DeleteLocalInt(oWeaponR, "WeaponR"));
            }
        }
    }
    else if (GetIsObjectValid(oWeaponL))
    {
        if (GetLocalInt(oWeaponL,"WeaponL") != 1)
        {
            object oItem = GetFirstItemInInventory(oPC);

            while (GetIsObjectValid(oItem))
            {
                if (GetLocalInt(oItem,"WeaponL") == 1)
                {
                    nUsedOther = 1;
                    DeleteLocalInt(oItem, "WeaponL");
                    break;
                }
                oItem = GetNextItemInInventory(oPC);
            }

            if (nUsedOther == 1)
            {
                nUsedOther = 0;
                SendMessageToPC(oPC, sMessage);
                AssignCommand(oPC, ClearAllActions(TRUE));
                AssignCommand(oPC, ActionUnequipItem(oWeaponL));
                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAttack, oPC, 60.0f);
            }
            else
            {
                SetLocalInt(oWeaponL, "WeaponL", 1);
                DelayCommand(7.0, DeleteLocalInt(oWeaponL, "WeaponL"));
            }
        }
    }
// End script - Выпадение из рук оружия, если его решили сменить в бою


Сообщение отредактировал Zirrex - Jun 30 2005, 10:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 30 2005, 14:03
Сообщение #1347


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

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



Zirrex
QUOTE (Zirrex @ Jun 30 2005, 11:36)
Извините, закинул не туда вопросы, размещаю тут.

а в чем, собственно, вопросы то? :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 30 2005, 21:07
Сообщение #1348


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



dumbo, я довольно четко изложил свои вопросы.

1. Не удается затереть эффекты от полиморфа при входе игрока на сервер. Снимается лишь эффект полиморфа, остальные же эффекты, иммунитеты, абсорбы и т.п. остаются на персонаже игрока до смерти или сна.

2. Насколько представленное мной решение по смене оружия верно, и есть ли более легкий способ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 5 2005, 12:27
Сообщение #1349


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

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



У меня такие вопросы

Что делают эти функции
Neverwinter Script Source
TouchAttackMelee

Neverwinter Script Source
TouchAttackRanged

у меня в переводе это как, Вызывающий оператор выполнит Сенсорную Атаку(Нападение) Melee на oTarget и как Вызывающий оператор выполнит Поколебленную Сенсорную Атаку на oTarget. В игре это выглядит как "Кто-то применяет Рукопашная атака Alies Signe" и как "кто-то применяет Атаку из далека на Alies signe".А что это значит?

И
Neverwinter Script Source
GetAttemptedAttackTarget()

Это получить цель, каторую пытается атаковать кто-то?

И как делать стычки в катсценах, обычные скрипты на атаку не пашут или там какая-нить хитрая функция для их юзания?


Кажись понял!

TouchAttackMelee - это просто "устная" атака указаной цели, с целью узнать как оно будет атаковано (промах, удар, критический удар), это можно отразить в окне, а можно нет. Это наверно используется в АИ, ну и в других целях.

TouchAttackRanged - а это кажись то же самое, только с закленаниями.

GetAttemptedAttackTarget() - а это при каждом действии атаки (в бою) получать цель атаки ?



А вот как потычки в сценках делать, ActionAttack и др Attack чета не пашут :xz:

Сообщение отредактировал -fenix- - Jul 5 2005, 18:01
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 5 2005, 22:50
Сообщение #1350


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



-fenix-, должна работать команда "ActionAttack". Главное при ее использовании верно указывать цели, но самое лучшее решение, это поссорить фракции двух целей, которые должны сразиться между собой.

У меня в модуле есть скрипт, который устраивает петушиные бои. Изначально у петухов фракции были одинаковые, и они стравливались с помощью этой команды, но потом я им сделал разную фракцию, и они стали кидаться гораздо яростнее.

з.ы. эх, мне бы кто подсказал по выше описанным скриптам иное решение проблемы.

Сообщение отредактировал Zirrex - Jul 5 2005, 22:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



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