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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
135 страниц V  « < 21 22 23 24 25 > »   
Ответить в эту темуОткрыть новую тему
> ОДИНОЧНЫЙ ВОПРОС, на любую тулсетовскую тему
balrog
сообщение Jun 28 2005, 20:52
Сообщение #551


Великий хранитель фотоальбома
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Тварь
МАСТЕР Кисти



Мефистофель Может у тебя к модулю, помимо всего борохла их оверрайда, подключенны ешо какие-нибудь хаки?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 29 2005, 08:05
Сообщение #552


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



QUOTE
Мефистофель Может у тебя к модулю, помимо всего борохла их оверрайда, подключенны ешо какие-нибудь хаки?

Нет я ничё не подключал, у меня всё идёт из Оверейда, но может причина в фойлах, TILESETS? и Textures_Tpc.erf, и Tailes_Tpc.erf?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 29 2005, 20:09
Сообщение #553


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 - Выпадение из рук оружия, если его решили сменить в бою
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 29 2005, 22:12
Сообщение #554


Level 5
**

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



Вопрос, который некуда сунуть - понадобился срочно демо модуль к Анимации НПС (насколько я помню, там был такой скрипт, который мне нужен)а на ВРГ/ОЛД/ФАЙлы выдает 404 когда кликаю на ссылку к модулю. Может его, как и статью, выложить на новом ВРГ? :xz:
Ну может вы мне и без мода поможете? Почему - то НПС стоит, как столб. Вот скрипт
Neverwinter Script Source
void main()
{
int nUser = GetUserDefinedEventNumber();
if(nUser == 1001)
{
if (GetLocalInt(OBJECT_SELF,"BUSY")==0)
{
SetLocalInt(OBJECT_SELF,"BUSY",1);

if (GetLocalInt(OBJECT_SELF,"ActionSet")==0)
SetLocalInt(OBJECT_SELF,"ActionSet",Random(4)+1);
switch (GetLocalInt(OBJECT_SELF,"ActionSet"))
{
case 1:
ActionMoveToObject(GetNearestObjectByTag("wp_wife1"),FALSE,0.0);
ActionSpeakString("Ужасные спицы!");
ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.5,25.0);
break;
case 2:
ActionMoveToObject(GetNearestObjectByTag("wp_wife2"),FALSE,0.0);
ActionSpeakString("Скоро уже будет готово.. Осталось чуть чуть подождать");
ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW,1.5,12.0);
break;
case 3:
ActionMoveToObject(GetNearestObjectByTag("wp_wife3"),FALSE,0.0);
ActionSpeakString("Хм, этот бараний хаш весьма неплох.");
ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.5,12.0);
break;
case 4:
ActionMoveToObject(GetNearestObjectByTag("wp_wife4"),FALSE,0.0);
ActionSpeakString("Каждые тридцать минут эта постель превращаеется в кубло!");
ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING,1.5,9.0);
break;
case 5:
ActionMoveToObject(GetNearestObjectByTag("TABLE"),FALSE,0.0);
ActionSpeakString("Милый, я подала на стол!");
ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.5,12.0);
}
ActionDoCommand(SetLocalInt(OBJECT_SELF,"BUSY",0));
}
}
}

В чем дело, господа? :this:

Сообщение отредактировал Агрессинг - Jun 29 2005, 22:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 30 2005, 01:13
Сообщение #555


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

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



Агрессинг почему твой НПС подлетает к столу совершенно без задержки? Ты хочешь, чтобы он телепортировался, или стол настолько близко, что рукой можно дотянуться? Столбом он у тебя стоит, потому что ты ему изменяешь переменную, и не сбрасываешь, когда ты делаешь:

Neverwinter Script Source
SetLocalInt(OBJECT_SELF, "ActionSet", Random(4) + 1);

то первый раз условие проходит, потому что изначально эта переменная равна 0, но второй раз она уже будет равна не 0, и условие:

Neverwinter Script Source
if (GetLocalInt(OBJECT_SELF, "ActionSet") == 0)

ты не сможешь пройти.

Neverwinter Script Source
ActionMoveToObject(GetNearestObjectByTag("wp_wife1"), FALSE, 0.0);

FALSE, 0.0 - лишнее, по-умолчанию они равны тому, что ты поставил.


Лучше уж так:

Neverwinter Script Source
void main()
{
    int nUser = GetUserDefinedEventNumber();

    if (nUser == 1001)
    {
        if (GetLocalInt(OBJECT_SELF, "BUSY") == 0)
        {
            SetLocalInt(OBJECT_SELF, "BUSY", 1);

            int iAction = Random(4) + 1;

            switch (iAction)
            {
            case 1:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife1"), FALSE, 1.0, 5.0);
                ActionSpeakString("Ужасные спицы!");
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 25.0));
            break;

            case 2:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife2"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Скоро уже будет готово.. Осталось чуть чуть подождать"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.5, 12.0));
            break;

            case 3:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife3"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Хм, этот бараний хаш весьма неплох."));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 12.0));
            break;

            case 4:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife4"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Каждые тридцать минут эта постель превращаеется в кубло!"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING, 1.5, 9.0));
            break;

            case 5:
                ActionForceMoveToObject(GetNearestObjectByTag("TABLE"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Милый, я подала на стол!"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 12.0));
            break;
            }
            ActionDoCommand(SetLocalInt(OBJECT_SELF, "BUSY", 0));
        }
    }
}


С текстом я не знаю, фраза должна произноситься сразу, или после того, как персонаж подойдет к объекту. Сделал ожидание.

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


Level 5
**

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



QUOTE
С текстом я не знаю, фраза должна произноситься сразу, или после того, как персонаж подойдет к объекту. Сделал ожидание.

Спасиб, попробую, че то я напортачил. А ActionSpeakString всегда говорится с послеующим действием, в данном случае - анимацией, а SpeakString можно и без другого действия ставить.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 30 2005, 01:32
Сообщение #557


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

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



Агрессинг, не знаю, когда я делал НПС "ActionSpeakString", то замечающий НПС игрока, вначале говорил фразу, потом начинал движение. Сделав такое ожидание, он стал вначале подбегать, а потом говорить фразу. В общем, эксперименты быстро наводят на ответы :)

Совет, лучше делай красивые скрипты, тогда в них проще разобраться, а когда все в одну строчку, то глаза разбегаются.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 30 2005, 07:25
Сообщение #558


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

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



Zirrex тебе надо в вопросы по скриптам.
QUOTE (Агрессинг @ Jun 30 2005, 01:12)
Может его, как и статью, выложить на новом ВРГ?

Скачай мой мануал по Авроре, там теперь и модуль и описание катсцен. Дублировать я не стал больше.
По поводу твоего скрипта...
Ты как всегда юзаешь хертбит. Я рекомендую тебе воткнуть стринги на каждую строку и посмотреть, один блок действий держит в стеке непись или кучу, каждые 6 секунд получает от хертбита. Если у тебя сингл то добавь такую строку себе в начало скрипта:
Neverwinter Script Source
if (GetArea(GetFirstPC()) != OBJECT_SELF)
  {return;}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 30 2005, 16:57
Сообщение #559


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

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



QUOTE (Aiwan @ Jun 30 2005, 08:25)
Скачай мой мануал по Авроре, там теперь и модуль и описание катсцен.

речь о статье по анимации и демке к ней, Айв.
(и там я кстати делал только основу, так что проверок бой/диалог/рс в локации тама нету )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 30 2005, 23:39
Сообщение #560


Level 5
**

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



Не получается, хоть зарежся!!! :swoon: :this:
Вставил
Neverwinter Script Source
if (GetArea(GetFirstPC()) != OBJECT_SELF)
  {return;}

все сделал, а эта дура электронная все стоит и стоит.


Neverwinter Script Source
void main()
{
    int nUser = GetUserDefinedEventNumber();
if (GetArea(GetFirstPC()) != OBJECT_SELF)
  {return;}
  
if (nUser == 1001)
    {
        if (GetLocalInt(OBJECT_SELF, "BUSY") == 0)
        {
            SetLocalInt(OBJECT_SELF, "BUSY", 1);

            int iAction = Random(4) + 1;

            switch (iAction)
            {
            case 1:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife1"), FALSE, 1.0, 5.0);
                ActionSpeakString("Ужасные спицы!");
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 25.0));
            break;

            case 2:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife2"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Скоро уже будет готово.. Осталось чуть чуть подождать"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.5, 12.0));
            break;

            case 3:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife3"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Хм, этот бараний хаш весьма неплох."));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 12.0));
            break;

            case 4:
                ActionForceMoveToObject(GetNearestObjectByTag("wp_wife4"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Каждые тридцать минут эта постель превращаеется в кубло!"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_GREETING, 1.5, 9.0));
            break;

            case 5:
                ActionForceMoveToObject(GetNearestObjectByTag("TABLE"), FALSE, 1.0, 5.0);
                ActionDoCommand(ActionSpeakString("Милый, я подала на стол!"));
                ActionDoCommand(ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.5, 12.0));
            break;
            }
            ActionDoCommand(SetLocalInt(OBJECT_SELF, "BUSY", 0));
        }
    }
}


Сообщение отредактировал Агрессинг - Jun 30 2005, 23:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 1 2005, 00:06
Сообщение #561


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

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



QUOTE (Aiwan @ Jun 30 2005, 08:25)
if (GetArea(GetFirstPC()) != OBJECT_SELF)
  {return;}

Айв, ты чего советуешь??
Neverwinter Script Source
if (GetArea(GetFirstPC()) != GetArea(OBJECT_SELF))    return;

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 1 2005, 01:28
Сообщение #562


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

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



Агрессинг, она у тебя хоть без этого включения:

Neverwinter Script Source
if (GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return;

Говорит что-нибудь?

И потом, если это одиночная игра, на каком эвенте у тебя установлен сей скрипт? Дело в том, что по-умолчанию на хертбите вот этого:

Neverwinter Script Source
int nUser = GetUserDefinedEventNumber();

    if(nUser == 1001) //HEARTBEAT
    {

    }

не нужно. Скрипт будет работать и так.

Подобная ветка нужна на эвенте OnUserDefined, если ты что-то хочешь сделать с НПС, когда рядом игрок. Иначе же она будет ходить по выбранному скриптом пути постоянно, даже когда игрока нет рядом или в локации объекта, это сильно перегрузит игру, если таких НПС будет множество.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 1 2005, 01:56
Сообщение #563


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

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



Zirrex, я перечилат пост твой раза 3.. и так и не понял, что ты хотел сказать.
Но суть в том, что Агрессинг написал все верно, кроме проверки на локацию.
Стоит только еще добавить проверку на диалог (IsInConversation) и на бой (GetIsInCombat)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 1 2005, 07:26
Сообщение #564


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

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



QUOTE (Lex @ Jul 1 2005, 03:06)
Айв, ты чего советуешь??

Ну замутил я =) ЗАМУТИЛ! :pilot:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 1 2005, 18:01
Сообщение #565


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



Подскажите плиз где можно скачать Aurora Toolset???
Буду очень благодарен....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jul 1 2005, 18:33
Сообщение #566


Level 5
**

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



На nwnights вроде альфа версия валяется (200 с гаком мегабайт)
PS
А зачем топик - то создавать, :DB: написал бы в одиночном вопросе!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 1 2005, 18:40
Сообщение #567


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



У вас очень хитрый форум, я тут впервые, делаю так как на обыкновенных форумах сорри :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jul 1 2005, 18:47
Сообщение #568


Level 5
**

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



Есть топик специально для новичков, правила раздела называется. Повнимательнее в следующий раз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 1 2005, 23:10
Сообщение #569


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

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



Lex, он не написал, на какой эвент установил этот скрипт. То что он у него не работает, меня удивляет. Я лишь заметил, что выделенный мной код не нужен на хертбите.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 2 2005, 01:01
Сообщение #570


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

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



Мягкий Пушистик, давай не будем флеймить. Я знаю что это такое, но он у него не работает, вот я и спрашиваю на всякий случай. Так как иных вариантов от Лекса с Айвеном нету, то не вижу причин сомневаться в работоспособности скрипта.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 2 2005, 12:50
Сообщение #571


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



Люди как зделать что бы при испльзовании предмета тебя телепортировало на указаное место?
Заранее благодарен...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jul 2 2005, 15:25
Сообщение #572


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

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



QUOTE
Люди как зделать что бы при испльзовании предмета тебя телепортировало на указаное место?


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

Далее в нужном месте создаешь вэйпоинт с тэгом ST_+ResRef предмета.

Этот скрипт ставется на OnActivateItem в св-ах модуля.

Neverwinter Script Source
void main()
{
object oPC = GetItemActivator();
object oItem = GetItemActivated();
 
string sResRef = GetResRef(oItem);
string sItemResRef = "item"; //Сюда ResRef предмета

if (sResRef == sItemResRef)
  {
  object oTarget = GetWaypointByTag("WP_" + sItemResRef);

  AssignCommand(oPC, ClearAllActions());
  DelayCommand(1.0f, AssignCommand(oPC, ActionJumpToLocation(GetLocation(oTarget))));
  }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 2 2005, 15:42
Сообщение #573


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

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



1.
QUOTE (-fenix- @ Jul 2 2005, 16:25)
ActionJumpToLocation(GetLocation(oTarget))));

можно просто
ActionJumpToObject(oTarget)

2. лучше не по резрефу проверять, а по тэгу. (могу расписать, почему важнее и правильнее)

3.
QUOTE (-fenix- @ Jul 2 2005, 16:25)
DelayCommand(1.0f,
делэй не стоит делать тут. В эту 1 секунду я могу пошевелиться и потом сам лови забавки :)

4. в ХОТУ есть система, там дефолтовые скрипты на активат, эквип, анэквип и прочие вызываеют скрипт с с тэгом вещи (те имя скрипта = тэгу вещи). Так что можно через нее делать еще.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 2 2005, 16:35
Сообщение #574


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

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



Если уж делать наиболее верно, то лучше так:

Neverwinter Script Source
void main()
{
    object oPC = GetItemActivator();
    object oItem = GetItemActivated();
    string sItemTag = GetTag(oItem);

    if (sItemTag == "thing")
    {
        object oPlace = GetWaypointByTag("wp_" + sItemTag);

        AssignCommand(oPC, ClearAllActions()); // если честно, лишнее, все действия и так очищаются, когда используешь вещь
        SetCommandable(FALSE, oPC); // если есть задержка, и ты не хочешь, чтобы цель двигалась
        DelayCommand(1.0, AssignCommand(oPC, ActionJumpToObject(oPlace)));
        DelayCommand(1.0, SetCommandable(TRUE, oPC)); // если с задержкой
        return;
    }
}


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

Сообщение отредактировал Zirrex - Jul 2 2005, 16:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 2 2005, 17:42
Сообщение #575


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



Наверное я что то не так делаю, но у меня не получилось.... :unsure:
А во вотором скрипте ошибка...
А да я найти "Только своя уникальная сила" не смог. :unsure:

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

135 страниц V  « < 21 22 23 24 25 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



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