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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
4 страниц V   1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Всякого рода фишки, (касающиеся скриптов) постить сюда
Tarre Talliorne
сообщение Aug 11 2004, 19:36
Сообщение #1


Level 8
***

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



Тема создана главнм образом для новичков, но и более опытным товарищая почитать тоже не помешает. Итак. Минимум флейма. Максимум инфы. Начну я (кто бы сомневался :-) )

1. LevelUpHenchman(). С помощью этой функции можно... повысить уровень ПС (применив ее к ПС, конечно) без распределения этим самым ПС всех плюшек. Действие фишки можно наблюдать в первой главе ХотУ. Когда в начальном диалоге (при заходе чаром малых уровней) выозникает выбор: повысить уровень самому или автомастически. Этот самый автоматический вариант и реализован с помощью LevelUpHenchman.

2. Тонкость конструкции if (condition) { . . . }.
Neverwinter Script Source
if (1) { return TRUE; }

вернет TRUE. Никогда не задумывались почему? Дело в том, что при "заявлении" условие автоматически приравнивается(==) к TRUE. TRUE в свою очередь численно равно 1 (FALSE = 0, в этом в можете убедиться, открыв nwscript.nss). Поэтому наше форма и возвращает 1. Посему
Neverwinter Script Source
if (GetLocalInt(oPC, "localInt")==1)

можно с легкостью заменить на
Neverwinter Script Source
if (GetLocalInt(oPC, "localInt"))


Не использовать в данном виде! См. пост _kaa_ и мой ответ.

3. Известно почти всем, но все же.
Neverwinter Script Source
int n1 = 1;
int n2 = 2;
int n3 = 3;
int n4 = 4;

то же, что и
Neverwinter Script Source
int n1 = 1, n2 = 2, n3 = 3, n4 = 4;

Аналогично и с float, string, effect и другими типами данных.

4. Упрощенная модель if {} else {}
Допустим,
Neverwinter Script Source
if (nA > 5)
{
nB = TRUE;
}
else
{
nB = FALSE;
}

то же, что

Neverwinter Script Source
nB = (nA > 5) ? TRUE : FALSE;


т.е. все, что до '?' - условие, все, что после вопроса до двоеточия - присвоение в случае истинности утвержения в скобках, после двоеточия - в случае ложности.

Продолжение следует. Если у вас есть то, чем можно поделиться и что заслуживает всеобщего внимания , прошу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Aug 11 2004, 21:45
Сообщение #2


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

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



Цитата(Tarre Talliorne @ Aug 11 2004, 19:36)
2. Тонкость конструкции if (condition) { . . . }.
Neverwinter Script Source
if (1) { return TRUE; }

вернет TRUE. Никогда не задумывались почему? Дело в том,  что при "заявлении" условие автоматически приравнивается(==) к TRUE. TRUE в свою очередь численно равно 1 (FALSE = 0, в этом в можете убедиться, открыв nwscript.nss). Поэтому наше форма и возвращает 1. Посему
Neverwinter Script Source
if (GetLocalInt(oPC, "localInt")==1)

можно с легкостью заменить на
Neverwinter Script Source
if (GetLocalInt(oPC, "localInt"))


Ты проверь что будет для if (2) {} и вообще любого числа кроме 0 (даже отрицательного). Вернёт TRUE.
Как ты и сказал, если выражение возвращает 0 - то это FALSE, иначе - TRUE.
Чтобы понять (тем кому еще не понятно) - проще рассмотреть логическую конструкцию вне скобок.
Скажем:
Neverwinter Script Source
int i = k == 5;
вернет 1 (TRUE), если k равен 5 и 0(FALSE) в любом другом случае. Т.е. сначала вычислится результат логической операции ==, и этот результат присвоится переменной i.

Так что условие
Neverwinter Script Source
if (GetLocalInt(oPC, "localInt"))
используется для проверки на ненулевое значение локальной переменной.

Сообщение отредактировал _kaa_ - Aug 11 2004, 21:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Aug 11 2004, 22:09
Сообщение #3


Level 8
***

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



Destinguo, _kaa_, destinguo! Сеньк :-)

5.Давным-давно был вопрос, как убирать эффекты... Вернее, как убрать одни, скажем, визуальные, и оставить другие визуальные. Прием довольно прост и активно юзается биоповарами.
В нижеприведенной функции эффекты сортируются не по типу, а по создателю. А создателем можно сделать локальный объект. Так они и снимаются. Итак:

Neverwinter Script Source
// В ОТЛИЧАЕТСЯ ОТ СКРИИПТА В БАЗЕ ФИЛЬТРУЕТ ЭКЗЕМПЛЯР ЭФФЕКТА НЕ ПО
// ЕГО ТИПУ, А ПО СОЗДАТЕЛЮ ЭФФЕКТА (РЕКОМЕНДУЮ ИСПОЛЬЗОВАТЬ SetLocalObject)
//   [SCRIPTED BY TARRE TALLIORNE from RAGE! ]
void ActionRemoveEffects2(object oTarget, object oCreater);

void ActionRemoveEffects2(object oTarget, object oCreater)
{
    effect eEffect = GetFirstEffect(oTarget);
    while (GetIsEffectValid(eEffect))
    {
        if (GetEffectCreator(eEffect)==oCreater)
        {
            RemoveEffect(oTarget, eEffect);
        }
        eEffect = GetNextEffect(oTarget);
    }
}


Айван: МОЛОДЕЦ! (IMG:style_emoticons/kolobok_light/good.gif) Давай дальше! (IMG:style_emoticons/kolobok_light/yes3.gif)

Сообщение отредактировал Aiwan - Aug 12 2004, 04:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Nov 4 2004, 09:20
Сообщение #4


Level 3
*

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



Вот ещё пара идентичных функций для работы с эффектами, ищет первый эффект по одному или комбинации признаков:
Neverwinter Script Source
//Проверяем наличие эффекта на объекте. Если какой-либо из
//признаков эффекта нас не интересует (тип, id спелла которым наложен
//эффект, или объект-"автор" эффекта), передаём функции значение то
//же, что и по-умолчанию
int GetHasSpecificEffect(object oTarget, int nEffectType_ID=EFFECT_TYPE_INVALIDEFFECT, int nSpell_ID=-1, object oCaster = OBJECT_INVALID);

//То же что и предыдущая, но возвращает найденый эффект
effect GetSpecificEffect(object oTarget, int nEffectType_ID=EFFECT_TYPE_INVALIDEFFECT, int nSpell_ID=-1, object oCaster = OBJECT_INVALID);

int GetHasSpecificEffect(object oTarget, int nEffectType_ID=EFFECT_TYPE_INVALIDEFFECT, int nSpell_ID=-1, object oCaster = OBJECT_INVALID)
{
   effect eEffect = GetFirstEffect(oTarget);
   while (GetIsEffectValid(eEffect))
   {
       if((nEffectType_ID== EFFECT_TYPE_INVALIDEFFECT||
            GetEffectType(eEffect)==nEffectType_ID)&&
          (nSpell_ID     == -1                       ||
            GetEffectSpellId(eEffect)==nSpell_ID)&&
          (oCaster       == OBJECT_INVALID           ||
            GetEffectCreator(eEffect)==oCaster))
       {   return 1; }
       eEffect = GetNextEffect(oTarget);
   }
   return 0;
}

effect GetSpecificEffect(object oTarget, int nEffectType_ID=EFFECT_TYPE_INVALIDEFFECT, int nSpell_ID=-1, object oCaster = OBJECT_INVALID)
{
   effect eEffect = GetFirstEffect(oTarget);
   while (GetIsEffectValid(eEffect))
   {
       if((nEffectType_ID== EFFECT_TYPE_INVALIDEFFECT||
            GetEffectType(eEffect)==nEffectType_ID)&&
          (nSpell_ID     == -1                       ||
            GetEffectSpellId(eEffect)==nSpell_ID)&&
          (oCaster       == OBJECT_INVALID           ||
            GetEffectCreator(eEffect)==oCaster))
       {   return eEffect; }
       eEffect = GetNextEffect(oTarget);
   }
   return eEffect;
}


П.С. В редакторе, без видимого ограничения на длину строк, скрипт выглядел много лутше.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lemegeton
сообщение Nov 22 2004, 20:14
Сообщение #5


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

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Контент



Простейшая вещь, но может, кому пригодится?

Когда в модуле надо обрабатывать много кастомных свойств объектов, скрипт OnActivateItem разрастается до беспредела. Во избежание этого, в свойстве OnActivateItem пишется (примерно) следующее:

CODE
void main()
{
    object oItem = GetItemActivated();
    string tgItem = GetTag(oItem);
    object oTarget = GetItemActivatedTarget();
    ExecuteScript(tgItem, oTarget);
}


что позволяет вызвать скрипт с именем ТЭГА ПРЕДМЕТА.

Например, палка с тэгом dragon_stick вызовет (попытается вызвать) скрипт dragon_stick. Все просто. OBJECT_SELF будет указывать на того, на кого направлено свойство палки.

З.Ы. Мечтательно Пару проверочек бы влючить...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Dec 31 2004, 17:36
Сообщение #6


Level 8
***

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



По-моему это лишнее: новые скрипты жрут размер модуля, и, кроме того, в одном скрипте все более компактно, что ли. В официальной кампании есть скрипты и по 5 тысяч строк...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jan 2 2005, 00:02
Сообщение #7


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



Tarre Talliorne
Если есть ХОРОШАЯ система именования скриптовых файлов, то этот способ весьма удобен, особенно, если над модулем трудится несколько скриптеров. ОБЩИЕ скрипты в таком случае получаются ВСЕ, которые стоят в свойствах мода.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tarre Talliorne
сообщение Jan 15 2005, 20:34
Сообщение #8


Level 8
***

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



6.Вот как-то вот так... Помнится, с годик назад структуру switch {...} мне подробно объяснил Лекс (если я не ошибаюсь). Так вот. Тогда дело ограничилось только
Neverwinter Script Source
switch (i) {
case n1: action(); break;
case n2: second_action(); break;
}

В то время как немногим (из моих НВН-знакомых) известна одна тонкость. Дело в том, что модель свич является упрощенной моделью иф-элс. И где же здесь элс -- задатите вы резонный вопрос.
а вот оно:
Neverwinter Script Source
switch (i) {
case n1: action1(); break;
case n2: action2(); break;
default: action3();
}


Именно дефолт берет на себя инициативу в том, случае, если i не удовлетворяет ни n1, ни n2. Стоит отметить, что break; в конце действия дефолта факультативен.

Сообщение отредактировал Tarre Talliorne - Jan 15 2005, 20:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Jan 25 2005, 21:37
Сообщение #9


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

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



QUOTE (Lemegeton @ Nov 22 2004, 20:14)
что позволяет вызвать скрипт с именем ТЭГА ПРЕДМЕТА.

Система тэговых скриптов включена в стандартные скрипты НВН (смотрите стандартные скрипты x2_mod_def_load, x2_mod_def_unaqu, x2_mod_def_unequ, x2_mod_def_act, x2_mod_def_aqu, x2_mod_def_equ, а так же скрипт-пример x2_it_example.nss)

Касательно моего вклада в копилку идей: поделюсь с вами тем, как на Сиале реализован банк вещей.
Сразу скажу, что описанная ситуация работает только с сервер-ваултными персонажами.
Идея основана на баге одно функции:
void DoPlaceableObjectAction(object oPlaceable, int nPlaceableAction)
Дело в том, что эта функция, не смотря на ее название, работает не только с плэйсэйблами, но и с контейнерами (улавливаете мою мысль? :) )
сделав вызов с действием PLACEABLE_ACTION_USE вы можете для игрока открыть любой контейнер.
А теперь наступают трудности. Надо сделать так, чтобы контейнер не был доступен пользователю и чтобы он и предметы из него не воровались.
Заманчиво сделать контейнер-шкурку (это решает проблему доступа и воровства), но, к сожалению, все шкурки на игроке пропадают при заходе на шард.
Поэтому пришлось сделать контэйнер размером 0Х0 (т.е. по нему нельзя щелкнуть мышкой, чтобы открыть) и делать в скрипте использования контейнера вещи, помещенные в контейнер плотовыми (как и сам контейнер),чтобы их нельзя было своровать.
Способ конечно извратный, но у него есть огромное преимущество: он не использует БД и поэтому не нагружает сервер.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 25 2005, 21:44
Сообщение #10


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

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



так...не понял про
- 0x0. Это как? (не в смысле что это. это я знаю.)
- "сервер-ваултными" Те в сингле нельзя?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Jan 25 2005, 21:53
Сообщение #11


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

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



0Х0 - это размер предмета - пришлось создать в файле baseitems.2da новый предмет-контейнер
В сингле использовать эту фишку я особого смысла не вижу, так в нем спокойно можно пользоваться стандартной базой данных

QUOTE
Я знаю, что 0х0 это размеры вещи. Просто не знал, что движок такие размеры позволяет. Эту вещь нельзя выделить, можно только скриптово обратиться, так?


Это, конечно, баг движка, но именно он позволяет сделать предмет, который нельзя выделить и использовать (только надо предупредить игрока, чтобы он очистил от предметов 4 ячейки в левом нижнем углу 1 страницы инвентаря, т.к. хотя размер нулевой, но 4 ячейки все таки используются и исли на этом месте лежат какие-то предметы, то доступ к ним может пропасть). Смысл в том, что технически игрок носит свой сейф с собой (чем достигается высокая надежность хранения вещей), но доступ к сейфу имеет только через специальное устройство (в виде плэйсэйбла в здании банка), к которому привязаны скрипты взаимодействия с контейнером. Если на шарде есть выпадение вещей после смерти (но обычно делается так, что плотовые вещи не выпадают), то наличие сейфа, в котором ироки могут хранить ценные неиспользуемые предметы, является очень ценной функцией для них.

Для сингла я бы рекомендовал использовать шкурку-контейнер, так как , по-моему , при восстановлении игры она не пропадает.

Сообщение отредактировал Тобур - Jan 26 2005, 00:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 25 2005, 22:23
Сообщение #12


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

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



Я знаю, что 0х0 это размеры вещи. Просто не знал, что движок такие размеры позволяет. Эту вещь нельзя выделить, можно только скриптово обратиться, так?
Я не хочу БД юзать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение Feb 20 2005, 13:18
Сообщение #13


Пингвиноид
Иконки Групп

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



По просьбе DBColl'a выкладываю свои умозаключения. Надеюсь, темой не обшибся...

К вопросу о букве "я" в тулсете

Итак, есть проблема - при вводе буквы "я" в скриптах компилятор потом напрочь
отказывается работать. Логически подумаем. Для начала несколько вводных:
1) Маленькая буква "я" имеет ASCII-код 255 (знающие уже догадались, остальным разжевываю)
2) Старые реализации сишной stdlib содержат функцию char fgetc(FILE *stream);
3) Есть глобальная переменная errno сишной библиотеки stdlib

Проследим за компилятором. Считывая функцией fgetc очередной символ, он ожидает следующий символ или EOF при конце файла или ошибке. EOF принимает значение -1. Теперь возьмем букву "я", которая при выставленных всех битах имеет значение при signed char равным именно -1 (unsigned char(255) = signed char(-1)). То есть,
получая из потока букву "я" компилятор считает, что достигнут конец файла или
произошла какая-то ошибка. И ничтоже сумнявшися вываливается с сообщением об ошибке. При этом глобальная переменная errno остается равной 0 (нет ошибок, нет EOF). При написании компилятора разработчики проверяют только результат fgetc, не проверяя при этом errno. Отсюда и спотыкания компилятора. В новом тулсете и компиляторе такой проблемы уже не будет, потому что в современных реализациях stdlib fgetc возвращает уже тип int, а это четыре байта, а не один. Поэтому буква "я" будет распознаваться нормально.

С причиной реакции компилятора на букву "я" разобрались. Как исправить? Дизасемблировать компилятор, вставить проверку errno, поменять заголовок исполняемого PE-файла. Заголовок нужно будет поменять, потому что проверка на errno займет, как минимум, дополнительно пару десятков байт. Поэтому в PE-заголовке нужно будет поменять размер сегмента кода. К сожалению я не знаю формат PE-заголовка (хоть он и берет начало от pure COFF формата, с которого
начинался и линуксовый ELF-формат). Также я не знаю, как из ассемблера вызвать виндовый stdlib (достучаться к переменной errno в частности).
Подытожим, что нужно для решения проблемы:
1) Дизассемблер (решаемо - ищется в Интернете)
2) Спецификация исполняемого PE-файла (решаемо - ищется в Интернете)
3) Вызов stdlib функций из ассемблера (с трудом, но решаемо - в Интернете или методом проб и ошибок)
4) Желание (не решаемо - мне по жизни лень. Профессия обязывает)

Осталось найти на 4-й пункт пионера и проблема буквы "я" будет решена.

P.S. Мечтательно так: вот был бы тулсет OpenSource...

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 20 2005, 20:04
Сообщение #14


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

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



почти все умозаключения далеки от реальности(кроме, пожалуй, дизассемблера) :drag:
но как катализатор пригодились... -> http://dumbo.nm.ru

ps. на звание пионера не претендую, бо был я там - не понравилось...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Feb 20 2005, 23:37
Сообщение #15


Level 3
*

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



Есть путь полегче. "я" можно назвать, например, объект, и вставлять GetName(...). Так было сделано на Сиале, ещё до моего прихода, и это работает. Если же мучить экзешник, это прийдётся делать после каждого патча...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 20 2005, 23:55
Сообщение #16


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

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



этот "путь полегче" относится к, можно сказать, азам. и он не зависит от версии. да. но это же жутко неудобно! хотя, понятное дело, можно привыкнуть и пальцами ног писать скрипты... ;) насчет обновлений - не проблема: если это кому-нибудь будет нужно, забацаю универсальный патчер.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Shad
сообщение Feb 21 2005, 01:29
Сообщение #17


Level 3
*

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



Хм. Я с этим столкнулся недавно. Вообще как-то русский в скриптах не применял, при любой возможности использую язык оригинала.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение Feb 21 2005, 10:56
Сообщение #18


Пингвиноид
Иконки Групп

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



QUOTE (dumbo @ Feb 20 2005, 20:04)
почти все умозаключения далеки от реальности(кроме, пожалуй, дизассемблера)
но как катализатор пригодились... -> http://dumbo.nm.ru


На то они и умозаключения, чтобы быть ошибочными. Если не влом отписать - кратко, каковы реалии?


QUOTE (dumbo @ Feb 20 2005, 20:04)
ps. на звание пионера не претендую, бо был я там - не понравилось...


;) Без обид.
Пионеры есть и сейчас. Но именно советским - и я был. В комсомол буквально на год не успел... :this: :D

Сообщение отредактировал slavaz - Feb 21 2005, 10:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 21 2005, 12:29
Сообщение #19


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (dumbo @ Feb 20 2005, 22:55)
насчет обновлений - не проблема: если это кому-нибудь будет нужно, забацаю универсальный патчер.

НУЖНО!!! :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 21 2005, 13:27
Сообщение #20


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

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



slavaz
если вкратце, то примерно так - вычитывается весь файл в буфер, потом идет разбор:
CODE

int i = 0, FLAG = 0;
char ch;
while (FLAG!=-1) {
 ch = buf[i++];
 if i > filesize
   FLAG = -1;
 else
   FLAG = ch;
 ...
}

соотв-но, когда встречается "я" (0xff), FLAG становится -1 за счет signed типов (movsx FLAG, ch) - так что это скорее косяк биоповаров.
ну а невозможность ввода русских букавок - это просто за счет проверки символов isgraph - вторая половина _ctype, как известно, пуста... так что либо заполнять _ctype значениями, скажем, _IS_PUN, либо заменить тельце isgraph на проверку char > 0x20.

DBColl
ок, как выкрою, так накатаю. только вот мне бы помогли старые версии nwtoolset.exe, clcompile(чем больше разных - тем лучше) - если есть у кого, было бы неплохо... ;)

Сообщение отредактировал dumbo - Feb 21 2005, 13:28
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение Feb 21 2005, 14:06
Сообщение #21


Пингвиноид
Иконки Групп

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



2dumbo: МАМА родная моя! :shout: Действительно примерно такой алгоритм? Моего уважения к биоваревцам как кодерам убавилось, ей Богу...

CODE
int i; char *tmp_buf=buf; // прирост указателя быстрее вычисления индекса в каждой итерации цикла
int FLAG=0; // хрен его знает, зачем...
for (i=0; i<filesize;i++){
ch = *(tmp_buf++);
FLAG = (unsigned int) ch; // это если уж очень надо FLAG
...
bla-bla
...
}


Я, блин, как всегда, занадто глубоко укопался... не учел человеческий фактор... :swoon:

По поводу ранних версий тулсета - думаю, DBColl поможет... :yes:

В любом случае спасибо, вся общественность будет тебе благодарна.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 21 2005, 17:03
Сообщение #22


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



dumbo
Скажи, а возможно еще все-таки сделать, чтобы в редакторе скриптов было возможно печатать по-русски? Сможешь ли ты такое провернуть?

У меня есть тулсет СоУ 1.32. Дать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 21 2005, 23:42
Сообщение #23


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

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



DBColl
ты скачай и посмотри... я это сразу сделал... :drag:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 22 2005, 00:30
Сообщение #24


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

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



dumbo э, что то я не понял! А мне ссылку? :rolleyes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nokoll
сообщение Feb 22 2005, 00:45
Сообщение #25


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

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



Вот нахимичел в тулсете, и получилось я попробовал поставить вместо DestroyObject, DestroyEffect!
И усё получилось эффект удаляется.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 22 2005, 11:24
Сообщение #26


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Nokoll @ Feb 21 2005, 23:45)
Вот нахимичел в тулсете, и получилось я попробовал поставить вместо DestroyObject, DestroyEffect!

Это что за новая функция такая??? :)
QUOTE (dumbo @ Feb 21 2005, 22:42)
DBColl ты скачай и посмотри... я это сразу сделал...

Ого! Я уже скачал, но еще не смотрел его просто... КУЛ! РЕСПЕКТИЩЕ! 3 года существования тулсета без русского языка и ответов новичкам, что НЕВОЗМОЖНО набирать русский текст в тулсете - копируйте через буфер, УШЛО В ПРОШЛОЕ! УРА, Товарищи! :good: :BRAVO: :BRAVO:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Feb 22 2005, 22:11
Сообщение #27


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



[B]Прошу прошенья за флуд.
Это что, Думбо дизассемблировал nwtoolset.exe, исправил его и теперь можно русскиими буквами писать и "я" исползывать. Обалдеть! :D :good: :D
//А вот я купил Си++ для чайников, сейчас вот изучаю, через сколько времени я также смогу? :lol:

А чего биовары, этого сами не сделали?! У них ведь вообще все исходники есть?

Кстати, можно мне тоже попрыбывать принести пользу? :)
Может быть это и так все знают. Скрипты можно легко и не принужденно (почти) писать и компилировать без тулсета. (Тулсет большой, на слабых машинах долго грузится, в общем иногда этот может быть полезно).
Для этого:
1. Качаем Адитор - текстовый редактор такой и устанавливаем его. (отсюда, например, но не уверен что у меня последняя версия)

2. Прописываем в autoxec.bat путь к папке utils в каталоге nwn.
Что-то вроде
SET PATH=с:\games\nwn\utils;%PATH%
(Правильно написал? Вроде, усе работает? Кстати как в ХР/2К с autoxec'ом, все также? А то у меня 98-е.) Естественно, после этого нужно перезагрузить компьютер, чтобы настройки вступили в силу.

3. Запускаем адитор и идем в настройки: Edit -> Preferences
На вкладке, File types -> Еxecute в поле
File extension пишем: nss
В поле Command line: clcompile &f
Cтавим галочку Capture Output и нажимаем Add

4. На вкладке Interface -> Other убираем галочку Start in last visited directory. В противном случае скомпилированный файл будет появлятся в папке, где вы прошлый раз сохраняли файл (бага наверное).

5. По желанию и вкусу, настроить подсветку nss (файл подсветки нужно кинуть в папку с адитором) .
Усе!

Теперь можно открывать .nss-файлы aditor-ом и компилировать нажатием кнопочки Execute. Соббщения компилятуры пудут перехвачены и появятся в открывшемся снизу окошке самого aditor'a.

Может похожую штуку и другие редакторы умеют делать. Но я знаю только про этот. Надеюсь это будет хотя-бы кому-нибудь полезно.
Я вообще windows commander'ом пользуюсь и у меня nss в адиторе по F4 открываются. :)
Добавлено в [mergetime]1109099859[/mergetime]
Соббщения компилятуры пудут перехвачены
мдя - это я видимо, обкурился, малость... :drag:

Сообщение отредактировал Friedrich - Feb 22 2005, 22:15
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Feb 23 2005, 09:48
Сообщение #28


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

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



пользуясь случаем, поздравляю всех с праздником! :hunter:

как и обещал, забацал универсальный патчер

Сообщение отредактировал dumbo - Feb 23 2005, 09:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Feb 23 2005, 14:17
Сообщение #29


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



dumbo
РЕСПЕКТИЩЕ ТЕБЕ ОГРОМНЫЙ. Ты не смотри, что мало кто отреагировал. Просто еще никто нифига не понял вокруг, ЧТО произошло ;). Так что действительно готовься ловить респекты ;). :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Feb 23 2005, 14:25
Сообщение #30


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

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



Хм, вот дела :) Де ж ты раньше был? РЕСПЕКТ. Однозначно. :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Feb 23 2005, 14:47
Сообщение #31


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



ОФИГЕННО!!! :) ГДЕ ЖЕ ТЫ БЫЛ 2 ГОДА НАЗАД? РЕСПЕКТ!!! :good: :good: :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Feb 24 2005, 03:36
Сообщение #32



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (dumbo @ Feb 23 2005, 09:48)
как и обещал, забацал универсальный патчер. устраняет попытки дискриминации по отношению к русским скриптерам ;) 

dumbo, блин. Да за это не только памятник надо ставить! Молодец! :good: Спасибо за сделанное. :yes: И огроменный РЕСПЕКТ!!!
Отдельное спасибо slavaz`у за то, что натолкнул МОЗГ на эту мысль.
QUOTE (DBColl @ Feb 23 2005, 14:17)
dumbo
РЕСПЕКТИЩЕ ТЕБЕ ОГРОМНЫЙ. Ты не смотри, что мало кто отреагировал. Просто еще никто нифига не понял вокруг, ЧТО произошло . Так что действительно готовься ловить респекты

Действительно, народ революцию пропустил. И я вместе с ними. Я рад, что нахожусь на форуме с такими людьми.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lemegeton
сообщение Feb 24 2005, 10:32
Сообщение #33


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

Класс: Монах
Характер: Lawful Good
Раса: Человек
NWN: Контент



dumbo: Вот это да! Это и есть ВКЛАД в развитие! (Респект +1) :D

QUOTE
Просто еще никто нифига не понял вокруг, ЧТО произошло . Так что действительно готовься ловить респекты.

Да уж... Чертыре поста да еще и в "фишках про скрипты"... Народ же всю революцию пропустил! Срочно ссылку во все места!

З.Ы. Надеюсь, биоповара не сильно обидятся... Вообще-то дизассемблировать программные продукты не OpenSource (или любой GNU) низя (а OpenSource не нужно)...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Тобур
сообщение Feb 26 2005, 18:05
Сообщение #34


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

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



Круто! Правда у меня сомнения по поводу возможных багов и использования модов в следующих версиях тулсета, но сделана действительно нужная вещь
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
MasterMage
сообщение Mar 7 2005, 18:51
Сообщение #35


Level 8
***

Класс: Маг
Характер: Lawful Good
Раса: Полуэльф



DBColl ХМ, а у меня 1.32... На вашем 1.64 пойдут мои модули?
dumbo Молодец!! Скачал я патч... Попробую... Это ж действительно переворот! Никаких тебе больше ненужных точек с тегами "YA" и проч...!!! :BRAVO: :BRAVO: :yahoo:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Клемент Астилон
сообщение Mar 11 2005, 22:31
Сообщение #36


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

Класс: Клерик
Характер: Chaotic Good
Раса: Полуэльф
NWN: DM



Присоединяюсь. Респект :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
MasterMage
сообщение Mar 11 2005, 22:38
Сообщение #37


Level 8
***

Класс: Маг
Характер: Lawful Good
Раса: Полуэльф



А вы знаете, что можно запустить скрипт, дав его тег предмету, и когда он окажется в вашем рюкзаке, скрипт сработает. Следовательно не надо писать OnAcquiredItem.... Просто тег итема и скрипта одинаковые... :)


Lemegeton:
"Да. Это делают дефолтные x2_mod_ - скрипты. Только они это скрипт будут запускать не только OnAcquiredItem но и OnUnAcquiredItem, onEqup, onUnEquip, onActivate..." © by Friedrich

Более подробно о Tag-based скриптах можно узнать в Lexicon

Lexicon > Lyceum > Tutorial > Beginning Scripting > Grimlar - Introduction To Tag Based Scripting

"вообще, tag-based скрипты - правильная штука(все поведение предмета описывается в одном скрипте), особенно если сравнивать это с кучей "if(GetTag(oItem)){...}" обильно развешанных во всех модульных скриптах... " (с) by dumbo

Все остальные посты по обсуждению этой темы удалены.

Сообщение отредактировал Lemegeton - Mar 14 2005, 18:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Sep 12 2005, 03:54
Сообщение #38


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

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



древняя хреновинка. позволяет делать автопатчеры для хаков (хаков/модулей и т.п.)
нет времени на доработку =(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Sep 17 2005, 14:33
Сообщение #39


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

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



обновлено..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 17 2005, 20:11
Сообщение #40


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

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



Очень аккуратно пользуйтесь функцией
Neverwinter Script Source
void SetCutsceneMode(
    object oCreature,
    int nInCutscene = TRUE
);

На днях лишний раз SetCutsceneMode FALSE привело к тому, что РС стал в режиме бога и не уязвим для повреждений. Промучался пол дня, пока нашел бяку...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NedWarN
сообщение Sep 20 2005, 02:31
Сообщение #41


Level 5
**

Класс: Маг
Характер: Lawful Good
Раса: Тварь



Несложный но интересный способ установления камеры, без констант.
Задаём переменную.
[NSS]float x=0.0f; \\ Движение по оси Х
float y=0.0f; \\ Зум, по оси У
float z=0.0f;\\ и Конечноже ось Z [\NSS]
-----------------------------------------------
Осталось только применить Переменную, и камера установлена.
[NSS] x=13.9f;
y=14.9f;
z=15.9f;[\NSS]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 7 2006, 19:00
Сообщение #42


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

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



Известно, что патчить сейвы низя... НО. Если компильнуть все скрипты модуля и впихнуть nss ncs в хак, то модуль будет работать на скриптах их хаков. Теперь достаточно исправить патем 5-10 скриптов, кинуть их исходники и компельнутые файлы в хак например аддонюхак и все. СЕЙВ БУДЕТ БРАТЬ УЖЕ ИСПРАВЛЕННЫЕ СКРИПТ. Проверял тока что. Это конечно по большей степени качается сингловиков... Но все же. ВОЗМОЖНО ЧТО ТО МОЖНО И С ЛОКАЦИЯМИ ТАК И С ДИАЛОГАМИ... Я пока не проверял. Кому нефик делать, проверьте и скажите. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 7 2006, 19:17
Сообщение #43


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

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



можно. я те еще в начале года об этом говорил:
http://www.city-of-masters.ru/forums/index...?showtopic=2162
можно все ресурсы в хак и сейвы соот. тоже содержать изменения будут.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Sep 17 2006, 11:31
Сообщение #44


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

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



Я мучался чтолько лет не зная, что РС в режиме катсцене может просто ходить пешком, раньше я налаживал эффект замедления. Оказалось при команде
NSS
// The action subject will move to lDestination.
// - lDestination: The object will move to this location.  If the location is
//  invalid or a path cannot be found to it, the command does nothing.
// - bRun: If this is TRUE, the action subject will run rather than walk
// * No return value, but if an error occurs the log file will contain
//  "MoveToPoint failed."
void ActionMoveToLocation(location lDestination, int bRun=FALSE)

РС идет нормальным пешком... Смешно и обидно. Столько парился в катсценах (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lamonde
сообщение Dec 20 2008, 23:34
Сообщение #45


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

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



Сегодня заметил, что:

У PC появилась собственная шкурка. Раньше ее требовалось создавать в инвентаре и одевать на персонажа, теперь же она есть и носит гордое название "PC Properties". (IMG:style_emoticons/kolobok_light/smile.gif)
А выяснилось это вот каким образом. Создал шкурку, решил ее нацепить на персонажа. Запускаю, одеваю шкурку и в логе читаю "Item swaped out". Открываю инвентарь, лежит "шкурка" игрока. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Dec 21 2008, 14:46
Сообщение #46


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

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



Ну, решили что хватит через зад использовать шкуры животных, вдруг гринписовцы заявят на разрабов и сделали шкуру для РС (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lamonde
сообщение Dec 21 2008, 18:03
Сообщение #47


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

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



Цитата(Aiwan @ Dec 21 2008, 15:46) *
Ну, решили что хватит через зад использовать шкуры животных, вдруг гринписовцы заявят на разрабов и сделали шкуру для РС (IMG:style_emoticons/kolobok_light/smile.gif)
Если бы они еще оставили опцию класть шкурку в инвентарь (через тулсет), было бы шикарно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Dec 21 2008, 19:51
Сообщение #48


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Цитата
"PC Properties"


Тоже нашел эту шкурку)
оказывается она нужна для езды на лошадях(если я правильно понял)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Dec 22 2008, 00:45
Сообщение #49


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

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



Шкурка эта создана с единственной целью - чтобы чары, сделанные до 1.69, могли ездить на лошадях. Мерзавцы-биовари запихали её в спеллхук, так что не удивляйтесь, что она в инвентарь при касте спеллов падает (IMG:style_emoticons/kolobok_light/smile.gif) Причём она создаётся до 30 раз при касте любого спелла (IMG:style_emoticons/kolobok_light/wacko.gif)

Сообщение отредактировал Ilerien - Dec 22 2008, 00:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lamonde
сообщение Dec 22 2008, 13:19
Сообщение #50


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

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



Цитата(Ilerien @ Dec 22 2008, 01:45) *
Шкурка эта создана с единственной целью - чтобы чары, сделанные до 1.69, могли ездить на лошадях. Мерзавцы-биовари запихали её в спеллхук, так что не удивляйтесь, что она в инвентарь при касте спеллов падает (IMG:style_emoticons/kolobok_light/smile.gif) Причём она создаётся до 30 раз при касте любого спелла (IMG:style_emoticons/kolobok_light/wacko.gif)
Получается, что вешать переменные на нее бессмысленно? (раз она уничтожается и дается по новой или, что то не так понял?)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Dec 22 2008, 14:37
Сообщение #51


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Может я ошибаюсь конечно, но помоему скриптом можно шкурку повесить и на место "укуса"??
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Dec 22 2008, 21:43
Сообщение #52


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

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



Цитата
Получается, что вешать переменные на нее бессмысленно? (раз она уничтожается и дается по новой или, что то не так понял?)
Это надо подробнее смотреть скрипты биоварей, насколько я помню, шкурка эта, если есть в слоте, то не убивается. Я рекомендую просто локалку X3_NO_SHAPESHIFT_SPELL_CHECK на модуле выставить в 1. Если лошади в модуле не используются, то этого должно хватить (IMG:style_emoticons/kolobok_light/smile.gif)
Цитата
Может я ошибаюсь конечно, но помоему скриптом можно шкурку повесить и на место "укуса"??
Не налезет.

Сообщение отредактировал Ilerien - Dec 22 2008, 21:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Dec 22 2008, 22:12
Сообщение #53


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Цитата
Не налезет.

А если в 2da создать отдельный вид шкурки и в параметре слота указать ... ну вообщем я не помню какая это цифра, но "укус" (IMG:style_emoticons/kolobok_light/declare.gif) ???
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Dec 22 2008, 22:41
Сообщение #54


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

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



Да можно хоть саму шкурку изменить в 2да, чтобы налезала, только надо учесть, что итемы в этим слотах используются в качестве природного оружия существа. Сам никогда не пробовал этим заниматься, надо тестить (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Dec 23 2008, 19:17
Сообщение #55


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



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


В смысле свойства, которые будут вешаться через редактор будут такие-же как для "укуса"??
Если да, то это ненужная трата времени(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Deirel
сообщение Mar 21 2009, 21:05
Сообщение #56


Level 2
*

Класс: Обыватель
Характер: Lawful Good
Раса: Полуэльф



Народ, никто не подбросит идею, как сделать расписание по часам для мобов? Я знаю, что эта тема уже поднималась, но найти не смог...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 22 2009, 11:11
Сообщение #57


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

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



http://nwnmod.narod.ru/stat_anim_npc2.htm
вместо рандомного выбора ActionSet будет функция, которая на основе времени и каких-либо еще параметров будет этот ActionSet выбирать. Собсна эта функция и будет расписанием.

совет: Если все действия выполняет на 1 локации - проблем нет. Если же нужно чтобы ночью ходил домой и тд - советую не заморачиваться с "честным" движением домой, ибо в последних версиях НВН этот механизм переработали и он стал какой-то кривой. Лучше этот эффект эмулировать, телепортируя домой нужных НПС, когда игрока нет на карте. Если игрок в этот момент дома у НПС, можно НПС кидать к двери, имитируя приход. Если же игрок в другом месте - смело кидай НПС куда нужно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Deirel
сообщение Mar 22 2009, 11:44
Сообщение #58


Level 2
*

Класс: Обыватель
Характер: Lawful Good
Раса: Полуэльф



Спасибо!=)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DNAlchemist
сообщение Oct 21 2011, 07:37
Сообщение #59


Level 2
*

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



Забавная вещь, при использовании действия ActionMoveToObject, если персонаж начинает движение без присутствия игрока на локации, он не ищет путь от точки а к точке б, а идет... Оо... напролом. Потом застревает, судя по логам и минусовой координате по оси высоты в его векторе, к примеру, в тайле с деревом. Сначала хотел использовать проверку, есть ли игрок на локации, потом телепортировать NPC, вместо того, чтобы его двигать. Но потом решил просто модифицировать скрипт WalkToWaypoint. Не буду его выкладывать, по скольку модифицирован он для моих нужд
Так будет полезно знать, что если вы захотите, чтобы внезапно какой нить нписюшник, далеко от игрока, захотел сходить за пивом, нужно либо немножко поломать голову, либо сделать так, чтобы на его пути не было препятствий)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Oct 21 2011, 14:42
Сообщение #60


Тролль
****

Класс: Пьяный Мастер
Характер: Chaotic Neutral
Раса: Тварь



А ActionForceMoveToObject не спасает?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

4 страниц V   1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20th May 2024 - 07:13