Помощь - Поиск - Пользователи - Календарь
Полная версия: Два тулсета одновременно
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
virusman
Понадобилось сравнить две локи и перенести свойства переходов из одной в другую. Это удобнее сделать, если обе локи под рукой.. Но тулсет не позволяет запускать себя более одного раза.
Сначала предупрежу:
Два тулсета, работающих параллельно, могут заглючить или даже привести к порче модуля! Используйте на свой страх и риск и делайте бэкапы модуля. smile.gif Хотя при аккуратном использовании это не должно привести к каким-либо ошибкам.
Всё описанное ниже действительно только для 1.67.
Чтобы можно было запускать 2 тулсета, нужно либо скачать патченный экзешник (он также уже пропатчен фиксом dumbo), либо изменить 1 байт самостоятельно: по оффсету 0xB61 заменить 74 на EB.
Я запускаю первый тулсет, открываю модуль, запускаю второй и отвечаю "да" на вопрос о "восстановлении" распакованного модуля. Получается, в оба тулсета загрузится один и тот же модуль. Первый тулсет - для редактирования, второй - только для просмотра (иначе могут быть конфликты). При закрытии: сначала сохраняется модуль в первом тулсете, закрывается, потом закрывается второй тулсет.
З.Ы. Я не первый, кто это сделал.. в ранних версиях подобную штуку делал 2_advanced или Darth_Nick.. я просто нашёл нужный оффсет в 1.67.
Aiwan
Хм. То что это круто базара нэма drinks.gif Применять я лично вряд ли буду. Но спасибо! thank_you.gif
Existor
А 2 разных модуля одновременно запускать можно?
Aiwan
Думаю да. Просто пропиши ресурсы для каждого отдельно тулсета соотвесвенно для разных установок двух НВН.
Existor
Еще вопрос. Если запущены 2 модуля возможно через буфер обмена выдирать куски из первого модуля во второй через копипаст?
[MoF]Darth_Nick
попробуй smile.gif
ей богу.. куда проще проверить, чем ждать день ответа
virusman
QUOTE(Existor @ Jul 10 2006, 14:45) [snapback]87493[/snapback]

Еще вопрос. Если запущены 2 модуля возможно через буфер обмена выдирать куски из первого модуля во второй через копипаст?
Нет. Тулсет использует свой буфер, а не виндовый..
Existor
QUOTE
Darth_Nick' date='Jul 10 2006, 14:14' post='87494']
попробуй smile.gif
ей богу.. куда проще проверить, чем ждать день ответа

Так и знал, что кто-нить спросит...
1. Сейчас у меня именно такая ситуация, когда проще спросить и на следующий день увидеть ответ.
2. Если будет дан точный ответ в теме, десятку людей не придется тестить каждый раз это заного declare.gif
Zirrex
Existor, так тебе же уже ответили, что нельзя так делать. Если ты подразумеваешь копирование объектов из одного модуля в другой, то это невозможно, потому что для перемещения таких объектов нужен буфер обмена, который встроен в редактор игры, но уж точно не в системный буфер.

Ты можешь скопировать любые текстовые значения, потому что они помещаются в системный буфер обмена, о чем писал выше virusman, когда изменял свойства, но, к сожалению, не можешь проделать аналогичной операции с объектами, которые напрямую взаимодействуют с редактором. Т.е., ты можешь скопировать в одном модуле объект, но он останется действительным именно для данного окна редактора, но не будет действительным для другого окна редактора.

Кстати, почему никто не обратил внимания на такой аспект, как нумерация директории игры, в которую раскрывает свои ресурсы модуль? Если есть папка "temp0", то почему не может быть папки "temp0, 1...n"? Попробуйте перед открытием второго окна редактора, изменить имя директории, присвоив хотя бы ей "temp1". Вуаля, у нас два редактора, и два совершенно разных модуля, только когда будете что-то редактировать, не забудьте изменить имя директории для модуля, который собрались редактировать. Чтобы это делать быстрее, можно сделать небольшой *.bat файл, с помощью которого менять имена существующих директорий, вначале изменяя существующую директорию "temp0" на "temp1", а при вторичным запуске уже осуществлять поиск директории "temp1", чтобы сделать рокировку smile.gif Правда несложно?
azathoth
Новые temp# создаются и тогда, когда тулсет не может нормально закрыть и почистить предыдущий temp#.
virusman
QUOTE(Zirrex @ Jul 12 2006, 00:16) [snapback]87619[/snapback]

Кстати, почему никто не обратил внимания на такой аспект, как нумерация директории игры, в которую раскрывает свои ресурсы модуль? Если есть папка "temp0", то почему не может быть папки "temp0, 1...n"? Попробуйте перед открытием второго окна редактора, изменить имя директории, присвоив хотя бы ей "temp1". Вуаля, у нас два редактора, и два совершенно разных модуля, только когда будете что-то редактировать, не забудьте изменить имя директории для модуля, который собрались редактировать. Чтобы это делать быстрее, можно сделать небольшой *.bat файл, с помощью которого менять имена существующих директорий, вначале изменяя существующую директорию "temp0" на "temp1", а при вторичным запуске уже осуществлять поиск директории "temp1", чтобы сделать рокировку smile.gif Правда несложно?
По-моему, гораздо безопаснее сделать вторую папку с NWNом и запустить второй тулсет оттуда. smile.gif
Если не хватает места на диске под два полных НВНа, но есть NTFS - можно сделать симлинк на одну и ту же папку data (hak, texturepacks и т.д.) - http://www.sysinternals.com/Utilities/Junction.html
kreon
Хмм... А у меня без всякого патча запускалось... Достаточно изолировать ардесное пространство запущенных процессов, как оно делается в wine'е smile.gif
dumbo
адресное пространство у каждого процесса и так свое. в данном случае решающим фактором является изоляция пространств имен объектов.
helvene
QUOTE(kreon @ Jul 25 2006, 01:27) [snapback]88298[/snapback]
А у меня без всякого патча запускалось... Достаточно изолировать ардесное пространство запущенных процессов, как оно делается в wine'е

Друг добрый, если ты меня еще и научишь тому, как макс под wine запускать.... ну, или хотя бы под wine-x
kreon
2helvene: можно попробовать, про макс не знаю, а фотожоп и корел я запускал biggrin.gif
2dumbo: afair там не просто сверяются имена процессов, но еще и лезется в память процесса, дабы проверить, а не тулсет-ли это? Чисто теоретически на винде достаточно запустить тулсеты в разных юзерских сессиях и они будут спокойно работать (if Win32->User->Admin ==0 для обоих юзеров)
Тем более что в той-же wine'e GetProcessList работает через обычный дубликат ps auxwww wink3.gif
Neo
хех, скажу и я пару слов
QUOTE(kreon @ Jul 25 2006, 10:30) [snapback]88308[/snapback]
Чисто теоретически на винде достаточно запустить тулсеты в разных юзерских сессиях и они будут спокойно работать (if Win32->User->Admin ==0 для обоих юзеров)

не теоретически, а точно, но с тулсой не проверял pardon.gif никакого желания
QUOTE(kreon @ Jul 25 2006, 10:30) [snapback]88308[/snapback]
if Win32->User->Admin ==0 для обоих юзеров

мягко говоря - не совсем так biggrin.gif совсем не так
helvene
QUOTE(kreon @ Jul 25 2006, 10:30) [snapback]88308[/snapback]
можно попробовать, про макс не знаю, а фотожоп и корел я запускал

Фотошоп с корелом и я запускала.
kreon
helvene, ну если дадите мне 3дмакс, могу попробовать. У меня его нету.
dumbo
QUOTE(kreon @ Jul 25 2006, 10:30) [snapback]88308[/snapback]
afair там не просто сверяются имена процессов, но еще и лезется в память процесса, дабы проверить, а не тулсет-ли это?

afair? это как там... "не знал, не знал.. и забыл!" mosking.gif не обижаццо! crazy.gif
попробую внести ясность.
тулсет при старте пытается открыть мьютекс с именем "BiowareToolsetMutex" - если открылся, значит одна копия уже запущена - выход, не открылся - создаем мьютекс и работаем.
для хранения имен объектов(события, мьютексы, семафоры, итд итп) существует некое "пространство имен объектов". поддержка нескольких пользовательских сессий в XP осуществляется средствами Terminal Services, которые для каждой сессии создают локальные пространства имен объектов(глобальным владеет первый юзер).

вышло несколько сумбурно, но смысл, я думаю, понятен.
2_advanced
извращенцы smile.gif
а вобще оно там распаковывать будет оба модуля в 1 папку
каша получится dwarf.gif help.gif
Roker
Народ, зачем мудрить? Если у кого не икспишная винда (мало таких нынче) - не читайте это, для остальных предлагаю быстрый способ запустить два раза тулсет. Первый раз можно открыть по нормальному, а второй раз можно кликнуть правой кнопкой мыши, выбрать "запустить от имени..." - ok. Это всё. На счёт матюков при редактировании одного модуля: редактировать надо с одного тулсета. В противном случае сохранение в каждом из тулсетов будет переписывать файл, а не дополнять его.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.