![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3121
|
|
Level 3 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
как сделать действие эффкта паутины на область триггра длительным?
как сделать эффект паутины я понял, сделал и получилось. вот только беда, если делать его на локацию, например область триггера, то эффект быстро исчезает, даже если я в конце функции указываю время. А если делат этот эффект на ПЦ то выгялдит не красиво--он двидется и вся паутина за ним. Что тоакое SetTime? оно поможет в решении это проблемы??? |
![]()
Сообщение
#3122
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Серафим, скрипт был рабочий, но с 1 ошибкой:
Neverwinter Script AssignCommand(oPC, ActionDoCommand(AssignCommand(oSelf, AssignCommand(oPC, SpeakString("Трам-тара-рам!"))))); Тут нужно было было делать через ActionDoCommand... В остальном это все твои глюки... Эффект паутины кинь на невидимый объект и будет тебе счатье... |
![]()
Сообщение
#3123
|
|
Level 3 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Эльф ![]() |
Ген, СПС!
еще вопросик. Видел в базе скриптов скрипт на оживление зомби при их смерти. Нужен скрипт при котором убить зомби можно только одним предметом, например определенным мечем. В противном случае зомбяка оживает. Но, вот беда я немогу понять как прописать такой предмет и как прописать что бы зомби сами себя воскрешали, а не какой-то другой предмет или НПЦ. ХЕЛП!!!!! Сообщение отредактировал serafim - May 12 2009, 17:34 |
![]()
Сообщение
#3124
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Я это так делал:
Neverwinter Script void main() { object oKiller = GetLastKiller(); string sWeaponTag = GetTag(GetLastWeaponUsed(oKiller)); if (sWeaponTag != "Тег оружия") { SendMessageToPC(oKiller, "HELLO"); object oNewZombie = CreateObject(OBJECT_TYPE_CREATURE, GetResRef(OBJECT_SELF), GetLocation(OBJECT_SELF)); } } Это стояло на OnDeath зомбика. У меня не получилось сделать так, чтобы воскрешался именно тот зомби которого убили... Может, поможет это. О, Сорри) SenMessageToPc не надо, это я так, для отладки)) |
![]()
Сообщение
#3125
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
У меня не получилось сделать так, чтобы воскрешался именно тот зомби которого убили эм.. а в чем проблема? 1. см. SetIsDestroyable() - (или как-то так. ищите в фильтре функций по части "IsDestroyable"). Ею ставим неисчезаемое тело после смерти. 2. с задержкой накладываем эффект воскрешение. или ресурекшн. Или какой хотите. |
![]()
Сообщение
#3126
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Lex, так я уже пытался, и почему-то не вышло.(
У менятакой вопрос, люди) можно ли скриптами поставить объект в место с определенными координатами? |
![]()
Сообщение
#3127
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
определяем локацию, куда создаём.
Neverwinter Script // Create a location. location Location(object oArea, vector vPosition, float fOrientation) vPosition - сюда и вписываем наши определённые координаты, например [0.0, 1.0, 0.0] oArea и fOrientation - соотвественно область и поворот предмета; а затем используем эту локацию в функции CreateObject. насчёт воскрешения вот информация к размышлению Neverwinter Script void main()
{ SetIsDestroyable(FALSE); effect eEffect = EffectResurrection(); object oNPC = OBJECT_SELF; object oArea = GetArea(oNPC); AssignCommand(oArea, DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oNPC))); } Сообщение отредактировал azathoth - May 15 2009, 13:14 |
![]()
Сообщение
#3128
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
azathoth, спасибо) теперь мне, наконец, стало понятно, что такое Location и чем оно отличается от Area, а то я их вообще путал=) А на счет скрипта, спасибо за идею, я пытался повесить воскрешение на PC, но не вышло...И с Area почему-то не работает! Ничего не понимаю(
(Ого, я сделал прыгающую колонну!!))) Сообщение отредактировал Deirel - May 15 2009, 18:39 |
![]()
Сообщение
#3129
|
|
Level 1 Класс: Варвар Характер: Chaotic Evil Раса: Человек ![]() |
Уважаемые коллеги ,решил и я заняться скрипто0писанием(куда уж без него в хорошем модуле) и появилось очень много вопросов...если позволите я задам вам их.
1.Нужен скрипт простой телепортации ,в редакторе скриптов нашел образец но естественно не понял,скажем телепортация к waypoint. 2.По СВОИМ соображениям решил заблокировать класс варвар в своем модуле ,по шаблону сделал условие и если человек заходит играть barbarian следует end module,но опять же ничего не получилось при входе любым классом клиент просто повисает. Просьба расписать все по полочкам буду благодарен! |
![]()
Сообщение
#3130
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
Итак, я НЕ ШАРЮ в скриптах. А еще, я запарился лазить в темах по скритах, что бы найти всего один скрипт - скрипт, позволяющий игроку отдыхать ТОЛЬКО на определенном триггере. Мне этот скрипт нужен позарез. Пожалуста, если кто может, выложите этот скрипт здесь или дайте ссылку.
Если я этим постом нарушил какие-нибудь правила - извиняйте, небыло времени с ними познакомиться. |
![]()
Сообщение
#3131
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Товарищи, я бы сделал так:
На OnEnter триггера: Neverwinter Script void main() { object oPC = GetEnteringObject(); if (GetIsPC(oPC)) { SetLocalInt(oPC, "IS_RESTING_ENABLE", 1); } } На OnExit триггера: Neverwinter Script void main() { object oPC = GetExitingObject(); if (GetIsPC(oPC)) { SetLocalInt(oPC, "IS_RESTING_ENABLE", 0); } } На OnPlayerRest (в свойствах модуля) добавил бы: в начале (после "object oPC = GetLastPCRested()"): Neverwinter Script if (GetLocalInt(oPC, "IS_RESTING_ENABLE") == 1) { а в конце, перед последней "}" Neverwinter Script } else { AssignCommand(oPC, SpeakString("Вы не можете отдыхать блаблабла")); } И в событии области OnEnter: Neverwinter Script void main() { oPC = GetEnteringObject(); SetLocalInt(oPC, "IS_RESTING_ENABLE", 0); } Я правильно мыслю, товарищи? ))) |
![]()
Сообщение
#3132
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1.Нужен скрипт простой телепортации ,в редакторе скриптов нашел образец но естественно не понял,скажем телепортация к waypoint. я тоже не понял. Из того что ты написал совершенно не понятно какой скрипт тебе нужен. Во-первых потому что ничего не сказано про того, КТО перемещается. Во-вторых не уточнено, КОГДА это происходит. Ну и в-третьих, КАК/КУДА. если тебе это не принципиально и нужен скрипт с разбором, то собсна вот: Neverwinter Script void main() { object oCreature = GetEnteringObject(); // кто телепортируется. Входящий в триггер объект (игрок или НПС) object oTarget = GetObjectByTag("WP_TARGET"); // куда телепортируется. В конкретную точку с тэгом WP_TARGET AssignCommand(oCreature,ClearAllActions(TRUE)); // убираем текущий стек действий, чтобы не мешал AssignCommand(oCreature,JumpToObject(oTarget)); // телепортируем } 2.По СВОИМ соображениям решил заблокировать класс варвар в своем модуле ,по шаблону сделал условие и если человек заходит играть barbarian следует end module,но опять же ничего не получилось при входе любым классом клиент просто повисает. пиши, что за скрипт у тебя получился. Разбирать и исправлять свои ошибки эффективнее, чем вставлять чужое готовое решение. Если я этим постом нарушил какие-нибудь правила - извиняйте, небыло времени с ними познакомиться. тем не менее с правилами лучше ознакомиться. Во избежании. Я правильно мыслю, товарищи? ))) вроде да, а зачем перестраховка с последним скриптом? |
![]()
Сообщение
#3133
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
Deirel, большое спасибо за скрипты. (IMG:style_emoticons/kolobok_light/clapping.gif)
... а зачем перестраховка с последним скриптом? Я, конечно, не разбираюсь в скриптах, но возможно дело в том, что для перехода в некоторые области игроку не нужно выходить за границы триггера-отдыха(?). Последний скрипт не компилируется. Что-то не так со строкой oPC = GetEnteringObject(); Как это исправлять? |
![]()
Сообщение
#3134
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Neverwinter Script object oPC = GetEnteringObject();
|
![]()
Сообщение
#3135
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
Теперь все ясно.
Снова что-то не так. Неработает скрипт система. Вместо того, чтобы показывать "Это неподходящее место для отдыха" тогда, когда герой жмет REST не на триггере, оно показывает это сообщ. когда игрок сам прерывает отдых. Т.е. главная функция не работает. Не знаю как решить эту проблему. |
![]()
Сообщение
#3136
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
это уже косяк того, что ты внутри OnPlayerRest напихал. Без полного текста скрипта тебе никто не поможет.
А вообще советую начинать разбираться самому. Дело пойдет быстрее, чем с каждым вопросом сидеть на форуме и ждать. |
![]()
Сообщение
#3137
|
|
Level 1 Класс: Варвар Характер: Chaotic Evil Раса: Человек ![]() |
это уже косяк того, что ты внутри OnPlayerRest напихал. Без полного текста скрипта тебе никто не поможет. А вообще советую начинать разбираться самому. Дело пойдет быстрее, чем с каждым вопросом сидеть на форуме и ждать. спасибо за ответы на все вопросы,но пока ждал уже сам во всем разобрался. Оффтоп,теперь борюсь с глючностью самой игры=( intel core 2 duo e6750,radeon hd 2600xt,4gb ram 800mghz,vista sp1 x64. В игре что на минимальных что на максимальных одинаково глючит,производительность как в crysis на максимальных,тобишь играть невозможно! При чем на старом кампьютере тоже самое но в меньшей степени(картинку ощутимо поддергивает)-там стоит все с точностью на оборот winxp 32,amd athlon 3000+,geforse 6600. P.S версия diamond 1.69 eng. В самом редакторе тоже одни ошибки постоянно выскакивают Atioglxx.dll P.S.S не ужели придется перебираться на NWN2 там все идет ровно! |
![]()
Сообщение
#3138
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
В nwnplayer.ini поставить Client CPU Affinity=0
|
![]()
Сообщение
#3139
|
|
Level 1 Класс: Варвар Характер: Chaotic Evil Раса: Человек ![]() |
В nwnplayer.ini поставить Client CPU Affinity=0 я конечно извеняюсь но оно там и стоит=( скорее всего что то в видео карте ,у кого на radeon игра нормально ползет? P.S опросил пару друзей играющих в нвн,сказали что не совсем уж и глючит но подлагивает,это что такие особенности движка?! |
![]()
Сообщение
#3140
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Ну не знаю, на моем средненьком Radeon X1550 ничего не лагает) Хотя...блеск воды не работает))
|
![]()
Сообщение
#3141
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ну, тогда могу могу посоветовать с дровами на видео пошаманить. Как вариант, поставить в advanced sound options другой кодек, например, miles fast 2D - у кого-то из-за этого были подобные глюки.
|
![]()
Сообщение
#3142
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
это уже косяк того, что ты внутри OnPlayerRest напихал. Без полного текста скрипта тебе никто не поможет. А вообще советую начинать разбираться самому. Дело пойдет быстрее, чем с каждым вопросом сидеть на форуме и ждать. Спасибо за совет. Это помогло. Как окозалось, перед последней вставленой строкой, нужна была еще всего-то одна строка: Neverwinter Script AssignCommand(oPC, ClearAllActions()); Теперь все работает. Огромное спасибо всем за помощь. |
![]()
Сообщение
#3143
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
Еще вопрос:
Вот это (из городской базы скриптов) инклюд: Neverwinter Script const string TXT_COLOR_GRAY = "<c°°°>"; // Gray const string TXT_COLOR_WHITE = "<cууу>"; // White const string TXT_COLOR_CYAN = "<c уу>"; // Light Cyan const string TXT_COLOR_MAGENTA = "<cу у>"; // Magenta const string TXT_COLOR_YELLOW = "<cуу >"; // Yellow const string TXT_COLOR_RED = "<cу >"; // Red const string TXT_COLOR_GREEN = "<c у >"; // Green const string TXT_COLOR_BLUE = "<c у>"; // Blue const string TXT_COLOR_NONE = ""; // Default (no color) const string TXT_COLOR_END = "</c>"; // (color end TAG) const string TXT_COLOR_DEFAULT = TXT_COLOR_CYAN; // Function changes color of the string // * Param sText - text to color // * Param sColor - parse a color constant here // * Returns colored string string colorText(string sText, string sColor); string colorText(string sText, string sColor) { return sColor + sText + TXT_COLOR_END; } А это пример: Neverwinter Script #include "lib_colortext" void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; AssignCommand(oPC, SpeakString(colorText("you are entering object", TXT_COLOR_RED))); } А вот, собственно, и сам вопрос (их вообще-то два): 1) Как построить скрипт, чтобы вместо SpeakString работало FloatingTextStringOnCreature; 2) Как построить скрипт, чтобы вместо SpeakString работало SendMessageToPC. Кто знает ответ (может об таком скрипте уже спрашивали, но мне лень 126 страниц читать)? |
![]()
Сообщение
#3144
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
а в чем проблема то?
Ничего принципиально не меняется. В месте вывода текста ставишь вместо "текст" конструкцию Neverwinter Script colorText("you are entering object", TXT_COLOR_RED) Работает со всеми функциями по выводу текста, и FloatingTextStringOnCreature с SendMessageToPC - не исключение.
|
![]()
Сообщение
#3145
|
|
Level 5 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Человек ![]() |
Забыл сказать. Мне нужно, что б это работало через object oPC = GetLastUsedBy.
Вот например: Neverwinter Script #include "lib_colortext" void main() { object oPC = GetLastUsedBy(); AssignCommand(oPC, FloatingTextStringOnCreature(colorText("You are using object", TXT_COLOR_RED))); } И вот последняя строка неработает. |
![]() ![]() |
Текстовая версия | Сейчас: 31st July 2025 - 11:21 |