![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#4411
|
|
Level 1 Класс: Маг Характер: Chaotic Evil Раса: Человек ![]() |
Всем привет.
Вопрос по Toolset. При запуске вместо букв программа выводит полоски( ▌▌▌▌) и заниматься постройкой модулей невозможно. Можно это как-то исправить? Заранее спасибо! |
![]()
Сообщение
#4412
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Вопрос по Toolset. При запуске вместо букв программа выводит полоски( ▌▌▌▌) и заниматься постройкой модулей невозможно. Можно это как-то исправить? Заранее спасибо! Тебе поможет патч реестра от Virusmana, исправление палок (!!!!!) в тулсете. Было где-то тут на форуме, но моя не знает где... (IMG:style_emoticons/kolobok_light/wacko.gif) Так что см. тут: http://remmgen.narod.ru/files.html (IMG:style_emoticons/kolobok_light/declare.gif) |
![]()
Сообщение
#4413
|
|
Level 1 Класс: Маг Характер: Chaotic Evil Раса: Человек ![]() |
Тебе поможет патч реестра от Virusmana, исправление палок (!!!!!) в тулсете. Было где-то тут на форуме, но моя не знает где... (IMG:style_emoticons/kolobok_light/wacko.gif) Так что см. тут: http://remmgen.narod.ru/files.html (IMG:style_emoticons/kolobok_light/declare.gif) Нашел. Большое спасибо, помогло (IMG:style_emoticons/kolobok_light/good.gif) |
![]()
Сообщение
#4414
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Люди помогите плиз! Я почти абсолютный нуб в скриптах, но мне нужен скрипт для создания предмета из других.
Ну например: Подходишь к алтарю, в инвентарь кладешь длинный меч, рубин и, например, алмаз. И из этих предметов делается там Меч Света. Напишите скрипт, или объясните словами, пожалуйста. Буду очень признателен. |
![]()
Сообщение
#4415
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Ну ты спросишь. На словах не объяснишь так сразу, это большая задача. Смотри оригинальные скрипты Chapter1 (NW_O0_ITEMMAKER), там реализован крафт по разным рецептам. Если представить сферическую задачу в вакууме (сундук и сбор из трех кусков в нем одного предмета), то будет где-то так:
Neverwinter Script void main() { object oChest = OBJECT_SELF; object P1 = GetItemPossessedBy(oChest, "PART1"); // Первое комплектующее object P2 = GetItemPossessedBy(oChest, "PART2"); // Второе комплектующее object P3 = GetItemPossessedBy(oChest, "PART3"); // Ты не поверишь... // Проверяем, в наличии ли комплектующие: if ( GetIsObjectValid(P1) == TRUE && GetIsObjectValid(P2) == TRUE && GetIsObjectValid(P3) == TRUE ) { // Если в наличии, то уничтожаем их... DestroyObject(P1); DestroyObject(P2); DestroyObject(P3); CreateItemOnObject("RESREF",oChest); // И выдаем готовый предмет с ResRef'ом RESREF. } } Вешать на OnClose Сообщение отредактировал Talarasha - Nov 22 2010, 00:08 |
![]()
Сообщение
#4416
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Talarasha, спасибо, щас попробую. Просто это - одна из причин по которым я увлекся скриптингом. Мечта типа (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#4417
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Еще один вопрос.
Я пытаюсь навесить на НПС эффект сна. Вбиваю коменду "effect EffectSleep", но чтобы я не делал, выдает ошибку "Потеря анализатора переменной" Что ето значит, объясните плиз, что там надо исправить. |
![]()
Сообщение
#4418
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
EffectSleep() это библиотечная функция, для какой цели пытаться ее переобъявлять?
Neverwinter Script void main() { EffectSleep(); } Вот так просто будет. То, что в комментариях написано - это не образец использования, а описание функции, выделенное синим перед названием это тип возвращаемого функцией значения. Сообщение отредактировал Talarasha - Nov 22 2010, 23:52 |
![]()
Сообщение
#4419
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectSleep(), <объект_непись>);
|
![]()
Сообщение
#4420
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Спасибо, Ilerien и Talarasha. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif)
|
![]()
Сообщение
#4421
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Хмммм....подскажите еще пожалуйста, что такое "sVarName"? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Хмммм....подскажите еще пожалуйста, что такое "sVarName"? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) |
![]()
Сообщение
#4422
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Теоретически - набор букв, подразумевающий что угодно.
Практически - имя строковой переменной. s расшифровывается как string, Var переменной, Name имя. В коде используется скорее для того, чтобы прямо по имени понимать тип переменной и отличать ее от одноименной с другим типом. Примерно следующим образом: Neverwinter Script object oTag; string sTag; sTag = "CR_ASSASIN"; oTag = GetObjectByTag("CR_ASSASIN"); sTag тогда содержит строку CR_ASSASIN, а oTag - указатель прямо на объект с тегом CR_ASSASIN. Такое наименование необязательно, но широко используется в оригинальных скриптах, да и в пользовательских тоже. Примерная расшифровка: sName - string, строковой тип oName - object, объект lName - location, локация nName - number, число целочисленное (int) fName - float, число с плавающей точкой (float) aName - action, действие bName - boolean, булева переменная (TRUE/FALSE) eName - effect, эффект Сообщение отредактировал Talarasha - Nov 24 2010, 23:11 |
![]()
Сообщение
#4423
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Talarasha, хмм, благодарю. Я получил писчу для размышлений....
|
![]()
Сообщение
#4424
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Есть большой смысл заглянуть в Лексикон. Соглашения о стиле программирования там точно есть (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#4425
|
|
Level 2 ![]() Класс: Псионик Характер: Chaotic Evil Раса: Чудовище ![]() |
|
![]()
Сообщение
#4426
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Извиняюсь за глупые вопросы, но..
1) Как сделать так, чтобы NPC, ходящие по точкам ночью исчезали (или засыпали) 2) Как организовать их активность? (Как в тавернах там каких-нибудь, чтобы они между собой разговаривали или просто двигались и т.п.) 3) Как выключить на ночь свет? (Колонны света, магические вспышки..) Я пытался поставить вот это void main() { object oSelf = OBJECT_SELF; if (GetIsDay()==FALSE && GetLocalInt(OBJECT_SELF,"on")!=1) { SetLocalInt(OBJECT_SELF,"on",1); PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE); effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_10); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSelf); } if (GetIsDay()==TRUE && GetLocalInt(OBJECT_SELF,"on")==1) { SetLocalInt(OBJECT_SELF,"on",0); PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE); effect eEffect = GetFirstEffect(oSelf); while (GetIsEffectValid(eEffect) == TRUE) { if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) RemoveEffect(oSelf, eEffect); eEffect = GetNextEffect(oSelf); } } } но ничего не вышло (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#4427
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
1) Как сделать так, чтобы NPC, ходящие по точкам ночью исчезали (или засыпали) 2) Как организовать их активность? (Как в тавернах там каких-нибудь, чтобы они между собой разговаривали или просто двигались и т.п.) http://remmgen.narod.ru/tmonster.html 3) Как выключить на ночь свет? http://remmgen.narod.ru/tplace.html |
![]()
Сообщение
#4428
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Как сделать так, чтобы NPC лежал на земле (а лучше на алтаре) весь израненый и полуживой, но потом с ним можно было поговорить (при этом он вставал или садился на край алтаря), и он исчез (с анимацией телепортации)?
|
![]()
Сообщение
#4429
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Neverwinter Script void main() { effect eKnock = EffectKnockdown(); ApplyEffectToObject(DURATION_TYPE_PERMANENT,Effect Damage(3), OBJECT_SELF); // Нанести урон в количестве 3 ApplyEffectToObject(DURATION_TYPE_PERMANENT, eKnock, OBJECT_SELF); } На onSpawn; это положит объект в состояние еле живой и снесет ему сколько-то хитов. Можно говорить. На алтарь положить - вряд ли, размещаемые объекты pc и npc не держат, только если алтарь будет являться частью локации. Ну а про излишества навроде "садился на край" - в каком мире мы живем, набор анимаций в нвне строго ограничен. Со второй частью хз, что тебе требуется. Если исчезать будет в диалоге, то где-то на ветку диалога и вешать, перемещение - смотреть функцию ActionJumpToObject, эффекты - ApplyEffectToObject и таблицу константы либо лексикон для выбора нужных визуальных эффектов, которые сойдут за телепортацию. |
![]()
Сообщение
#4430
|
|
Level 2 ![]() Класс: Псионик Характер: Chaotic Evil Раса: Чудовище ![]() |
// OnSpawn
void main() { ApplyEffectToObject(OBJECT_SELF, EffectDamage(GetCurrentHitPoints(OBJECT_SELF) - 1); AssigCommand(OBJECT_SELF, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 1.0, 100000.0)); } На OnConversation(или где-нибудь на старте диалога) вешать AssignCommand(OBJECT_SELF, ActionSit(GetNearestObjectByTag("тег_невидимого обьекта"))); // невидимый обьект на котором будем сидеть, вроде есть в стандартной палитре, ставим его на край алтаря или куда мы там хотим садиться. |
![]()
Сообщение
#4431
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Да уж. Сам-то пробовал? Мало того, что он не соберется из-за опечаток и неправильного оформления функции, так еще и фактические ошибки. Во-первых, событие на onSpawn, оно не нуждается в AssignCommand(OBJECT_SELF... , так как само по себе уже выполняется объектом, вызвавшим скрипт. Во-вторых, анимация сбросится после первого же обращения к НПС.
А посадить на алтарь с помощью невидимого объекта кстати вряд ли получится - персонажи фиксированы по z-координате, поэтому в самом лучшем случае нпс просто будет торчать из середины объекта. Сообщение отредактировал Talarasha - Dec 3 2010, 10:43 |
![]()
Сообщение
#4432
|
|
Level 2 ![]() Класс: Псионик Характер: Chaotic Evil Раса: Чудовище ![]() |
Не пробовал, вполне могут быть опечатки. Что не так с оформлением? С AssignCommand просто привык, а анимацию можно ресторить на других событиях. Алтарь да, по-другому думаю никак, только эти костыли.
|
![]()
Сообщение
#4433
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Что не так с оформлением? Neverwinter Script void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f) Сравни со своим вариантом. Цитата а анимацию можно ресторить на других событиях. Вопрос - а зачем? Эффективность кода не растет вместе с искуственным наращиванием его сложности. |
![]()
Сообщение
#4434
|
|
Level 2 ![]() Класс: Псионик Характер: Chaotic Evil Раса: Чудовище ![]() |
Затем чтобы решить поставленную задачу.
Цитата чтобы NPC лежал на земле И причем тут эффективность кода? (IMG:style_emoticons/kolobok_light/wacko.gif) |
![]()
Сообщение
#4435
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Затем чтобы решить поставленную задачу. И причем тут эффективность кода? Притом, что делать один кривой скрипт, реализованный через костыль с временным ограничением, сбрасывающий анимацию после каждого обращения и требующий дополнительного скрипта для восстановления анимации гораздо менее эффективно, чем сделать один нормальный скрипт того же размера. Сообщение отредактировал Talarasha - Dec 3 2010, 14:09 |
![]() ![]() |
Текстовая версия | Сейчас: 18th August 2025 - 17:38 |