![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3761
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Цитата как сделать так, чтобы при юзании однго из нескольких юзабл прейсеблов, остальные делались бы неюзабл? Чтоб получалось, чо выбрал один раз - и все, больше не повыбираешь? Neverwinter Script // Set oPlaceable's useable object status. // Note: Only works on non-static placeables. void SetUseableFlag(object oPlaceable, int nUseableFlag) нэ? если не прокатит - всегда можно старые уничтожить и создать новые неюзабельные. |
![]()
Сообщение
#3762
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
shadowdweller, только наоборот: Neverwinter Script GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC())) Вот поэтому у тебя наверняка и не компелится твой скрипт. Я же правил твою строку без редактора. Ты наверное перепутала местами аргументы функции. Это я Шад... (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3763
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Н-да, ну не помню я порядок аргументов А смотреть хелп в тулсе было влом [только наоборот: Neverwinter Script GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC())) Вот поэтому у тебя наверняка и не компелится твой скрипт. Я же правил твою строку без редактора. Ты наверное перепутала местами аргументы функции. Это моя вина (IMG:style_emoticons/kolobok_light/smile.gif) Вот что мне стоило зайти в тулсет и самой посмотреть эти грешные аргументы! А я испугалась, что что-нибудь вообще насовсем испорчу... Да, в обратном порядке действительно компилится. Спасибо! ЗЫ: Урра! (IMG:style_emoticons/kolobok_light/yahoo.gif) Все работает! Ilerien, Aiwan, спасибо огромное, что мучаетесь со мной. ЗЗЫ: И еще такой вопрос - скрипты применимы только к одной паре дверей? То есть можно ли использовать одни и те же скрипты для каждой пары дверей на одной и той же локации? Или нужно каждый раз их перенастраивать для каждой конкретной пары? Сообщение отредактировал shadowdweller - Jun 28 2008, 13:51 |
![]()
Сообщение
#3764
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Zirrex, azathoth, спасибо, я попробую!
azathoth, а куда вешать скрипт? Чтобы зеркало считалось уже использованным, на него можно повесить "флаг" (переменную), которая не позволит сработать висящему на событии объекта OnUsed скрипту. Если объекты сделаны по маске (pl_mirror_01, pl_mirror_02, pl_mirror_03, pl_mirror_04 ...), то все остальные объекты можно сделать неиспользуемыми с помощью цикла, который прогонит данные объекты через себя и поставит на каждый флажок, запрещающий запускаться скрипту. Куда и как вешать флаги? На OnUsed уже висит - к нему прибавить? А объекты имеют тэги примерно name1_statue, name2_statue... и .д. И по идее, когда поюзаешь, она сама пропадает. А вот другие должны оставаться... но не юзаться более. |
![]()
Сообщение
#3765
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата И еще такой вопрос - скрипты применимы только к одной паре дверей? То есть можно ли использовать одни и те же скрипты для каждой пары дверей на одной и той же локации? Или нужно каждый раз их перенастраивать для каждой конкретной пары? Все настраивается в самих дверях, я в мануале описывал (IMG:style_emoticons/kolobok_light/wink3.gif) Просто теги нужны разные для каждой двери.Цитата Куда и как вешать флаги? Поставить галочку "используемый" (IMG:style_emoticons/kolobok_light/smile.gif) Снимать юзабл флаг у остальных - тоже в onUse. Сообщение отредактировал Ilerien - Jun 28 2008, 22:48 |
![]()
Сообщение
#3766
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Все настраивается в самих дверях, я в мануале описывал (IMG:style_emoticons/kolobok_light/wink3.gif) Просто теги нужны разные для каждой двери. Звиняюсь. Моя сегодня тупой тролль. (IMG:style_emoticons/kolobok_light/orc.gif) |
![]()
Сообщение
#3767
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
|
![]()
Сообщение
#3768
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
А можно поподробнее, как это сделать так, чтобы не получилось, как у Xfans - объект пропал, и скрипт, висящий на нем перестает выполняться? Поставить это действие ДО DestroyObject? Пожалуйста… Количество плейсов может быть любым, останется только один юзабельным, т.е. который мы откроем. Что с ним делать – это уж ваши проблемы. Другие, с такими же тегами в этой области, заменятся плейсами из палитры. Neverwinter Scriptnss1// Set oPlaceable's useable object status.// Note: Only works on non-static placeables.void SetUseableFlag(object oPlaceable, int nUseableFlag)nss2nss3нэ?если не прокатит - всегда можно старые уничтожить и создать новые неюзабельные. Что-то этой функции в моем тулсете нет… Neverwinter Script //:://////////////////////////////////////////////
//:: Слот: OnUsed //:: File name: us_place_destroy //::////////////////////////////////////////////// void main() { object oPC = GetLastUsedBy(); int nNth; // Номер плейса string sTag = GetTag(OBJECT_SELF); object oPlace = GetNearestObject(OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nNth); // Ближайший плейс if(GetLocalInt(OBJECT_SELF, "DESTROY")==1) return; // Если скрипт сработал - выход while(GetIsObjectValid(oPlace)) { if(GetTag(oPlace) == sTag && GetLocalInt(oPlace, "DESTROY")==0) // Если совпали теги { SetLocalInt(oPlace,"DESTROY",1); // Вешаем локалку string sResRef = GetResRef(oPlace); // ResRef неюзабельного плейса в палитре location Loc = GetLocation(oPlace); //Заменим плейс на неюзабельный из палитры object oPlaceNew = CreateObject(OBJECT_TYPE_PLACEABLE, sResRef, Loc, FALSE, "NEW_"+sTag); AssignCommand(oPC, SpeakString(GetName(oPlaceNew)+" "+IntToString(nNth))); // Фраза-Контроль DestroyObject(oPlace); // Удалим юзабельный плейс } nNth++; oPlace = GetNearestObject(OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nNth); } //ТУТ ПИШЕМ ЧТО ДОЛЖНО ПРОИЗОЙТИ С ЮЗАБЕЛЬНЫМ ПЛЕЙСОМ SetLocalInt(OBJECT_SELF,"DESTROY",1); // Вешаем локалку } /* Теги всех удаляемых плейсов должны быть одинаковые. РесРефы в палитре неюзабельных плейсов должны совпадать с юзабельными. */ |
![]()
Сообщение
#3769
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
|
![]()
Сообщение
#3770
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата А не знаете, будет ли там поправлен еще один глючок, связанный с плащами - а именно то, что у существ с крыльями наличие плаща начисто убирает эти крылья? Это не глюк (IMG:style_emoticons/kolobok_light/smile.gif) Желаемый результат можно достичь редактированием cloakmodel.2da.Цитата Что-то этой функции в моем тулсете нет… (IMG:style_emoticons/kolobok_light/shok.gif) Как-то всё сложно о.ОNeverwinter Script const int PLACEABLE_QUANTITY = <количество обжектов>; Хы, <nss> не признаёт слово continue (IMG:style_emoticons/kolobok_light/whistle3.gif) void main() { object oPC = GetLastUsedBy(); //в приведённом ниже эта переменная не нужна, но, наверное, понадобится дальше object oSelf = OBJECT_SELF; string sTag = GetTag(oSelf); //теги что-то вроде "object_01", "object_02", etc. Bажен только двухсимвольный номер (IMG:style_emoticons/kolobok_light/smile.gif) int nNumberSelf = StringToInt(GetStringRight(sTag, 2)); string sBase = GetStringLeft(sTag, GetStringLength(sTag) - 2); int nNumber; string sNumber; for(nNumber = 1; nNumber <= PLACEABLE_QUANTITY; nNumber++) { if(nNumber == nNumberSelf) continue; sNumber = IntToString(nNumber); if(nNumber < 10) sNumber = "0" + sNumber; SetUseableFlag(GetObjectByTag(sBase + sNumber), FALSE); } <тут прописываем, что должно происходить при юзе плейса> } Цитата А можно поподробнее, как это сделать так, чтобы не получилось, как у Xfans - объект пропал, и скрипт, висящий на нем перестает выполняться? DestroyObject всё равно выполняется после того, как завершится вызвавший его скрипт. Если в скрипте ничего не заделеено, можно смело применять эту функцию на вызвавший скрипт обжект и не париться. Всё заделеенное нужно перекидывать на любой 100%-но валидный обжект - модуль/локу/игрока/...
Сообщение отредактировал Aiwan - Jun 30 2008, 23:13 |
![]()
Сообщение
#3771
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Neverwinter Script const int PLACEABLE_QUANTITY = <количество обжектов>; ... //теги что-то вроде "object_01", "object_02", etc. Bажен только двухсимвольный номер (IMG:style_emoticons/kolobok_light/smile.gif) ... <тут прописываем, что должно происходить при юзе плейса> } Количество включая юзаемый? То есть мне, к тегам, которые есть, надо добавить порядковые номера, видом 01, 02 и т.д.? А то, что при юзе плейса - это как раз изначально стоявший OnUsed скрипт? |
![]()
Сообщение
#3772
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
gennady, скрипт, который ты привел выше, будет тормозить, и к тому же не стоит вкладывать в цикл такие вещи:
Neverwinter Script object oPlaceNew = CreateObject(OBJECT_TYPE_PLACEABLE, sResRef, Loc, FALSE, "NEW_"+sTag); без хотя бы маленькой задержки. Функция CreateObject довольно медленная, и точно также, как и DestroyObject, срабатывает не сразу, поэтому может привести к тормозу. Если бы так создавались живые объекты (НПС), то скрипт завершился бы ошибкой "Слишком много инструкций". Да, переменная nNth у тебя равна FALSE, хотя, если посмотреть саму функцию, то она по умолчанию равна 1 (сомневаюсь, что цикл сработает правильно при первом лупе). Потом, а зачем в теле цикла ты при каждом новом лупе определяешь переменные? Все это должно описываться перед циклом в самом начале кода. Lirulin, под флагами подразумеваются "переменные". Вешаются они на тот объект, с которым производится операция. Скрипт, который привел Ilerien выше, включает все нужные тебе объекты. Чтобы скрипт изменил им статус с "Use" на "Not Use", необходимо у каждого объекта сделать одинаковый тэг, в котором в самом конце изменить номер, начиная от 01 и заканчивая номером последнего объекта. Скрипт вешается на событие OnUsed каждогообъекта. Ilerien, Цитата Хы, <nss> не признаёт слово continue оно довольно редко используется в скриптах. А вообще, недочет (IMG:style_emoticons/kolobok_light/smile.gif) Кстати, скриптик прикольный. Я такими вещами часто пользуюсь, когда нужно составить из мелких символов, раскиданных по объектам нужный тэг. Коротко и сердито, и главное, нужен всегда всего лишь один скрипт (IMG:style_emoticons/kolobok_light/smile.gif) Xfans, а почему глюк? Плащ как бы закрывает крылья. Торчащие крылья через плащ, очень странное явление. То что они торчат через броню, еще страннее (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Zirrex - Jun 29 2008, 22:14 |
![]()
Сообщение
#3773
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Количество включая юзаемый? Включая. Там в цикле специальная проверка на то, чтобы с обжектом, который мы юзаем, ничего не случилось Если нужно, её можно убрать (IMG:style_emoticons/kolobok_light/smile.gif) Вот проверка:То есть мне, к тегам, которые есть, надо добавить порядковые номера, видом 01, 02 и т.д.? А то, что при юзе плейса - это как раз изначально стоявший OnUsed скрипт? Neverwinter Script if(nNumber == nNumberSelf) Тег отдельного плейсебла должен состоять из базы (любой, в примере "object_"), одинаковой для _всех_ таких плейсеблов, и двухсимвольного номера, начиная с "01".continue; Цитата Функция CreateObject довольно медленная, и точно также, как и DestroyObject, срабатывает не сразу, поэтому может привести к тормозу. У меня такое было, когда в цикле на вейпоинтах создавались камни завала при заходе существа на триггер (IMG:style_emoticons/kolobok_light/smile.gif) Сервер-то это ещё проглотит (хотя, в зависимости от количества обжектов), а вот в сингле будут тормоза, потому что там одна машина является сервером и клиентом одновременно, да и сама машина слабее любого шардового сервера.
|
![]()
Сообщение
#3774
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Это не глюк (IMG:style_emoticons/kolobok_light/smile.gif) Желаемый результат можно достичь редактированием cloakmodel.2da. Спасибо! Покопаем и найдем! Xfans, а почему глюк? Плащ как бы закрывает крылья. Торчащие крылья через плащ, очень странное явление. То что они торчат через броню, еще страннее (IMG:style_emoticons/kolobok_light/smile.gif) В том-то и дело, что раз уж они через броню торчат... наверное, подразумевается, что крылатые существа заказывают себе спец. броню с дырками для крыльев (IMG:style_emoticons/kolobok_light/biggrin.gif) (бывает же броня, через которую виден хвост(IMG:style_emoticons/kolobok_light/biggrin.gif) ). А если плащ прикроет крылья, будет порядочный горб. Ну ладно, это все тонкости, и уже не по теме. Просто должны же у ангела крылья торчать, чтоб было видно, что он ангел и есть. Сообщение отредактировал Xfans - Jun 30 2008, 06:07 |
![]()
Сообщение
#3775
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
У меня такое было, когда в цикле на вейпоинтах создавались камни завала при заходе существа на триггер (IMG:style_emoticons/kolobok_light/smile.gif) Сервер-то это ещё проглотит (хотя, в зависимости от количества обжектов), а вот в сингле будут тормоза, потому что там одна машина является сервером и клиентом одновременно, да и сама машина слабее любого шардового сервера. Ну, наверное создание одного паршивого NPC и убрание одной не менее паршивой статуи - это все же посильная задача для простого компа=) Вроде не виснет. Но спасибо за предупреждение, что много object'ов сразу ни destroy, ни create делать не надо. Lirulin, под флагами подразумеваются "переменные". Вешаются они на тот объект, с которым производится операция. Ну, это-то я уже усек, что флаг - это переменная. Просто вешать их пока не научился=)Но с такими подробными объяснениями скоро научусь! Сообщение отредактировал Lirulin - Jun 30 2008, 12:12 |
![]()
Сообщение
#3776
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата наверное, подразумевается, что крылатые существа заказывают себе спец. броню с дырками для крылье У Ли Байерса ("Rage", "Rite", "Ritem") был эльф-авариэль, экипированный как раз такой бронёй (IMG:style_emoticons/kolobok_light/smile.gif) )Цитата Просто вешать их пока не научился=) Neverwinter Script SetLocalInt(<объект>, <название>, <значение>);
|
![]()
Сообщение
#3777
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
|
![]()
Сообщение
#3778
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
У Ли Байерса ("Rage", "Rite", "Ritem") был эльф-авариэль, экипированный как раз такой бронёй (IMG:style_emoticons/kolobok_light/smile.gif) ) Видимо, идеи носятся в воздухе! У одного из нас был сочинен мир, где тож народ с крыльями был. Так пришлось продумывать, куда девать крылья при одевании=))) (IMG:style_emoticons/kolobok_light/wacko.gif) |
![]()
Сообщение
#3779
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Хы, <nss> не признаёт слово continue Оно довольно редко используется в скриптах. А вообще, недочет Усе исправлено (IMG:style_emoticons/kolobok_light/declare.gif) Neverwinter Script if () continue;
|
![]()
Сообщение
#3780
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
|
![]()
Сообщение
#3781
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Скажите, плиз, водится ли еще на сайте WRG прога, которая делает заставки/видюшки/титры к НВН? Вроде где-то про нее упоминали, но найти мы не можем. Если она есть, можно сюда ссылку?
|
![]()
Сообщение
#3782
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если такая прога есть, то я о ней не слышал. Не то что бы увидеть...
|
![]()
Сообщение
#3783
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
эта прога - любая прога, которая может выдавать в результате своей работы видеофайл, пригодный для конвертации в *.bic.
У нас на сайте таких программ никогда не было. Возможно был когда-то конвектор типа avi - bic, но врядли. По крайней мере в памяти не отложилось. |
![]()
Сообщение
#3784
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
У нас на сайте таких программ никогда не было. Возможно был когда-то конвектор типа avi - bic, но врядли. По крайней мере в памяти не отложилось. Вот именно конвертор и нужен (просто выразились непонятно (IMG:style_emoticons/kolobok_light/unsure.gif) ). А чем делалась например начальная заставка к Левору? Она же тоже должна быть *.bic? Или нет? |
![]()
Сообщение
#3785
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
|
![]() ![]() |
Текстовая версия | Сейчас: 3rd August 2025 - 23:03 |