![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2101
|
|
Level 6 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить NWN: Скриптинг [PW] ![]() |
в OnConversation нпс есть абзац:
NSS if (GetCommandable(OBJECT_SELF)) { ClearActions(CLEAR_NW_C2_DEFAULT4_29); BeginConversation(); } ставиш проверку на локалки и изменяеш аргументы ф-ции..к примеру: NSS if (GetCommandable(OBJECT_SELF)) { ClearActions(CLEAR_NW_C2_DEFAULT4_29); if(GetLocalInt(OBJECT_SELF,"SSS") == 1) BeginConversation("dlg1",oShouter); else BeginConversation("dlg2",oShouter); } еще надо прикрутить проверку на таг или индивидуальный скрипт для нпс Сообщение отредактировал [MoF]Darth_Nick - Mar 30 2006, 09:50 |
![]()
Сообщение
#2102
|
|
Level 8 ![]() ![]() ![]() Класс: Теневой Танцор Характер: True Neutral Раса: Эльф ![]() |
Благодарим, еще вопрос, я пытался сделать генерацию книг, как в Проклятии Левора, как описывал Айван, но ничего не вышло. Пытался долго и муторно, по-моему это довольно непростой скрипт. И еще, локалка это LocalInt в переменных?
|
![]()
Сообщение
#2103
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Там надо сделать одну книгу и потом копу/едит делать все остальные. Все там работает.
|
![]()
Сообщение
#2104
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Еще раз увижу ПРЕВЕД или КРАСАВЧЕГИ - влеплю пред. Юзверей с одним сообщением забаню.
|
![]()
Сообщение
#2105
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Вот работающий скрипт из моего мода ПВ.
Создаешь предмет с тагом и РесРефом AM_ITM_BOOK001. Потом Копу/едит делаешь себе сколько надо, например 25 штук. Дальше. Открываешь свойства модуля и в адвансед, присваиваешь локальную переменную ALL_BOOKS_IN_MODULES равную 25. На шкафу вешай переменную BOOKS равную столько, сколько тебе нужно книг в шкафу при открытии. Не повесишь будет одна. И все. NSS //::////////////////////////////////////////////// //:: OnOpen am_pop_bookshelf //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Скрипт генирирует книги в инвентарь шкафа. Локальная переменная "BOOKS" на объекте означает количество генерируемых книг. */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 23.07.2005 //::///////////////////////////////////////////// void main() { //------------------------------------------------------------------------- // Количество книг в палитре. Присваиваем на модуль "ALL_BOOKS_IN_MODULES" //------------------------------------------------------------------------- int iBook = GetLocalInt(GetModule(), "ALL_BOOKS_IN_MODULES"); int iNum = GetLocalInt(OBJECT_SELF, "BOOKS"); // Сколько создаем в шкафу if (GetLocalInt(OBJECT_SELF, "HAS_OPERATED")) // Сработает один раз { return; } while(iNum >= 1) // Пока количество создаваемых книг больше или равно 1. { //------------------------------------------------------------------------- // Кстати... У меня ResRef-ы am_itm_book001 ... am_itm_book021, поэтому // я извратился немного, лень было переделать книги... Но так проще создать // много одинаковых книг, цифры сами генерятся редактором, вы только // создаете первую, а дальше Изменить/Сохранить и все. //------------------------------------------------------------------------- int i = Random(iBook)+1; // Гененрируем случайную унигу string sN = "0"; string sNN = "0"; if (i >=100) {sNN ="";} if (i >=10) {sN ="";} object oBook = CreateItemOnObject("am_it_book"+sNN+sN+IntToString(i)); iNum--; //Создали одну книгу. Отняли от количества еденичку... } SetLocalInt(OBJECT_SELF,"HAS_OPERATED",TRUE); // Запомним что уже сработал } QUOTE(Elf-Drow @ Mar 30 2006, 17:49) [snapback]75275[/snapback] И еще, локалка это LocalInt в переменных? Да. |
![]()
Сообщение
#2106
|
|
Level 3 ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Суть:
Есть N обьектов с одинаковыми тэгами. и есть обьект с тегом в конце "00". Нужно сделать: 1) на месте обьекта появляется костерчик, обьет исчезает. (первый 00) 2) загорается ближайший к нему из N обьектов, обьет исчезает. 3) загорается следующий и так далее.. КОД: NSS void main() { int iN; location lLoc; object oFire = GetObjectByTag("PLC_DRM_F00"); if (GetLocalInt(OBJECT_SELF, "Counter") == 1) return; else SetLocalInt(OBJECT_SELF, "Counter", 2); while (oFire != OBJECT_INVALID || iN < 10) { lLoc = GetLocation(oFire); DestroyObject(oFire, 0.0f); oFire = GetNearestObjectByTag("PLC_DRM_F01", GetNearestObjectByTag("PLC_DRM_FR", OBJECT_SELF)); CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR"); iN ++; } } ! Счетчик юзания триггера отключен специально! Результаты работы: при первом нахождении на триггер: 1) загорается обьект "..00" 1 костром. 2) загорается соседний 9 кострами. конец. при повторном нахождении горит соседний 10 кострами.. Спрашивается.. "Какого **ра?" (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2107
|
|
Level 8 ![]() ![]() ![]() Класс: Теневой Танцор Характер: True Neutral Раса: Эльф ![]() |
Пара вопросов по скриптам, приведенным в Проклятии Левора.
1 - Какой скрипт нужен и куда его ставить, чтобы НПС говорили фразы, то есть названия вейпоинтов, находящихся вокруг них ( Говорящие НПС в Проклятии) 2 - Как ваша команда создала такой шедевр как карта? Создание моделей в 3D-MAX, а затем вставка в игру? Диалог, а затем скрипт с появляющейся картинкой и отправление к месту назначения? И как вы сделали, что бой по дороге может быть на случайной миле, т.е. Там на 11, 23, хоть на какой? Заранее благодарю. |
![]()
Сообщение
#2108
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1. Строка дожна быть в диалоге всегда ОДНА и содержать токен <CUSTOM220>. А содержание = имя вейпоинта. Я опускаю разные ньюансы, стринге на поинте, ответы РС локалки на расстояния и прочее. Даю обрезанный рабочий код. Вставляй и работай.
NSS //::////////////////////////////////////////////// //:: Выдает стринг, если НПС рядом с поинтом //:: Copyright © 2006 WRG! //::////////////////////////////////////////////// /* Таг нашего поинта. WP_STRING <CUSTOM220> - [Имя поинта - строка НПС] */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 17.01.2006 //::////////////////////////////////////////////// int StartingConditional() { object oWp = GetNearestObjectByTag("WP_STRING"); // Берем ближайший объект с тагом "WP_STRING" float fDist = 20.0f; // Расстояние реакции, дальше 20 метров строки не будет float fZone = GetDistanceBetween(OBJECT_SELF, oWp); // Дистанция срабатывания //------------------------------------------------------- if(GetIsObjectValid(oWp)) // Если такой объект существует { if (fDist < fZone) // Если дистанция между Нпс и Поинтом больше установленной 20 м. return FALSE; // Строка не появится else // в противном случае (ЕЩЕ) { string sMessage = GetName(oWp); // Стринг sMessage равен имени поинту SetCustomToken(220, sMessage); // Установим токен 220 равный этому стрингу return TRUE; // Вернем строку функции StartingConditional(). Она покажет ее игроку } } else return FALSE; // Если такого объекта oWp нет, то нечего не появится } 2. Карта и ее скрипты очень сложны. Не берись пока за это. Созреешь до сложных скриптов поговорим. |
![]()
Сообщение
#2109
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
А чего ты хотел? БЕРЕМ БЛИЖАЙШИЙ и насилуем его девять раз. (IMG:style_emoticons/kolobok_light/smile.gif) Тебе надо брать все объекты и перебирать по параметрам свои костры.
Нужен скрипт на факела-костры-жаровние? Вот мой скрипт запускается ExecuteScript на локацию. Суть такая. Создаешь два объекта один горящий, другой потухший. На этих объектах в палитре вешаешь стриги ResRef-ы объектов что создаем вместо существующего. Например на плейсе AM_PLS_TORCH_ON стринг NEW_ResRef будет равен am_pls_torchoff. И на оборот. Годится скрипт для чего хошь. Днем объект создается, ночью дестроится. Вешай на вход в локацию. Или на хертбит с проверкой в локации ли РС. NSS //:://////////////////////////////////////////////
//:: OnEnter am_exe_torch_del //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* ВКЛЮЧАЕМ ОГОНЬ ФАКЕЛОВ И ЗВУК К НИМ НОЧЬЮ. Таг факела = "AM_PLS_TORCH_OFF". Он должен быть с в палитре с моделью факела без амбиент анимации. Именно его и надо расставить в локации. Иначе будет свет от факела гореть над ним. Его ResRef "am_pls_torchoff" Таг горящего факела = "AM_PLS_TORCH_ON" ResRef "am_pls_torchon" Звуковой объект ставим рядом с факелом, помните его таг ДОЛЖЕН БЫТЬ УНИКАЛЬНЫМ ВО ВСЕМ МОДУЛЕ. Иначе не сработает. К примеру таг моего звука, равен тагу триггера плюс порядковый номер, начиная с еденицы: AM_SOUND_TORTCH_(порядковый номер = i). Расставляйте на локации факела и звуки рядом. "NEW_ResRef" Локальный стринг ResRef-а объекта, который создаем на месте этого. Все готово! LocalInt "AREA_TORCH_ON_OFF" - запускает на локацию. */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 08.06.2005 //::///////////////////////////////////////////// void main() { int i=1; // Первый порядковый номер тага звука float f=0.5; // Задержка дестроя string sSound = GetTag(OBJECT_SELF); // Приравнял таг Локации к звуовому object oTorch = GetFirstObjectInArea(OBJECT_SELF); object oSound = GetObjectByTag(sSound+IntToString(i)); // Звуковой объект effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20); // Свет факела int nEvent = GetUserDefinedEventNumber(); //======================= USERDEINE EVENT 1000 ================================= if (GetIsDay() || GetIsDawn()) //---------------------------------- ДЕНЬ -------------------------------------- { while (GetIsObjectValid(oTorch)) { if (GetTag(oTorch) == "AM_PLS_TORCH_ON" && !GetLocalInt(oTorch, "DO")) /* Проверяем все объекты на локации, берем с нужным тегом и без локальной переменной, что с объектом уже выключен. */ { string sResRef = GetLocalString(oTorch, "NEW_ResRef"); SetLocalInt(oTorch, "DO", TRUE); DestroyObject(oTorch, f); CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch)); f=f+0.2; // Сделай паузу! } if (GetIsObjectValid(oSound)) { DebugObject(oSound); SoundObjectStop(oSound); // Выключаем звук i++; // Присвоим объекту звука таг на единицу больше } oSound = GetObjectByTag(sSound+IntToString(i)); oTorch = GetNextObjectInArea(OBJECT_SELF); } return; } //======================= USERDEINE EVENT 3000 ================================= else if (GetIsNight() || GetIsDusk()) //----------------------------- НОЧЬ ------------------------------------------- { while (GetIsObjectValid(oTorch)) { if (GetTag(oTorch) == "AM_PLS_TORCH_OFF" && !GetLocalInt(oTorch, "DO")) { string sResRef = GetLocalString(oTorch, "NEW_ResRef"); SetLocalInt(oTorch, "DO", TRUE); DestroyObject(oTorch, f); object oTorchNew = CreateObject(OBJECT_TYPE_PLACEABLE,sResRef, GetLocation(oTorch)); DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oTorchNew)); f=f+0.2; // Сделай паузу! } if (GetIsObjectValid(oSound)) { DebugObject(oSound); SoundObjectPlay(oSound); // Включаем звук i++; // Присвоим объекту звука таг на единицу больше } oSound = GetObjectByTag(sSound+IntToString(i)); oTorch = GetNextObjectInArea(OBJECT_SELF); } } } |
![]()
Сообщение
#2110
|
|
Level 8 ![]() ![]() ![]() Класс: Теневой Танцор Характер: True Neutral Раса: Эльф ![]() |
Знаешь, Айван, вроде вы в Проклятии сделали так, чтобы Геркан был с героем одной расы, то есть ты гном он гном, ты эльф он эльф. Но это не работает! Я играю за эльфа, но Геркан у меня гном!
|
![]()
Сообщение
#2111
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Elf-Drow, ты баг описываешь, предполагаешь или вопрос какой есть по реалезации?
Если первые два, то это не сюда. Сообщение отредактировал -fenix- - Mar 31 2006, 13:05 |
![]()
Сообщение
#2112
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
В скриптинге карты в принципе нет ничего сложного. (текущая версия карты для ПВ это небольшая библиотечка в ~800 строк, там ~50 функций описано).
А вот моделинг самой карты, плейсов для нее и всякие вспомогательные штуки, это скриптами не сделать. QUOTE(Elf-Drow @ Mar 31 2006, 11:10) [snapback]75488[/snapback] Знаешь, Айван, вроде вы в Проклятии сделали так, чтобы Геркан был с героем одной расы, то есть ты гном он гном, ты эльф он эльф. Но это не работает! Я играю за эльфа, но Геркан у меня гном! баг.. хотя странны. А делается просто - в палитре Герканы всех расс, при старте модуля создаем нужного, согласно расе игрока. Хоть полуорка (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2113
|
|
Level 1 Класс: Волшебник Характер: Chaotic Neutral Раса: Полуэльф ![]() |
2[MoF]Darth_Nick: спасибо.
У меня еще один вопрос: как сделать, чтобы npc (хенч) уходил назад в свою область (дом) для будущего использования, как только он становится ненужным. Никак не сделать, чтобы нпс бежал на вейпоинт, находящийся в другой области? Может можно его туда телепортировать? |
![]()
Сообщение
#2114
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Lanilor @ Mar 31 2006, 19:17) [snapback]75560[/snapback] Никак не сделать, чтобы нпс бежал на вейпоинт, находящийся в другой области? Может можно его туда телепортировать? Делай темный экран на пару секунд и телепортируй. С бегатней меж локами гемороя много всякого. отследить событие отсоединения можно в библиотеке x0_inc_henai. Строка 866. там ниже вставь, что если хенч с тэгом таким-то, то джампается туда-то. Не забудь билдануть скрипты потом, особено onConversation для хенчей. |
![]()
Сообщение
#2115
|
|
Level 3 ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Нафик мне факелы? :-) Мне надо спалить кучу обьектов..
в скрипте.. то как я это вижу.. берем обьект и получаем с него координаты уничтожаем обьект присваиваем следующий обьект (предыдущий не может быть так как он уничтожился строкой выше) создаем на месте обьекта костерчик и по новой.. а работает хз как а тупой перебор тагов (если их разными сделать) я тоже как бы сам соображу.. суть не в скрипте а в причине его не работоспособности.. вникнуть может ктонить? просто интересно. |
![]()
Сообщение
#2116
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
работает хз как, потому что написан хз как.
oFire = GetNearestObjectByTag("PLC_DRM_F01", GetNearestObjectByTag("PLC_DRM_FR", OBJECT_SELF)); это тебе все время одно и тоже давать будет: ближайший к твоей конструкции (Так как удаление не происходит мгновенно. Создание тоже не мгновенное.). NSS void main() { object oFire = GetObjectByTag("PLC_DRM_F00"); location lLoc = GetLocation(oFire); if (GetLocalInt(OBJECT_SELF, "Counter") == 1) return; SetLocalInt(OBJECT_SELF, "Counter", 2); DestroyObject(oFire); // центр, относительно которого берем ближайший объект на удаление object oCenter = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR"); // берем следующую кучу дров oFire = GetNearestObjectByTag("PLC_DRM_F01", oCenter); // пока есть дрова в локации.. тут бы лучше добавить проверки дистанции. while (GetIsObjectValid(oFire)) { lLoc = GetLocation(oFire); DestroyObject(oFire, 0.0f); // новый центр поиска - костерок на месте дров oCenter = CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR"); // следующие дрова oFire = GetNearestObjectByTag("PLC_DRM_F01", oCenter); } } Так примерно, не тестировал.. QUOTE(JCDenton @ Mar 31 2006, 19:52) [snapback]75570[/snapback] а тупой перебор тагов (если их разными сделать) я тоже как бы сам соображу.. не заметно как-то, что сообразишь. тут самый, что ни наесть, тупой перебор. |
![]()
Сообщение
#2117
|
|
Level 3 ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Ну Куда нам нубам до мудрого Лекса... (IMG:style_emoticons/kolobok_light/smile.gif) ))
Твой скрипт вешает невервинтер к чертям.. т.к. получается бесконечный цикл. Почему он там получается? потому что скрипт написан ХЗ как =) Сеня первое апреля но я тя не прикалываю.. проверь сам =) Кстати потому я и ввел второе условие в цикл.. чтобы не atl-ctrl-delete =) |
![]()
Сообщение
#2118
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
ну раз не получилось так (все из-за того же, создание и удаление + взятие одних и тех же по несколько раз)
делаем простейшую рекурсию lx_fire_start NSS void main() { if (GetLocalInt(OBJECT_SELF, "Counter") == 1) return; SetLocalInt(OBJECT_SELF, "Counter", 2); object oFire = GetObjectByTag("PLC_DRM_F00"); location lLoc = GetLocation(oFire); CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR"); ExecuteScript("lx_fire_main",oFire); DestroyObject(oFire,0.5); } lx_fire_main NSS void main() { SetLocalInt(OBJECT_SELF,"USED",TRUE); location lLoc = GetLocation(OBJECT_SELF); int i = 1; CreateObject(OBJECT_TYPE_PLACEABLE, "plc_flamelarge", lLoc, FALSE, "PLC_DRM_FR"); object oFire = GetNearestObjectByTag("PLC_DRM_F01", OBJECT_SELF,i); while (GetLocalInt(oFire,"USED")) { i++; oFire = GetNearestObjectByTag("PLC_DRM_F01", OBJECT_SELF,i); } if (GetIsObjectValid(oFire)) DelayCommand(0.4,ExecuteScript("lx_fire_main",oFire)); DestroyObject(OBJECT_SELF, 0.5f); } -- вместо того, чтоб панику поднимать, товарищ нуб, лучше бы подумали маленько (IMG:style_emoticons/kolobok_light/smile.gif) А не списывали начисто у мудрого Лекса. |
![]()
Сообщение
#2119
|
|
Level 3 ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Во, терь Лекс молодец, терь работает (IMG:style_emoticons/kolobok_light/yahoo.gif)
Вопросы(IMG:style_emoticons/kolobok_light/smile.gif) 1) Что такое рекурсия? ссылка на другой скрипт? 2) тот скрипт не работал изза того что "удаление/создание" проходят медленее чем остальная часть скрипта? 3) object GetNearestObjectByTag(string sTag, object oTarget=OBJECT_SELF, int nNth=1) что обозначает "int nNth"? как я понял из твоего скрипта.. Берется ближайший, потом 2-й ближайший.. 3-й и т.п. Так? |
![]()
Сообщение
#2120
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1. рекурсия это в общем когда функция вызывает саму себя. В данном случае скрипт вызывает сам себя до определенного момента.
2. скорее всего. если там расставить задержки, которые бы потихоньку росли, поменять систему поиска следующего элемента, то мб все было бы ок. 3. это номер ближайшего объекта. по умолчанию 1, те ближайший. А можно брать второй, третий и Хый по удаленности. это все описано в лексиконе. |
![]()
Сообщение
#2121
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
изначально скрипт не работал именно из-за того, что не был указан третий параметр в функции GetNearestObjectByTag. так как фактическое удаление объекта происходит после окончания работы скрипта, то циклилось все на первом объекте. рекурсии-фигурсии... (IMG:style_emoticons/kolobok_light/crazy.gif)
|
![]()
Сообщение
#2122
|
|
Level 3 ![]() Класс: Тайный Лучник Характер: Chaotic Good Раса: Эльф ![]() |
Значит в принципе операции удаления происходят после выполнения Большей части скрипта?
Короче не юзать удаление обьектов в циклах, если с них таким методом снимаем координаты.. (IMG:style_emoticons/kolobok_light/biggrin.gif) Насчет карты в Проклятии.. Щелкаешь правой на тсурлаголе, выбераешь "рубануть". Слышешь вопли ПС "My weapon is not effect.." Ржешь.. Делаешь Alt-Ctrl-Delete. Закрываешь нвн. Заходшь аново и загружаешься с последней савы.. я такое сделал в момент прохождения половины первого мода.. а сохраняться я люблю только перед тем как вырубить камп.. :-) Но тем не менее карта это прикол, надо только сделать, чтобы в случае закрытия диалога - он появлялся снова. |
![]()
Сообщение
#2123
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
У меня, такой вопрос.
Можно ли восстановить хиты игроку кроме как регенерациями и EffectHeal? В общем, есть что-то, что не пишет в панель сообщений, кто и скока хитов восстановил? |
![]()
Сообщение
#2124
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
ForceRest()
EffectDamage (IMG:style_emoticons/kolobok_light/crazy.gif) можно временные хиты добавлять еще.. |
![]()
Сообщение
#2125
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
QUOTE(2_advanced @ Apr 3 2006, 20:18) [snapback]76072[/snapback] ForceRest() EffectDamage Иными словами - НЕТ! А жаль. |
![]() ![]() |
Текстовая версия | Сейчас: 15th June 2025 - 01:35 |