![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3616
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Установил другой нвн все заработало. Огромное спасибо Melisse за ссылку с функциями теперь разбираться стало реально проще и быстрее. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif)
|
![]()
Сообщение
#3617
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Установил другой нвн все заработало. Огромное спасибо Melisse за ссылку с функциями теперь разбираться стало реально проще и быстрее. Там далеко не все, остальное придется по лексикону разбирать. Копипасте в переводчик и будет тоже самое почти |
![]()
Сообщение
#3618
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
Нет, совсем не так. При 0 всегда будет FALSE, а от -2,147,483,648 до 2,147,483,647, кроме 0 всегда TRUE иначе говоря FALSE это всегда 0, а TRUE любое кроме 0 Так вопрос-то был значение переменной (...) может быть только в двух значениях (...) так получается? И ответ на него 2. Нет. а не 2. Да Значений куча, просто в некоторых частных случаях (условный оператор) некоторые из значений (не нулевые) интерпретируются одинаково. Если же кто-то захочет хранить в переменной целое число и использовать его как число, а не признак истинности, то он сможет это сделать. Сообщение отредактировал Anakondar - Jul 21 2013, 09:56 |
![]()
Сообщение
#3619
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Anakondar
ок, я не так поняла вопрос Сообщение отредактировал Melisse - Jul 21 2013, 11:38 |
![]()
Сообщение
#3620
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Добрый день. Я создаю модуль для будущего Шарда (Да, да. Имя нам - легион) и столкнулся с небольшой проблемой. Не подскажете ли скрипт для автоматического закрытия и запирания дверей через определнное время (15 секунд). Это необходимо для реализации системы частной собственности для игроков. Заранее спасибо. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif)
|
![]()
Сообщение
#3621
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Neverwinter Script // ЗАКРЫТЬ ДВЕРЬ И ЗАМОК Слот OnOpen
void main() { object oDoor = OBJECT_SELF; DelayCommand(15.0, ActionCloseDoor(oDoor)); SetLocked(oDoor, TRUE); } Сообщение отредактировал gennady - Jul 25 2013, 10:16 |
![]()
Сообщение
#3622
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Спасибо большое. Вместо oDoor вставить теги двери?
// ЗАКРЫТЬ ДВЕРЬ И ЗАМОК Слот OnOpen void main() { object oDoor = OBJECT_SELF; DelayCommand(15.0, ActionCloseDoor(OBJECT_SELF)); SetLocked(oDoor, TRUE); } |
![]()
Сообщение
#3623
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Нет, этот скрипт поставить в слот OnOpen двери. Всё! (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3624
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
И еще раз огромное спасибо (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) Очень выручили.
|
![]()
Сообщение
#3625
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Друзья, никто не подскажет скрипт для крафтинга через диалог?
Что-то вроде: Изготовить "предмет" (требует X ресурса, X навыка изготовления брони). Во время проверки навыка имеется X% шанс успеха, в случае провала ингридиенты уничтожаются, но игрок предмет уже не получает. Меня интересует крафт с проверкой навыков на изготовление брони (Craft Armor), оружия (Craft Weapon), ловушек (Craft trap), зелий (Brew potion) , поясов целителя (Heal), волшебных палочек (Craft wand), свитков (Scribe scroll), отмычек (Open lock), Книг (Lore). Заранее спасибо (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) |
![]()
Сообщение
#3626
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Друзья, никто не подскажет скрипт для крафтинга через диалог? >>>Что-то вроде: Изготовить "предмет" (требует X ресурса, X навыка изготовления брони). Во время проверки навыка имеется X% шанс успеха, в случае провала ингридиенты уничтожаются, но игрок предмет уже не получает. Меня интересует крафт с проверкой навыков на изготовление брони (Craft Armor), оружия (Craft Weapon), ловушек (Craft trap), зелий (Brew potion) , поясов целителя (Heal), волшебных палочек (Craft wand), свитков (Scribe scroll), отмычек (Open lock), Книг (Lore). Заранее спасибо (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) Изучай скрипт-генератор – там есть все подобные функции. Как создать данный скрипт с помощью скрипт генератора: 1. Запускаем генератор. 2. Choose script type (выберите тип скрипта) -> Normal script (нормальный скрипт). 3. Where is this script called from? (откуда запускается скрипт) -> From a conversation (из диалога). 4. Выбираем из списка арсенала генератора пункт Make an ‘if THIS then THAT condition’ (сделать «если ЭТО, то ТО условие») и жмем SCRIPT (скрипт). 5. Choose your condition (выберите ваше условие) -> Item restriction (требование предмета) -> The following event(s) will happen only if player (данный эвент(ы) случится только если игрок…) -> Has (имеет) -> The item tagged (предмет с тагом…) -> вводим таг предмета (в примере это «tag_of_resurs») -> есть возможность затребовать, чтоб этот предмет был экипирован на теле игрока в указанном слоте – она нам не нужна, не трогаем -> Okay (запилить!). 6. Операцию требования предмета можно повторить, если мы хотим, чтоб ресурсов было больше чем 1, но нам этого не надо, зато у нас есть требование навыка, поэтому все равно жмем еще раз Make an ‘if THIS then THAT condition’ (сделать «если ЭТО, то ТО условие») и жмем SCRIPT. 7. Choose your condition (выберите ваше условие) -> Successful skill check (удачная проверка навыка) -> Skill to check: (проверяемый навык) -> (тут можно ставить тот тип навыка, к которому мы относим крафт этого предмета – в примере это будет «Craft trap», ставим его; к сожалению почему-то в данном списке генератора представлены не все умения, но их можно и вручную в получившемся скрипте потом поменять будет, подсмотрев константы в тулсете или лексиконе) SKILL_CRAFT_TRAP -> Difficulty: (класс сложности; d20 + уровень навыка игрока должен быть равен или быть выше этого значения) -> (тут мы сразу одновременно устанавливаем и % успеха, т.к. чем выше разница требования и броска кубика + навыка игрока – тем меньше у него шансов на успех вплоть до «никаких»; допустим для примера мы создаем хитроумное приспособление которое должно соответствовать работе игрока-мастера не ниже 10 уровня с полностью вкачанным навыком, это около 13 пунктов навыка, добавим возможный бонус от вещей и модификаторов и повысим его до 17 пунктов, а так же установим вероятность создания такого предмета для такого мастера в 50% т.е. добавим еще 10 пунктов от предполагаемого броска кубика и получим в итоге 27, так и пишем) 27 -> Okay (запилить!). 8. Таким образом у нас получилось 2 условия – предмет и сложность крафта, теперь нам нужно описать что произойдет, если у игрока все получится. Выбираем из списка арсенала генератора пункт Give item(s)/XP/gold to PC (дать предмет(ы)/опыт/золото игроку) -> SCRIPT (скрипт) -> ResRef of item to give: (резреф получаемого предмета) -> (вбиваем/копируем сюда резреф того, что должно получиться – в примере это будет «resref_of_result») resref_of_result -> (больше мы ничего игроку не даем, поэтому жмем сразу финальную кнопку «запилить и выйти!») Okay – exit! 9. Итак у нас получается в случае прокидывания DC, игрок получает то, что он собирался скрафтить. На этом мы закрываем второе наше «if THIS then THAT» условие, для чего нажимаем 1 раз кнопку «Finish current if» (закончить текущее «если») -> Just finish (просто закончить; есть варианты еще «наветвить», но нам они тут не нужны). 10. В окошке «Current number of unfinished ‘if’ statements» (текущее число незавершенных «если» условий) видим, как 2 превратилось в 1. У нас осталось еще первое условие - предмета. Наш крафт подразумевает, что этот ресурс тратится при любом варианте, поэтому теперь мы это и осуществим в независимости от прокидываний DC. Выбираем из списка арсенала генератора пункт Take item(s)/XP/gold from PC (взять предмет(ы)/опыт/золото у игрока) -> SCRIPT (скрипт) -> (нам нужно только взять 1 предмет, поэтому мы заполняем лишь соответствующее поле) Tag of the item to take (таг забираемого предмета; у нас в примере это вышеупомянутый «tag_of_resurs») -> tag_of_resurs -> (больше мы ничего у игрока не забираем, поэтому жмем сразу финальную кнопку «запилить и выйти!») Okay – exit! 11. Теперь можно закрыть и 2 условие. Жмем «Finish current if» (закончить текущее «если») -> Just finish (просто закончить). 12. Вот собственно и весь наш скрипт. Больше нам добавить нечего и мы жмем кнопку «Close». 13. Теперь в окошке справа мы видим код нашего скрипта (выглядит кривовато, зато рабочий) – копируем его и помещаем его в нужное место в редакторе диалога (на «совершенные действия»). 14. Наслаждаемся и благодарим Лилака. Генератор можно закрывать. Вот как выглядит результат: Neverwinter Script object oItem;
/* Script generated by Lilac Soul's NWN Script Generator, v. 2.3 For download info, please visit: http://nwvault.ign.com/View.php?view=Other...683&id=625 */ //Put this on action taken in the conversation editor void main() { object oPC = GetPCSpeaker(); if (GetItemPossessedBy(oPC, "tag_of_resurs")!= OBJECT_INVALID) { if (GetIsSkillSuccessful(oPC, SKILL_CRAFT_TRAP, 27)) { CreateItemOnObject("resref_of_result", oPC); } oItem = GetItemPossessedBy(oPC, "tag_of_resurs"); if (GetIsObjectValid(oItem)) DestroyObject(oItem); } } Сообщение отредактировал Flaristan - Jul 26 2013, 05:31 |
![]()
Сообщение
#3627
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Огромное спасибо, друг.
Если честно, то я кажется начинаю потихоньку понимать, как это работает. И если можно, я попрошу еще один совет у мастеров. Дело в том что в редакторе я видел несколько предметов, чье предназначение не понял. А точнее: мясо, рыба, чеснок, беладонна. Не знаю, есть ли в игре кулинария (не одного упоминания я так и не обнаружил), но если они бесполезны, может подскажете младшему товарищу (это я) скрипт для того, что бы они расходовались во время отдыха. У меня уже на уме довольно простая, но в то же время интересная экономическая система для шарда. И если бы в нем присутствовали подобные расходники, это бы было очень кстати. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) |
![]()
Сообщение
#3628
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Цитата Если честно, то я кажется начинаю потихоньку понимать, как это работает. И если можно, я попрошу еще один совет у мастеров. Дело в том что в редакторе я видел несколько предметов, чье предназначение не понял. А точнее: мясо, рыба, чеснок, беладонна. Не знаю, есть ли в игре кулинария (не одного упоминания я так и не обнаружил), но если они бесполезны, может подскажете младшему товарищу (это я) скрипт для того, что бы они расходовались во время отдыха. У меня уже на уме довольно простая, но в то же время интересная экономическая система для шарда. И если бы в нем присутствовали подобные расходники, это бы было очень кстати. i-m_so_happy.gif Я конечно не мастер по скриптам но то что ты просишь по моему весьма просто. Допустим если игрок должен отдыхать в трактире в комнате вешаешь на кровать диалог с опцией "Отдых" которая появится в том случае если в инвентаре будет мясо, рыба ну и тд. При нажатии эти объекты дестроятся и начинается отдых. На проверку для появления текста нужно повесить Neverwinter Script #include "nw_i0_tool" int StartingConditional() { if(HasItem(GetPCSpeaker(), "ТАГ_ТВОЕГО_ПРЕДМЕТА")) return TRUE; return FALSE; } и на действие при активации диалога Neverwinter Script void main()
{ object oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "ТАГ_ТВОЕГО_ПРЕДМЕТА"); if(GetIsObjectValid(oItemToTake) != 0){ DestroyObject(oItemToTake); ForceRest(GetPCSpeaker()); // насчет этой строчки я не совсем уверен но помоему она должна активировать отдых } } Сообщение отредактировал arcmag - Jul 26 2013, 17:46 |
![]()
Сообщение
#3629
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата ForceRest(GetPCSpeaker()); // насчет этой строчки я не совсем уверен но помоему она должна активировать отдых не,... сам процесс не активируется, но используется на персонаже "сила отдыха", т.е. эффект как-будто персонаж отдохнул. Если нужно заставить именно отдыхать, то там есть актион вроде, типа ActionRest Neverwinter Script if(GetIsObjectValid(oItemToTake) != 0) тут можно и не делать сравнение а просто if(GetIsObjectValid(oItemToTake)) Сообщение отредактировал Melisse - Jul 26 2013, 18:38 |
![]()
Сообщение
#3630
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Спасибо большое. А это будет работать если в локации стоит запрет на отдых?
|
![]()
Сообщение
#3631
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Ну если вы делаете скриптово и не нужно нажимать кнопку отдыха на панели GUI, то ActionRest может и работает, ForceRest точно.
Сообщение отредактировал Melisse - Jul 27 2013, 12:30 |
![]()
Сообщение
#3632
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Подскажите в чем ошибка? Хочу сделать простой такой скрипт который срабатывал бы при приближении игрока на определенное расстояние к существу чтобы тот из нейтрального состояния переходил во враждебное и крикнул бы что нибудь вроде "Тебе нельзя здесь находиться!"
Хочу повесить такой скрипт на гоблина, но не могу понять на какую ячейку вешать этот скрипт Neverwinter Script void main() { object oPC = GetLastDisturbed(); // вот с этой строчкой у меня тоже сомнения) я честно говоря не понял как называется функция для получения последнего объекта вошедшего в зону видимости ну или чего то подобного. if(GetDistanceBetween(oPC,OBJECT_SELF)<10.0){ //проверяем расстояние между объектами AssignCommand(OBJECT_SELF,ActionAttack(oPC)); AssignCommand(OBJECT_SELF,ActionSpeakString("Тебе нельзя здесь находиться!")); } } И еще 1 проблема, почему то вдруг компилятор наотрез отказыватся воспринимать русский язык. Он попросту даже не печатается в нем. В английской раскладке все нормально а вот как только перехожу на русский клавиатура как будто пропадает только пробел и печатается. Пробовал взять и написать текст на русском в блокноте а потом скопировать но компилятор начал ругаться неожиданно на букву Я хотя раньше все было нормально, даже в коментариях выявляет ее как ошибку... |
![]()
Сообщение
#3633
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Вешайте в OnHeartbeat
что-то типа такого Neverwinter Script void main() { // Игрок (живой) object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF,1, CREATURE_TYPE_IS_ALIVE, TRUE); // Найден? int bValue = GetIsObjectValid(oPC); // Найден и дистанция меньше 10м if(bValue && GetDistanceBetween(OBJECT_SELF, oPC) < 10.0f) { // НПЦ не дерется if(!GetIsInCombat() ) { ClearAllActions();// Чистим стэк действий AdjustReputation(oPC, OBJECT_SELF, -100);// Репутацию к игроку скинем в враждебность (можно и не делать) SpeakString("Тебе нельзя здесь находиться!"); // Произносим фразу ActionAttack(oPC, FALSE); // Атакуем } } } Цитата И еще 1 проблема, почему то вдруг компилятор наотрез отказыватся воспринимать русский язык. Он попросту даже не печатается в нем. В английской раскладке все нормально а вот как только перехожу на русский клавиатура как будто пропадает только пробел и печатается. Пробовал взять и написать текст на русском в блокноте а потом скопировать но компилятор начал ругаться неожиданно на букву Я хотя раньше все было нормально, даже в коментариях выявляет ее как ошибку... Надо поставить патч Дамбо. Правда я не знаю что там с win 7 и дальше, у меня XP SP3 на стационаре и Vista на буке, т.к. они давно очень куплены. Еще надо в тулсете в редакторе скриптов изменить шрифт на Courer вроде, чтобы буквы показывало, а чтобы в игре отражались русские буквы нужно в папку override, в каталоге с игрой, кинуть эти шрифты/или эти шрифты Сообщение отредактировал Melisse - Jul 27 2013, 22:53 |
![]()
Сообщение
#3634
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Да дело не в том что у меня шрифт коряво отображается. Такая проблема уже была Courer шрифт поставил и все нормально стало. У меня проблема в другом, я просто не могу ничего по русским напечатать просто жму клавиши русской раскладки а компилятор их игнорирует хотя клавиатуру видит цифры и пробелы печатает, переключаюсь на англискую клаву английский текст печатает нормально.
Хотя еще недавно этой проблемы не было. Что произошло вдруг я так и не понял. Сообщение отредактировал arcmag - Jul 27 2013, 20:52 |
![]()
Сообщение
#3635
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Через ini пропиши тулсету шрифт Courier New Cyr, выбор кириллицы через настройки у меня например не работает.
|
![]()
Сообщение
#3636
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
А можно пожалуйста по подробнее как это сделать? Как прописать через этот ini ?
|
![]()
Сообщение
#3637
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
В nwtoolset.ini есть кусок типа:
Цитата [Script] Надо дописать Cyr к шрифту.
FontName=Courier New |
![]()
Сообщение
#3638
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Дописал увы не помогло. Наверное придется сносить НВН и заново устанавливать, патчить и тд) эххх сколько гемора (IMG:style_emoticons/kolobok_light/cray.gif)
Кстати а почему когда я пытаюсь загрузить картинку изображение у меня выводится "Загруженный файл слишком большой"? 36кб это много? А сколько он должен весить тогда? Сообщение отредактировал arcmag - Jul 28 2013, 19:24 |
![]()
Сообщение
#3639
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1 кб. (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]()
Сообщение
#3640
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Ну есть ещё вариант кодовые таблицы в реестре винды переправить. Правда делал я это последний раз для какого-нить пятого фотошопа в доисторической винде, так что подобное решение придётся погуглить самому. Суть - таблицы cp1252 и cp1250 (для верности) сослать на файл cp1251, чтоб всегда была кириллица.
|
![]() ![]() |
Текстовая версия | Сейчас: 10th May 2025 - 08:07 |