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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 121 122 123 124 125 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Latiss
сообщение Jan 18 2009, 13:33
Сообщение #3041


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Я понял в чем суть проблемы - Диалог и скрипт смерти находились в других локациях, нежели в той, где должны были создаваться объекты.
Сегодня написал еще один скрипт и поместил его на onEnter триггера в одной локации (тоже на создание НПС). Он дестроился, но НПС не создавал (В другой локации). Как только поставил его на вход этой локации - Сразу же заработал.
Поэтому придется делать триггеры, а простым диалогом не обойтись...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jan 18 2009, 14:21
Сообщение #3042


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Цитата(Latiss @ Jan 18 2009, 13:33) *
Поэтому придется делать триггеры, а простым диалогом не обойтись...
Чё за чушь... (IMG:style_emoticons/kolobok_light/biggrin.gif) Бери в диалоге объекты как GetObjectByTag или же запиши так:
Neverwinter Script
void main()
{
object oWP = GetObjectByTag("sigil2"); //точка в нужной области с уникальным тегом (определяет объекты во всем модуле)
object oArea = GetArea(oWP); //сама область
// ближайшие к выбранной точке объекты (объекты должны быть только в одной области с oWP)
object oDoor = GetNearestObjectByTag("door", oWP);
object oMark = GetNearestObjectByTag("PlanarBeacon", oWP);
location lSigil = GetLocation(oWP);

object oSigil = CreateObject(OBJECT_TYPE_PLACEABLE,"blueprint",lSigil);
        AssignCommand(oDoor,ActionCloseDoor(oDoor));
        AssignCommand(oDoor,ActionLockObject(oDoor));
        DestroyObject(oMark);
// ПРОВЕРКА
SpeakString("В области" +GetName(oArea)+" создали плейс " +GetName(oSigil));
}


Сообщение отредактировал gennady - Jan 18 2009, 15:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Jan 18 2009, 14:59
Сообщение #3043


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Хм... А вот этого не знал. Зато теперь буду знать. Спасибо, gennady.
P.S. На досуге не заглянешь в тему Threads of Truth в Главном Зале? Хочется все-таки узнать мнение общественности (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jan 25 2009, 07:56
Сообщение #3044


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Кто знает в каком скрипте описана кнопочка отмены полиморфа??? Нужно срочно! (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jan 25 2009, 13:31
Сообщение #3045


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

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Цитата(gennady @ Jan 25 2009, 07:56) *
Кто знает в каком скрипте описана кнопочка отмены полиморфа??? Нужно срочно! (IMG:style_emoticons/kolobok_light/biggrin.gif)
Она вшита в движок.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sowhat
сообщение Feb 12 2009, 17:37
Сообщение #3046


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Доброго всем! Народ, мучает такой вопрос, возможно ли как нить написать на скриптах бота для онлайн шарда?.. Чтобы не писать доп. приложений. Догадываюсь что нет, но хочется в этом убидится. И если вдруг я не прав, киньте линк плз.

--- к вышенаписаному топику ---

В смысле есть ли в НВНке скрипты, для клиентской части, вот)

можно ли выполнить runscript без прописи DebugMode 1 на шарде? народ, хелп плиз, очень срочно нада...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 12 2009, 17:55
Сообщение #3047


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

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



лучше по этому поводу теребить шардовиков, но мне с моей сингловой колокольни видится только 1 вариант запуска скрипта со стороны пользователя - default.nss. Те ХБ чара, причем не только своего, а вообще всех на шарде. Теоретически бота с его помощью написать можно, простенького, типа "убийство всех монстров на карте". Но практически, без данных типа тэгов, точек и зон перехода, будет сложновато сделать что-то путное, если вообще возможно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
sowhat
сообщение Feb 12 2009, 18:13
Сообщение #3048


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Цитата(Lex @ Feb 12 2009, 17:55) *
лучше по этому поводу теребить шардовиков, но мне с моей сингловой колокольни видится только 1 вариант запуска скрипта со стороны пользователя - default.nss. Те ХБ чара, причем не только своего, а вообще всех на шарде. Теоретически бота с его помощью написать можно, простенького, типа "убийство всех монстров на карте". Но практически, без данных типа тэгов, точек и зон перехода, будет сложновато сделать что-то путное, если вообще возможно.


А моно поподробней про default.nss... Де должен находится/как запускать?) Пробывал писать пробные скрипты и запускать на шарде, не хочет =( Одно дело запустуть в модуле через runscript, а тут это не катит =(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 12 2009, 22:38
Сообщение #3049


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



default.nss - это onHeartbeat скрипт игрока, исполняется каждый раунд. Можно попробовать написать какой-нибудь аи для игрового чара, основанный только на этом скрипте, но, думаю, игра не стоит свеч.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
haljavan
сообщение Feb 15 2009, 02:34
Сообщение #3050


Level 1


Класс: Монах
Характер: Lawful Good
Раса: Гном



короче так. нада чтоб у мобов генерировался дроп. желательно с ооочень маленким процентом выпадания.

заранее спасиба
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Feb 15 2009, 09:36
Сообщение #3051


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Привет Всем Снова Я вернулся, а пдскажите плиз, как сделать так что бы игроков Одной команды, фракции скажем Злой, автоматически бросало в Одну Пати к игрокам, а игкроков противоположной команды Гуд, бросало в другую пати?, я знаю что так можно сделать, я играл долго время на Alestorm Lotr Team PvP, у них это сделано, и к тому же даже после перезахода в игру ты всеравно автоматически в пати, в этой же команде.

Примечание в их сервере Alestorm Lotr team PvP, стоит Game Type: Team, PvP Mode: Party , может это как то может помочь, в помощи для меня, подскажите плиз, я знаю что это не просто но возможно.

P.S.: Вот этот скрипт на дислайки работает просто замечательно, НО, он против всех, может его как то надо настроить, чтобы к игрокам своей команды , ты не был враждебен, ну или просто сделать то что я описал, одних игроков в одну команду(Good Team) других(Evil Team) в другу.

Neverwinter Script
// The PC who entered the trigger is set to dislike all the PC's in the module
void main()
{
    // Get entering PC
    object oEnterer = GetEnteringObject();

    // make sure they are not a DM
    if(GetIsPC(oEnterer) && !GetIsDM(oEnterer))
    {
        // Loop all PC's in the module and set this PC to dislike them - uh oh
        object oPC = GetFirstPC();
        while(GetIsObjectValid(oPC))
        {
            // Set to dislike
            SetPCDislike(oEnterer, oPC);

            // Get next PC
            oPC = GetNextPC();
        }
    }
}

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Feb 15 2009, 10:16
Сообщение #3052


Level 7
**

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



Neverwinter Script
void main()
{
    object oPlayer = GetEnteringObject();
    string VarName = "имя переменной на игроке"; //Переменную под этим именем надо проставить на каждого игрока в зависимости от выбранной фракции

    if (GetIsPC(oPlayer) && !GetIsDM(oPlayer))
    {
        object oPC = GetFirstPC();
        int nFaction = GetLocalInt(oPlayer, VarName);

        while (GetIsObjectValid(oPC))
        {
            int nSame = GetLocalInt(oPC, VarName) == nFaction;
            int nDone = 0;

            if (nSame)
            {
                if (!(nDone || oPC == oPlayer))
                {
                    RemoveFromParty(oPlayer);
                    AddToParty(oPlayer, oPC);
                    nDone++;
                }
            }
                else SetPCDislike(oPlayer, oPC);
        }
    }
}


Сообщение отредактировал greye - Feb 15 2009, 14:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Feb 17 2009, 16:15
Сообщение #3053


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Вообщем появилась проблема в одной скриптовой сцене - Точнее, в самой последней строчке. (Диалог не начинается) И в том, что эффект unsummon не проигрывается (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Neverwinter Script
void main()
{
object oPC = GetPCSpeaker();
object oKiller = GetObjectByTag("assassin");
object oValsh = GetObjectByTag("valsh");
object oKaj = GetObjectByTag("Kaj");
object oMarsia = GetObjectByTag("MarsiaLab");
location lKillEx = GetLocation(GetObjectByTag("AssassinEnter"));
effect E1 = EffectVisualEffect(VFX_IMP_DEATH_L);
effect E2 = EffectDeath();
effect E3 = EffectVisualEffect(VFX_IMP_UNSUMMON);
   SetCutsceneMode(oPC);
   AssignCommand(oKiller, ClearAllActions());
   AssignCommand(oPC, ClearAllActions());
   AssignCommand(oMarsia, ClearAllActions());
   AssignCommand(oValsh, ClearAllActions());
   DelayCommand(0.1, AssignCommand(oPC,SetCameraFacing(120.0,12.0,49.0,CAMERA_TRANSITION_TYPE_FAST)));
   DelayCommand(0.2, AssignCommand(oKiller, SetFacingPoint(GetPosition(oValsh))));
   DelayCommand(0.9, AssignCommand(oKiller, ActionCastFakeSpellAtObject(SPELL_FINGER_OF_DEATH,
oValsh)));
   DelayCommand(3.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, E1, oValsh));
   DelayCommand(3.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, E2, oValsh));
   DelayCommand(3.8, AssignCommand(oKiller,DestroyObject(oKiller)));
   DelayCommand(3.8, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, E3, lKillEx));
   DelayCommand(4.0,AssignCommand(oMarsia,ActionStartConversation(oPC
)));
   DelayCommand(4.1,SetCutsceneMode(oPC, FALSE));
}


Сообщение отредактировал Latiss - Feb 17 2009, 16:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Feb 17 2009, 21:37
Сообщение #3054


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



может быть у тебя этот скрипт на объекте "assassin" стоит?, тогда после его удаления удалятся и за-делай-еные действия, правда тогда в этом случае не должно ещё работать выключение катсцены...

Сообщение отредактировал azathoth - Feb 17 2009, 21:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Feb 18 2009, 09:02
Сообщение #3055


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



У меня скрипт стоит на диалоге Вальшерада. После окончания диалога стартует катсцена. Но assassin-то удаляется! А диалог не стартует и эффект не проигрывается

Мистика - Переделал немного диалоги и поставил вместо oMarsia, oKaj, то игрок без труда начинал диалог с Кайусом! Дело улажено. Всем спасибо, все свободны.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Feb 28 2009, 13:52
Сообщение #3056


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Вновь требуется помощь: Как создать вэйпоинт на месте смерти одного НПС (На OnDeath должен стоять). И еще - ExecuteScript запускает же какой-то скрипт? И еще - Можно или нельзя запускат таким образом катсцену. То есть на OnDeath этого НПС?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 28 2009, 17:52
Сообщение #3057


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Цитата
Как создать вэйпоинт на месте смерти одного НПС (На OnDeath должен стоять).
В onDeath скрипт добавить строку:
Neverwinter Script
CreateObject(OBJECT_TYPE_WAYPOINT, "<ресреф вейпа>", GetLocation(OBJECT_SELF));
Цитата
ExecuteScript запускает же какой-то скрипт?
Запускает.
Цитата
Можно или нельзя запускат таким образом катсцену. То есть на OnDeath этого НПС?
Не вижу к этому препятствий (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Feb 28 2009, 18:33
Сообщение #3058


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Neverwinter Script
int StartingConditional()
{
    string sGrave = GetLocalString(OBJECT_SELF,"GRAVE");
    if(sGrave == "NEFZEN")
    {
        return TRUE;
        break;
    }
    if(sGrave == "VESSEL")
    {
        return TRUE;
        break;
    }
    return FALSE;
}


Имеется код примерно такого вида, редактор категорически отказывается его компилировать, ругается на break. Кто виноват и что делать?
По сути кода - обработчик для могил, хочу организовать универсальную систему, чтоб не плодить файлы скриптов/диалогов - один скрипт и один диалог с универсальным скриптом-условием.

Сообщение отредактировал Talarasha - Feb 28 2009, 18:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 28 2009, 18:36
Сообщение #3059


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

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Брейки убери совсем, не нужны они тут (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Feb 28 2009, 18:59
Сообщение #3060


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Убрал, скрипт компилируется, но не пашет. Впрочем, он и не должен. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Объясняю.
Есть диалог из, допустим, двух строк:
1.Натали Нефзен, 1351 - 1390, покойся с миром.
2.Курт Вессел, 1351 - 1390, покойся с миром.
На каждой из строк висит скрипт-условие, приведенное мной выше.
На каждой могилке висит переменная со значением похороненного лица.
При щелчке на надгробие срабатывает диалог и запускается проверка скрипта:
1)Проверяем первую строку диалога
2)Если переменная Нефзен, выводим диалог. Бриком выходим из скрипта.
3)Проверяем вторую строку диалога.
4)Если переменная Вессел, то первая проверка не срабатывает и мы переходим ко второй.
Если же не будет брика, то скрипт будет выдавать первую строку диалога в любом случае, а не делать то, что мне надо.
Так что вопрос - почему не компилирует, или можно ли кк-то по-другому решить эту задачу?
В принципе, я понимаю, что брика после возврата значения быть не может... Но как тогда поступить? =)

Сообщение отредактировал Talarasha - Feb 28 2009, 19:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Mar 1 2009, 04:23
Сообщение #3061


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Talarasha, может быть просто привязать к каждой могилей свой "диалог"?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Mar 1 2009, 10:12
Сообщение #3062


Level 7
**

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



Neverwinter Script
int StartingConditional()
{
    string sGrave = GetLocalString(OBJECT_SELF,"GRAVE");
    int IsFirst = GetLocalInt(OBJECT_SELF, "GRAVE");

    if (sGrave == "NEFZEN" && IsFirst) return TRUE;
    if (sGrave == "VESSEL" && !IsFirst) return TRUE;

    return FALSE;
}

На каждую могилу ставится переменная GRAVE целочисленного типа со значениями TRUE для NEFZEN и FALSE для VESSEL(вообще говоря, можно даже не ставить вторую).
Хотя пара условий может была бы и лучше.

Сообщение отредактировал greye - Mar 1 2009, 10:28
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Talarasha
сообщение Mar 1 2009, 10:31
Сообщение #3063


Level 6
**

Класс: Маг
Характер: Lawful Evil
Раса: Нежить



Цитата
На каждую могилу ставится переменная GRAVE целочисленного типа со значениями TRUE для NEFZEN и FALSE для VESSEL.
Хотя пара условий может была бы и лучше.

Не работает, к сожалению (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Обе могилы выдают первую строку диалога. Ведь если взять вторую могилу (VESSEL) и щелкнуть по ней, первое условие не срабатывает, а второе срабатывает и выводит первую строку диалога.

Цитата
Talarasha, может быть просто привязать к каждой могилей свой "диалог"

Ну да, это проще реализуемо. Но зачем нужны кучи диалоговых файлов, если можно уместить все в один?

Хм... Попробую без диалога вообще сделать, просто вывод строки в зависимости от переменной.
Добавлено:
Заработало =).
Neverwinter Script
void main()
{
     string sGrave = GetLocalString(OBJECT_SELF,"GRAVE");
     if(sGrave == "NEFZEN")
     {
            ActionSpeakString("Натали Нефзен, 1351 - 1390, покойся с миром.");
     }
     if(sGrave == "VESSEL")
     {
            ActionSpeakString("Курт Вессел, 1351 - 1390, покойся с миром.");
     }
}


Хотя если кто-нибудь сможет сделать для диалогового файла, с удовольствием погляжу.

Сообщение отредактировал Talarasha - Mar 1 2009, 10:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Mar 1 2009, 12:38
Сообщение #3064


Level 7
**

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



Neverwinter Script
int StartingConditional()
{
     string sName = GetLocalString(OBJECT_SELF, "GRAVE");
     int nCheck = GetLocalInt(OBJECT_SELF, "GRAVE");

     if (!nCheck) if (sName == "NEFZEN") return TRUE;

     SetLocalInt(OBJECT_SELF, "GRAVE", !nCheck);

     return nCheck;
}

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

-------------------------------------------------
Для общего случая:
Neverwinter Script
const int nCountMax = 99;
const string sVariableName = "<Variable_Name>";

int StartingConditional()
{
    string sName = GetLocalString(OBJECT_SELF, sVariableName);
    int nPosition = GetLocalInt(OBJECT_SELF, sVariableName);
    int bTRUE = FALSE;

    switch (nPosition)
    {
        case 0: if (sName == "<Name_00>") bTRUE = TRUE; break;
        case 1: if (sName == "<Name_01>") bTRUE = TRUE; break;
        case 2: if (sName == "<Name_02>") bTRUE = TRUE; break;
        //...
        case nCountMax: if (sName == "<Name_nCountMax>") bTRUE = TRUE; break;
    }

    if (bTRUE || nPosition == nCountMax) nPosition = 0;
        else nPosition++;
    SetLocalInt(OBJECT_SELF, sVariableName, nPosition);

    return bTRUE;
}


Сообщение отредактировал greye - Mar 1 2009, 13:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Latiss
сообщение Mar 7 2009, 11:50
Сообщение #3065


Level 3
*

Класс: Псионик
Характер: Chaotic Neutral
Раса: Тварь



Люди - Как создать некое подобие струи пара (огня?), которая бы через определенный промежуток времени выстреливала из одного вэйпоинта, проносилась бы по прямой до другого вэйпоинта и гасла. А если игрок попал бы в него, то его бы "ошпарило" - нанеслось бы 1d12 огненного урона.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 121 122 123 124 125 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6th May 2025 - 18:20