![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3871
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Есть такая программа еще NWN Explorer ей можно выдрать что хочешь из хаков или вообще воспользуйся утилитой, что в папке НВН в утилитах.
|
![]()
Сообщение
#3872
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
А у меня вот какой вопрос - можно ли вставить в текст диалога переменную (или string), определяемую скриптом? Скажем, бывает <First Name> - а можно ли загнать в эти <> имя хенча? Или количество дней, прошедшее с определенного момента... А то писать 10 вариантов диалогов для десятка разных хенчей (где и вся разница-то только в имени) как-то... лень=)
|
![]()
Сообщение
#3873
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script int StartingConditional() { SetCustomToken(10001, GetName(GetHenchman(GetPCSpeaker()))); return TRUE; } Этот скрипт вешать на Text Appears When той строчки диалога, в которой упоминается имя хенча. В диалоге вставляешь вместо имени хенча <CUSTOM10001>. Число можно брать любое, лучше достаточно большое, чтобы не пересечься с другими кастомными токеами, буде они присутсвуют. |
![]()
Сообщение
#3874
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Этот скрипт вешать на Text Appears When той строчки диалога, в которой упоминается имя хенча. В диалоге вставляешь вместо имени хенча <CUSTOM10001>. Число можно брать любое, лучше достаточно большое, чтобы не пересечься с другими кастомными токеами, буде они присутсвуют. Спасибо! А если хенчей 2 и более - скрипт будет произвольно выбирать, имя которого будет этим custom token'ом? Или как-то ограничить можно? (дело в том, что один из 2-х хенчей точно и определенно будет, его имя можно и так вписывать, а вот второй - на выбор. Так чтоб не получилось, что дважды появится имя одного, и ни разу - имя другого.) |
![]()
Сообщение
#3875
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ну определи скриптом, какой тебе хенч нужен.
Neverwinter Script GetHenchman(oPC, 2) выдаст тебе второго хенча. Если уж хочется перестраховаться, потому что практика показывает, что номера хенчей иногда глючат, то надо написать так:Neverwinter Script int StartingConditional()
{ object oPC = GetPCSpeaker(); string sName = GetName(GetHenchman(oPC)); //проверка на то, упоминали ли мы этого хенча if(GetLocalString(OBJECT_SELF, "HENCHMAN_NAME") == sName) sName = GetName(GetHenchman(oPC, 2); //выбираем второго SetCustomToken(10001, sName); SetLocalString(OBJECT_SELF, "HENCHMAN_NAME", sName); //задаем локалку return TRUE; } Сообщение отредактировал Ilerien - Sep 29 2008, 00:29 |
![]()
Сообщение
#3876
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Вау! На досуге я даже попытаюсь постигнуть сей мудрый скрипт и впредь буду с подобными вещами сам разбираться=) Может быть...
|
![]()
Сообщение
#3877
|
|
Level 1 Класс: Убийца Характер: Chaotic Evil Раса: Эльф ![]() |
ребят помогите плиз как сделать чтоб свитки отнимались при использовании по одному из стека.. а когда остаеться 1 то чтоб он уничтожался.. у меня вышло отнимать по одному свитку..а вот как последний уничтожить((..
Код int nStack; int nNum = -1; if((nStack=GetItemStackSize(oActivated))< nNum){ SetItemStackSize(oActivated,nStack - nNum); } а вот как добавить сюда DestroyObject(oActivated); чтоб он уничтожал последний оставшийся свиток... некак не могу додуматься(( |
![]()
Сообщение
#3878
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script int nStackSize = GetItemStackSize(oActivated) - 1;
if(nStackSize) SetItemStackSize(oActivated, nStackSize); else DestroyObject(oActivated); |
![]()
Сообщение
#3879
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Люди... я в тихом ужасе. Объясните, если такое поддается объяснению, как NPC, стоящий (ДОЛЖНЫЙ стоять) в одной локации, самовольно появляется в другой, причем независимо ни от времени, ни от чего-то еще? Просто периодически возникает и лезет со своим диалогом, подлец! На диалоге никаких переменных не стоит... на нем самом - только на смерти, так что влиять вроде не должно. Что делать? (IMG:style_emoticons/kolobok_light/shok.gif)
|
![]()
Сообщение
#3880
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Если не ошибаюсь, есть какая-то переменная, которую ставят на модуль (свойства модуля) специально для того, чтобы НПС ходили по всем локациям, не только по той, где поставлены. Помню, что в названии есть "CROSSAREA" или что-то вроде того. Может, она выставлена?
Сообщение отредактировал shadowdweller - Oct 7 2008, 22:04 |
![]()
Сообщение
#3881
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Есть вейпоинты, по которым этот непись бегает?
Я бы зашёл в модуль из-под ДМ-клиента и посмотрел, что этот непись делает. |
![]()
Сообщение
#3882
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Не, переменных, чтоб где попало бегали, я не ставил=) К тому же он один так странно себя ведет, все остальные стоят или ходят там, где их поставили.
Вейпойнтов тоже нет. А как из-под ДМ заходить? И как там можно это посмотреть? (если надо, я конечно могу мод прислать. Пока проблема отступила, т.к. я этого типа из локации убрал, теперь он как encounter появляется. Но все же на светлое будущее неплохо бы знать, откуда родится такой глюк) |
![]()
Сообщение
#3883
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Самый простой способ зайти к себе в мод из-под ДМ-клиента, если нет в наличии крякнутого сервака: запускаем nwmain с ключом -dmc (через командную строку или в ярлыке прописать, либо можно заюзать nwn.exe, он выдаст окошко, в котором можно будет выбрать ДМ-клиент), жмём Multiplayer -> New Internet/LAN Game -> Other Modules, далее выбираем название нужного модуля. Перед загрузкой модуля нужно запретить серваку лезть за авторизацией ключа к биоварям, проще всего отключить на время интернет.
|
![]()
Сообщение
#3884
|
|
Level 1 Класс: Убийца Характер: Chaotic Evil Раса: Эльф ![]() |
Обьясните плиз почему не работает
Код DelayCommand(150.0,CreateObject(OBJECT_TYPE_CREATURE,sResRef,lLoc,FALSE,sTag)); Как можно все таки сделать задержку на CreateObject? |
![]()
Сообщение
#3885
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
чтобы понять причине "не работы" мало этой строчки.
Где она висит? (если на убитом существе - работать не будет. Если на удаляемом объекте - работать не будет) + нельзя в делэй загонять вещи типа CreateObject и все прочие, что возвращают какое-то значение. надо примерно так Neverwinter Script DelayCommand(150.0,ActionDoCommand(CreateObject(OBJECT_TYPE_CREATURE
,sResRef,lLoc,FALSE,sTag))); |
![]()
Сообщение
#3886
|
|
Level 1 Класс: Убийца Характер: Chaotic Evil Раса: Эльф ![]() |
Да, на дохлом нпц висит... этот код с ActionDoCommand тоже не работает...
аврора ругаеться( |
![]()
Сообщение
#3887
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script //...
void CreateObjectVoid(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag=""); //... AssignCommand(GetModule(), DelayCommand(150.0, CreateObjectVoid(OBJECT_TYPE_CREATURE, sResRef, lLoc, FALSE, sTag))); //... void CreateObjectVoid(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="") { CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation, sNewTag); } //... Сообщение отредактировал Ilerien - Oct 14 2008, 23:33 |
![]()
Сообщение
#3888
|
|
Level 2 ![]() Класс: Волшебник Характер: Lawful Neutral Раса: Человек ![]() |
Несколько вопросов мастерам:
1.Не знаете создавался ли в последнее время какой-нибудь модуль глобальных масштабов. Какое нибудь подобие morrowind только в игре NWN1? 2.Одни из самых малоизвестных сущест в фэнтазийном мире , это Тени из категории нежить, попадаются редко и о них почти нечего не упоминается. Глупый конечно вопрос, но я сейчас создаю модуль с их участием, для сюжета нужно, не дадите ссылку на подобную информацию. |
![]()
Сообщение
#3889
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Да, на дохлом нпц висит... этот код с ActionDoCommand тоже не работает... аврора ругаеться( начинаю значит уже забывать азы (IMG:style_emoticons/kolobok_light/smile.gif) на мертвом низя вешать. Если уж привязываешься к событию onDeath, то надо отложенное действие вешать на другой объект (лучше всего конечно на тот, что никуда не денется - те на карту или на модуль.) Собсна Ilerien выше это и написал. Несколько вопросов мастерам: 1.Не знаете создавался ли в последнее время какой-нибудь модуль глобальных масштабов. Какое нибудь подобие morrowind только в игре NWN1? 2.Одни из самых малоизвестных сущест в фэнтазийном мире , это Тени из категории нежить, попадаются редко и о них почти нечего не упоминается. Глупый конечно вопрос, но я сейчас создаю модуль с их участием, для сюжета нужно, не дадите ссылку на подобную информацию. 1. а почему пример морра приведен? (IMG:style_emoticons/kolobok_light/smile.gif) Те глобальный модуль == большой мир? тады такого не было, по крайней мере в российском сегменте. А новый какой-то модуль есть, на www.wrg.ru выложили на днях. 2. гугли Monster Manual. 2ой и части третьего переведены на русский и лежат в инете. |
![]()
Сообщение
#3890
|
|
Level 1 Класс: Воин Характер: Lawful Neutral Раса: Дварф ![]() |
Всем привет.
У меня вопрос, связанный с 3dsmax и nwn. Попытаюсь сформулировать вопрос. Я хочу у вас спросить следующее. Есть игра 'Blade of Darkenss' (незнаю, помнит кто её или нет.) Так вот, я знаю каким образом можно из Neverwinter Nigths I переконвертировать модели в Blade of Darkness. Так как модельки в NWN являются достаточно упрощённые. Blade of Darkness, для этой игры были написаны модели на 3dsmax 2.5 Я знаю, что из Neverwinter Nigths II можно переконвертировать персонажей в Blade of Darkness. Вот только я хочу узнать, каким образом происходит конвертация персонажей? Через какие программы берутся файлы из игры и загружаются в 3dsmax, а уже оттуда каким образом происходит переназначение функций атаки на руку итд (или я совсем не правильно выражаюсь?) Я видел, что писали про конверт персонажей в 3dsmax из NWN I, а потом в Blade of Darkness, но там было абсолютно всё на английском. Есть ли у вас какие предложения? Или скиньте ссылку на туторы, если есть таковые по границам моих вопросов, на русском. С английского туторы переводить - это слишком, ввиду того, что там текст не малый. Извиняюсь, если подобные вопросы тут когда-либо задавались (а если задавались, то скиньте адрес.) Спасибо. |
![]()
Сообщение
#3891
|
|
Level 1 Класс: Воин Характер: Lawful Neutral Раса: Дварф ![]() |
Совсем никто не подскажет?
Я знаю, что есть туторы для 3dsmax'a и NWN, но они на английском, если есть на русском, то можно бы привести ссылку. |
![]()
Сообщение
#3892
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Пытался разобраться сам, но не смог. Скрипт должен в заданный день перебрасывать хенча куда-то, потом возвращать. Один раз. Вместо этого он работает
а) как только хенч прицепится б) и не останавливается. Neverwinter Script void main() { object oMod = GetModule(); object oPC = GetFirstPC(); object oHench = GetHenchman(oPC); location lLocation = GetLocation(GetObjectByTag("WP_summon")); location lLocation2 = GetLocation(oPC); if(GetCalendarDay() == 1 && GetCalendarMonth() == 9 && GetLocalInt(oMod, "summoned") < 1) ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVi sualEffect(VFX_FNF_SUMMON_MONSTER_2),oHench); AssignCommand(oHench,ActionJumpToLocation(lLocatio n)); SetLocalInt(oMod, "summoned", 1); DelayCommand(10.0,AssignCommand(oHench,ActionJumpToLocation(lLocati on2))); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVi sualEffect(VFX_IMP_UNSUMMON),oHench); } В чем я лопухнулся? Уже и с годом вместе проверял, и day/month/year местами менял... (хотя при && должен бы все равно все проверить...) |
![]()
Сообщение
#3893
|
|
Level 3 ![]() Класс: Псионик Характер: Neutral Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Как только хенч прицепится скрипт постоянно кидает его туда-сюда? (без конца)
|
![]()
Сообщение
#3894
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
А где это чудо висит?
|
![]()
Сообщение
#3895
|
|
Level 3 ![]() Класс: Псионик Характер: Neutral Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Neverwinter Script /* автор: Veliant для: Lirulin 17/10/2008 Слот - OnHeartBeat модуля Описание: Если переменная "summon" на модуле равна 0 и Если наступила указанная дата, - хенчман перепрыгнет к вейпоинту - через 10 сек вернется к игроку Ремарка: Думаю, стоит, так же, добавить проверку на наличие хенча, ибо в противном случае скрипт поставит переменную на модуля на 1 и более манипуляций с хенчами производить не будет (разумеятся, пока ктонить не выставит эту переменную снова на 0). */ void main() { object oMod = GetModule(); object oPC = GetFirstPC(); object oHench = GetHenchman(oPC); string sWP = "WP_summon"; string sMS = "summon"; int nD = GetCalendarDay(); int nM = GetCalendarMonth(); int nY = GetCalendarYear(); float fTime = 10.0f; //Тут надо было написать не GetObjectByTag, а GetWaypointByTag location lLocation = GetLocation(GetWaypointByTag("WP_summon")); location lLocation2 = GetLocation(oPC); if ( nD == 1 && nM == 2 && nY == 1345 && GetLocalInt(oMod, sMS) < 1 ) { AssignCommand (oHench, JumpToLocation(lLocation)); SetLocalInt (oMod, sMS, 1); DelayCommand (fTime, AssignCommand (oHench,JumpToLocation(lLocation2))); } } Демо модуль прилагается. Сообщение отредактировал Lamonde - Oct 17 2008, 20:44
Прикрепленные файлы
|
![]() ![]() |
Текстовая версия | Сейчас: 11th August 2025 - 00:28 |