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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 114 115 116 117 118 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Edwin
сообщение Jan 3 2008, 07:18
Сообщение #2876


Level 3
*

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



QUOTE
для примера привел эти два оператора.


Это не операторы, это функции.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Alian REXis
сообщение Jan 10 2008, 12:40
Сообщение #2877


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Модмейкер
Начало Войны



Есть невидимые объекты (creature). Нужно реализовать, чтобы они были видимыми только когда у PC надет определенный айтем (шлем к примеру), при этом всем другим PC они должны оставаться невидимыми. Подскажите как реализовать, если это возможно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jan 10 2008, 13:24
Сообщение #2878


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

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



шлем с трусиингом?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Alian REXis
сообщение Jan 10 2008, 13:31
Сообщение #2879


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN: Модмейкер
Начало Войны



Наподобе, но чтобы стандартные заклинания определяющие невидимых не работали на этих существах.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jan 10 2008, 13:50
Сообщение #2880


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

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



Цитата(Alian REXis @ Jan 10 2008, 12:40) *
Есть невидимые объекты (creature). Нужно реализовать, чтобы они были видимыми только когда у PC надет определенный айтем (шлем к примеру), при этом всем другим PC они должны оставаться невидимыми. Подскажите как реализовать, если это возможно.
Стандартными средставми NWN именно так, как описано, сделать нельзя. Я недавно сделал Proof of Concept и в скором времени напишу NWNX-плагин для таких вещей (индивидуальное управление видимостью объектов).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Golthana
сообщение Feb 12 2008, 00:08
Сообщение #2881


Level 1


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



Добрый вечер. Скажите, пожалуйста, как можно прописать в скрипте, чтобы девастат не убивал, а, например, заберал 80% ХП?
Ответ можно прислать и на мыло: dracul@ukr.net
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ZipovUA
сообщение Feb 12 2008, 23:01
Сообщение #2882


Level 2
*

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



Вообщето я не понял, кто такой девостат, но...
почему нельзя просто узнать сколько у персонажа XP и просто присвоить ему на 80% меньше?

типа:

Код
object oPC=GetFirstPC();//работаем з нашим главным персонажем
//або якщо комусь більше подобається, можна написати object oPC=GetEnteringObject();
int XP=0;//инициируем переменную
XP = GetXP(oPC);//вытаскиваем нинищнее значение XP
XP = FloatToInt(XP-XP*0.8); //Выщитываем результат
SetXP(oPC,XP);//Бросаем назад нашему персонажу



Если я правильно понял - то так (IMG:style_emoticons/kolobok_light/rolleyes.gif)

Сообщение отредактировал ZipovUA - Feb 12 2008, 23:05
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 13 2008, 01:54
Сообщение #2883


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

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



1. ХП - Хит Поинты, а не очки опыта. Так что приведенный код малек не туда
2. проблема описанной идеи не в написании кода (это как раз детский сад). А в том, чтобы привязать код к эффекту от девастата. Я не помню как там сделано в НВН1, но вроде бы девастат - фит не активируемый на противнике.. соотв своего скрипта-исполнителя у него нету. Поэтому как решить задачу не через nwnx не знаю (через нвнх тоже не знаю как, но знаю что можно)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Golthana
сообщение Feb 14 2008, 02:10
Сообщение #2884


Level 1


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



Возможно вы не поняли суть вопроса, шард имеет лвлкап 25, девастат в чистом виде сильно крут для этого шарда, спасы не соответсвуют, но выключать его полностью - значит сделать дисбаланс в сторону магов, можно ли как-то или понизить дц девастата или сделать чтоб он не убивал, а снимал Х число хитов, либо в процентах?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 14 2008, 09:10
Сообщение #2885


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

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



Цитата(Golthana @ Feb 14 2008, 02:10) *
Возможно вы не поняли суть вопроса

поняли мы суть вопроса, вы суть ответа не поняли: "У девастата нет скрипта => изменить характер его работы обычными методами нельзя."
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Feb 20 2008, 00:06
Сообщение #2886


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Вообще вариант есть (IMG:style_emoticons/kolobok_light/smile.gif) Если на оружие не планируется вешать кастомные OnHit-ы (т.к. движок поддерживает тока 1 на брата), то можно сделать свой девастат.

Получение: кастомные ничего не дающие фиты (просто флаги, подтверждающие взятие девастата)
Включение: на одевание шмотки (OnItemEquip) или даже на ее получение (acquire), если у чара есть фит (см. выше) на оружие, вешать свое OnHit-свойство, которое и будет эмулировать девастат с нужными фиксами. На снятие свойство удаляется. Плюс ведро проверок.

В результате каждое попадание будет запускаться наш скрипт и там уже хоть 80% хп, хоть отрубание головы (IMG:style_emoticons/kolobok_light/smile.gif)


P.S. Да, я знаю толк в извращениях (IMG:style_emoticons/kolobok_light/smile.gif) Зато без нвнх.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 20 2008, 01:05
Сообщение #2887


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

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



Цитата
Включение: на одевание шмотки (OnItemEquip) или даже на ее получение (acquire), если у чара есть фит (см. выше) на оружие, вешать свое OnHit-свойство, которое и будет эмулировать девастат с нужными фиксами. На снятие свойство удаляется. Плюс ведро проверок.
А можно проверять, есть ли фит, в самом онхите (IMG:style_emoticons/kolobok_light/smile.gif) Только придётся руками делать хитрый чек, эмулирующий крит.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Feb 20 2008, 01:31
Сообщение #2888


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

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



Денисок, а как ты отследишь крит? Любой дамаг выше максимального для данного оружия с бонусами - крит? вроде как нет, да и нагрузка на такие расчеты при каждом ударе..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Feb 20 2008, 10:30
Сообщение #2889


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Сразу видно, что я недостаточно играл на эпиках (IMG:style_emoticons/kolobok_light/smile.gif) Но и тут есть выход (IMG:style_emoticons/kolobok_light/smile.gif) Следуя уже придуманной извращенной схеме можно самому сделать параллельную проверку крита с учетом диапазона оружия и наличия фитов. Т.е. крит отдельно, девастат (хотя это уже не девастат, а плюшка, отдаленно его напоминающая) отдельно, но шансы их равны.

При провале чека прям сразу вначале скрипта выходим, так что особой нагрузки не будет. Главное тут диапазоны оружий вынести в инклуд, а не грузить каждый раз из 2да, иначе шляпа. Я при слове "нагрузка" всегда вспоминаю аи с его 15к строками в одном из инклудов (IMG:style_emoticons/kolobok_light/smile.gif)


Громоздко, согласен. Даже кривовато. Но тем не менее реализуется без нвнх. Кстати, как сделать это через нвнх, ума не приложу. Видимо нужен свой плагин, блокирующий работу кода девастата и заодно запускающий вместо него скрипт. Но я такого не видел, поэтому и предложил то, что относительно реально сделать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Feb 20 2008, 19:13
Сообщение #2890


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

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



Не вариант (IMG:style_emoticons/kolobok_light/smile.gif) Ты не сможешь нормально посчитать атаку - только приблизительно, не учесть тучу бонусов (например, всякие там против видового разнообразия). Крит подтверждается броском против АС - там тоже проблемно, потому что точный АС ты не рассчитаешь - флетфутед и прочие пакости не дадут.

Сообщение отредактировал Ilerien - Feb 20 2008, 21:53
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Feb 20 2008, 21:15
Сообщение #2891


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



Желание ищет тысячи возможностей, нежелание - тысячи причин (IMG:style_emoticons/kolobok_light/smile.gif) Или как там оно, не помню.

Мы уже далеко ушли от идеального варианта, значит и тут можем позволить условность - это же не девастат. Атака = баб + абилка + фиты + обкаст + плюшка на оружии (вроде так (IMG:style_emoticons/kolobok_light/smile.gif) ). Ас = GetAC() + проверка консила, посмотреть, что дает этот GetAC() в разных условиях и поправить если что. Насчет необходимости точного АС я бы поспорил, т.к. сам нвн далеко не всегда его верно рассчитывает (IMG:style_emoticons/kolobok_light/smile.gif) Тот же анкани либо не работает вообще, либо работает через раз. -2 от флет-футед в цифрах эпиков вообще теряется в принципе из-за незначительности.

Можно (и имхо даже нужно) вообще сделать ход конем и придумать свои чеки (как вариант - д20 против диапазона крита, сделав шанс зависимым только от оружия, не забывая, что там еще чек на форту, и именно он является ключевым). Колхоз дело добровольное - хочешь вступай, не хочешь расстреляем. Либо человек несмотря ни на что изголяется и придумывает альтернативу девастату, либо как обычно на шарде будет 2 класса - сорки и все остальные. По мне мотивация довольно значительная.


Т.е. основная идея - совсем отключить девастат и дать какую-то свою плюшку, по мощности ее заменяющую.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Feb 20 2008, 21:16
Сообщение #2892


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

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



Продолжая тему извращений...
Neverwinter Script
// The caller will perform a Melee Touch Attack on oTarget
// This is not an action, and it assumes the caller is already within range of
// oTarget
// * Returns 0 on a miss, 1 on a hit and 2 on a critical hit
int TouchAttackMelee(object oTarget, int bDisplayFeedback=TRUE)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Mar 10 2008, 13:02
Сообщение #2893


Level 11
***

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



Я снова что-то намутил не того...
Neverwinter Script
void main( )
{
    object oSelf = OBJECT_SELF; // Наш НПС
    object wp1 = GetObjectByTag( "p3_1" ); // ТОЧКА У КОСТРА
    object wp2 = GetObjectByTag( "p3_0" ); // ТОЧКА У КОСТРА(СМОТРИТ)
    object wp3 = GetObjectByTag( "p3_2" ); // ТОЧКА В ХРАМЕ
    object wp_center = GetObjectByTag( "pos_center" ); // ТОЧКА, куда смотрят все послушники
    object wp4 = GetObjectByTag( "p3_3" ); // ТОЧКА У ВТОРОГО КОСТРА
    object wp_center_cost = GetObjectByTag( "p3_4" ); // ТОЧКА У ВТОРОГО КОСТРА(СМОТРИТ)
    object wp5 = GetObjectByTag( "p3_5" ); // ИДЁТ СПАТЬ

    int i = GetTimeHour();
    float fTime = 17.0;
    if ( IsInConversation( OBJECT_SELF ))
    { return; }    // Проверим, не болтает ли с игроком...
    if ( GetIsInCombat( OBJECT_SELF )) // Не дерется ли
    {   ExecuteScript( "nw_c2_default1", OBJECT_SELF ); return; }

    if ( i > 0 && i < 10 )
    {   // СПИТ
        if( GetDistanceBetween( oSelf, wp5 ) > 0.2 )
        AssignCommand( oSelf, ActionForceMoveToObject( wp5, FALSE, 1.0, 25.0 ) );
        ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 36000.0);
    }
    else if(i >= 10 && i < 16)
    {
        // CИДИТ У КОСТРА
        if( GetDistanceBetween( oSelf, wp1 ) > 0.2 )
        ActionDoCommand(AssignCommand( oSelf, ActionForceMoveToObject( wp1, FALSE, 1.0, 25.0 )));
        ActionDoCommand(AssignCommand( oSelf, SetFacingPoint(GetPosition(wp2))));
        ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 21600.0);
        ActionWait(5.0);
        ANIMATION(oSelf);
    }
    else if ( i >= 16 && i < 20 )
    {   // МОЛИТСЯ
        if( GetDistanceBetween( oSelf, wp3 ) > 0.2 )
        AssignCommand( oSelf, ActionForceMoveToObject( wp3, FALSE, 1.0, 25.0 ));
        ActionDoCommand(AssignCommand(oSelf, SetFacingPoint(GetPosition(wp_center))));
        ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 1.0, 14400.0);
    }
    else if ( i > 20 && i < 23 )
    {   // СНОВА У КОСТРА(ДРУГОГО)
        if( GetDistanceBetween( oSelf, wp4 ) > 0.2 )
        AssignCommand( oSelf, ActionForceMoveToObject( wp4, FALSE, 1.0, 25.0 ) );
        ActionDoCommand(AssignCommand( oSelf, SetFacingPoint(GetPosition(wp_center_cost))));
        ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 14400.0);
        ActionWait(5.0);
        ANIMATION(oSelf);
    }
}

Проблема в том, что НПС не идет на точки и даже не думает этого делать. Только после разговора он(в зависимости от времени) поворачивается к точке(положенной по времени).

П.С. И еще, как заставить его не реагировать на "тыки" по нему мышкой.
П.П.С. Совсем забыл, я пытаюсь наложить эффект на невидимый(и видимый) предмет, но его не видно, только звук при проигровании... =(
Заранее спасибо.

Сообщение отредактировал Белатрис - Mar 10 2008, 13:14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Mar 11 2008, 06:37
Сообщение #2894


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

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



Намутил как всегда... (IMG:style_emoticons/kolobok_light/biggrin.gif)
Ты хоть пиши, где этот скрипт применяешь! Опять наверное на ХБ? Пора бы уже знать, что цикл равен 6 секундам, зачем в анимацию совать такое время? Оно же налагается друг на дружку! К тому же не понятна функция ANIMATION(oSelf); Если не можешь время просчитать, то можно перед блоком анимаций чистить акции... + неправильно проставлена проверка расстояния и подход к точке... + поворот сбивает ходьбу. Нужно акцию записать через DelayCommand, а лучше записать так:
Neverwinter Script
if( GetDistanceBetween( oSelf, wp4 ) > 0.2 )
      {
        AssignCommand( oSelf, ActionForceMoveToObject( wp4, FALSE, 0.00, 25.0 ) );
        return;
      }

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Mar 11 2008, 07:20
Сообщение #2895


Level 11
***

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



О, пасиб. Я, если честно, именно от тебя и ждал ответа (IMG:style_emoticons/kolobok_light/biggrin.gif)

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


Цитата
К тому же не понятна функция ANIMATION(oSelf);

Я просто не вставил сюда функцию ANIMATION. Но если надо:

Код
void ANIMATION( object oD, float Speed=0.8, float Time=0.0 )
{
int A1;
switch ( Random( 5 )+1 )
  {
   case 1: A1=ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD; break;
   case 2: A1=ANIMATION_FIREFORGET_READ; break;
   case 4: A1=ANIMATION_FIREFORGET_DRINK; break;
   case 5: A1=ANIMATION_LOOPING_PAUSE_TIRED; Time=46.0; break;
  }
  if( Time==0.0 )
  AssignCommand( oD, ActionPlayAnimation( A1, Speed ) );
  else
  AssignCommand( oD, ActionPlayAnimation( A1, Speed, Time ) );
}


Сообщение отредактировал Белатрис - Mar 11 2008, 07:26
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Mar 13 2008, 08:45
Сообщение #2896


Level 11
***

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



Как заставить НПС не реагировать на "тыки" по нему мышкой в то время, когда он проигрывает анимацию(или в определенное время)? Это на onUsed?

Сообщение отредактировал Белатрис - Mar 13 2008, 08:45
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 13 2008, 11:14
Сообщение #2897


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

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



OnConversation
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Mar 27 2008, 14:26
Сообщение #2898


Level 11
***

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



Решил создать структуру, общую для всех НПС, но вот только чего-то не выходит так, как нужно...
Neverwinter Script
struct C_NPC
{
        int Circle;     //       * круг магии
        int Weapon;     //       * владени двуручным
        string SpPoint;    //       * точка привязки
};

Neverwinter Script
#include "0c_npc_class"

void main()
{
    C_NPC npc1;
    npc1.Circle = 2;
    npc1.Weapon = 1;
    npc1.SpPoint = "POINT";
}

Ругается на C_NPC npc1;, говорит: НЕТ ТОЧКИ С ЗАПЯТОЙ ПОСЛЕ ВЫРАЖЕНИЯ
(IMG:style_emoticons/kolobok_light/snoozer_17.gif)

П.С. А почему классы создавать нельзя?

Сообщение отредактировал Белатрис - Mar 27 2008, 14:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 27 2008, 16:18
Сообщение #2899


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

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



почитай внимательнее в лексиконе пример о том, как задается структура.
Цитата(Белатрис @ Mar 27 2008, 14:26) *
П.С. А почему классы создавать нельзя?

потому (вопрос, как ты сам понимаешь, не по адресу). По большей части они и не нужны в НВН скриптинге.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 27 2008, 16:48
Сообщение #2900


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

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



Массивы, хэшсеты + массив глобальных переменных были бы куда полезней. Классы всё равно бы больше лагали, чем приносили пользу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 114 115 116 117 118 > » 
Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th April 2025 - 01:09